新手入门
- 积分
- 13
- 金钱
- 13
- 注册时间
- 2019-12-17
- 在线时间
- 3 小时
|
1金钱
本人直接基于Rtthread4.01版本的官方移植好的STM32F103例程直接下载到开发板上跑,系统正常运行,LED运行正常;但由于项目需求,需要使得部分中断不能被操作系统打断,于是修改了官网移植好的context_rvds.S,需改内容如下(列出修改部分,其他没有改动),一共修改4处,都是与开关中断有关的;改完还有重新编译运行,系统直接进入硬件错误中断,但是我之前用STM32F407这样改一点问题没有,现在不知道问题出在哪里,请各位大神帮帮小弟:------------------------源文件------------------------------
;/*
; * rt_base_t rt_hw_interrupt_disable();
; */
rt_hw_interrupt_disable PROC
EXPORT rt_hw_interrupt_disable
MRS r0, PRIMASK
CPSID I
BX LR
ENDP
;/*
; * void rt_hw_interrupt_enable(rt_base_t level);
; */
rt_hw_interrupt_enable PROC
EXPORT rt_hw_interrupt_enable
MSR PRIMASK, r0
BX LR
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler
; disable interrupt to protect context switch
MRS r2, PRIMASK
CPSID I
pendsv_exit
; restore interrupt
MSR PRIMASK, r2
------------------------------修改文件---------------------------------------
;/*
; * rt_base_t rt_hw_interrupt_disable();
; */
rt_hw_interrupt_disable PROC
EXPORT rt_hw_interrupt_disable
MOV r0, #0x50
MSR BASEPRI,r0
BX LR
ENDP
;/*
; * void rt_hw_interrupt_enable(rt_base_t level);
; */
rt_hw_interrupt_enable PROC
EXPORT rt_hw_interrupt_enable
MOV r0, #0
MSR BASEPRI,r0
BX LR
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler
; disable interrupt to protect context switch
MOV r2, #0x50
MSR BASEPRI,r2
pendsv_exit
; restore interrupt
MOV r2, #0
MSR BASEPRI,r2
|
|