
嵌入式C高質(zhì)量編程培訓(xùn)
了解C語言的嵌入式開發(fā)特性
了解和性能有關(guān)的編碼要素
了解嵌入式C程序的常見組織風(fēng)格
了解如何采用C進(jìn)行面向編程
掌握如何建立程序的性能
掌握如何進(jìn)行可靠性設(shè)計(jì)、監(jiān)測并處理可靠性問題
掌握如何建立可測試性,
掌握如何進(jìn)行嵌入式C白盒測試
掌握如何進(jìn)行嵌入式C代碼評審,
掌握如何定位嵌入式C質(zhì)量缺陷并進(jìn)行代碼重構(gòu)
嵌入式C關(guān)鍵特性
嵌入式C編程基礎(chǔ)
變量與內(nèi)存分配機(jī)制
函數(shù)與調(diào)用原理
條件控制語句
常量和變量
指針和函數(shù)指針
設(shè)計(jì)中斷函數(shù)
關(guān)鍵字static,extern,volatile,inline
位操作的應(yīng)用
結(jié)構(gòu)體中的位域
嵌入式C編碼風(fēng)格
變量、函數(shù)、宏的命名
代碼排版與布局
注釋的策略
indent工具
為代碼編寫文檔
嵌入式C性能優(yōu)化
使用宏和inline
使用寄存器變量
內(nèi)嵌匯編
利用硬件特性
循環(huán)展開
使用查找表
緊湊的C代碼并不能保證得到高效的機(jī)器代碼
編譯優(yōu)化
嵌入式C軟件結(jié)構(gòu)
嵌入式C軟件模塊與模塊劃分
模塊劃分原則
源代碼文件和目錄的組織
硬件驅(qū)動模塊
軟件功能模塊
提供API
頭文件
全局變量
主循環(huán)與中斷
軟件的分層結(jié)構(gòu)
嵌入式C函數(shù)
一個(gè)函數(shù)只做一件事,不要編寫多種功能集于一身的函數(shù)
明確地定義函數(shù)的參數(shù)
避免比爾類型參數(shù)
編寫函數(shù)使其在給定有效的輸入情況下不會失敗
函數(shù)不依賴于另一個(gè)函數(shù)的內(nèi)部細(xì)節(jié)
函數(shù)要小且容易測試
函數(shù)內(nèi)部代碼塊
嵌入式C的面向?qū)ο?
用struct來模擬class
封裝
繼承
重載
數(shù)據(jù)結(jié)構(gòu)的抽象
代碼質(zhì)量
嵌入式C防御性編程
防御性代碼的風(fēng)格
編譯警告開關(guān)的使用
預(yù)計(jì)所有可能的異常
檢查所有的返回值
審慎處理內(nèi)存資源
變量聲明策略
審慎地進(jìn)行強(qiáng)制轉(zhuǎn)換
盡量用可移植的數(shù)據(jù)類型
使用lint來查出編譯程序漏掉的錯(cuò)誤
使用斷言
嵌入式C白盒測試
TDD與單元測試
單元測試與Debug
單元測試用例設(shè)計(jì)
即使測試代碼會影響進(jìn)度,也要堅(jiān)持測試代碼
測試代碼的責(zé)任不在測試員身上,而是程序員自己的責(zé)任
嵌入式C代碼評審
代碼評審的規(guī)范
代碼評審的組織方式
代碼評審的內(nèi)容
結(jié)合配置管理強(qiáng)制代碼評審
嵌入式C代碼重構(gòu)
代碼重構(gòu)的原則
重新命名函數(shù)
提煉函數(shù)
提煉判斷條件
簡化函數(shù)參數(shù)
解除全局變量的噩夢
避免函數(shù)傳遞中的隱形bug
調(diào)整函數(shù)位置