关于KEIL开发mini2440的链接文件

2019-07-13 03:11发布

        假设例子:mini2440测试nand使用用例  (可以参考韦东山《嵌入式linux应用开发完全手册》         进入main函数之前,将存放在nand中的4K以后的内容拷贝到SDRAM->0x30000000中运行。从需求上看需要将执行段分为两段。 在linux下的LDS文件很容易编写:如下所示 SECTIONS { firtst 0x00000000 : { head.o init.o nand.o} second 0x30000000 : AT(4096) { main.o } }        但是对于不熟悉linux开发环境的同志们,如果想去软件仿真,特别对于GDB调试有点感冒的来说,还是想在XP下进行调试。 为此在Keil中进行链接脚本的编写如下 LR_ROM1 0x00000000 0x10000000  {    ; load region size_region   ER_ROM1 0x00000000 0x10000000  {  ; load address = execution address    *.o (RESET, +First)    *(InRoot$$Sections)    .ANY (+RO)   }   RW_RAM1 0x30001000 UNINIT 0x04000000  {  ; RW data    .ANY (+RW +ZI)   }   RW_IRAM1 0x40000000 UNINIT 0x00001000  {    .ANY (+RW +ZI)   } } LR_ROM2 4096 4096{    SDRAM 0x30000000 {     main.o (*)    } }在user选项里面填入 fromelf --bin --output outfile.bin infile.axf
通过Keil编译之后发现生成了两个文件,这样的话,在烧写的时候需要操作两次, 殊不知Keil可以将这两个文件合并为一个文件 将user选项里面的更改为 fromelf --bin --output outfile.bin infile.axf fromelf --bin --bincombined --bincombined_padding=1,0xff --output outfile.bin infile.axf 这样即可链接成一个文件。其中的padding代表的是填充格式,用什么字节填充未使用的区域。