原创 LPC2366 IAP 应用程序的中断向量重映射

2009-7-9 17:54 2460 4 4 分类: MCU/ 嵌入式

LPC2366 IAP


如果IAP程序放在Flash的0x00H。应用程序的中断向量需要重映射。我已经测试过了。部分代码如下:


例如,应用程序放在Flash中以0x00008000为起始地址的位置,重映射到内存中0x40000000


Vectorsaaa  EQU 0x00008000
MEMMAP      EQU 0xE01FC040


MOV   R0, #0x40000000     ;RAM区首地址
LDR   R1, =Vectorsaaa         ;向量表首地址


;下面一段程序是把从0x00008000开始的64个字节(FLASH中的中断向量表和地址表)搬移到以
;0x40000000为首地址的RAM区中
               LDMIA R1!, {R2-R9} ;把以[R1]为首地址的32个字节数据装载到R2-R9中
               STMIA R0!, {R2-R9} ;把R2-R9中的数据存入以[R0]为首地址的单元中
               LDMIA R1!, {R2-R9} ;把以[R1]为首地址的32个字节数据装载到R2-R9中
               STMIA R0!, {R2-R9}  ;把R2-R9中的数据存入以[R0]为首地址的单元中
;下面几行代码设置存储器映射控制寄存器
               LDR   R0, =MEMMAP ;取MEMMAP地址到R0
               MOV   R1, #0x02                 
               STR   R1, [R0] ;给MEMMAP赋值为0x02,设置中断向量从RAM区从新映射


 


;以上代码为网上搜集整理。放在应用程序的启动代码中的  


BL      TargetResetInit      ;目标板基本初始化 


B       __main                   ;跳转到c语言入口


;之前

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
4
关闭 站长推荐上一条 /3 下一条