国产毛片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://m.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ù) 返回頂部 返回列表
主站蜘蛛池模板: 99热久久这里只有精品视频| 亚洲精品视频免费看| 亚洲精品综合久久中文字幕| 天天操天天搞| 欧洲午夜视频| 影音先锋久久| 亚洲骚图| aa级毛片毛片免费观看久| 欧美巨大xxxx做受孕妇视频| 亚洲日产欧| 日本精品高清一区二区2021| 武则天a级片| 亚洲综人网| 精品国产乱码久久久久久人妻| 色婷婷综合激情中文在线| 亚洲国产成人精品激情| 欧美亚洲国产精品久久高清| 日韩亚洲欧美在线| 中文字幕在线看视频一区二区三区| 亚洲欧美专区精品伊人久久| 国产精品外围在线观看| 亚洲精品一二三区区别在哪| 日韩一级特黄毛片在线看| 亚洲a影院| 亚洲另类第一页| 国产婷婷午夜无码A片| 无人视频在线观看免费播放影院 | 嘟嘟嘟WWW在线观看视频高清| 亚洲AV蜜桃永久无码精品红樱桃 | 色综合久久综精品| 亚洲欧美久久精品1区2区| 黑粗硬大欧美在线视频| 中文国产成人精品久久免费| 日韩在线视频一区| 伊人久久大香网| 又大又硬又爽又粗又快的视频免费 | a国产成人免费视频| 小向美奈子厨房magnet| 亚洲麻豆一区| 网红刘婷hd国产高清| 最新91在线|