ld文件又叫链接文件,编译器会根据这个文件,对代码进行下载地址和运行地址的分配。
ld文件实例:
效果
烧录后,芯片断电时的状态:
断电时,SRAM值丢失,所以只有flash中值是有意义的。VMA和LMA的相关内容请点击查看
VMA和LMA。
芯片运行时的状态:
发现data段从flash搬到sram了吗?这个是怎么做到的呢?我们的驱动。具体的代码位于:
-
800系列的驱动中,mem_init.c中有一个__main()函数,就是利用了ld文件指定的如_start_data, _end_rodata这些指针信息进行memory copy。
-
900系列现在的驱动中,这段搬移是在启动文件中进行的。