OpenEdv-开源电子网
标题:
基于STM32103VC移植Rtthread遇到难题,请求各位大神帮忙解决
[打印本页]
作者:
huangyj1118A
时间:
2020-4-9 23:02
标题:
基于STM32103VC移植Rtthread遇到难题,请求各位大神帮忙解决
本人直接基于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
作者:
yikexiaoshu
时间:
2021-12-14 17:10
直接把systick中断调低,把不能被打断的调高。但是这样系统实时性就变差很多。
欢迎光临 OpenEdv-开源电子网 (http://47.111.11.73/)
Powered by Discuz! X3.4