如果在Linux环境下用arm-linux-gcc来编译arm程序,需要编写链接文件lds:
1. 运行地址=链接地址,表示代码在SDRAM中执行的地址,如果程序中有对某部分代码执行过搬运,需要在lds文件中设置对应的链接地址,比如下图中的0x30000000。
2. 加载地址=存储地址,表示代码在Nand中的地址,如实例2中的4096。
链接文件实例1:
链接文件实例2:
程序烧写到Nand的0地址位置(main.o是从4k位置开始,见下图)。开机后,Nand的前4K复制到Internal 4K RAM运行,然后把Nand里面的main.c复制到SDRAM的0x30000000位置,并跳转到SDRAM里面运行。
生成的bin文件(用于烧写到Nand flash):