处理器包含多级中断系统,BSP部分该如何设计?
处理器包含多级中断系统,BSP部分该如何设计?
Q:处理器包含多级中断系统 (例如: 级联 8259),而 SylixOS 的中断向量仅为单级,BSP 部分该怎么设计?
SylixOS 使用单级中断系统,可以通过编译配置来设置操作系统向量表的条目数(内核并不限制中断向量的个数),
BSP 需要将硬件多级中断机制抽象为 SylixOS 系统的单级中断机制,从而使设备驱动程序编写变得更加容易可靠,平台无关性好.
更多扩展知识见:
参考文章:缺页中断后,系统被重启(任务被kill)
参考文章:系统遇到哪些异常时,会导致系统重启
Related Articles
系统遇到哪些异常时,会导致系统重启
Q:系统遇到哪些异常时-会导致系统重启 以 MPSOC 平台为例,在异常中断处理流程中,如果检测到如下错误,那么会系统重启: 1、发现中断点处于内核态,那么会执行重启; 2、如果由系统任务触发中断处理流程,那么会执行重启; 3、如果当前是关键错误,或当前处于中断嵌套状态中时,那么会执行重启;(ESR_EL1 寄存器的 EXC_SERROR_INT 位指示当前是否处于关键错误) 4、当前异常处理流程处于中断嵌套状态时,会执行重启 5、当出现 invalid 异常时,会执行重启;(该 invalid ...
缺页中断后,系统被重启(任务被kill)
Q:系统发生缺页中断后打印了一些调试,系统就重启或者任务被 kill 了? 由于 SylixOS 操作系统为了保持硬实时操作系统的特性,所以内核与应用程序没有严格的隔离,缺页中断如果发生在内核被锁定或者中断中,则操作系统不能正确处理,这里需要应用程序开发者与驱动开发人员注意。 更多扩展知识见: 参考文章:处理器包含多级中断系统,BSP部分该如何设计? 参考文章:系统遇到哪些异常时,会导致系统重启
SylixOS 系统的中断优先级与线程优先级是相互独立的吗?
Q:SylixOS 系统的中断优先级与线程优先级是相互独立的吗? 是相互独立的。 中断优先级是由硬件决定的,而线程优先级则是由操作系统决定的。 中断优先级天然要比线程优先级高的多,这样才能保证每次中断操作都能响应。 中断优先级由硬件决定: 例如硬件支持两种级别的中断优先级,那就是一高一低, 如果硬件支持多级,则可以通过编号区别高低。 因此在支持多级中断优先级的硬件上,可以根据中断优先级的编号大小区别中断间的高低,数字越小,优先级越高。 参考文章:SylixOS ...
T3 高精度时钟出现负数问题解决方案
问:T3 高精度时钟出现负数问题解决方案 1、问题描述 问题现象主要表现为连续获取两次高精度时钟,时间差为负数。即后一次获取的时间小于前一次。现象出现随机性较高,属于偶发事件。连续多次获取可复现此问题。后一次出现时间约比前一次少 1ms 左右,即一个 tick 值。 答: 基本解决思路就是使用锁使得获取时刻无法出现在更新tick操作和清中断操作中间。但由于更新 tick 操作和获取操作都在 base ...
SylixOS 中是否支持中断底半部,如何使用?
1. 适用范围 本文档适用于对中断底半部有了解需求的开发人员。 2. 原理概述 在发生中断时,内核会记录哪个中断产生并把中断相应的处理函数加入一个处理队列里, 直到把所有同一时间发生的中断全部记录好后, 处理队列里的函数才会逐一得到调用。所以当一个中断处理函数处理过久时,就有可能影响它后面的中断处函数的执行时机。我们用的中断处 理函数是可以被中断信号打断的。 ...