欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3743|回復: 0
打印 上一主題 下一主題
收起左側

編寫優質嵌入式C程序-裸機環境(76頁word文檔)極力推薦

[復制鏈接]
跳轉到指定樓層
樓主
前言:這是一年前我為公司內部寫的一個文檔,旨在向年輕的嵌入式軟件工程師們介紹如何在裸機環境下編寫優質嵌入式C程序。感覺是有一定的參考價值,所以拿出來分享,拋磚引玉。

摘要:本文首先分析了C語言的陷阱和缺陷,對容易犯錯的地方進行歸納整理;分析了編譯器語義檢查的不足之處并給出防范措施,以Keil MDK編譯器為例,介紹了該編譯器的特性、對未定義行為的處理以及一些高級應用;在此基礎上,介紹了防御性編程的概念,提出了編程過程中就應該防范于未然的多種措施;提出了測試對編寫優質嵌入式程序的重要作用以及常用測試方法;最后,本文試圖以更高的層次看待編程,討論一些通用的編程思想。
1.    簡介
2.    C語言特性
1.    1處處都是陷阱
1.    11 無心之過
2.    12 數組下標
3.    13 容易被忽略的break關鍵字
4.    14 意想不到的八進制
5.    15指針加減運算
6.    16關鍵字sizeof
7.    17增量運算符和減量運算符
8.    18邏輯與和邏輯或的陷阱
9.    19結構體的填充
2.    2不可輕視的優先級
3.    3隱式轉換
3.    編譯器
1.    1不能簡單的認為是個工具
2.    2不能依賴編譯器的語義檢查
1.    21莫名的死機
2.    22不起眼的改變
3.    23 難查的數組越界
4.    24神奇的volatile
5.    25局部變量
6.    26使用外部工具
3.    3你覺得有意義的代碼未必正確
1.    31常見的未定義行為
2.    32如何避免C語言未定義行為
4.    4 了解你的編譯器
1.    41編譯器的一些小知識
2.    42初始化的全局變量和靜態變量的初始值被放到了哪里
3.    43在C代碼中使用的變量編譯器將他們分配到RAM的哪里
4.    44默認情況下棧被分配到RAM的哪個地方
5.    45 有多少RAM會被初始化
6.    46 MDK編譯器如何設置非零初始化變量
4.    防御性編程
1.    1具有形參的函數需判斷傳遞來的實參是否合法
2.    2仔細檢查函數的返回值
3.    3 防止指針越界
4.    4 防止數組越界
5.    5 數學算數運算
1.    51除法運算只檢測除數為零就可靠嗎
2.    52檢測運算溢出
3.    53檢測移位
6.    6如果有硬件看門狗則使用它
7.    7關鍵數據儲存多個備份取數據采用表決法
8.    8對非易失性存儲器進行備份存儲
9.    9軟件鎖
10.    10通信
11.    11開關量輸入的檢測確認
12.    12開關量輸出
13.    13初始化信息的保存和恢復
14.    14陷阱
15.    15阻塞處理
5.    測試再測試
1.    1使用硬件調試器測試
2.    2有些缺陷很難纏
1.    21簡單易用的調試函數
2.    22對調試函數進一步封裝
6.    編程思想
1.    1編程風格
1.    11 整潔的樣式
2.    12清晰的命名
3.    13恰當的注釋
2.    2數據結構
7.    總結和閱讀書目
1.    1關于語言特性
2.    2關于編譯器
3.    3關于防御性編程
4.    4關于編程思想


完整的word格式文檔51黑下載地址:
編寫優質嵌入式C程序.docx (339.55 KB, 下載次數: 80)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表