在ARM规划中,一般会触及都一个链接地址,这个链接地址和烧写地址很简单混杂,会以为链接地址便是烧写地址,这个是错的,下面说的是个人的一些知道,或许会有一些过错,说的也或许不专业,可是关于初学者,能够协助了解。
首要链接地址和烧写地址是两个领域的东西,几乎是没有联系的,烧写地址,能够以为是物理地址,而链接地址能够以为是虚拟地址,关于程序员来说,看到的是虚拟地址,一般虚拟地址经过MMU映射成详细的物理地址,从而再去拜访实践的物理地址。
链接地址也能够了解成是一个符号,由于一个可执行程序,一般要经过预编译,编译,汇编,链接三个进程,最终一个进程是链接,便是把前三部分发生的一切.o文件,串起来,构成一个全体的程序,所以每个.o文件上都有一些的函数或许子程序,经过给定链接地址,适当所以从大局动身,给一切的文件中的函数,一致编号,起了一个“姓名”,姓名的规模是0x00000000–0xFFFFFFFF,那么这个姓名其实便是链接地址。假如MMU未翻开,则链接地址便是物理地址,反之,则链接地址是映射的物理地址。
那么问题就来了,当程序开端执行时,CPU是经过链接地址进行拜访详细的函数的,假如这个函数没有存到链接地址映射到的物理地址那会怎么办呢?答案是很简单的,那便是程序会跑飞,打个比方吧,CPU要拜访38号房间的客人,可是客人却没有移驾到38号,CPU又很呆,它只能乱啦,这儿38号便是链接地址,客人便是详细的函数名。所以在运用链接地址时,假如未翻开mmu,那么需求将程序复制到对应的物理地址处,若运用了MMU则需求将程序复制到映射对应的物理地址处。
烧写地址便是实践的物理地址,这个是经过存储控制器进行拜访的,并且一般的烧写软件能够完成指定地址处烧写。
综上,烧写地址与链接地址有联系,可是联系不是特别显着,关于程序员来说,用的是链接地址,可是需求设置滤清好链接地址与烧写地址的映射联系。
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/260590.html