嵌入式系统软件开发环境_1.定义及特点和分类

1.嵌入式系统软件开发环境的定义及特点

         嵌入式系统软件开发环境是可帮助用户开发嵌入式软件的一组工具的集合,这种工具的集合被集成为一体,形成一套交叉平台开发方法(Cross Platform Development,CPD)。交叉开发方法是指嵌入式软件在一个通用的平台上开发(称为宿主机),而在另一个嵌入式目标平台上运行(称为目标机)。嵌入式系统软件开发环境主要能力包括:集成开发、工程管理、编译(汇编器)、批处理文件、构建(Make)、配置管理、调式、下载、模拟、版本控制及其他。

        嵌入式系统软件开发环境的主要特点

  • 集成开发环境(Integrated Development Environment,IDE):是指用于提供程序开发环境的应用程序。一般包括代码编辑器、编译器、调试器和图形用户界面等工具。
  • 交叉开发(Cross Development):是指软件开发先在一台通用计算机上进行软件的编辑、编译与连接,然后下载到嵌入式设备中运行调式的开发过程。
  • 开放式体系结构:是指开发环境应建立在一种标准的框架体系内,符合相关标准。如支持ANSI C、C++语言标准、目标程序文件符合ELF格式等。支持开发环境内的工具间可无缝连接,并允许第三方工具的集成。
  • 可扩展性:是指开发环境中的工具接口符合相关架构标准,可根据需要进行工具能力的扩充。
  • 良好的可操作性:是指两个或多个工具间可以实现自动交互信息功能。
  • 可移植性:开发系统中的开发工具基本上采用高级语言实现。
  • 可配置性:开发环境中的主要开发工具可以根据需要进行伸缩,也可以根据需要选择支持库中的代码规模。
  • 代码的实时性:嵌入式软件一般都是运行在实时环境中,需要编译器生成高效的程序代码。一般开发环境支持多种代码优化功能。
  • 可维护性:开发环境中的工具间需要松耦合,可方便地对具体工具进行升级和维护。
  • 友好用户界面:开发环境界面要简洁、清晰,符合人们操作习惯。

2.嵌入式系统软件开发环境的分类

         通常,嵌入式软件开发环境都是随嵌入式系统配套软件提供给用户的。 根据嵌入式系统软件的调试方法的不同,可分为模拟器方法、在线仿真器方法、监控器方法、JTAG仿真器等。

        模拟器方法是指调试工具和待调试的嵌入式软件都在主机上运行,通过软件手段模拟执行为某种嵌入式处理器编写的源程序。

        在线仿真器(ICE)方法是一种完全仿造调试目标CPU设计的仪器,目标系统对用户来说是完全透明、可控的。仿真器与目标板通过仿真头连接,与主机可通过串口、并口、以太网或USB等连接。

        监控器方法实质主机和目标机通过某种接口(如:串口)连接,主机上提供调试界面,被调试程序下载到目标机板上运行,通过与运行在目标机板上的监控程序通信,实现软件调试。目标机板上运行的监控程序(Monitor)主要负责监控目标机上的被调试程序的运行情况,与宿主机端的调试器一起完成对应用程序的调试。

        JTAG仿真器是采用目标板上的JTAG边界扫描接口进行的软件调试。

        在嵌入式系统软件开发过程中,常用的工具应包括:编辑器、编译器、汇编器、构建器、调试器、函数库、目标板、在线仿真器等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855999.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模版与策略模式

一,怎么选择 如果需要固定的执行流程,选模版 如果不需要固定的执行流程,只需要对一个方法做具体抽象,选策略 参考文章: 常用设计模式汇总,告诉你如何学习设计模式 二,常用写法 子类 exten…

【Android面试八股文】Kotlin协程在工作中有用过吗?

文章目录 1.你工作这么些年,对于Kotlin语言协程是什么,有了解么?2.那这样说的话,协程到底有什么用?2.2.1 多个请求并发和合并的问题2.2.2 会引发嵌套回调地狱问题2.2.3 Rx解决回调地狱2.2.4 协程来解决此问题2.2.5 协程是什么?总结扩展阅读1.你工作这么些年,对于Kotlin语…

穿越时空的家书——黑夫与惊的不朽传奇

1975年,湖北云梦县睡虎地的一次考古发掘,揭开了一段尘封的历史,两枚刻有527个字的木牍,成为了我国最早的家书实物。这两枚木牍,记录了战国时期秦国士兵黑夫和惊的家书。 两件木犊出土时被放置在墓地陪葬器物箱子里的中…

【学习笔记】Hausdorff 距离的 C 语言实现

Hausdorff 距离的 C 语言实现 简介 Hausdorff 距离,亦称为豪斯多夫距离,是由德国数学家费利克斯豪斯多夫(Felix Hausdorff)提出的一种度量空间中两个非空集合之间远近程度的方法。这种距离度量广泛应用于计算机视觉、图像处理、…

Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口

前言 本篇文章我们来使用 Supabase 实现 RESTful 风格的 API 接口,以此来实现网站分类和子站点的 CURD 功能。 表设计 这里需要用到两张表: ds_categorys:存储网站分类 列名类型备注iduuid主键,分类 idnametext分类名称desct…

python 魔术方法备忘录

python 魔术方法备忘录 网上收集了一些,列出了比较常用的,特别是第一张。 Python中的魔术方法(Magic Methods),也被称为特殊方法(Special Methods)或双下划线方法(Dunder Methods&a…

Python2 日志模块的使用

Python中的日志模块(logging module)提供了灵活的日志记录功能,使开发者能够在程序运行时记录各种级别的信息,从而方便调试、跟踪程序的执行情况,并定位可能出现的问题。 日志模块可以用来: 记录程序的运行…

Effective C++ 改善程序与设计的55个具体做法笔记与心得 2

二. 构造/析构/赋值运算 5. 了解C默默编写并调用哪些函数 唯有当这些函数被调用,他们才会被编译器创建出来。 请记住: ‌‌‌‌  编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。 6. 若…

渗透测试之存储型跨站脚本攻击(高危)

一、定义 跨站脚本攻击&#xff0c;指的是恶意用户往web页面里插入恶意HTML代码。当普通用户访问该web页面&#xff0c;嵌入其中的HTML代码会被执行&#xff0c;从而达到破坏的效果。 二、风险定级 高危 三、可输入的HTML标签示例 图片标签 <img src"#"> 超…

有监督学习——决策树、集成学习

1. 决策树 熵 在热力学中&#xff0c;熵&#xff08;entropy&#xff09;被用来衡量系统的不稳定程度。香农在论文《通信的数学原理》中提出信息熵的概念&#xff0c;目的是_量化数字信息的价值_。 信息熵的定义 香农提出的量化信息方式&#xff1a; \[H(P_1,P_2,\cdots P…

新建一个 React TypeScript 项目,并使用 Webpack 进行构建和打包

要用 create-react-app 新建一个 React TypeScript 项目&#xff0c;并使用 Webpack 进行构建和打包&#xff0c;可以按照以下步骤进行操作&#xff1a; 步骤 1&#xff1a;使用 create-react-app 创建 React TypeScript 项目 确保你已经安装了 Node.js 和 npm&#xff08;Nod…

【代码随想录算法训练Day43】LeetCode 518.零钱兑换II、LeetCode 377.组合总和IV、LeetCode 70.爬楼梯

Day43 动态规划第五天 LeetCode 518.零钱兑换II dp数组的含义&#xff1a;装满容量为j的背包有dp[j]种方法 递推公式&#xff1a;dp[j]dp[j-coins[i]]。 初始化&#xff1a;dp[0]1,dp[j]0 遍历顺序&#xff1a;先物品后背包&#xff0c;背包内从小到大 本题是组合数&#xff…

【Android面试八股文】你能讲一讲Kotlin语言泛型的形变是什么?

文章目录 1. 协变 (`out`)1.1 协变概念1.2 协变示例1.3 为什么协变只能读取泛型,而不能修改泛型?1. 原因概述2. 类型安全性问题3. 类型一致性结论2. 逆变 (`in`)2.1 逆变概念2.2 逆变示例2.3 为什么逆变只能修改泛型,不能读取泛型?2.3.1 为什么逆变只能读取泛型,不能修改泛…

吴恩达机器学习作业ex3:多类分类和前馈神经网络(Python实现)详细注释

文章目录 1 多类分类1.1数据集1.2 数据可视化1.3 向量化逻辑回归1.3.1 向量化代价函数1.3.2 矢量化梯度下降以及正则化表达1.4 一对多分类 2.神经网络2.1模型表示 总结&#xff08;自己训练求解参数全流程&#xff09; 1 多类分类 在本练习中&#xff0c;您将使用逻辑回归和神…

Redis学习|Jedis、SpringBoot整合Redis

Jedis 我们要使用Java 来操作 Redis,知其然并知其所以然&#xff0c;授人以渔!学习不能急躁&#xff0c;慢慢来会很快!什么是Jedis 是 Redis 官方推荐的java连接开发工具!使用java 操作Redis 中间件!如果你要使用 java操作redis&#xff0c;那么一定要对Jedis 十分的熟悉! 1、…

MySQL之复制(五)

复制 复制的原理 复制文件 3.master.info 这个文件用于保存备库连接到主库所需要的信息&#xff0c;格式为纯文本(每行一个值)&#xff0c;不同的MySQL版本&#xff0c;其记录的信息也可能不同。此文件不能删除&#xff0c;否则备库在重启后无法连接到主库。这个文件以文本的…

电脑ffmpeg.dll丢失原因解析,找不到ffmpeg.dll的5种解决方法

在数字化时代&#xff0c;多媒体文件的处理已经成为我们日常生活和工作中不可或缺的一部分。在计算机使用过程中&#xff0c;丢失ffmpeg.dll文件是一个特定但常见的问题&#xff0c;尤其是对于那些经常处理视频编解码任务的用户来说。下面小编讲全面分析ffmpeg.dll丢失原因以及…

android webview调用js滚动到指定位置

一、activity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.tencent.smtt.sdk.WebView import com.tencent.smtt.sdk.WebViewClientclass MainActivity : AppCompatActivity() {private lateinit var webView: WebViewoverride fun …

基于深度学习的图像去噪

基于深度学习的图像去噪 图像去噪是从受噪声污染的图像中恢复原始图像的过程。在传统方法中&#xff0c;常用的去噪技术包括均值滤波、中值滤波和维纳滤波等。随着深度学习技术的发展&#xff0c;基于深度学习的图像去噪方法取得了显著进展。 深度学习图像去噪方法 1. 卷积神…

Python数据分析与建模库之从入门到四大库(Numpy、Pandas、Matplotl、Seaborn )教学课程下载

第一阶段课程-Python快速入门&#xff1a; 含&#xff1a;1.系列课程环境配置&#xff1b;2.Python快速入门&#xff1b;3.变量类型&#xff1b;4.LIST基础&#xff1b;5.List索引&#xff1b;6.循环结构&#xff1b;7.判断结构&#xff1b;8.字典&#xff1b;9.文件处理&#…