《嵌入式C编程实战》——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](https://yqfile.alicdn.com/cf3b0359f536e978c1306ed83bd544839faa71ba.png)
1.5.1 编译器
编译器是一种计算机软件,它的作用是将源程序转换为目标程序。通常,通过两个步骤,就可以将一个C语言编写的程序转换为目标程序。第一步,将C程序转换为汇编程序;第二步,将汇编转换为目标程序。目标程序不能直接载入到系统中,它还需要和其他目标代码文件链接到一起。
目标程序可能会需要与设备驱动程序和其他程序组织在一起,这一点需要由链接器来实现。编译器不会将符号地址转换为真实地址。因此,这里即使只有一个目标程序,也必须使用链接器来完成地址转换。
1.5.2 链接器链接器允许将不同的模块组织成一个程序,而程序员使用链接器的历史可以追溯到1947年。
链接器的定义
链接器是一个程序,可以将目标程序模块组织在一起,形成一个可执行的程序。简单地说,就是它将多个文件组合到了一起。
目标程序是指一种包含了机器代码和信息的程序模块。这些模块最后需要链接器进行组装。
大多数的编程语言(如C)都允许独立地进行模块的编写。这样做简化了编程的工作,因为你可以将一个大型的程序分解为多个更小、更容易管理的部分。
最后,将这些模块组合在一起,这是链接器的工作。图1.12给出了程序链接的过程。
![5ebff7a79e957781db16ea032ed10b02794e5c34](https://yqfile.alicdn.com/5ebff7a79e957781db16ea032ed10b02794e5c34.png)
elf=可执行链接格式。
重生之我在人间敲代码_Java并发基础_浅析并发编程 并发编程可以抽象为三个核心问题:分工、同步、互斥。 所谓分工指的是如何高效地拆解任务并分配给线程,而同步指的是线程之间如何协作,互斥则是保证同一时刻只允许一个线程访问共享资源。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 嵌入式(汇编)(数据处理指令)
- 《嵌入式C编程:PIC单片机和C编程技术与应用》一1.10 文本格式
- 《嵌入式设备驱动开发精解》——1.2 关于本教程涉及的实例
- 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一2.6 位运算实战演练2
- 《嵌入式系统数字视频处理权威指南》——第3章 采样和混叠
- 怎样混好嵌入式 MCU、ARM、DSP这一行?
- 嵌入式开发ARM处理器的技术特点
- 【嵌入式Linux学习】Linux基础知识(总结版)
- 【正点原子FPGA连载】第十二章PS端RTC中断实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南
- 【正点原子Linux连载】第六章 Qt Creator的使用技巧 摘自【正点原子】I.MX6U嵌入式Qt开发指南V1.0.2
- 嵌入式工程师必备技能--软件仿真
- 【正点原子MP157连载】 第十章 U-boot使用-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7