0
点赞
收藏
分享

微信扫一扫

嵌入式开发工具链概述


一、嵌入式系统软件开发流程

高级语言编写的源代码文件——》交叉编译器——》目标文件——》链接器

用目标机的汇编语言编写的源代码文件——》交叉汇编器——》目标文件——》链接器

链接器——》可执行程序——》目标机平台

交叉编译器:编译器运行在宿主机系统,但是编译器生成的可执行文件只能运行在目标机平台上。

二、开发环境分类

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:版本控制系统:用于管理发行版本和控制在多位作者间同时编辑源文件。

举报

相关推荐

0 条评论