您尚未登录。

楼主 # 2023-12-26 15:07:53

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 250
积分: 311.5

rtthread 初始化阶段中断开关是不是有问题?

rtthread_startup() => rt_hw_local_irq_disable() 关闭了全局中断
rt_system_scheduler_start() => rt_hw_context_switch_to() => CPSIE I 开启了全局中断

上述开关中断流程,我觉得没有问题。。

但是在二者之间,有如下的调用流程

rt_hw_board_init()
    => rt_system_heap_init()
        => rt_memheap_init()
            => rt_object_init()
                => rt_spin_unlock_irqrestore
                    => rt_hw_interrupt_enable

又把全局中断打开了,,既然中间会打开全局中断,,那一开始的关闭全局中断又有什么意义呢??

离线

楼主 #1 2023-12-26 15:49:40

XIVN1987
会员
注册时间: 2019-08-30
已发帖子: 250
积分: 311.5

Re: rtthread 初始化阶段中断开关是不是有问题?

抱歉,,是我搞错了,,rt_hw_interrupt_enable() 并不是直接打开中断,,而是将中断屏蔽设置成指定值。。

离线

#2 2023-12-26 16:21:02

海石生风
会员
所在地: 深圳
注册时间: 2019-07-02
已发帖子: 649
积分: 782
个人网站

Re: rtthread 初始化阶段中断开关是不是有问题?

有时序要求,中断处理函数所使用的模块如果没有初始化就触发中断就会出问题。

离线

#3 2023-12-26 16:39:21

506826164@qq.com
会员
注册时间: 2022-08-07
已发帖子: 57
积分: 77

Re: rtthread 初始化阶段中断开关是不是有问题?

你看一下rt_hw_interrupt_enable和rt_hw_interrupt_disable的具体实现,关中断是的确关了,开中断是恢复关中断之前的状态,不一定有打开

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn