語言編程及bios操作系統(tǒng)_第1頁
語言編程及bios操作系統(tǒng)_第2頁
語言編程及bios操作系統(tǒng)_第3頁
語言編程及bios操作系統(tǒng)_第4頁
語言編程及bios操作系統(tǒng)_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

語言編程及Bios操作系統(tǒng)

語言編程C理解C編碼風格C性能優(yōu)化C軟件模塊和模塊化分C防御性編程C測試和評審

語法及語義constINT16Swtest=-123;wtest++;編譯器處理語法錯誤constINT16Swtest=-123;a=sqrt(wtest);語義錯誤亂序編譯亂序Inta;Intb;{a=b+1;b=0;}{b=0;a=b+1;}關鍵字volatile防止編譯優(yōu)化,不允許讀寫合并。1.中斷服務程序中修改的供其它程序檢測的變量需要加volatile;

2、多任務環(huán)境下各任務間共享的標志應該加volatile;

3、存儲器映射的硬件寄存器通常也要加volatile說明,因為每次對它的讀寫都可能由不同意義;內存越界與棧溢出Main(){intx[16],y[16],z[16];y[16]=0xff;}數組名與數組指針I(yè)ntintArray[10];sizeof(intArray)=20;//數組Int*p=intArray;sizeof(p)=2;//存放地址sizeof計算字節(jié)?計算字?

static/extern關鍵字Static作用范圍:本函數體,模塊內,內存僅被分配一次,下次調用仍維持上次的值原則:盡可能多,但不能更多。extern作用范圍:全局跨模塊。僅聲明,未分配內存空間原則:盡可能少,但不能更少。(API)C編碼風格therealaudience:otherprogrammers.writefortheirbenefit.------codecraft命名:變量、函數、文件(風格一致)代碼排版和布局(建議):函數不超過50行一行不超過80列縮進不大于4級代碼群落加空行相似的函數排版靠近編寫自注釋代碼sFanCtrl(f32EnvironmentFitTemp,f32PowerFitTemp,f32TotalGridLongApparentPower);{return(uwfanstatusTemp);}代碼可自注釋時,不再添加注釋。添加注釋的原則:

解釋why,而不是howC性能優(yōu)化二八原則:過早或不必要的優(yōu)化,是萬惡之源如下幾個方面(時間、空間):宏#define/內聯(lián)inline內嵌匯編(關鍵部分)利用硬件特性(DMA、RS232利用超時中斷)以空間換時間編譯優(yōu)化C軟件模塊和模塊劃分模塊:一個.c和一個.h的結合,頭文件(.h)是模塊接口的聲明。原則:高內聚,低耦合軟件目錄組織:1.drivers2.include3.boards4…..5.common

芯片和板間share代碼:1.驅動和板極邏輯分離2.業(yè)務和平臺邏輯分離任務劃分原則:1.I/O原則2.優(yōu)先級原則3.功能耦合4.大量運算5.頻率組合

C防御性編程

Murphy’sLaw:ifanythingcangowrong,itwill.防御性編碼風格:FollowinglanguageidiomsCheckingnumericlimits……(timefst+timesnd)/2;timefst/2+timesnd/2;斷言判斷一個表達式,如果結果為假,輸出診斷消息并中止程序1.在函數開始處檢驗傳入參數的合法性2.用來檢查程序的邏輯正確性3.消除所做的隱式假定#include<assert.h>C測試和評審C測試:白盒測試TDDCuTestCunitC評審:網頁、郵件等CodereviewBios安裝插件1.bios_setupwin322.tirtos_c2000_setupwin32Bios操作系統(tǒng)Main函數初始化結束最后需調用操作系統(tǒng)的庫函數BIOS_start();。需注意,main函數中一定不能存在無限循環(huán),否則整個BIOS程序存在癱瘓的風險在DSP/BIOS中,硬件中斷有最高的優(yōu)先級,然后是軟件中斷,軟件中斷可以被高優(yōu)先權軟件中斷

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論