国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

嵌入式軟件錯誤的五大原因

開發
在嵌入式軟件中發現并消除潛在的bug是一件困難的事情。要從觀察到的崩潰、掛起或其他計劃外運行時行為追溯到根本原因,通常需要付出巨大的努力和昂貴的工具。

 在嵌入式軟件中發現并消除潛在的bug是一件困難的事情。要從觀察到的崩潰、掛起或其他計劃外運行時行為追溯到根本原因,通常需要付出巨大的努力和昂貴的工具。嵌入式開發工程師們常常放棄尋找罕見異常的原因——因為這些異常無法在實驗室中輕易重現——而將其視為“用戶錯誤”或“小故障”,然而,機器中的這些潛在危機仍然一直存在。

因此,這里有一個關于難以重現的固件錯誤最常見的根本原因的指南。

1.堆碎片

嵌入式軟件開發人員并未廣泛使用動態內存分配——這是有充分理由的,其中之一是堆碎片的問題。

通過 C 的 malloc() 標準庫例程或 C++ 的 new 關鍵字創建的所有數據結構都存在于堆中。堆是 RAM 中預先確定的最大大小的特定區域。最初,堆中的每個分配都會將剩余的“可用”空間減少相同的字節數。

不再需要的數據結構的存儲可以通過調用 free() 或使用 delete 關鍵字返回到堆中。從理論上講,這使得該存儲空間可在后續分配期間重復使用。但是分配和刪除的順序通常至少是偽隨機的——導致堆變成一堆更小的碎片。

2.堆棧溢出

每個程序員都知道堆棧溢出是一件非常糟糕的事情™。 但是,每個堆棧溢出的影響各不相同。 損害的性質和不當行為的時間完全取決于破壞了哪些數據或指令以及如何使用它們。重要的是,堆棧溢出與其對系統的負面影響之間的時間長度取決于使用破壞位之前的時間長度。

不幸的是,在嵌入式開發中,堆棧溢出對嵌入式系統的影響遠遠超過對臺式計算機的影響。這有幾個原因,包括:

  • 嵌入式系統通常只能依靠少量的 RAM;
  • 通常沒有可依賴的虛擬內存(因為沒有磁盤);
  • 基于 RTOS 任務的固件設計利用多個堆棧(每個任務一個),每個堆棧的大小都必須足夠大,以確保不會出現唯一的最壞情況堆棧深度;
  • 中斷處理程序可能會嘗試使用這些相同的堆棧。

 

3.缺少“volatile”關鍵字

未能使用 C 的“volatile”關鍵字標記某些類型的變量,可能會導致系統出現許多癥狀,這些癥狀只有在編譯器的優化器設置為低級別或禁用時才能正常工作。 volatile 限定符在變量聲明期間使用,其目的是防止優化該變量的讀取和寫入。

請注意,除了確保對給定變量進行所有讀取和寫入之外,使用 volatile 還會通過添加額外的“序列點”來限制編譯器。對多個 volatile 的訪問必須按照它們在代碼中的寫入順序執行。

4.比賽條件

競爭條件是指兩個或多個執行線程(可以是 RTOS 任務或 main() 加 ISR)的組合結果根據每個指令交錯的精確順序而變化的任何情況。

例如,假設嵌入式開發人員有兩個執行線程,其中一個定期遞增全局變量 (g_counter += 1;),另一個偶爾重置它 (g_counter = 0;)。如果增量不能始終以原子方式執行(即,在單個指令周期中),則此處存在競爭條件。計數器變量的兩次更新之間的沖突可能永遠不會或很少發生。但是當它這樣做時,計數器實際上不會在內存中重置。這種影響可能會對系統產生嚴重后果,盡管可能要等到實際碰撞后很長時間才會發生。

最佳實踐:可以通過圍繞必須以適當的搶占限制行為對原子執行的代碼的“關鍵部分”來防止競爭條件。為了防止涉及 ISR 的競爭條件,必須在其他代碼的關鍵部分期間至少禁用一個中斷信號。在 RTOS 任務之間競爭的情況下,最佳實踐是創建特定于該共享對象的互斥鎖,每個任務必須在進入臨界區之前獲取該互斥鎖。請注意,依靠特定 CPU 的功能來確保原子性并不是一個好主意,因為這只會防止競爭條件,直到更改編譯器或 CPU。

5.不可重入函數

從技術上講,不可重入函數的問題是競爭條件問題的一個特例。 出于這個原因,由不可重入函數引起的運行時錯誤是相似的,也不會以可重現的方式發生——這使得它們同樣難以調試。 不幸的是,與其他類型的競爭條件相比,不可重入函數在代碼審查中也更難發現。

使函數可重入的關鍵是暫停對外圍寄存器、全局變量(包括靜態局部變量)、持久堆對象和共享內存區域的所有訪問的搶占。嵌入式開發人員可以通過禁用一個或多個中斷或通過獲取和釋放互斥鎖來完成,共享數據類型的細節通常決定了最佳解決方案。

責任編輯:華軒 來源: 今日頭條
相關推薦

2011-09-21 09:40:57

軟件項目

2024-05-14 15:04:04

ChatGPT人工智能大型語言模型

2013-07-03 09:54:54

Android蘋果市場份額

2013-01-04 15:36:06

Linux操作系統

2019-09-25 08:29:21

混合云IT云計算

2010-11-10 10:39:14

sql server遠

2023-04-20 15:01:01

光纖銅纜

2013-11-11 09:59:29

Boni Satani遺留系統系統遷移

2018-06-28 14:34:33

物聯網網絡運營商

2012-05-09 10:55:42

VDI

2020-01-31 15:41:22

物聯網設備物聯網智能家居

2022-09-16 13:53:14

ClouderaApache湖倉

2009-01-14 10:14:34

代碼審查軟件開發編程

2021-01-28 09:48:39

UPS電源數據中心

2012-05-01 07:26:46

諾基亞

2013-05-02 09:15:15

2013-06-07 10:08:58

桌面虛擬化虛擬化應用

2010-10-09 09:31:26

2013-06-07 10:04:22

虛擬桌面虛擬化應用

2021-08-31 11:06:28

嵌入式數據庫MySQL
點贊
收藏

51CTO技術棧公眾號

a级网站在线观看| 在线综合视频播放| 性欧美xxxx交| 深夜影院在线观看| 日本女优在线视频一区二区| 久久99亚洲精品| 国产大学生校花援交在线播放| 国产成人福利片| 国产精品永久在线| av影院在线免费观看| 久久久久国产精品厨房| 国产精品久久久久久久av大片| 毛片在线网址| 亚洲柠檬福利资源导航| 五码日韩精品一区二区三区视频| 欧美一区二区三区红桃小说| 欧美一级二级三级乱码| 国产精品久久免费看| 国产又黄又大又粗视频| 91精品国产成人观看| 成人自拍视频网| а天堂中文在线官网| 亚洲成a人片综合在线| 妞干网这里只有精品| 亚洲精品乱码久久久久久久久| 2023欧美最顶级a∨艳星| 一区二区三区中文在线| 成人av高清在线| av电影在线观看一区| 国产精品一区二区久久| 手机亚洲第一页| 成人美女视频在线观看18| 日本婷婷久久久久久久久一区二区| 日本福利一区| 欧美黑人xxxx| 哺乳一区二区三区中文视频| 欧美另类99xxxxx| av在线日韩| 国产视频久久久久久久| 午夜影院免费| 午夜在线电影亚洲一区| 深夜福利在线观看直播| 午夜精品福利久久久| 午夜在线视频播放| 精品久久久久久国产| 国语对白在线视频| 亚洲视频在线观看三级| 国产二区在线播放| 精品久久久久久久久久久久久久久| www在线观看播放免费视频日本| 欧美日韩精品一区二区天天拍小说 | 久久伊人色综合| 亚洲一区二区免费在线观看| 国精产品一区一区三区有限在线| 国产欧美日韩| 337p亚洲精品色噜噜噜| 怡红院红怡院欧美aⅴ怡春院| 在线日韩中文字幕| 日韩av免费在线看| 国产福利免费在线观看| 日韩免费电影网站| 日本免费一区二区三区最新| 欧美日韩黄色大片| 中文字幕日本一区二区| 成人高清视频观看www| 秋霞影院一区二区| 亚洲激情在线观看视频| 黑人巨大精品欧美一区二区| 欧美精品中文字幕一区二区| 亚洲三级影院| xxxx18hd亚洲hd捆绑| 午夜精品久久久久久不卡8050| 黄色成人在线网| 亚洲18私人小影院| 国产不卡视频一区| 日韩欧美国产午夜精品| 91精品短视频| 亚洲午夜精品国产| 91国偷自产一区二区开放时间 | 日本欧美日韩| 9.1国产丝袜在线观看| 91在线观看一区二区| 日韩激情电影| 99久久99久久精品| 日韩在线观看网站| 99久久久久久99| 久草福利在线| av色综合网| 欧美一级久久久| 国产成人免费xxxxxxxx| 国产精品高清一区二区| 成人网址大全| 成人午夜两性视频| 午夜精品视频一区| 91亚洲成人| 婷婷国产在线| 97超级在线观看免费高清完整版电视剧| 26uuu国产日韩综合| 2014亚洲精品| 国产v日韩v欧美v| 久久久精品动漫| 欧美色爱综合网| 国产综合久久久| 成人图片小说| 国产精品丝袜久久久久久不卡| 国产人成一区二区三区影院| 免费欧美电影| 国产乱视频在线观看| 久久精品免费网站| 亚洲一区在线免费| 国产欧美一区二区三区另类精品 | www 四虎| 日本中文字幕网址| 一区二区三区在线观看www| 亚洲999一在线观看www| 亚洲精品99久久久久中文字幕| 91在线精品秘密一区二区| 亚洲精品成人| 久久香蕉精品香蕉| 奇米777日韩| 欧美三级理伦电影| 特黄国产免费播放| 超碰影院在线观看| 一区二区三区视频| 亚洲精品免费在线视频| 情事1991在线| 亚洲国产一区二区在线观看| 啊啊啊啊啊啊啊视频在线播放| 亚洲熟妇无码一区二区三区导航| 亚洲欧洲精品在线| 久久免费国产视频| 色婷婷av一区| 欧美高清视频不卡网| 日韩一区二区三区在线观看| 678五月天丁香亚洲综合网| 91精品国模一区二区三区| 在线播放视频一区| 日韩第一页在线| 91极品美女在线| 欧美一区二区三区系列电影| 久久久999成人| 国产欧美一区二区三区在线| av成人观看| 国产精品av免费| 国产精品99久久99久久久| 黄色av网站在线观看| a级毛片免费观看在线| 日韩亚洲精品在线观看| 国产一区二区区别| 裸体在线国模精品偷拍| 国产精品女人毛片| 欧美一区二区观看视频| 日韩一区二区久久久| 精品国产免费人成电影在线观... 精品国产免费久久久久久尖叫 | 日韩精品一区二| 国产伦精品免费视频| 国产精品一二三在线观看| 亚洲欧洲动漫| 九一国产精品| 亚洲欧洲99久久| 精品国产一区二区在线 | 99视频精品全部免费在线| 日韩欧美国产网站| 欧美最猛性xxxx| 国产wwwxx| 亚洲免费一区三区| 99国内精品久久| 亚洲女人被黑人巨大进入al| 国产亚洲二区| 高清日韩av电影| 欧美日本不卡高清| 午夜电影一区二区三区| 日韩在线免费视频| 欧美日韩免费精品| 深夜福利视频在线观看| 国产一区二区精品久| 97se亚洲国产综合在线| 亚洲欧美日韩在线高清直播| 免费在线观看91| 免费毛片在线看片免费丝瓜视频 | 亚洲高清在线观看一区| 亚洲一区二区三区精品中文字幕| 欧美日韩在线网站| 亚洲电影一级黄| 超碰97国产在线| 97caopron在线视频| 麻豆91在线观看| 一区二区欧美激情| 天天干天天色天天爽| 18videosex性欧美麻豆| 免费成人在线观看视频| 久久久国产精品| 一区二区三区欧美日韩| 国产精品久久久久久久av电影| 777视频在线观看| 亚洲一区欧美| 日韩免费电影网站| eeuss中文| 大奶一区二区三区| 欧美日韩在线二区|