分享一个基于事件驱动的有限状态机

分享一个基于事件驱动的有限状态机

EFSM(Event Finite State Machine,事件驱动型有限状态机)是一种基于事件驱动的有限状态机,主要应用于嵌入式设备的软件系统中。

基于STM32的除以0运算话题

基于STM32的除以0运算话题

有人正在使用STM32G4系列芯片进行产品开发时,他发现如果程序中遇到除以0的操作,会导致进入错误异常中断,从而影响程序的运行。他想知道是否可以通过设置,即使发生除以0的操作,也不让程序进入异常中断,并且希望在这种情况下,除法的结果(商)直接等于当前变量类型所支持的最大值。例如,如果被除数是一个16位变量,经过除以0操作后直接将其赋值为0xffff。实际应用中,客户的需求往往五花八门。

嵌入式设计模式:有限状态自动机的C语言实现

嵌入式设计模式:有限状态自动机的C语言实现

状态机模式是一种行为模式,在《设计模式》这本书中有对其详细的描述。通过多态实现不同状态之间的转换行为往往是一种很好的方法。然而,在嵌入式环境下,有时只能编写纯C代码,并且还需要考虑代码的重入性和多任务请求跳转等情况,因此在实现时需要经过仔细思考。

了解单片机解密的一些知识!

了解单片机解密的一些知识!

单片机(MCU)通常具有用于存放程序和工作数据的内部程序区和数据区之一。为了防止未经授权访问或复制单片机内部程序,大多数单片机都带有加密锁定位或加密字节,以保护片内程序。

使用Jlink来合并烧写文件,就是这么简单!

使用Jlink来合并烧写文件,就是这么简单!

IAP(In-application-programming),即在应用中编程。当产品发布之后,可以通过网络方便的升级固件程序,而不需要拆机下载程序。IAP系统的固件一般由两部分组成,即BootLoader Code和Application Code,并存储在不同起始地址的空间里:

哪些工具可以在使用RTOS时发现实时系统的bug?

哪些工具可以在使用RTOS时发现实时系统的bug?

越来越多的嵌入式系统选择使用实时操作系统(RTOS)以满足实时需求、减少上市时间、简化开发并增加代码的可移植性。尽管RTOS具有许多好处,但也存在一些缺点,例如可能引入任务优先级的分配不当、堆栈溢出、饥饿、死锁、优先级反转等bug。

如何在嵌入式中使用设计模式的思想?

如何在嵌入式中使用设计模式的思想?

嵌入式系统的特点通常是低配、偏硬件、底层,资源有限,代码主要使用C语言和汇编,应用逻辑相对简单。然而,随着AIOT时代的到来,这一局面正在发生变化。

串口数据传输当中的共用体和结构体转换

串口数据传输当中的共用体和结构体转换

在嵌入式系统中,串口数据传输通常以字节为单位进行。但是对于一些特殊的数据类型,比如浮点型,如何在内存中表示呢?以浮点型变量float a=231.5为例。

串口 DMA 发送竟然用局部变量作缓存?

串口 DMA 发送竟然用局部变量作缓存?

曾经有个同事以串口查询方式发送数据,我对他进行了一番批评。因为我们有DMA资源可用,所以我无法忍受他不使用DMA这个性能优越的方式。所以当时我告诉他,如果有时间的话就改用DMA。

嵌入式编程中的高低位交换如何实现?

嵌入式编程中的高低位交换如何实现?

最近我在处理一个协议时遇到了字节高低位转换的问题。为了解决这个问题,我上网搜索并了解到一个称为蝶式交换的新名词。

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部