请分享一下现在的嵌入式程序框架经验
本帖最后由 hyf88 于 2015-7-7 12:07 编辑如题,
现在写嵌入式固件(裸机程序),大家都是使用什么样的方式?
是不是采用状态机?
有没有加入面向对象的一些思想?
最近要设计一款烟雾报警器,感觉如果是简单的功能实现,也没有什么意思,
想设计比较好框架,
可能功能简单, 大道至简才是王道!想复杂,上os,数据链表,甚至一个eeprom都可以整出个文件系统来!{:biggrin:} embeddev_1 发表于 2015-7-6 16:35
大道至简才是王道!想复杂,上os,数据链表,甚至一个eeprom都可以整出个文件系统来! ...
需要文件系统吗?
咱能实际点吗?
不要把什么技术名词挂在嘴边,谢谢, {:lol:} 状态机不错。在FPGA上状态机几乎是万能的。{:tongue:} 我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。 事件驱动的模式试试看,有事件才去执行任务 Michael_STM 发表于 2015-7-6 16:48
我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。 ...
和你一样驱动和应用分开,方便移植使用 lzly0302 发表于 2015-7-6 16:56
事件驱动的模式试试看,有事件才去执行任务
嗯嗯,,漂亮,谢谢你的提醒,
事件产生是在中断或者定时器中吗? 标题不合格,小心ID哦 XL_J 发表于 2015-7-6 17:27
标题不合格,小心ID哦
哦哦,,是嘛,。我怎么修改? 指导一下,谢谢, 本以为你在分享,没想到你在跪求。 leafstamen 发表于 2015-7-6 17:30
本以为你在分享,没想到你在跪求。
也算分享了一点引子了,因为之前都在写C#程序,现在转到mcu裸机程序,就想到以前设计的时候一些思路, 推荐看 量子框架。 Michael_STM 发表于 2015-7-6 16:48
我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。 ...
是的, 这样可以提高代码复用率,并且长期测试维护的代码也会更健壮稳定, 同时也更加方便不同MCU之间的移植。 如果裸机的话,状态机加对象化的确是很好的思路
另外,我觉得LZ这个帖子标题前加上一个“请”字,就没有标题党嫌疑了 赤裸裸的标题党!!! 把标题改过来了, 简而精的架构 PT, 没有之一 烟雾报警器,,检测到烟雾,马上报警.看来可以用事件驱动. onepower 发表于 2015-7-7 14:02
简而精的架构 PT, 没有之一
这是什么架构?PT? hyf88 发表于 2015-7-7 16:08
这是什么架构?PT?
论坛里有很多人玩这个, 精简而强大, 虽然有些固有的缺点, 但却没有抢占式系统因为线程而产生的问题;
http://www.amobbs.com/forum.php?mod=viewthread&tid=5534907&highlight=%E8%B0%83%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php?mod=viewthread&tid=5603223&highlight=%E8%B0%83%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php?mod=viewthread&tid=5508723&highlight=%E8%B0%83%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php?mod=viewthread&tid=5604536&highlight=%E8%B0%83%E5%BA%A6%E5%99%A8
qp{:lol:}{:lol:}{:lol:}{:lol:}{:lol:} onepower 发表于 2015-7-8 09:52
论坛里有很多人玩这个, 精简而强大, 虽然有些固有的缺点, 但却没有抢占式系统因为线程而产生的问题;
htt ...
这玩意能用在产品上? 个人感觉上个OS能简化不少事,任务调度、超时、信号量等等机制都给你弄好了,
当然如果应用确实很简单,不需要这些,也没非上OS。 jameszxj 发表于 2015-7-9 16:53
个人感觉上个OS能简化不少事,任务调度、超时、信号量等等机制都给你弄好了,
当然如果应用确实很简单,不 ...
对啊,,os不敢保证会不会出现问题,不敢使用的, hyf88 发表于 2015-7-9 16:54
对啊,,os不敢保证会不会出现问题,不敢使用的,
用OS唯一的好处就是,延时不阻塞了,我看不出哪有好处;
基于这点,直接裁剪UCOS,只有一个内核了,就是一个调度和一个延时;别的都木有了;原来还保留一个信号和事件,现在连信号和事件也统统干掉;
kinsno 发表于 2015-7-9 16:59
用OS唯一的好处就是,延时不阻塞了,我看不出哪有好处;
基于这点,直接裁剪UCOS,只有一个内核了,就是 ...
有道理,不知道你裁剪过ucos没有?
有demo可以学习学习吗? hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?
PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;
hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?
PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;
onepower 发表于 2015-7-9 17:47
PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;
...
哦哦,,谢谢你的指导,受益匪浅啊,
你现在用pt一般是做哪方面的应用的? hyf88 发表于 2015-7-13 09:54
哦哦,,谢谢你的指导,受益匪浅啊,
你现在用pt一般是做哪方面的应用的? ...
PT的作用是 使应用层的状态机写成线程的样子, 说白了就是给函数模拟出多入口; 我现在是用状态机思想,然后将每个模块 比如:按键,显示等分开一个C 这样方便的移植和修改。当然,如显示 里面会有底层和应用层。单独用一个C文件分开。 大家也可以多交流,其实最终的目的,就是为了方便的修改功能,易读,易移植等 wind2100 发表于 2015-7-13 15:38
我现在是用状态机思想,然后将每个模块 比如:按键,显示等分开一个C 这样方便的移植和修改。当然,如显示...
你有写过的实例吗? 能共享一个看看吗?谢谢, http://users.ece.cmu.edu/~koopman/
绝对高大上
页:
[1]