linux内核打印"BUG: scheduling while atomic"和"bad: scheduling from the idle thread"错误的时候,
通常是在中断处理函数中调用了可以休眠的函数,如semaphore,mutex,sleep之类的可休眠的函数,而linux内核要求在中断处理的时候,不允许系统调度,不允许抢占,要等到中断处理完成才能做其他事情。
因此,要充分考虑中断处理的时间,一定不能太久。
另外一个能产生此问题的是在idle进程里面,做了不该做的事情。现在Linux用于很多手持式设备,为了降低功耗,通常的作法是在idle进程里面降低CPU或RAM的频率、关闭一些设备等等。要保证这些动作的原子性才能确保不发生"bad: scheduling from the idle thread"这样的错误!
禁止内核抢占是指内核不会主动的抢占你的process,但是现在是你在自己的程序中主动call schedule(),kernel并不能阻止你这么作。
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
相关文章

耐压测试仪有哪些特性(2023-07-18)
了微型TPU-A面板式打印机,自动汉化打印输出。6、本仪器设有自动检测功能,如开机自动进入复位状态执行调压器回零。7、采用了微型TPU-A面板式打印机,自动打印输出。 ......

有关i2c的问题总结(2024-07-25)
。
//为什么这里会打印输出client->name呢?因为我觉得局部变量client的成员变量dev被赋值了,而其他成员变量没有赋值,他们都应该是0。
//所以clien->name......

基于ARM的中英文翻译器设计(2023-03-20)
通过优化算法转换成中文,能够边接收边打印输出。该系统设计从实验结果来看,打印输出效果良好,整个打印过程快速迅捷,每一组数据间隔可调,能够节省大量纸张。
1 系统硬件电路设计
翻译器的系统结构框图如图l所示......

分享一下STM32CubeIDE的SWV功能(2024-04-07)
分享一下STM32CubeIDE的SWV功能;很多工具都自带有 SWV (Serial Wire Viewer)的功能,之前给大家分享的《打印输出教程》就描述了在Keil、IAR、ST-LINK......

printf()是如何与UART外设驱动函数“勾搭”起来的?(2023-03-27)
头文件 stdio.h 定义的 printf() 函数与 UART 外设底层驱动函数的。
Note:本文使用的 IAR EWARM 软件版本是 v9.10.2。
一、打印输出整体框图
首先,介绍一下打印输出......

基于STM32的多种printf用法(2024-01-29)
printf打印输出。
#include "stdio.h"
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t......

IDC MarketScape可持续发展评估公布,Brother获评“领导者”(2024-06-06 09:10)
IDC MarketScape可持续发展评估公布,Brother获评“领导者”;兄弟工业株式会社近日宣布,该公司在 "IDC MarketScape全球可持续发展计划和服务2023年打印输出......

IDC MarketScape可持续发展评估公布,Brother获评 "领导者"(2024-06-05)
IDC MarketScape可持续发展评估公布,Brother获评 "领导者";
兄弟工业株式会社近日宣布,该公司在 "IDC MarketScape全球可持续发展计划和服务2023年打印输出......

基于STM32的多种printf用法 你都知道吗?(2023-06-06)
SWV输出
这后面三种不占用硬件UART,使用ITM机制。
二、UART映射printf
这种方法应该很多人都知道,就是使用硬件UART串口映射,实现printf打印输出。
对于Keil、 IAR......

浅析STM32调试过程中的几个相关问题(2023-09-01)
是一般性的连接不上,原因就更多了,比方硬件器件、连接线路、驱动程序、用户代码本身等,这些要结合具体情况来分析。关于低功耗模式的调试支持,请参考各个系列参考手册的相关描述。
2、打印输出失败
通常我们可以借助于串口助手做打印输出......