SCATTER文件可以用来设置代码及变量的位置,只是不太清楚这种语法的格式
LR_IROM1 0x08000000 0x00100000 { ; load region size_region
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
RW_IRAM1 0x20000000 0x00050000 { ; RW data
.ANY (+RW +ZI)
}
}
哪位有这方面的介绍资料或直接就上面的代码解释一番么?
|
http://www.keil.com/support/man/ ... ge1362075656353.htm
下面的是运行域(execution address)了,一般的加载域和运行域起始地址相同,也有不同的比如SDRAM等外设运行代码时。运行域中的代码存放顺序就是first放reset向量,下面的放*(InRoot$$Sections)用于复制一些代码相当于启动文件中的_main(),再下面就是只读的存放了。
ER_IROM1 0x08000000 0x00100000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
}
下面的就是RAM的设置了,放读写和初始化为0的变量
RW_IRAM1 0x20000000 0x00050000 { ; RW data
.ANY (+RW +ZI)
}
版主是不是想设置F7的flash运行地址使用TCM接口的ART加速或者走AXI接口利用L1-cache,这个官方好像有个例子,也可以设置不同堆栈ram运行地址。
至于分散加载的详细说明好像keil网站上有个文档讲解:Linker User Guide ,第七章专门说的就是Scatter-loading Features。
正解。。。
感谢啊
感谢啊
感谢啊
感谢啊