拜读了傻小孩、上官等大神关于的状态机的帖子,受益匪浅。感觉状态机在他们手中以及被玩的出神入化了,初学者需要花不少时间才能理解其中的奥秘。相比而言我今天给大家分享的这个状态机代码生成工具就比较“接地气”了。
状态机的代码有个特征是结构化比较明显,比较适合自动生成。类似的状态机代码生成工具有IAR的visualSTATE、matlab以及一些专业工具等,但这些工具要么直接生成二进制代码,要么需要花时间去熟悉。我的这个状态机代码生成工具具有以下几个特点:
1.快速上手,几分钟就能学会使用
2.支持状态化简功能,能够自动发现等效状态并将其合并(状态化简使用了图的DFS遍历算法)
3.可生成switch case形式和函数指针形式两种形式的代码
4.仅支持一级和一维的且不支持阻塞最简单的状态机,但有的时候简单的才是最有效的
详细的step by step的使用说明在附件中的文档中找到。工具我测试过,但不能保证没有bug,欢迎大家指出使用的过程中发现的bug。
状态机是一种高屋建瓴的思维模式去解决问题的方法,能够加快设计到实现的过程。最后希望这个工具能够让初学者爱上状态机
我们现在开发做架构都是用Simulink的StateFlow工具来建模,配合AutoBox做仿真,最后能直接生成C代码。
一周热门 更多>