完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
例如当前使用的armv8芯片,在启动刚开始时调用了关中断,一直到切换第一个线程,在哪里开启的中断呢?
int rtthread_startup(void) { **rt_hw_interrupt_disable();** rt_hw_board_init(); rt_show_version(); rt_system_timer_init(); rt_system_scheduler_init(); rt_application_init(); rt_system_timer_thread_init(); rt_thread_idle_init(); rt_system_scheduler_start(); return 0; } rt_hw_interrupt_disable: MRS r0, cpsr CPSID IF BX lr rt_hw_context_switch_to: LDR sp, [r0] LDMIA sp!, {r4} MSR spsr_cxsf, r4 DMIA sp!, {r0-r12, lr, pc}^ |
|
相关推荐
1个回答
|
|
在ARMv8架构的系统中,中断通常在操作系统的初始化过程中被禁用,以确保在系统启动和初始化过程中不会受到中断的干扰。在您提供的代码示例中,`rt_hw_interrupt_disable();` 函数被调用以禁用中断。接下来,我们将逐步分析代码,以找到中断被重新启用的位置。
1. `rt_hw_board_init();`:这个函数通常用于初始化硬件,例如时钟、内存等。在这个阶段,中断可能仍然被禁用。 2. `rt_show_version();`:这个函数用于显示操作系统的版本信息。这个阶段中断仍然被禁用。 3. `rt_system_timer_init();`:这个函数初始化系统计时器。在这个阶段,中断可能仍然被禁用。 4. `rt_system_scheduler_init();`:这个函数初始化调度器。调度器是操作系统的核心组件,负责管理线程的执行。在这个阶段,中断可能仍然被禁用。 5. `rt_application_init();`:这个函数用于初始化应用程序。在这个阶段,中断可能仍然被禁用。 6. `rt_system_timer_thread_init();`:这个函数初始化系统计时器线程。这个线程通常用于处理定时器中断。在这个阶段,中断可能被重新启用,以便系统计时器线程可以响应定时器中断。 7. `rt_thread_idle_init();`:这个函数初始化空闲线程。空闲线程是操作系统在没有其他线程可执行时运行的线程。在这个阶段,中断可能仍然被禁用。 8. `rt_system_scheduler_start();`:这个函数启动调度器。在这个阶段,中断应该被重新启用,以便操作系统可以正常响应中断和执行线程。 综上所述,中断可能在 `rt_system_timer_thread_init();` 或 `rt_system_scheduler_start();` 函数中被重新启用。然而,具体的实现可能因操作系统和硬件平台的不同而有所差异。为了确定确切的位置,您需要查看操作系统的源代码,特别是与中断管理和调度器相关的部分。 |
|
|
|
只有小组成员才能发言,加入小组>>
156个成员聚集在这个小组
加入小组【Vision Board创客营连载体验】基于RA8D1-Vision Board的自动路径规划小车
900 浏览 0 评论
【Vision Board创客营连载体验】基于Vision Board的垃圾分类
1300 浏览 0 评论
【Vision Board创客营连载体验】使用 Vision Board 做一个 UVC Camera
930 浏览 0 评论
【Vision Board创客营连载体验】TinyMaix进行手写数字识别
1196 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board使用7寸屏设置为RGB666大端模式模式成功显示摄像头图案
1203 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 09:49 , Processed in 0.489645 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号