中国自动化学会专家咨询工作委员会指定宣传媒体
免费注册 登录 广告服务 | 客服中心
您现在所在的是:

嵌入式系统

抖音 德嘉 泓格论坛 FLIR红外热像论坛
工控论坛首页 嵌入式系统 → 浏览主题: HZJ和WOD编程心得体会1(qzm)
发表新帖 回复该主题
回帖:0个,阅读:462 [上一页] [1] [下一页]
* 帖子主题:

HZJ和WOD编程心得体会1(qzm)

分享到
1137
xingsharp
文章数:119
年度积分:48
历史总积分:1137
注册时间:2005/3/2
发站内信
08年优秀博客奖
发表于:2010/7/24 15:49:17
#0楼

[URL=http://cid-788b55d4b3e33e0c.spaces.live.com/blog/cns!788b55d4b3e33e0c!1982.entry?&_c02_vws=1]
hzj和wod编程心得体会1
[/URL]
1)复杂的embedded system 用os是必然的选择
2)wod和mcu之间的连网用rs422是可行的,但如果价格不敏感的话选用更复杂的can甚至以太网更为可行,因为低层的联网软件上的开销在复杂的通信时很大,而can和以太网在硬件上处理了复杂的网际通信之间的错误检测和恢复,我们要做的只是和它们的接口连接上就行。
3)高速通信一定要用dma,不然就要降低通信的速度(也可选择那些有fifo buf并有buf满中断或idle中断的芯片),因为在多线程编程中,高速的轮询某个“资源”的“pm”(编程模型)是个不好甚至可以说是整个系统的稳定性的一个隐患,因为在系统的功能不断扩展时,越来越多的资源会“要求”占用cpu资源,而高速的polling是整个系统的瓶径所在!
4)在具有多个并行运行进程的系统中不要使用eeprom之类的ms级的存储器,而应使用fmram。
5) while(1)的线程在每次loop之后都应该自动释放资源一定的时间(特别是高优先级的线程),不然会导致低优先级的线程得不到时间片。如果某线程确实不需要os_dly_wait fun,比如有的线程在开始时会阻塞并等待特定的条件a才运行,这样的线程可能不需要os_dly_wait,但要非常小心,因为当条件a由于某些原因,一直得到满足,从而使线程一直占用cpu时间,那么也会导致低优先级的线程得不到cpu时间。
6)用于定义作为定时计数的timer的优先级不能太低,不然在task1中一个函数中调用了基于timer的超时判断,由于一个比timer高优先级的中断不断地在发生,使得timer的中断计数比正常时慢很多,这样就会造成实质上超时了,但由于timer走得慢,变得函数不超时。(5星,极易忽视!!!!!)
----------------------------------------------
此篇文章从博客转发
原文地址: Http://blog.gkong.com/more.asp?id=120077&Name=zjcsharp
工控学堂推荐视频:

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

31.2002