hyf88 发表于 2015-7-6 16:32:52

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

本帖最后由 hyf88 于 2015-7-7 12:07 编辑

如题,

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

是不是采用状态机?

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


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

可能功能简单,

embeddev_1 发表于 2015-7-6 16:35:24

大道至简才是王道!想复杂,上os,数据链表,甚至一个eeprom都可以整出个文件系统来!{:biggrin:}

hyf88 发表于 2015-7-6 16:38:49

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

需要文件系统吗?

咱能实际点吗?

不要把什么技术名词挂在嘴边,谢谢, {:lol:}

lans0625 发表于 2015-7-6 16:41:53

状态机不错。在FPGA上状态机几乎是万能的。{:tongue:}

Michael_STM 发表于 2015-7-6 16:48:03

我会尽量将驱动层和应用层分开来,开发完后驱动层可以保留下来,以后用到同样的MCU就可以直接拿来用了。

lzly0302 发表于 2015-7-6 16:56:25

事件驱动的模式试试看,有事件才去执行任务

霸气侧漏 发表于 2015-7-6 16:57:16

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

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

hyf88 发表于 2015-7-6 17:04:49

lzly0302 发表于 2015-7-6 16:56
事件驱动的模式试试看,有事件才去执行任务

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

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

XL_J 发表于 2015-7-6 17:27:35

标题不合格,小心ID哦

hyf88 发表于 2015-7-6 17:29:08

XL_J 发表于 2015-7-6 17:27
标题不合格,小心ID哦

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

leafstamen 发表于 2015-7-6 17:30:10

本以为你在分享,没想到你在跪求。

hyf88 发表于 2015-7-6 17:35:06

leafstamen 发表于 2015-7-6 17:30
本以为你在分享,没想到你在跪求。

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

brieve 发表于 2015-7-6 19:05:12

推荐看 量子框架。

foxpro2005 发表于 2015-7-6 19:25:03

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

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

jathenal 发表于 2015-7-7 11:52:32

如果裸机的话,状态机加对象化的确是很好的思路
另外,我觉得LZ这个帖子标题前加上一个“请”字,就没有标题党嫌疑了

huangguimina4 发表于 2015-7-7 11:57:32

赤裸裸的标题党!!!

hyf88 发表于 2015-7-7 12:07:39

把标题改过来了,

onepower 发表于 2015-7-7 14:02:32

简而精的架构 PT, 没有之一

lingdianhao 发表于 2015-7-7 15:03:06

烟雾报警器,,检测到烟雾,马上报警.看来可以用事件驱动.

hyf88 发表于 2015-7-7 16:08:04

onepower 发表于 2015-7-7 14:02
简而精的架构 PT, 没有之一

这是什么架构?PT?

onepower 发表于 2015-7-8 09:52:48

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

blueice1108 发表于 2015-7-8 10:19:44

qp{:lol:}{:lol:}{:lol:}{:lol:}{:lol:}

hyf88 发表于 2015-7-9 16:33:51

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

htt ...

这玩意能用在产品上?

jameszxj 发表于 2015-7-9 16:53:08

个人感觉上个OS能简化不少事,任务调度、超时、信号量等等机制都给你弄好了,
当然如果应用确实很简单,不需要这些,也没非上OS。

hyf88 发表于 2015-7-9 16:54:42

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

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

kinsno 发表于 2015-7-9 16:59:15

hyf88 发表于 2015-7-9 16:54
对啊,,os不敢保证会不会出现问题,不敢使用的,

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

hyf88 发表于 2015-7-9 17:02:27

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

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

有demo可以学习学习吗?

onepower 发表于 2015-7-9 17:46:44

hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?

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

onepower 发表于 2015-7-9 17:47:48

hyf88 发表于 2015-7-9 16:33
这玩意能用在产品上?

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

hyf88 发表于 2015-7-13 09:54:00

onepower 发表于 2015-7-9 17:47
PT没玩好, 还是不要玩OS了, 呵呵!
这玩意的可控性和可维护能力比OS强多了;绝对比OS稳定可靠;
...

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

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

onepower 发表于 2015-7-13 11:34:06

hyf88 发表于 2015-7-13 09:54
哦哦,,谢谢你的指导,受益匪浅啊,

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

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

wind2100 发表于 2015-7-13 15:38:03

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

hyf88 发表于 2015-7-14 08:47:15

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

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

Michael_STM 发表于 2015-8-4 15:57:34

http://users.ece.cmu.edu/~koopman/
绝对高大上
页: [1]
查看完整版本: 请分享一下现在的嵌入式程序框架经验