zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

《嵌入式C编程实战》——1.5 软件开发工具

嵌入式软件编程 实战 1.5 开发工具
2023-09-11 14:17:47 时间

本节书摘来异步社区《嵌入式C编程实战》一书中的第1章,第1.5节,作者:【瑞典】Lars Bengtsson(本特松), Lennart Lindh(林德),更多章节内容可以访问云栖社区“异步社区”公众号查看

1.5 软件开发工具

现在有很多的软件开发语言,如C、C++、ADA、LISP等。软件的开发都遵循标准化的过程。程序(源代码)可以被编译成目标对象可以执行的代码,一些编译器会将代码转换为汇编程序。而链接器将程序与用到的库文件和其他一些东西组织在一起,而且所有的基地址都是绝对地址。链接器最后产生的可以被下载到目标系统并执行的机器代码,如图1.11所示。

cf3b0359f536e978c1306ed83bd544839faa71ba
1.5.1 编译器

编译器是一种计算机软件,它的作用是将源程序转换为目标程序。通常,通过两个步骤,就可以将一个C语言编写的程序转换为目标程序。第一步,将C程序转换为汇编程序;第二步,将汇编转换为目标程序。目标程序不能直接载入到系统中,它还需要和其他目标代码文件链接到一起。

目标程序可能会需要与设备驱动程序和其他程序组织在一起,这一点需要由链接器来实现。编译器不会将符号地址转换为真实地址。因此,这里即使只有一个目标程序,也必须使用链接器来完成地址转换。

1.5.2 链接器

链接器允许将不同的模块组织成一个程序,而程序员使用链接器的历史可以追溯到1947年。

链接器的定义
链接器是一个程序,可以将目标程序模块组织在一起,形成一个可执行的程序。简单地说,就是它将多个文件组合到了一起。

目标程序是指一种包含了机器代码和信息的程序模块。这些模块最后需要链接器进行组装。

大多数的编程语言(如C)都允许独立地进行模块的编写。这样做简化了编程的工作,因为你可以将一个大型的程序分解为多个更小、更容易管理的部分。

最后,将这些模块组合在一起,这是链接器的工作。图1.12给出了程序链接的过程。

5ebff7a79e957781db16ea032ed10b02794e5c34

elf=可执行链接格式。


重生之我在人间敲代码_Java并发基础_浅析并发编程 并发编程可以抽象为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共享资源。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。