版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)程序設(shè)計規(guī)范內(nèi)部培訓(xùn)培訓(xùn)內(nèi)容:單片機(jī)程序設(shè)計規(guī)范培訓(xùn)目的:讓員工培養(yǎng)好的編程習(xí)慣,了解、掌握編程規(guī)范;統(tǒng)一部門編程風(fēng)格,保證程序編寫質(zhì)量,提高程序的可移植性和維護(hù)性單片機(jī)程序設(shè)計規(guī)范一、程序質(zhì)量的評估程序的優(yōu)劣可以從兩個方面進(jìn)行評估,定量指標(biāo)和定性指標(biāo)。(1)定量指標(biāo)包括:
1)程序代碼執(zhí)行效率;
2)程序占用資源多少。2024/1/4單片機(jī)程序設(shè)計規(guī)范(2)定性指標(biāo)包括:
1)可調(diào)試性,即是否方便排除程序語法錯誤;
2)可測試性,即是否方便驗證程序功能的正確性;
3)可維護(hù)性,即是否方便程序的修改和升級;
4)可移植性;
5)可讀性。2024/1/4二、程序架構(gòu)應(yīng)用層、界面層和底層驅(qū)動層1)底層驅(qū)動層主要包含直接和硬件相關(guān)的驅(qū)動程序,如數(shù)碼管顯示、按鍵、峰鳴器、繼電器和電機(jī)控制等。底層的各個模塊間要保持各自的獨立性,不產(chǎn)生直接的數(shù)據(jù)交互,底層也不直接訪問應(yīng)用層,如果有需要,都要通過界面層進(jìn)行數(shù)據(jù)交互2)界面層主要提供數(shù)據(jù)交互,為應(yīng)用層和底層驅(qū)動之間以及底層驅(qū)動層各模塊之間提供數(shù)據(jù)的交互。3)應(yīng)用層主要完成具體功能的實現(xiàn),它要通過界面層控制底層驅(qū)動層各模塊來完成所需功能,而不能越過界面層直接訪問底層驅(qū)動層。所有的用戶接口要在應(yīng)用層來實現(xiàn).2024/1/4三、設(shè)計基本原則
1)盡量減少各個子程序功能模塊間的耦合度(耦合度是指一個程序的執(zhí)行對另一個程序的影響力),保證各自的獨立性。一般情況下,建議子程序模塊功能的劃分要盡可能細(xì)化,功能盡量單一,減少子程序模塊間的數(shù)據(jù)交互。
2)在滿足功能需求的情況下,可適當(dāng)犧牲代碼的執(zhí)行速度,以保證程序的透明度。
3)主要子程序模塊間的交互,要通過特定的界面跟應(yīng)用層進(jìn)行溝通,可使用FIFO(Firstin,F(xiàn)irstout)或是Buffer兩種方式。每種子程序模塊都可以有自己的FIFO。例如:就按鍵來說,一般有Keybuffer、KeyFIFO或直接進(jìn)入APFIFO三種設(shè)計方式2024/1/410)中斷處理程序應(yīng)盡量短。有效的作法為:在中斷中進(jìn)行標(biāo)記,在主程序中進(jìn)行處理。但一些實時性要求較高的程序例外。此外,進(jìn)入中斷時應(yīng)該保存涉及到的變量和寄存器。11)看門狗的正確使用??撮T狗主要用于微控制器死機(jī)時的時間溢出復(fù)位,需要程序適時清除。正確的處理方式為:整個系統(tǒng)程序中盡量保證只有一處清看門狗位置,而且應(yīng)處在主循環(huán)的主干位置。切記不可在定時中斷中清狗,因為微控制器有時只是在主循環(huán)中死掉。2024/1/4四、排版風(fēng)格1、程序采用縮進(jìn)風(fēng)格編寫,縮進(jìn)為1個Tab鍵,1個Tab鍵定義為8個空格位。2、程序中的標(biāo)號要從第一列開始書寫。以“.”開頭的預(yù)編譯命令也要從第一列開始書寫,其他預(yù)編譯命令采用縮進(jìn)風(fēng)格編寫。3、定義變量或常量時,變量名或常量名與命令符之間使用2個Tab鍵(相當(dāng)于16個空格位)分開,命令符與后面的操作數(shù)用1個Tab鍵(相當(dāng)于8個空格位)分開。4、程序語句后面若有注釋,所有的注釋要遵守上下對齊的原則。2024/1/4五、注釋1.程序應(yīng)該包括兩個部分注釋,說明部分和語句注釋。一般情況下,源程序有效注釋量必須在30%以上。2.說明部分:
1)源文件說明部分位于每個源文件的最前面,主要描述:文件名、作者、生成日期、聯(lián)絡(luò)方式、功能描述、版本號、軟硬件平臺、版權(quán)說明、修改記錄等的簡要說明,以英文書寫。2)子程序說明部分位于每個子程序的最前面,主要描述:子程序名稱、功能、設(shè)計原理、所用變量、入口條件、出口信息、調(diào)用模塊、堆棧層數(shù)、影響資源、算法簡述、使用說明和修改記錄等。2024/1/43.邊寫代碼邊注釋,修改代碼的同時修改相應(yīng)注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。4.要避免在注釋中使用縮寫,特別是非常用縮寫。5.程序在必要的地方必須有注釋,注釋要準(zhǔn)確、易懂、簡潔。注釋要有意義,如果有需要,還要詳細(xì)描述相關(guān)含義。6.注釋格式盡量統(tǒng)一,對多行注釋建議使用“/*……*/”,對單行的注釋建議使用“;”
7.對有含義的變量、常量,如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其含義。2024/1/4六、命名規(guī)則1.變量的名稱要采用有意義的英文單詞或縮寫,如key、buffer2.局部無特殊含義變量i,j,k等3.臨時變量tem、tmp等開頭,長度、計數(shù)采用len、num、count等4.在定義部分要加入注釋來說明變量的含義。5.函數(shù)名用小寫字母命名,每個詞的第一個字母大寫,并將模塊標(biāo)識加在最前面。2024/1/4七、函數(shù)設(shè)計規(guī)范(1)函數(shù)的基本要求:正確性:程序要實現(xiàn)設(shè)計要求的功能。穩(wěn)定性和安全性:程序運行穩(wěn)定、可靠、安全。可測試性:程序便于測試和評價。規(guī)范/可讀性:程序書寫風(fēng)格、命名規(guī)則等符合規(guī)范。擴(kuò)展性:代碼為下一次升級擴(kuò)展留有空間和接口。全局效率:軟件系統(tǒng)的整體效率高。局部效率:某個模塊/子模塊/函數(shù)的本身效率高。2024/1/4(2)編制函數(shù)的基本原則:單個函數(shù)的規(guī)模盡量限制在200行以內(nèi)(不包括注釋和空行)。一個函數(shù)只完成一個功能。函數(shù)局部變量的數(shù)目一般不超過5~10個。函數(shù)內(nèi)部局部變量定義區(qū)和功能實現(xiàn)區(qū)(包含變量初始化)之間空一行。函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。通常使用動賓詞組為執(zhí)行某操作的函數(shù)命名。函數(shù)的返回值要清楚明了,尤其是出錯返回值的意義要準(zhǔn)確無誤。不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。2024/1/4八、模塊化編程規(guī)范簡介模塊化編程主要實現(xiàn)方法:宏定義、函數(shù)、文件1)宏定義是C語音的一種預(yù)處理的方法,可以通過宏定義實現(xiàn)簡單的模塊預(yù)處理2)利用函數(shù)形式實現(xiàn)某個基礎(chǔ)功能。通過形參、實參、返回值等實現(xiàn)調(diào)用3)文件即是一個.c文件和一個.h文件的結(jié)合,頭文件(.h)中是對于該模塊接口的聲明;這一條概括了模塊化的實現(xiàn)方法和實質(zhì):將一個功能模塊的代碼單獨編寫成一個.c文件,然后把該模塊的接口函數(shù)放在.h文件中.2024/1/4(1)模塊化編程設(shè)計步驟1)、創(chuàng)建頭文件在模塊化編程中,往往會有多個C文件,而且每個C文件的作用不盡相同。在我們的C文件中,由于需要對外提供接口,因此還必須有一些函數(shù)或者是變量提供給外部其它文件進(jìn)行調(diào)用。對于每一個模塊都有相應(yīng)的.c文件和.h文件,為了閱讀調(diào)試方便,原則上.c文件和.h文件同名,如delay.c和delay.h頭文件的作用可以稱其為一份接口描述文件。2024/1/42)代碼封裝將需要模塊化的進(jìn)行代碼封裝,如:串口通信模塊,將串口初始化、數(shù)據(jù)接收、數(shù)據(jù)發(fā)送函數(shù)進(jìn)行封裝3)編譯、調(diào)試、測試4)使用源文件(將文件加到工程之中)將.c文件添加到工程之中,同時在需要調(diào)用.h文件中的宏或函數(shù)的.c文件中將.h文件包含進(jìn)去(.h文件中的宏和函數(shù)可以在.c文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度飛機(jī)租賃與飛行員培訓(xùn)服務(wù)合同3篇
- 2025屆江蘇蘇州市四校高三12月聯(lián)考語文試題(學(xué)生版)
- 兒童身體協(xié)調(diào)性訓(xùn)練考核試卷
- 公路客運服務(wù)投訴處理與改進(jìn)考核試卷
- 2025版木屋建筑工程質(zhì)量保修合同示范文本4篇
- 2025版學(xué)校小賣部環(huán)保購物袋定制與銷售合同2篇
- 2025年分期美食體驗券購買合同
- 2025年養(yǎng)老保險擔(dān)保合同
- 2025年嬰童用品贈與合同
- 2025年倉庫貨物清點協(xié)議
- 中央2025年國務(wù)院發(fā)展研究中心有關(guān)直屬事業(yè)單位招聘19人筆試歷年參考題庫附帶答案詳解
- 2024年09月北京中信銀行北京分行社會招考(917)筆試歷年參考題庫附帶答案詳解
- 外呼合作協(xié)議
- 小學(xué)二年級100以內(nèi)進(jìn)退位加減法800道題
- 保險公司2025年工作總結(jié)與2025年工作計劃
- 2024年公司領(lǐng)導(dǎo)在新年動員會上的講話樣本(3篇)
- 眼科護(hù)理進(jìn)修專題匯報
- GB/T 33629-2024風(fēng)能發(fā)電系統(tǒng)雷電防護(hù)
- 深靜脈血栓(DVT)課件
- 2023年四川省廣元市中考數(shù)學(xué)試卷
- GB/T 19885-2005聲學(xué)隔聲間的隔聲性能測定實驗室和現(xiàn)場測量
評論
0/150
提交評論