mm欢迎各位多来讨论和赐教
我刚看到 REMAP应用操作这一节(<<ARM嵌入式系统基础教程>>.周立功等),其内容如下:
芯片复位时MEMMAP=0,启动Boot装载程序,Boot装载程序检查P0.14的状态和用户的异常向量表,判断是进入ISP状态还是启动用户程序,若启动用户程序,则自动设置MEMMAP=1(片内FLASH启动)或3(片外程序存储器启动).若用户程序需要随时更改异常向量表,可以将异常微量表(64字节)复制片内RAM的0x4000000地址上,然后设置,MEMMAP=2进行重新映射,0x40000000地址上的向量表就可以更改了,复制微量表程序如程序清单5.7所列.
当使用片内RAM进行调试时,需要设置MEMMAP=2,使保存在0x40000000地址处的异常向量表映射到0x00000000地址上.
5.7程序清单:复制向量表到片内RAM
......
uint8 i;
uint32 *cp1,*cp2;
extern void Reset(void)
cp1 = (uint32*)Reset;
cp2 = uint32 * 0x400000000;
for(i=0;i<16;i++){
*cp2 ++ = *cp1++;
}
MEMMAP = 2;
........
作为初学者,关于这一节我有以下疑问:
1. Boot程序是否是其芯片内一定存在的用户是无法更改的.复位后是不是一定先执行这段程序
2. MEMMAP的设置,据其资料介绍,是需要P2.27/Boot1和P2.26/Boot0来选择的,而不是自动选择,也不是用户通过软件设置的
请各位能够给点建议.谢谢先!