版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
單片機程序設計規(guī)范內部培訓培訓內容:單片機程序設計規(guī)范培訓目的:讓員工培養(yǎng)好的編程習慣,了解、掌握編程規(guī)范;統(tǒng)一部門編程風格,保證程序編寫質量,提高程序的可移植性和維護性單片機程序設計規(guī)范一、程序質量的評估程序的優(yōu)劣可以從兩個方面進行評估,定量指標和定性指標。(1)定量指標包括:
1)程序代碼執(zhí)行效率;
2)程序占用資源多少。2024/1/4單片機程序設計規(guī)范(2)定性指標包括:
1)可調試性,即是否方便排除程序語法錯誤;
2)可測試性,即是否方便驗證程序功能的正確性;
3)可維護性,即是否方便程序的修改和升級;
4)可移植性;
5)可讀性。2024/1/4二、程序架構應用層、界面層和底層驅動層1)底層驅動層主要包含直接和硬件相關的驅動程序,如數碼管顯示、按鍵、峰鳴器、繼電器和電機控制等。底層的各個模塊間要保持各自的獨立性,不產生直接的數據交互,底層也不直接訪問應用層,如果有需要,都要通過界面層進行數據交互2)界面層主要提供數據交互,為應用層和底層驅動之間以及底層驅動層各模塊之間提供數據的交互。3)應用層主要完成具體功能的實現(xiàn),它要通過界面層控制底層驅動層各模塊來完成所需功能,而不能越過界面層直接訪問底層驅動層。所有的用戶接口要在應用層來實現(xiàn).2024/1/4三、設計基本原則
1)盡量減少各個子程序功能模塊間的耦合度(耦合度是指一個程序的執(zhí)行對另一個程序的影響力),保證各自的獨立性。一般情況下,建議子程序模塊功能的劃分要盡可能細化,功能盡量單一,減少子程序模塊間的數據交互。
2)在滿足功能需求的情況下,可適當犧牲代碼的執(zhí)行速度,以保證程序的透明度。
3)主要子程序模塊間的交互,要通過特定的界面跟應用層進行溝通,可使用FIFO(Firstin,F(xiàn)irstout)或是Buffer兩種方式。每種子程序模塊都可以有自己的FIFO。例如:就按鍵來說,一般有Keybuffer、KeyFIFO或直接進入APFIFO三種設計方式2024/1/410)中斷處理程序應盡量短。有效的作法為:在中斷中進行標記,在主程序中進行處理。但一些實時性要求較高的程序例外。此外,進入中斷時應該保存涉及到的變量和寄存器。11)看門狗的正確使用。看門狗主要用于微控制器死機時的時間溢出復位,需要程序適時清除。正確的處理方式為:整個系統(tǒng)程序中盡量保證只有一處清看門狗位置,而且應處在主循環(huán)的主干位置。切記不可在定時中斷中清狗,因為微控制器有時只是在主循環(huán)中死掉。2024/1/4四、排版風格1、程序采用縮進風格編寫,縮進為1個Tab鍵,1個Tab鍵定義為8個空格位。2、程序中的標號要從第一列開始書寫。以“.”開頭的預編譯命令也要從第一列開始書寫,其他預編譯命令采用縮進風格編寫。3、定義變量或常量時,變量名或常量名與命令符之間使用2個Tab鍵(相當于16個空格位)分開,命令符與后面的操作數用1個Tab鍵(相當于8個空格位)分開。4、程序語句后面若有注釋,所有的注釋要遵守上下對齊的原則。2024/1/4五、注釋1.程序應該包括兩個部分注釋,說明部分和語句注釋。一般情況下,源程序有效注釋量必須在30%以上。2.說明部分:
1)源文件說明部分位于每個源文件的最前面,主要描述:文件名、作者、生成日期、聯(lián)絡方式、功能描述、版本號、軟硬件平臺、版權說明、修改記錄等的簡要說明,以英文書寫。2)子程序說明部分位于每個子程序的最前面,主要描述:子程序名稱、功能、設計原理、所用變量、入口條件、出口信息、調用模塊、堆棧層數、影響資源、算法簡述、使用說明和修改記錄等。2024/1/43.邊寫代碼邊注釋,修改代碼的同時修改相應注釋,以保證注釋與代碼的一致性。不再有用的注釋要刪除。4.要避免在注釋中使用縮寫,特別是非常用縮寫。5.程序在必要的地方必須有注釋,注釋要準確、易懂、簡潔。注釋要有意義,如果有需要,還要詳細描述相關含義。6.注釋格式盡量統(tǒng)一,對多行注釋建議使用“/*……*/”,對單行的注釋建議使用“;”
7.對有含義的變量、常量,如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其含義。2024/1/4六、命名規(guī)則1.變量的名稱要采用有意義的英文單詞或縮寫,如key、buffer2.局部無特殊含義變量i,j,k等3.臨時變量tem、tmp等開頭,長度、計數采用len、num、count等4.在定義部分要加入注釋來說明變量的含義。5.函數名用小寫字母命名,每個詞的第一個字母大寫,并將模塊標識加在最前面。2024/1/4七、函數設計規(guī)范(1)函數的基本要求:正確性:程序要實現(xiàn)設計要求的功能。穩(wěn)定性和安全性:程序運行穩(wěn)定、可靠、安全??蓽y試性:程序便于測試和評價。規(guī)范/可讀性:程序書寫風格、命名規(guī)則等符合規(guī)范。擴展性:代碼為下一次升級擴展留有空間和接口。全局效率:軟件系統(tǒng)的整體效率高。局部效率:某個模塊/子模塊/函數的本身效率高。2024/1/4(2)編制函數的基本原則:單個函數的規(guī)模盡量限制在200行以內(不包括注釋和空行)。一個函數只完成一個功能。函數局部變量的數目一般不超過5~10個。函數內部局部變量定義區(qū)和功能實現(xiàn)區(qū)(包含變量初始化)之間空一行。函數名應準確描述函數的功能。通常使用動賓詞組為執(zhí)行某操作的函數命名。函數的返回值要清楚明了,尤其是出錯返回值的意義要準確無誤。不要把與函數返回值類型不同的變量,以編譯系統(tǒng)默認的轉換方式或強制的轉換方式作為返回值返回。減少函數本身或函數間的遞歸調用。2024/1/4八、模塊化編程規(guī)范簡介模塊化編程主要實現(xiàn)方法:宏定義、函數、文件1)宏定義是C語音的一種預處理的方法,可以通過宏定義實現(xiàn)簡單的模塊預處理2)利用函數形式實現(xiàn)某個基礎功能。通過形參、實參、返回值等實現(xiàn)調用3)文件即是一個.c文件和一個.h文件的結合,頭文件(.h)中是對于該模塊接口的聲明;這一條概括了模塊化的實現(xiàn)方法和實質:將一個功能模塊的代碼單獨編寫成一個.c文件,然后把該模塊的接口函數放在.h文件中.2024/1/4(1)模塊化編程設計步驟1)、創(chuàng)建頭文件在模塊化編程中,往往會有多個C文件,而且每個C文件的作用不盡相同。在我們的C文件中,由于需要對外提供接口,因此還必須有一些函數或者是變量提供給外部其它文件進行調用。對于每一個模塊都有相應的.c文件和.h文件,為了閱讀調試方便,原則上.c文件和.h文件同名,如delay.c和delay.h頭文件的作用可以稱其為一份接口描述文件。2024/1/42)代碼封裝將需要模塊化的進行代碼封裝,如:串口通信模塊,將串口初始化、數據接收、數據發(fā)送函數進行封裝3)編譯、調試、測試4)使用源文件(將文件加到工程之中)將.c文件添加到工程之中,同時在需要調用.h文件中的宏或函數的.c文件中將.h文件包含進去(.h文件中的宏和函數可以在.c文
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中秋節(jié)聯(lián)歡會致辭范文(10篇)
- 九月大班上學期月計劃范文(5篇)
- 中秋晚會董事長致辭范文(13篇)
- 曹植課件教學課件
- 講師比賽課件教學課件
- 影響高中數學成績的原因及解決方法
- 消費品和有關服務的比較試驗 實施要求 編制說明
- 愛嬰醫(yī)院課件教學課件
- 南宮市八年級上學期語文10月月考試卷
- 八年級上學期語文期中考試卷
- JT-T 617.2-2018 危險貨物道路運輸規(guī)則 第2部分:分類 含2024年第1號修改單
- 2024年合肥興泰金融控股(集團)有限公司招聘筆試沖刺題(帶答案解析)
- 大學生職業(yè)生涯展示
- 《金屬非金屬地下礦山監(jiān)測監(jiān)控系統(tǒng)建設規(guī)范》
- 《中國慢性阻塞性肺疾病基層診療與管理指南(2024年)》解讀
- 安全操作規(guī)程、作業(yè)指導書
- MOOC 軟件安全之惡意代碼機理與防護-武漢大學 中國大學慕課答案
- 檔案工作協(xié)調機制
- 肝硬化門靜脈高壓食管胃靜脈曲張出血的防治指南( 2022)
- 2023年1月自考00804金融法二試題及答案
- 贏利-未來10年的經營能力-讀后感
評論
0/150
提交評論