大連理工大學(xué)軟件學(xué)院

上傳人:san****019 文檔編號:23752050 上傳時間:2021-06-10 格式:PPT 頁數(shù):54 大小:359KB
收藏 版權(quán)申訴 舉報 下載
大連理工大學(xué)軟件學(xué)院_第1頁
第1頁 / 共54頁
大連理工大學(xué)軟件學(xué)院_第2頁
第2頁 / 共54頁
大連理工大學(xué)軟件學(xué)院_第3頁
第3頁 / 共54頁

下載文檔到電腦,查找使用更方便

14.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《大連理工大學(xué)軟件學(xué)院》由會員分享,可在線閱讀,更多相關(guān)《大連理工大學(xué)軟件學(xué)院(54頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、1TM 1 n大連理工大學(xué)軟件學(xué)院 邱鐵辦公樓409Tel:87571521E_mail: 參考教材:ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程 清華大學(xué)出版社2009年3月出版ARM嵌 入 式 系 統(tǒng) 結(jié) 構(gòu) 與 編 程 2TM 第8章 ARM匯編語言與嵌入式C混合編程本章首先簡要的介紹了嵌入式C語言的編程規(guī)范,嵌入式開發(fā)中常用的位運(yùn)算與控制位域及在嵌入式C程序設(shè)計中要注意的問題,為讀者進(jìn)行嵌入式C程序設(shè)計打基礎(chǔ)。然后介紹在ARM匯編語言與嵌入式C語言進(jìn)行相互調(diào)用的標(biāo)準(zhǔn)(AAPCS),并以大量的實例說明了相互調(diào)用應(yīng)注意的問題。 3TM 3 內(nèi)容提要81 嵌入式C編程規(guī)范82 嵌入式C程序設(shè)計中的位運(yùn)算83

2、嵌入式C程序設(shè)計中的幾點(diǎn)說明84 嵌入式C程序設(shè)計格式85 過程調(diào)用標(biāo)準(zhǔn)ATPCS與AAPCS86 ARM匯編語言與嵌入式C混合編程 4TM 4 8.1 嵌入式C編程規(guī)范n在當(dāng)前的嵌入式開發(fā)中,嵌入式C語言是最為常見的程序設(shè)計語言,對于程序員來說,能夠完成相應(yīng)功能的代碼并不一定是優(yōu)秀的代碼。n優(yōu)秀的代碼還要具備易讀性、易維護(hù)性、具有可移植和高可靠性。 5TM 5 8.1.1 嵌入式C程序書寫規(guī)范n排版規(guī)則如下: n(1)程序塊要采用縮進(jìn)風(fēng)格編寫 n(2)較長的語句(例如超過80個字符)要分成多行書寫 n(3)循環(huán)、判斷等語句中若有較長的表達(dá)式或語句,則要進(jìn)行適應(yīng)的劃分 n(4)若函數(shù)或過程中參

3、數(shù)較長,也要進(jìn)行適當(dāng)?shù)膭澐?。n(5)一般不要把多個短語句寫在一行中 n(6)程序塊的分界符語句的大括號“”與“”一般獨(dú)占一行并且在同一列 6TM 6 書寫規(guī)范示例: 7TM 7 8.1.2 命名規(guī)則n (1)標(biāo)識符的名稱要簡明,能夠表達(dá)出確切的含義,可以使用完整的單詞或通常可以理解的縮寫。n(2)如果在命名中使用特殊約定或縮寫,則要進(jìn)行注釋說明。 n(3)對于變量命名,一般不取單個字符 ,例如i、j、k. n(4)函數(shù)名一般以大寫字母開頭;所有常量名字母統(tǒng)一用大寫。 8TM 8 8.1.3 注釋說明n注釋有助于程序員理解程序的整體結(jié)構(gòu),也便于以后程序代碼的維護(hù)與升級。常用的規(guī)則如下: n(1)

4、注釋語言必須準(zhǔn)確、簡潔且容易理解;n(2)程序代碼源文件頭部應(yīng)進(jìn)行注釋說明 ;n(3)函數(shù)頭部應(yīng)進(jìn)行注釋;n(4)程序中所用到的特定含義的常量、變量,在聲明時都要加以注釋 ; 9TM 9 n(5)對于宏定義、數(shù)據(jù)結(jié)構(gòu)聲明,如果其命名不是充分自注釋的,也要加以注釋。n(6)如果注釋單獨(dú)占用一行,與其被注釋的內(nèi)容進(jìn)行相同的縮進(jìn)方式,一般將注釋與其上面的代碼用空行隔開 n(7)程序代碼修改時,其注釋也要及時修改,一定要保證代碼與注釋保持一致。 10TM 10 命名規(guī)則示例: 11TM 11 8.2 嵌入式C程序設(shè)計中的位運(yùn)算n在嵌入式程序設(shè)計中,位操作是最常用的運(yùn)算之一,因為在很多情況下要對寄存器中

5、的某位或某個管腳進(jìn)行操作,這些都需要用位操作來完成。 12TM 12 8.2.1 按位與操作n按位與運(yùn)算符“n printf(numbert exp2t exp3t exp4n);n printf(-t-t-t-n); n for(n=1;n=MAX_POWER;n+)n printf(%2dt %3dt %4dt %5dn,n,SQR(n),CUBE(n),QUAD(n);n 39TM 39 n程序運(yùn)行結(jié)果 40TM 40 n條件編譯n (1). 形式1:#ifdef 標(biāo)識符程序段1#else程序段2#endif 41TM 41 n(2). 形式2n#ifndef 標(biāo)識符n程序段1n#els

6、en程序段2n#endif 42TM 42 n (3). 形式3n #ifdef 表達(dá)式1程序段1n #elif 表達(dá)式2程序段2n #elsen 程序段3n #endif 43TM 43 8.4嵌入式C程序設(shè)計格式n8.4.1 可重入函數(shù)n8.4.2 中斷處理程序n8.4.3 模塊化程序設(shè)計 44TM 44 8.4.1 可重入函數(shù) n如果某個函數(shù)可以被多個任務(wù)并發(fā)使用,而不會造成數(shù)據(jù)錯誤,我們就說這個函數(shù)具有可重入性(reentrant) 。 45TM 45 n可重入函數(shù)可以使用局部變量,也可以使用全局變量。n如果使用全局變量,則應(yīng)通過關(guān)中斷、信號量(即P、V操作)等手段對其加以保護(hù) 46T

7、M 46 示例解析: n分析下面的函數(shù)是否具有可重入性 n static int tmp;n void swap(int* a, int* b) n n tmp=*a; n *a=*b; n *b=tmp;n 47TM 47 n void swap(int* a, int* b) n n int tmp;n tmp=*a; n *a=*b; n *b=tmp;n 48TM 48 在操作系統(tǒng)中,通過信號量機(jī)制使得函數(shù)具有可重入性:n static int tmp;n void swap(int* a, int* b) n n 申請信號量操作n tmp=*a; n *a=*b; n *b=tmp;

8、 n 釋放信號量操作 n 49TM 49 8.4.2 中斷處理程序n在編寫中斷服務(wù)程序時需要滿足如下要求:n(1)不能向中斷服務(wù)程序傳遞參數(shù);n(2)中斷服務(wù)程序沒有返回值;n(3)中斷服務(wù)程序應(yīng)要盡可能短,來減少中斷服務(wù)程序的處理時間,保證實時系統(tǒng)的性能。 50TM 50 8.4.3 模塊化程序設(shè)計n嵌入式C程序設(shè)計主要采用模塊化設(shè)計方法,將系統(tǒng)內(nèi)的任務(wù)進(jìn)行合理的劃分,將具有同一屬性或相同類別的代碼歸為一類組成模塊,每個模塊的功能相對獨(dú)立。n將整個軟件系統(tǒng)分為多個模塊,編程思路就會很清晰。 51TM 51 嵌入式系統(tǒng)軟件模塊劃分 52TM 52 示例解析 n應(yīng)用舉例見教材ARM嵌入式系統(tǒng)結(jié)構(gòu)與編程第202頁例8-14 53TM 第8章 ARM匯編語言與嵌入式C混合編程上半部完 54TM 54 下半部內(nèi)容提示85 過程調(diào)用標(biāo)準(zhǔn)ATPCS與AAPCS86 ARM匯編語言與嵌入式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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!