摘要: 对于裸机开发者来说,很多时候你以为你拥有整个 CPU,其实你只拥有 1ms 的时间片。RTOS 的本质不是“多任务”,而是“有状态的抢占”。这里,我们从寄存器和汇编的角度,拆解裸机思维与 RTOS 思维的根本冲突。
一、 裸机编程的“视角”
在 8 位机或者裸机(Bare Metal)开发的时代,嵌入式工程师拥有绝对的“上帝视角”。
在 main() 函数的 while(1) 那个超级循环里,一切都是线性的、可预测的。
-
你知道
Scan_Key()执行完之后,一定是执行LCD_Refresh()。 -
你知道如果你在代码里写了一个
Delay_ms(100),整个世界都会为你停摆 100 毫秒(除非中断来了)。
这时候的编程模型是**“时间轴连续的单行道”**。你的大脑就是一个单核 CPU,你顺着代码的行号,就能模拟出系统的所有行为。
直到你引入了 RTOS。
很多初学者把 RTOS 当作“支持多线程的裸机”来用:
-
创建了 3 个任务。
-
每个任务里写一个
while(1)。 -
每个任务里还是充斥着大量的
HAL_Delay()和轮询。
这不叫 R
订阅专栏 解锁全文
552



被折叠的 条评论
为什么被折叠?



