99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

MCU編寫程序要注重效率和穩(wěn)定及可靠性

http://blog.21ic.com/more.asp?name=hotpower&id=31019

HotPower 發(fā)表于 2006-10-22 22:27 侃單片機 ←返回版面   舉報該貼

最近看了很多的研究生編的程序很是"難受"~~~

例:

count ++;

if (count == 128) count = 0;

粗看上去沒任何問題.但在MCU/DSP/ARM的編程中就大不相同了.

這在PC中沒問題,但在工業(yè)現(xiàn)場問題就來了.

大家都知道可能在出現(xiàn)干擾時,RAM是會"被改寫"的.

假如count是個long型的或即使是char型的.

令count初值=0,那么在count在128前有可能被改寫為大于128的值.

這樣將會帶來不可預測的后果,最簡單的就是數(shù)組的溢出或延時控制設(shè)備不能被及時關(guān)閉...

再者,在有流水線的CPU中,jmp/call等改變PC的操作都會破壞流水線,這樣就降低了程序運行的效率.

故應該這樣改為好(防止數(shù)組的溢出時常用):

count ++;

count &= 0x7f;

若在滿足條件且需處理其他事件或任務時,則必須使用這樣的語句.

但也要這樣改為好:

count ++;

if (count >= 128) {

/*-----在此處理其他事件或任務*/

  count = 0;

}

注意這里將==改為>=了.

改動雖小,但可靠性提高了很多.特別在防止數(shù)組的溢出時很有必要.

像ARM/DSP經(jīng)常在RAM中運行,代碼和數(shù)據(jù)是"粘連"的,RAM"數(shù)據(jù)"的毀壞難道

RAM"程序"能有好日子過嗎???

所以要從"小事"做起,不要以后老"跪求bug"~~~




http://hotpower.21ic.org
全部回復(3)
正序查看
倒序查看
wayhe
LV.4
2
2006-10-26 00:12
好貼,頂一下.
0
回復
hotpower
LV.5
3
2006-10-26 00:20
@wayhe
好貼,頂一下.
0
回復
金狐貍
LV.3
4
2006-11-14 20:52
@hotpower
哈哈~~~這里真不是學習MCU的地方~~~http://www.daxia.com/bbs/search2.asp?word=hotpower&sele=2http://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=2302245
支持一下,講的很不錯的,學習了.
0
回復
發(fā)
主站蜘蛛池模板: 亚洲精品永久在线观看 | 国产一区二区0 | 亚洲视频成人在线 | 日韩人妻无码喷潮中出 | 最新国产の精品合集bt伙计 | 日韩h网站| 印度毛茸茸bbbbxxxx | 新版天堂资源中文www官网 | 欧美国产日韩在线 | 国产精品网站在线观看 | 99久久综合狠狠综合 | 欧美日韩精品一区二区三区在线观看 | av一级黄色 | 亚洲人成网站在线观看妞妞网 | 一区二区三区在线免费 | 在线国产精品一区 | 多人调教到高潮失禁h重口文 | 欧美性free玩弄少妇 | 久一在线| 亚洲黄色在线免费观看 | 一女三男做2爱A片免费 | 欧美激情一区在线 | 欧美亚洲一级片 | 韩国三级中文字幕HD | 欧美一区二区三区久久精品视 | 偷拍东北熟女BBWW | 国产精品www | 永久黄网站色视频免费 | 欧美人与动性xxxxx杂 | 成人羞羞国产免费 | 国产成人精品日本亚洲第一区 | 中日黄色一级片 | 国产成人涩涩涩视频在线观看 | 67194成在线观看免费 | 免费国无人区码卡二卡 | 色一欲一性一乱一区二区三区 | 99热网| 欧美日本一 | 国产AⅤ爽AV久久久久玉浦团 | 日韩欧精品无码三级片 | 国产精品全新69影院在线看 |