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

简介:

本节书摘来异步社区《嵌入式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=可执行链接格式。

相关文章
|
7月前
|
前端开发 Oracle Java
编程开发软件工具下载
编程开发软件工具下载
50 0
|
8月前
|
安全 算法 测试技术
C#编程实战:项目案例分析
【4月更文挑战第20天】本文以电子商务系统为例,探讨C#在实际项目中的应用。通过面向对象编程实现组件抽象和封装,确保代码的可维护性和可扩展性;利用安全性特性保护用户数据;借助数据库操作处理商品信息;通过逻辑控制和算法处理订单;调试工具加速问题解决,展现C#的优势:面向对象、数据库交互、数据安全和开发效率。C#在实际编程中展现出广泛前景。
348 2
|
Java Android开发
今年安卓开发中碰到的几个稀奇古怪的问题
如果你也遇到了,请保持淡定~ 1.SIGBUS和SIGSEGV 首先是这两个名词的说明: SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。
1419 0
|
Android开发
Android应用开发-onNewIntent()
转载自Android中 activity 的onNewIntent函数
838 0
|
存储 C语言
《嵌入式C编程实战》——导读
本书是为致力于使用微控制器来设计嵌入式系统的人们准备的。本书将翔实的理论与真实的实践相结合。现在由微控制器管理的嵌入式系统无处不在,汽车、机器人、办公室、医疗设备、机械、家居,以及其他各种各样的需求中都可以看到它们的身影。
1419 0

热门文章

最新文章