首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

*((volatile unsigned *)i)=0xEA000000+0x1FFE; 急救

*((volatile unsigned *)i)=0xEA000000+0x1FFE; 急救

上面的这段代码一直看不懂是什么意思:
在启动文件里面,将中断的地址映射到了_ISR_STARTADDRESS为起始地址处。
在C语言的主程序里面也是将中断服务程序定义到了_ISR_STARTADDRESS处。如
#define pISR_RESET    (*(unsigned *)(_ISR_STARTADDRESS+0x0))
为什么还要加上下面的
for(i=_RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+0x20);i+=4)
  {
   *((volatile unsigned *)i)=0xEA000000+0x1FFE;
  }
将_RAM_STARTADDRESS地址开始的32个字节,即前面的8个中断向量映射到_RAM_STARTADDRESS+8000处的地址。
有什么作用。我将我的程序下载到_RAM_STARTADDRESS+8000处和下载到9000处还想也没有什么区别,但是没有上面的这段程序的话不能进行中断。不知道是为什么。

Charles 希望各位大哥能够不吝赐教!
返回列表