UTOPIA0421
UTOPIA0421
This guy hasn't written anything yet

注册于 1 year ago

回答
3
文章
0
关注者
0

image.png

ENABLE的是GPIOA,NSS配置的又是GPIOB?
另外这些涉及硬件驱动的开发问题,请将外设配置代码与硬件原理图发上来。

对原本的全局中断关闭与打开使用[WEAK]描述,允许用户自定义:

;/*
; * rt_base_t rt_hw_interrupt_disable();
; */
rt_hw_interrupt_disable    PROC
    EXPORT  rt_hw_interrupt_disable [WEAK]
    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 [WEAK]
    MSR     PRIMASK, r0
    BX      LR
    ENDP

在源文件中自行实现:

#define RT_MAX_SYSCALL_INTERRUPT_PRIORITY _PRIO_APP_HIGH
#define RT_NVIC_PRO_BITS __NVIC_PRIO_BITS

rt_base_t rt_hw_interrupt_disable(void)
{
    rt_base_t level = __get_BASEPRI();
    __set_BASEPRI(RT_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - RT_NVIC_PRO_BITS));
    return level;
}

void rt_hw_interrupt_enable(rt_base_t level)
{
    __set_BASEPRI(level);
}

以上是我的修改方法。

image.png

image.png

我这边运行是正常的,这一段代码应该是没问题的。

回到
顶部

发布
问题

投诉
建议