18982180645
028-83268936
English
前沿资讯 真实、准确的物联网、互联网行业新闻

嵌入式中什么是链接地址和运行地址,链接地址和运行地址由什么决定

你的位置: 网站首页 新闻动态 技术应用
嵌入式中什么是链接地址和运行地址
2020-08-29 15:10:00 阅读:7 发布人:

什么是链接地址和运行地址

链接地址和运行地址:可能相同也可能不同
对于位置有关代码来说,最終执行时的运行地址和编译链接时给定的链接地址必须相同,否则一定出错。我们之前的裸机程序中,Makefile中用 - Ttext 0x0
来指定链接地址是0x0。这意味着我们认为这个程序将来会放在0x0这个内存地址去运行。
但是实际上我们运行时的地址是0xd0020010(我们用dnw.下载时指定的下载地址)。这两个地址看似不同,但是实际相同。这是因为S5PV210内部做了映射,把SRAM映射到了0x0地址去。

分清楚这两个概念
链接地址:链接时指定的地址( 指定方式为: Makefile中用-Ttext,或者链接脚本)N
运行地址:程序实际运行时地址(指定方式:由实际运行时被加载到内存的哪个位置说了算)

图片关键词

运行时地址由什么决定

运行时的地址是由运行时决定的S编译链接时是无法绝对确定运行时地址的.

链接地址由什么决定

链接地址是由程序员在编译链接的过程中,通过Makefile中-Ttext
xxx或者在链接脚本虫指定的。程序员事先会预知自己的程序的执行要求,并且有一个期望的执行地址,并且会用这个地址来做链接地址一
举例: 1、linux中 的应用程序。gcc hello.c -。
hello,这时使用默认的链接地址就是0x0,所以应用程序都是链接在0地址的。因为应用程序运行在操作系统的-一个进程中,在这个进程中这个应用程序独享4G的虚拟地址空间。所以应用程序都可以链接到0地址,因为每个进程都是从0地址开始的。(编译时可以不给定链接地址而都使用0)

相关关键词:

4G DTU