打印
[其它应用]

嵌入式常见的3种系统形式

[复制链接]
5694|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
onlycook|  楼主 | 2023-10-11 14:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
嵌入式应用场景下的代码框架构成虽然多种多样,但梳理总结下来基本就是三种形式,分别是裸机系统、前后台系统,以及抢占式操作系统。本篇将简要介绍这三种资源调度系统的区别。

1、裸机系统
顾名思义,裸机系统即没有任何的操作系统,所有的任务在一个大循环里不断的轮训运行,该形式能实现简单应用的短平快开发,也是比较初级的嵌入式框架形式。

代码类型如下所示:

int main(void)
{
  Hardware_Init();
  /*在完成硬件资源初始化后,则所有的任务都在一个大循环中轮训*/
  while(1)
  {
    Task_1();
    Task_2();
    Task_3();   
  }
}
2、前后台系统
该系统的区别于裸机系统的的最大特点就是引入了硬件中断,在中断触发以及裸机轮训的配合下实现对整体的资源调度,引入中断后能够对一些动作的响应更加的快速。

unsigned char TimeFlag = 0;
unsigned char GpioFlag = 0;

//周期中断处理函数
void SysTick_handler(void)
{
  TimeFlag = 1;
}
//GPIO触发中断处理函数
void CanRecv_Handler(void)
{
  GpioFlag = 1;
}

int main(void)
{
  Hardware_Init();
  while(1)
  {
    //定时中断触发置位后执行该部分动作
    if(1 == TimeFlag)
    {
      TimeFlag = 0;
      Task_Time();
    }
     //GPIO中断触发置位后执行该部分动作
    if(1 == GpioFlag)
    {
      GpioFlag = 0;
      Task_Gpio();
    }
  }
}
3、抢占式操作系统
常见的嵌入式用操作系统有UCOS/FreeRTOS/RT-Thread等。带有硬件抢占式特点的操作系统可管理多线程任务运行,每个线程都有独立的堆栈资源/优先级,实现了一个MCU运行出多个各自独立的前后台/裸机系统的效果。高的优先级任务可以打断低优先级任务的运行,在执行完高优先级任务后能继续回滚低优先级被打断处继续运行。可做到某一个线程如果死循环卡住,不会影响其他高优先级线程的运行。线程之间也有通信交互机制,使得资源的管理和传递更加的清晰以及MCU的利用更加的高效。

void Task_handler_1(void)
{
    while(1)
    {
      Task_1();
    }
}

void Task_handler_2(void)
{
    while(1)
    {
      Task_2();
    }
}

int main(void)
{
  Hardware_Init();
  
  //将任务线程注册到操作系统中
  OS_Task_Register(Task_handler_1);
  OS_Task_Register(Task_handler_2);
  
  OS_Start();
  
  while(1)
  {
    //正常情况下操作系统是不会运行到此处   
  }
}

使用特权

评论回复
沙发
LOVEEVER| | 2023-10-21 13:43 | 只看该作者
楼主现在哪一个比较适合嵌入式

使用特权

评论回复
板凳
小小蚂蚁举千斤| | 2023-10-24 09:20 | 只看该作者
抢占式操作系统这个应该应用很好

使用特权

评论回复
地板
tpgf| | 2023-11-6 11:49 | 只看该作者
前后台算是一种系统吗

使用特权

评论回复
5
guanjiaer| | 2023-11-6 13:07 | 只看该作者
裸机的时候也是可以使用中断的 啊

使用特权

评论回复
6
heimaojingzhang| | 2023-11-6 14:23 | 只看该作者
tpgf 发表于 2023-11-6 11:49
前后台算是一种系统吗

应该不是一种系统 只是一种处理方式而已

使用特权

评论回复
7
paotangsan| | 2023-11-6 15:02 | 只看该作者
第一种和第二种有什么区别呀

使用特权

评论回复
8
AdaMaYun| | 2023-11-6 20:31 | 只看该作者
前后台能详细说明一下原理嘛

使用特权

评论回复
9
renzheshengui| | 2023-11-6 22:22 | 只看该作者
现在哪里还有楼主说的第一种方式啊 最差也得有个中断吧

使用特权

评论回复
10
keaibukelian| | 2023-11-6 23:15 | 只看该作者
我们常用的操作系统都是抢占式操作系统吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

438

主题

1664

帖子

3

粉丝