码迷,mamicode.com
首页 > 其他好文 > 详细

编写一个stm32 svc关中断函数

时间:2016-03-08 21:00:08      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:

做到了让stm32触发svc中断并传递进去参数然后切换到handler模式并修改特殊寄存器的值,从而达到关中断,但是其实这个程序直接就是特权级,故不进入handler模式也可以修改特殊寄存器。。。。。。

如下为调用写的开关中断函数:

技术分享 

新建了一个文件asm.c,所有我写的汇编函数都在里面:

技术分享 

 

前两个是关中断和开中断函数,主要做的事将参数传入R8并触发svc中断。

Svc中断中则调用第三个set_i()函数。

技术分享 

 

   当触发了中断之后,M3内核进入handler模式,利用R8中的数据,修改特殊寄存器BASEPRI。这个寄存器只有在特权级才能访问。

   Stm32中断分组为组1,优先级位数为4,故抢占优先级为1的中断都被屏蔽。只有tim3中断抢占优先级为0,故调用第一个函数之后只有tim3中断依然可以进行。

 

 

 





编写一个stm32 svc关中断函数

标签:

原文地址:http://www.cnblogs.com/dchipnau/p/5255462.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!