OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3677|回复: 2

请问STM8如何将中断向量表映射到RAM里

[复制链接]

45

主题

173

帖子

0

精华

高级会员

Rank: 4

积分
777
金钱
777
注册时间
2013-4-23
在线时间
159 小时
发表于 2016-12-30 09:36:51 | 显示全部楼层 |阅读模式
10金钱
最近在做STM8S207的IAP升级,STM8S的中断现在只能在IAP里使能或者在APP里使能,IAP使能了APP就不能用了,据说有方法把中断向量表映射到RAM里去,使得IAP和APP都能使用中断。查了一些资料,主要思路是:系统在发生中断的时候,会最先自动跳转到flash的某个特定地址,那么就让flash的这个地址,填入指令,让cpu跳转到特定的RAM地址,在每次进去程序时,使能总中断前,把ISR的地址填到这个RAM中,之后发生中断,程序就会跳到对应的ISR中。这里有个问题,在跳转到RAM地址上后,往这个RAM地址上写什么代码能让他跳到ISR地址上执行,还有这个ISR地址怎么来?试了下这样的代码:如下
中断来了以后到boot里的对应中断处理程序中,在这里跳转到指定RAM
#pragma vector=0xD
__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{
     asm("LDW X,  SP ");
     asm("LD  A,  $FF");
     asm("LD  XL, A ");
     asm("LDW SP, X ");
     asm("JPF $0017DC");

}

APP中做这样处理:
extern void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void);
  /* 拷贝中断向量表中的ISR地址到0017DC */
   ram_int_vect_p->irq_TIM1_UPD_OVF_TRG_BRK = (isr_type_t) &TIM1_UPD_OVF_TRG_BRK_IRQHandler;



请教大神们,哪里有问题呀




努力做,耐心等
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

29

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
430
金钱
430
注册时间
2013-7-5
在线时间
107 小时
发表于 2016-12-30 11:08:40 | 显示全部楼层
回复

使用道具 举报

45

主题

173

帖子

0

精华

高级会员

Rank: 4

积分
777
金钱
777
注册时间
2013-4-23
在线时间
159 小时
 楼主| 发表于 2016-12-30 11:58:14 | 显示全部楼层
程序文件,大神看看呀

stm8s_iap.zip

4.23 MB, 下载次数: 150

努力做,耐心等
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 05:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表