LMA与VMA详解
reference
每一个loadable或allocatable的section都有两个地址。分别是:
- VMA: virtual memory address. This is the address the section will have when the output file is run.
- LMA: load memory address. This is the address at which the section will be loaded.
绝大部分时候LMA与VMA都是相同的,程序都是先加载,后运行,在程序开始运行之前被加载到的地址就是LMA,当程序开始运行后,其地址就是VMA。为什么要有两种地址?因为在程序开始运行时,有一些section需要被移动,例如当嵌入式系统中先都将代码和数据加载到了ROM中,此时的地址就是LMA,但是当开始运行之后,需要将数据部分拷贝到RAM中,此时数据的地址就是VMA。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
