国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

一線研發(fā)之聲:嵌入式C編程經(jīng)驗 之 只有一條清狗語句

發(fā)布時間:2012-2-21 14:00    發(fā)布者:絕對好文
關(guān)鍵詞: c語言 , SedateFire , 看門狗 , 清狗
/*****************************************************************
* Filename:    研發(fā)之聲:嵌入式C編程經(jīng)驗 只有一條清狗語句
* Author:SedateFire                            E-mail:SedateFire@126.com   
* Version:1.000                                   Time: 2012-01-05   
* key: 看門狗   系統(tǒng)架構(gòu)  os-less  嵌入式
********************************************************************/

一個好的os-less系統(tǒng),只有一條清狗語句,它位置就固定在main函數(shù)中的
while(1)  /* or for(;;;) */
{
          __watchdog_reset();
}

如果你有兩條以上看門狗語句,那么會有什么后果呢? 在系統(tǒng)足夠復(fù)雜的時候,很能引起當(dāng)機,由于靜電或者程序自身邏輯的原因,進(jìn)入了某個思維的盲點,系統(tǒng)進(jìn)入一個有清狗語句的死循環(huán)里面,退不出來。這是最危險的,尷尬的,蒙羞的事情。

那么多出來的清狗語句,一般會用在哪里呢?

1.  系統(tǒng)初始化,有些設(shè)備初始化需要讀取它的反饋狀態(tài),用while,擔(dān)心復(fù)位,于是清狗。我一般用While (dev_read_status() && (i--)),這個i,32位頂天了。一般mcu沒這么快法。

2. mcu睡眠前清狗。有些人喜歡在系統(tǒng)進(jìn)入睡眠前清狗一下,擔(dān)心系統(tǒng)剛好在那一刻復(fù)位。這只能說明你對自己的程序不了解,主回圈程序一圈下來,最大執(zhí)行時間其實心中有數(shù)。函數(shù)多少深度寬度心中要有低。如果剛好睡眠前一刻復(fù)位,那也有可能在跑別的函數(shù)過程中復(fù)位。

3.   某些應(yīng)用邏輯貌似要需要hold住,比如屏幕的暫停顯示2秒鐘等。許多人生生地把這種邏輯做成“硬延時”,就是死等。這是一個令人戚眉的做法,因為這意味麻煩的開始。在你需要暫停顯示n秒的過程中,我的一切用戶體驗?zāi)銦o法響應(yīng)我了,按鍵沒反應(yīng),蜂鳴器不響,led燈不閃爍,一切好像死機了一樣。等到系統(tǒng)顯示完成后,用戶心中大舒一口氣,心中懸石落地,你終于又回氣兒活過來了。這是糟糕的體驗。

好吧,為了改善體驗,許多人就想辦法來。把用戶體驗搬到中斷里面做,這是另外一個麻煩的開始,全局變量的增多和跨模塊的判斷,其根源之一始于此,弄個不好,就是隨機性崩潰。中斷程序變胖,終究是不方便的,于是為了改進(jìn),就只好在中斷程序中置標(biāo)志位,然后在hold_delay(TIME)函數(shù)的循環(huán)中清狗,并且判斷標(biāo)志位作響應(yīng)動作。許多應(yīng)用邏輯需要hold住的地方何其多,上九天下地府處處添加,函數(shù)深度不可測,邏輯遞歸難判斷,系統(tǒng)大亂的禍患就此埋下。

那如何解決呢,事件--狀態(tài)機,一句話概括,在當(dāng)前狀態(tài)下,遇到某某事件,則執(zhí)行什么動作后,進(jìn)入下一個狀態(tài)。它似表非表,如水般自然,像空氣般無痕……好了,其實是我不愿多講,若要具體講下去,恐怕涉及公司知識產(chǎn)權(quán)。盡管這個事件狀態(tài)機思想是個公開的秘密,原理大家都懂,但做得好的還不多見。Hold住本身就是一種狀態(tài),看你如何抽象它了。

佛曰:菩薩畏因,凡夫畏果。那災(zāi)難之源,是需要敬畏戒懼的,待到結(jié)果發(fā)生,悔之莫及。
本文地址:http://www.qingdxww.cn/thread-86284-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點和對其真實性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 菊花综合网| 青青青视频精品中文字幕 | 伊人222综合| 国产黄a三级三级三级 | 国产午夜精品理论片 | 视频一区二区在线 | 国产精品嫩草影院在线看 | 久久网页 | 欧美日本在线一区二区三区 | 国产一区二区三区在线免费观看 | 国产一级三级三级在线视 | 国产一级做a爰片在线 | 99精品在线观看 | 欧美成人免费xxx大片 | 国产成人精品免费影视大全 | 免费黄色高清视频 | 国产免费a | 欧美日操| 成黄动漫免费在线看 | 手机看片在线精品观看 | 婷婷激情狠狠综合五月 | 亚洲毛片免费视频 | 狠狠色狠狠色综合日日小蛇 | 久久中文字幕一区二区三区 | 国产一在线观看 | 麻豆久久婷婷国产综合五月 | 一级毛片免费观看久 | 久久香蕉国产线看精品 | 成熟女人免费一级毛片 | 免费国产在线视频 | 国产极品白嫩超清在线观看 | 久久三级网站 | 久久精品一区二区国产 | 波多野结衣四虎精品影库 | 亚洲一区精品视频在线 | 青草久久伊人 | 欧美国产成人免费观看永久视频 | 女人18毛片a级毛片一区二区 | 久久久久久久99久久久毒国产 | 日韩亚洲欧洲在线com91tv | 中文国产成人精品少久久 |