嵌入式裸机设计思想

一、在嵌入式开发中,状态机是一种常用的设计模式,用于描述系统或对象的行为和状态转换。下面是关于状态机的知识点和应用场景:

  1. 状态机的定义:状态机由一组状态和状态之间的转换组成,通过事件触发状态转换,从而改变系统或对象的行为。

  2. 状态:状态是系统或对象在不同时间点的行为表现,可以是一个离散的状态值或一个更复杂的状态对象。

  3. 状态转换:状态转换定义了从一个状态转换到另一个状态的条件和行为。它可以由外部事件触发,也可以由内部条件引起。

  4. 事件:事件是触发状态转换的信号或输入。它可以是硬件中断、定时器、传感器数据等。

  5. 动作:动作是状态转换发生时执行的操作。它可以是改变系统或对象的属性、调用函数、发送消息等。

二、应用场景:

  1. 设备控制:嵌入式设备通常需要对外部输入信号做出相应的控制和反应。通过使用状态机,可以描述设备的不同工作状态和相应的控制逻辑。

  2. 通信协议:在通信协议中,状态机可以用于描述通信的不同阶段和相应的协议处理。例如,分组交换网络中的路由器可以使用状态机来处理转发表的更新和转发规则。

  3. 用户界面:嵌入式系统的用户界面通常需要处理用户的输入和显示合适的输出。状态机可以用于描述用户界面的不同状态和相应的处理逻辑。

  4. 资源管理:在嵌入式系统中,资源的管理是一个重要的任务。通过使用状态机,可以描述资源的不同状态和相应的分配和释放逻辑。

  5. 按键处理程序:按键状态机是最常见的应用之一。根据按键事件,状态机切换状态,执行相应的动作

三、注意事项

  1. 状态划分:合理划分系统工作状态,避免“伪态”和“漏态”。
  2. 状态转换图:先设计状态转换图,再根据图写代码。状态转换图清晰地表达状态之间的关系。
  3. 简化代码:合并相同的动作,提高代码效率。

例如,在我的代码中,有一个OLED显示程序。因为OLED显示是非常浪费时间的,为了不因为一个这样的程序,而影响到其他任务的执行,怎么做?

答:我们可以将OLED显示任务分成多个,依次显示。可以使用状态机的思想对任务进行拆分,一次执行一部分。
参考链接: https://blog.csdn.net/qq_63922192/article/details/132746564

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值