搜索
bottom↓
回复: 32

请分享一下现在的嵌入式程序框架经验

[复制链接]

出0入0汤圆

发表于 2015-7-6 16:32:52 | 显示全部楼层 |阅读模式
本帖最后由 hyf88 于 2015-7-7 12:07 编辑

如题,

现在写嵌入式固件(裸机程序),大家都是使用什么样的方式?

是不是采用状态机?

有没有加入面向对象的一些思想?


最近要设计一款烟雾报警器,感觉如果是简单的功能实现,也没有什么意思,
想设计比较好框架,

可能功能简单,

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2015-7-6 16:35:24 | 显示全部楼层
大道至简才是王道!想复杂,上os,数据链表,甚至一个eeprom都可以整出个文件系统来!

出0入0汤圆

 楼主| 发表于 2015-7-6 16:38:49 | 显示全部楼层
embeddev_1 发表于 2015-7-6 16:35
大道至简才是王道!想复杂,上os,数据链表,甚至一个eeprom都可以整出个文件系统来! ...

需要文件系统吗?

咱能实际点吗?

不要把什么技术名词挂在嘴边,谢谢,

出0入0汤圆

发表于 2015-7-6 16:41:53 | 显示全部楼层
状态机不错。在FPGA上状态机几乎是万能的。

出0入0汤圆

发表于 2015-7-6 16:48:03 | 显示全部楼层
我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。

出0入0汤圆

发表于 2015-7-6 16:56:25 | 显示全部楼层
事件驱动的模式试试看,有事件才去执行任务

出0入0汤圆

发表于 2015-7-6 16:57:16 | 显示全部楼层
Michael_STM 发表于 2015-7-6 16:48
我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。 ...

和你一样驱动和应用分开,方便移植使用

出0入0汤圆

 楼主| 发表于 2015-7-6 17:04:49 | 显示全部楼层
lzly0302 发表于 2015-7-6 16:56
事件驱动的模式试试看,有事件才去执行任务

嗯嗯,,漂亮,谢谢你的提醒,

事件产生是在中断或者定时器中吗?

出0入0汤圆

发表于 2015-7-6 17:27:35 | 显示全部楼层
标题不合格,小心ID哦

出0入0汤圆

 楼主| 发表于 2015-7-6 17:29:08 | 显示全部楼层
XL_J 发表于 2015-7-6 17:27
标题不合格,小心ID哦

哦哦,,是嘛,。我怎么修改? 指导一下,谢谢,

出0入57汤圆

发表于 2015-7-6 17:30:10 | 显示全部楼层
本以为你在分享,没想到你在跪求。

出0入0汤圆

 楼主| 发表于 2015-7-6 17:35:06 | 显示全部楼层
leafstamen 发表于 2015-7-6 17:30
本以为你在分享,没想到你在跪求。

也算分享了一点引子了,因为之前都在写C#程序,现在转到mcu裸机程序,就想到以前设计的时候一些思路,

出0入0汤圆

发表于 2015-7-6 19:05:12 | 显示全部楼层
  推荐看 量子框架。

出0入76汤圆

发表于 2015-7-6 19:25:03 | 显示全部楼层
Michael_STM 发表于 2015-7-6 16:48
我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。 ...

是的, 这样可以提高代码复用率,并且长期测试维护的代码也会更健壮稳定, 同时也更加方便不同MCU之间的移植。

出0入0汤圆

发表于 2015-7-7 11:52:32 | 显示全部楼层
如果裸机的话,状态机加对象化的确是很好的思路
另外,我觉得LZ这个帖子标题前加上一个“请”字,就没有标题党嫌疑了

出0入0汤圆

发表于 2015-7-7 11:57:32 | 显示全部楼层
赤裸裸的标题党!!!

出0入0汤圆

 楼主| 发表于 2015-7-7 12:07:39 | 显示全部楼层
把标题改过来了,

出0入0汤圆

发表于 2015-7-7 14:02:32 | 显示全部楼层
简而精的架构 PT, 没有之一

出0入0汤圆

发表于 2015-7-7 15:03:06 | 显示全部楼层
烟雾报警器,,检测到烟雾,马上报警.看来可以用事件驱动.

出0入0汤圆

 楼主| 发表于 2015-7-7 16:08:04 | 显示全部楼层
onepower 发表于 2015-7-7 14:02
简而精的架构 PT, 没有之一

这是什么架构?  PT  ?

出0入0汤圆

发表于 2015-7-8 09:52:48 | 显示全部楼层
hyf88 发表于 2015-7-7 16:08
这是什么架构?  PT  ?


论坛里有很多人玩这个, 精简而强大, 虽然有些固有的缺点, 但却没有抢占式系统因为线程而产生的问题;

http://www.amobbs.com/forum.php? ... 3%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php? ... 3%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php? ... 3%E5%BA%A6%E5%99%A8
http://www.amobbs.com/forum.php? ... 3%E5%BA%A6%E5%99%A8

出0入0汤圆

发表于 2015-7-8 10:19:44 | 显示全部楼层
qp  

出0入0汤圆

 楼主| 发表于 2015-7-9 16:33:51 | 显示全部楼层
onepower 发表于 2015-7-8 09:52
论坛里有很多人玩这个, 精简而强大, 虽然有些固有的缺点, 但却没有抢占式系统因为线程而产生的问题;

htt ...

这玩意能用在产品上?

出0入0汤圆

发表于 2015-7-9 16:53:08 | 显示全部楼层
个人感觉上个OS能简化不少事,任务调度、超时、信号量等等机制都给你弄好了,
当然如果应用确实很简单,不需要这些,也没非上OS。

出0入0汤圆

 楼主| 发表于 2015-7-9 16:54:42 | 显示全部楼层
jameszxj 发表于 2015-7-9 16:53
个人感觉上个OS能简化不少事,任务调度、超时、信号量等等机制都给你弄好了,
当然如果应用确实很简单,不 ...

对啊,,os不敢保证会不会出现问题,不敢使用的,

出0入0汤圆

发表于 2015-7-9 16:59:15 | 显示全部楼层
hyf88 发表于 2015-7-9 16:54
对啊,,os不敢保证会不会出现问题,不敢使用的,

用OS唯一的好处就是,延时不阻塞了,我看不出哪有好处;
基于这点,直接裁剪UCOS,只有一个内核了,就是一个调度和一个延时;别的都木有了;原来还保留一个信号和事件,现在连信号和事件也统统干掉;

出0入0汤圆

 楼主| 发表于 2015-7-9 17:02:27 | 显示全部楼层
kinsno 发表于 2015-7-9 16:59
用OS唯一的好处就是,延时不阻塞了,我看不出哪有好处;
基于这点,直接裁剪UCOS,只有一个内核了,就是 ...

有道理,不知道你裁剪过ucos没有?

有demo可以学习学习吗?

出0入0汤圆

发表于 2015-7-9 17:46:44 | 显示全部楼层
hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?

PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;

出0入0汤圆

发表于 2015-7-9 17:47:48 | 显示全部楼层
hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?

PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;

出0入0汤圆

 楼主| 发表于 2015-7-13 09:54:00 | 显示全部楼层
onepower 发表于 2015-7-9 17:47
PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;
...

哦哦,,谢谢你的指导,受益匪浅啊,

你现在用pt一般是做哪方面的应用的?

出0入0汤圆

发表于 2015-7-13 11:34:06 | 显示全部楼层
hyf88 发表于 2015-7-13 09:54
哦哦,,谢谢你的指导,受益匪浅啊,

你现在用pt一般是做哪方面的应用的? ...

PT的作用是 使应用层的状态机写成线程的样子, 说白了就是给函数模拟出多入口;

出0入0汤圆

发表于 2015-7-13 15:38:03 | 显示全部楼层
我现在是用状态机思想,然后将每个模块 比如:按键,显示等分开一个C 这样方便的移植和修改。当然,如显示 里面会有底层和应用层。单独用一个C文件分开。 大家也可以多交流,其实最终的目的,就是为了方便的修改功能,易读,易移植等

出0入0汤圆

 楼主| 发表于 2015-7-14 08:47:15 | 显示全部楼层
wind2100 发表于 2015-7-13 15:38
我现在是用状态机思想,然后将每个模块 比如:按键,显示等分开一个C 这样方便的移植和修改。当然,如显示  ...

你有写过的实例吗? 能共享一个看看吗?谢谢,

出0入0汤圆

发表于 2015-8-4 15:57:34 | 显示全部楼层
http://users.ece.cmu.edu/~koopman/
绝对高大上
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 13:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表