ld文件又叫链接文件,编译器会根据这个文件,对代码进行下载地址和运行地址的分配。
ld文件实例:

效果
烧录后,芯片断电时的状态:
断电时,SRAM值丢失,所以只有flash中值是有意义的。VMA和LMA的相关内容请点击查看
VMA和LMA。

芯片运行时的状态:

发现data段从flash搬到sram了吗?这个是怎么做到的呢?我们的驱动。具体的代码位于:
-
800系列的驱动中,mem_init.c中有一个__main()函数,就是利用了ld文件指定的如_start_data, _end_rodata这些指针信息进行memory copy。
-
900系列现在的驱动中,这段搬移是在启动文件中进行的。
本文讨论了LD文件在编程中的作用,如何分配代码的下载和运行地址,特别关注了SRAM和Flash在芯片断电后的状态。介绍了800系列和900系列驱动中,数据段从flash到SRAM的迁移过程,涉及`mem_init.c`中的`__main()`函数和启动文件的使用。
329

被折叠的 条评论
为什么被折叠?



