RTOS与裸机系统的区别:从轮询到多线程的演变
创作时间:
作者:
@小白创作中心
RTOS与裸机系统的区别:从轮询到多线程的演变
引用
CSDN
1.
https://blog.csdn.net/qq_38835449/article/details/142049056
实时操作系统(RTOS)与裸机系统是嵌入式系统开发中常见的两种选择。本文将从轮询系统、前后台系统和多线程系统三个方面,深入探讨它们之间的区别,并分析RTOS的优势和局限性。
1. 轮询系统
轮询系统是最简单的软件结构,通常适用于只需要顺序执行代码且不需要外部事件驱动的场景。其基本工作原理是在主程序中通过一个死循环不断检查和处理各种任务。
int main(void)
{
/* 硬件相关初始化 */
HardWareInit();
/* 无限循环 */
for (;;) {
/* 处理事情 1 */
DoSomething1();
/* 处理事情 2 */
DoSomethingg2();
/* 处理事情 3 */
DoSomethingg3();
}
}
这种系统结构虽然简单,但实时响应能力较差,特别是在需要处理外部事件(如按键操作)时,无法保证及时响应。
2. 前后台系统
前后台系统在轮询系统的基础上加入了中断机制,提高了系统的实时响应能力。外部事件的响应在中断中完成,而事件的处理则回到主循环中进行。
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
int main(void)
{
/* 硬件相关初始化 */
HardWareInit();
/* 无限循环 */
for (;;) {
if (flag1) {
/* 处理事情 1 */
DoSomething1();
}
if (flag2) {
/* 处理事情 2 */
DoSomethingg2();
}
if (flag3) {
/* 处理事情 3 */
DoSomethingg3();
}
}
}
void ISR1(void)
{
/* 置位标志位 */
flag1 = 1;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到后台处理 */
DoSomething1();
}
void ISR2(void)
{
/* 置位标志位 */
flag2 = 2;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到后台处理 */
DoSomething2();
}
void ISR3(void)
{
/* 置位标志位 */
flag3 = 1;
/* 如果事件处理时间很短,则在中断里面处理
如果事件处理时间比较长,在回到后台处理 */
DoSomething3();
}
3. 多线程系统
多线程系统进一步提升了系统的实时性。事件响应在中断中完成,而事件处理则在线程中进行。每个线程都有自己的优先级,优先级高的线程会被优先执行。
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
int main(void)
{
/* 硬件相关初始化 */
HardWareInit();
/* OS 初始化 */
RTOSInit();
/* OS 启动,开始多线程调度,不再返回 */
RTOSStart();
}
void ISR1(void)
{
/* 置位标志位 */
flag1 = 1;
}
void ISR2(void)
{
/* 置位标志位 */
flag2 = 2;
}
void ISR3(void)
{
/* 置位标志位 */
flag3 = 1;
}
void DoSomething1(void)
{
/* 无限循环,不能返回 */
for (;;) {
/* 线程实体 */
if (flag1) {
}
}
}
void DoSomething2(void)
{
/* 无限循环,不能返回 */
for (;;) {
/* 线程实体 */
if (flag2) {
}
}
}
void DoSomething3(void)
{
/* 无限循环,不能返回 */
for (;;) {
/* 线程实体 */
if (flag3) {
}
}
}
相比前后台系统,多线程系统将程序主体分割成多个独立的线程,每个线程都在自己的上下文中运行,互不干扰,且由操作系统调度管理。这种设计不仅提高了系统的实时性,还简化了编程复杂度。
RTOS的优势与局限性
RTOS具有以下优势:
- 硬实时响应:基于优先级抢占机制,确保关键任务优先执行。
- 系统性能最大化:通过事件驱动替代轮询,优化存储占用和处理器时间。
- 降低复杂度:将应用划分为独立任务,简化开发和调试。
- 高峰负载管理:通过优先级调度有效管理系统负载。
- 模块化设计:易于集成中间件和重用代码模块。
- 团队协作:支持多人并行开发,提高项目效率。
然而,RTOS也存在一些局限性:
- 资源消耗:需要额外的存储空间(FLASH和RAM)来运行操作系统。
热门推荐
怎么去除口腔异味
库里真的有实力成为NBA历史上前十位最伟大球星之一吗
文玩菩提子到底什么是正确的玩法?没那么复杂
百兆宽带网速:特点、优势与应用场景全解析
补牙后注意事项都有哪几方面
暖气片安装前的准备与规划
房产证无效的情形解析:法律依据与应对策略
离职补偿金计入什么会计科目
员工辞退经济补偿金的账务处理及税务管理
孩子牛奶过敏怎么办
CTO是什么?CTO的职责、与其他职位的区别及职业发展路径
电饭煲能做什么美食?别只会煮饭,10大满分菜肴,风味绝绝子
以创新抓机遇:《算力时代全光网架构研究报告(2024年)》解读
秋季应吃些什么菜好?秋季蔬菜推荐!
英国如何一步步陷入“腐国”困境?
上半年百强房企销售额同比降逾四成、利润率下滑,“一二线城市仍存巨大结构性机会”
蒸馒头发面时,光加酵母就错了!面点师:掌握5诀窍,馒头白又香
基于机器学习判断面部微表情发现哪些人更容易诊有帕金森病
长安智驭未来,文化赋能全球,中国汽车品牌崛起之路
牛肉丸制作工艺及营养价值研究
人在加拿大如何办身份证
国债与股票的区别 - 分析两者之间的差异以及各自的投资优势
治疗膝关节疼痛,玻璃酸钠和PRP治疗哪个更好呢?
技术创新赋能,打造智慧风场
陈桐楷、陈扬等综述:微针应用于皮肤疾病的治疗
中国学龄儿童的膳食指南(内附:平衡膳食宝塔)
基于STM32的L298N电机驱动详解:从原理到代码实现
“甲”喻“护”晓—聊聊甲状腺的那些事
澳洲留学期间的工作机会和挑战
破解耐药迷局!中南湘雅团队揭示索拉非尼肝癌治疗新靶点