1 RTOS概念及线程的引入
1.1 RTOS的概念
用人来类比单片机程序和RTOS:

妈妈要一边给小孩喂饭,一边加班跟同事交流,怎么办?
对于单线条的人,不能分心,不能同时做事,她只能这样做:
- 给小孩喂一口饭
- 瞄一眼电脑,有信息就去回复
- 再回来给小孩喂一口饭
- 如果小孩吃这口饭太慢,他回复同事的信息也就慢了,被同事催,你半天都不回复我?
- 如果回复同事的信息要写一大堆,小孩就饿的大哭起来
对于眼明手快的人,她可以一心多用,她这样做:
- 左手拿勺子,给小孩喂饭
- 右手敲键盘,恢复同事
- 两不耽误,小孩“以为”妈妈在专心喂饭,同事以为“她在专心聊天”
- 但是脑子只有一个啊,虽然说一心多用,但是谁能够同时考虑两件事?
- 只是她反应快,上一秒钟在考虑夹哪个菜给小孩,下一秒钟考虑给同事回复什么信息
这种做法,在软件开发上,就是使用操作系统, 在单片机里叫做使用RTOS
RTOS的意思是:Real Time Operating System,即实时操作系统,但使用Windows,我们经常碰到程序卡死、停顿的现象,日常生活中,这是可以忍受的,但是在电梯系统中,你按住开门键时如果没有即刻反应,即使知识慢个一秒钟,也会夹住人,在专用的电子设备中,实时性很重要
1.2 程序简单示例:
//经典单片机程序
void main()
{
while(1)
{
喂一口饭();
回一条消息();
}
}
//RTOS程序
int a;
喂饭() 栈A
{
int b=2;

本文通过生动的例子介绍了RTOS(实时操作系统)的概念及其在单片机程序中的应用,并深入探讨了线程的切换与保存机制,解释了ARM架构下的寄存器工作原理及汇编指令。
3117

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



