新闻  |   论坛  |   博客  |   在线研讨会
LPC2366 IAP 应用程序的中断向量重映射
mayer | 2009-07-15 18:55:26    阅读:1635   发布文章

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

 

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语言入口

;之前

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客