这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 关于ARM启动代码的理解

共1条 1/1 1 跳转至

关于ARM启动代码的理解

菜鸟
2008-02-19 15:01:44     打赏

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来选择的,而不是自动选择,也不是用户通过软件设置的

     请各位能够给点建议.谢谢先!




关键词: 关于     启动     代码     理解     程序    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]