嵌入式开发工具链概述
一、嵌入式系统软件开发流程
高级语言编写的源代码文件——》交叉编译器——》目标文件——》链接器
用目标机的汇编语言编写的源代码文件——》交叉汇编器——》目标文件——》链接器
链接器——》可执行程序——》目标机平台
交叉编译器:编译器运行在宿主机系统,但是编译器生成的可执行文件只能运行在目标机平台上。
二、开发环境分类
1、运行平台:本地开发环境、交叉开发环境
2、商业环境:收费工具、免费工具
三、GNU工具链
1、GNU工具链
(1)GNU Tools:全称(GNU Development Toolchains)
(2)GNU Tools交叉开发环境:全称(GNU Cross-Plateform Development ToolChains)
2、GNU既支持本地程序开发,又支持交叉编译
3、GNU开发工具
(1)自由软件
(2)完备的工具链:GCC、binutils、gdb、GNU make、patch、CVS、开发库
(3)命令行方式:使用稍复杂、功能强大
4、GNU Tools是Linux环境下最主要的开发工具集,主要有以下几部分:
(1)编译开发工具:把源程序编译为可执行文件,如GCC
(2)调试工具:对可执行程序进行源码或汇编级调试的软件,如gdb
(3)软件工程工具:用于协助多人开发或大型软件项目管理的软件,如:make等
5、GCC(GNU Compiler Collection)
(1)支持C、C++、ADA、Java、Fortran、PASCAL等语言
(2)主要包括:
①cpp:GNU C编译器的预处理器
②gcc:符合ISO标准的C编译器
③g++:符合ISO标准的C++编译器
④gcj:GCC的Java前端
⑤gnat:GCC的GNU ADA q5的前端
6、binutils:是一组二进制工具程序集合,是辅助GCC的主要软件。
主要包括:(1)as:GNU汇编器
(2)ld:GNU链接器
(3)ar:创建归档文件,以及制作静态库的工具
(4)nm:列出目标文件中的符号
(5)objcopy:复制和转化obj文件
(6)objdump:显示对象文件的信息
(7)readelf:显示elf格式执行文件中的各种信息
(8)size:显示目标文件和可执行文件各段的大小
(9)strings:显示文件中可以打印的字符
(10)strip:去掉可执行文件找那个多余的信息(如调试信息)
7、gdb:GNU调试器,可以用来调试C、C++和其他语言编写的程度。如加一些图形前端(如:DDD),可以在图形环境下调试程序。
8、GNU make:是一个用来控制可执行程序生成过程的程序。它允许用户生成和安装软件包,而无需了解生成、安装软件包的过程。
9、diff:比较文件差异的工具,也可以用来生成补丁。
10、patch:补丁安装程序,可以根据diff生成的补丁来更新程序
11、CVS:版本控制系统:用于管理发行版本和控制在多位作者间同时编辑源文件。
嵌入式开发工具链概述相关推荐
- 嵌入式开发工具介绍与下载
ARM RealView 2.2 (微电子设计) 下载地址:http://www.9iv.com/down/soft/274.htm?eid=217990 ht ...
- CooCox工具简介——免费和开源的ARM嵌入式开发工具
CooCox成立于2009年初,致力于为ARM开发者提供免费和开源的嵌入式开发工具.CooCox开发了大量基于网络的组件,让嵌入式开发如搭积木般简单.CooCox希望能和所有ARM爱好者一起搭建一个贡 ...
- 【Windows】办公+开发工具链整理
如果你是Win10/Win11专业版用户,请继续往下看: [Windows]办公+开发工具链整理 办公 小工具 开发 办公 先放张图-- TIM:简约版QQ. 优点:占用空间小,且有通讯录.消息.我的 ...
- 开发工具链(国内项目)(持续更)
开发工具链(国内项目) 前端开发工具: sublime(轻便) Webstorm(全面,包括各种插件,对node支持较好,但是缺点是占用内存较大) VSCode(免费,而且比webStorm轻,占用内 ...
- 我的C++开发工具链
工欲善其事,必先利其器.想要干好活,顺手的工具是必不可少的.来分享下我的C++开发工具链. 平台:Windows 编译器:MSVC IDE:Visual Studio 版本控制:TortoiseGit ...
- 【嵌入式实验】《嵌入式开发工具使用》
嵌入式开发工具使用 一.实验目的 二.实验内容 三.预备知识 四.实验设备及工具(包括软件调试工具) 五.实验步骤 5.1 交叉编译工具配置及编译 5.2 arm-linux-gcc编译工具使用 5. ...
- RemObjects Elements多用途软件开发工具链
RemObjects Elements多用途软件开发工具链 RemObjects Elements是一个现代化的多用途软件开发工具链.它支持六种流行的编程语言:Oxygene(Object Pasca ...
- 基于AUTOSAR开发工具链的AUTOSAR软件实战开发---基于工具链AUTOSAR架构的开发流程
前一节简单介绍了CP AUTOSAR及它的分层结构,本节介绍基于工具链AUTOSAR架构的开发流程,对于多数使用AUTOSAR架构开发汽车电子软件的工程师而言,主要关注的还是如何将AUTOSAR架构应 ...
- 嵌入式开发工具——嵌入式Qt连接mysql
文章目录 前言 一.编译Qt中自带的mysql源码 二.程序测试 前言 上一篇(嵌入式开发工具--交叉编译libmysql)已经完成了mysql的C API交叉编译的工作,今天将用它来编译生成Qt连接 ...
最新文章
- 【转】QT事件传递与事件过滤器
- python函数可选参数传递_Python中函数的参数传递
- AlexNet网络构建与训练
- Linux能否靠架构取得胜利
- activity中指定一页面动态设置软键盘弹出属性
- 都说外国电工布线牛到不行?今天就看看中国电工最强布线!
- php类库下载下来怎么使用,PHP如何实现$this-[类库名称]-[类库方法]。
- oracle 强制 断开,ORA-01092: ORACLE 例程终止。强行断开连接
- windows安装使用jaeger链路追踪
- 三维空间刚体运动5:详解SLAM中显示机器人运动轨迹及相机位姿(原理流程)
- php输出多行多列,数据库查询记录php 多行多列显示
- .net core精彩实例分享 -- 依赖注入和中间件
- 利用图片的 onerror 事件载入默认图片
- cmd命令卸载sql server_Sql server 卸载方法
- x的x分之一次方极限x趋于0_e的x分之一的左右极限
- win10台式机屏幕亮度无法调节
- html中onfocus和onblur的使用
- 激光测距仪行业报告-产能、产量、销量、销售额、价格及未来趋势
- 电磁波波长与穿透力的关系是什么?
- WACV 2021 论文大盘点-人体动作检测与识别篇