问题:在LPC22xx系列芯片中外部扩展的地址是如何分配的?
答: 片外地址是由P3口的具体配置来决定的,例如:P3.0-P3.23 表示地址A0-A23;
0x80 000000-0x80FFFFFF后24位,P3.24,P3.25,P3.26表示片选CS,P3.27-WE,P3.28-BLS3,P3.29-BLS2,P3.30-BLS1,P3.31-BLS0
问题:keil中的分散加载是如何完成的?
答:在keil中的分散加载文件有两种配置方法:
1. 选择Linker|Use Memory Layout from Target Dialog,然后通过Target|下去配置相应的片内片外的存储器
2. 不选择Linker|Use Memory Layout from Target Dialog,通过配置文件*.sct去配置
问题:如何使用自动生产SCT的方法来配置外部存储器?
答:如下图:
根据实际地址配置存储器!!
这里的—entry 0x00000000为程序入口地址,(本应该是0x80000000,but如果改了后程序就从0x0004000寻址,具体原因有待进一步学习)
Debug_in_flash.ini如下:
//*** <<< Use Configuration !disalbe! Wizard in Context Menu >>> ***
FUNC void Setup (void)
{
// <o> Program Entry Point
PC = 0x80000000;
}
LOAD output\mykeil.axf INCREMENTAL // Download
Setup(); // Setup for Running
g, main
问题:在keil for arm中如何修改BCFG1?
答:可以在target.c文件中修改,在系统初始化后再次给BCFG0-3进行初始化!(应该还有其他方法,有待查证)
另一种方法:option|ASM|define*******将EXTERNAL_MODE定义一把,OK!还要把配置位置1哦!!