第8章 ARM匯編語言與嵌入式C混合編程

第8章 ARM匯編語言與嵌入式C混合編程

ID:40260028

大?。?03.00 KB

頁數(shù):81頁

時間:2019-07-29

第8章 ARM匯編語言與嵌入式C混合編程_第1頁
第8章 ARM匯編語言與嵌入式C混合編程_第2頁
第8章 ARM匯編語言與嵌入式C混合編程_第3頁
第8章 ARM匯編語言與嵌入式C混合編程_第4頁
第8章 ARM匯編語言與嵌入式C混合編程_第5頁
資源描述:

《第8章 ARM匯編語言與嵌入式C混合編程》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、第8章ARM匯編語言與嵌入式C混合編程本章首先簡要的介紹了嵌入式C語言的編程規(guī)范,嵌入式開發(fā)中常用的位運(yùn)算與控制位域及在嵌入式C程序設(shè)計(jì)中要注意的問題,為讀者進(jìn)行嵌入式C程序設(shè)計(jì)打基礎(chǔ)。然后介紹在ARM匯編語言與嵌入式C語言進(jìn)行相互調(diào)用的標(biāo)準(zhǔn)(AAPCS),并以大量的實(shí)例說明了相互調(diào)用應(yīng)注意的問題。內(nèi)容提要8.1嵌入式C編程規(guī)范8.2嵌入式C程序設(shè)計(jì)中的位運(yùn)算8.3嵌入式C程序設(shè)計(jì)中的幾點(diǎn)說明8.4嵌入式C程序設(shè)計(jì)格式8.5過程調(diào)用標(biāo)準(zhǔn)ATPCS與AAPCS8.6ARM匯編語言與嵌入式C混合編程8.1嵌入式C編程規(guī)范1、樹立良好的編程習(xí)慣和編程思路,摒棄那些可能存在風(fēng)險的編程行為。保證編寫

2、出安全健壯的代碼,進(jìn)而保證嵌入式產(chǎn)品的安全性、可靠性。2、使編寫的代碼更加容易閱讀、容易理解而且容易維護(hù)。3、良好的編程風(fēng)格是提高程序可靠性非常重要的手段,也是大型項(xiàng)目多人合作開發(fā)的技術(shù)基礎(chǔ)。4、遵循良好的共同的編碼規(guī)范,也是提高編碼能力,保證軟件工程這個階段質(zhì)量的一個重要手段。同時也是衡量一個組織軟件開發(fā)能力的一個重要指標(biāo)。源代碼的C程序文件可以分為兩類:源文件和頭文件。源文件和頭文件中包含的內(nèi)容是不同的。源文件主要包括以下內(nèi)容:只在本文件內(nèi)部使用的(對外部隱藏的)類型;只在本文件內(nèi)部使用的(對外部隱藏的)常量;只在本文件內(nèi)部使用的(對外部隱藏的)宏定義;全局變量和文件級(static)

3、變量的定義;函數(shù)原型聲明和函數(shù)定義;包含文件部分,文件頭的說明,函數(shù)頭的說明。頭文件中包含如下內(nèi)容:提供給外部參照的類型;提供給外部參照常量;提供給外部參照宏定義;提供給外部參照(全局)函數(shù)原型聲明;提供給外部參照全局變量的外部聲明;包含文件部分,文件頭的說明。但頭文件中不要定義變量。排版規(guī)則如下:a.代碼縮進(jìn)空格數(shù)為4個。若是可能,盡量用空格來代替Tab鍵,b.較長的語句要分2行來書寫,并用‘’符號隔開。uncrc=calcCRC16(Packet.p,unlen);if((UINT8)uncrc!=Packet.down_ser.mCrc[0]

4、

5、(UINT8)(uncrc>>8)

6、!=Packet.down_ser.mCrc[1]){BELL(ON);}c.函數(shù)代碼的參數(shù)過長,分多行來書寫。voidUARTSendAndRecv(UINT8*ucSendBuf,UINT8ucSendLength,UINT8*ucRecvBuf,UINT8ucRecvLength){……}d.if、do、while、switch、for、case、default等關(guān)鍵字,必須加上大括號{}。if(bSendEnd){BELL(ON);}變量的命名a.方法一:采用匈牙利命名法。例如平時聲明32位整型變量Length對應(yīng)為unLength。變量類型示例charcLengthunsigne

7、dcharucLengthshortintsLengthunsignedshortintusLengthintnLengthunsignedintunLengthchar*szBufunsignedchar*uszBufvolatileunsignedchar__ucLength方法二:?局部變量以小寫字母命名;?全局變量以首字母大寫方式命名;?定義類型和宏定義常數(shù)以大寫字母命名;?變量的作用域越大,它的名字所帶有的信息就應(yīng)該越多。?局部變量:intstudent_age;?全局變量:intStudentAge;?宏定義常數(shù):#defineSTUDENT_NUM10?類型定義:typede

8、fINT16Sint;全局變量和全局函數(shù)的命名一定要詳細(xì),不惜多用幾個單詞,例如函數(shù)UARTPrintfStringForLCD,用于編譯開關(guān)的文件頭,必須加上當(dāng)前文件名稱,防止編譯時產(chǎn)生沖突。例如在UARTInterface.h頭文件中,必須加上以下內(nèi)容#ifndef__UARTINTERFACE_H__#define__UARTINTERFACE_H__externvoidUARTPrintfString(CONSTINT8*str);externvoidUARTSendNBytes(UINT8*ucSendBytes,UINT8ucLen);……//其他外部聲明的代碼#endif8.

9、2嵌入式C程序設(shè)計(jì)中的位運(yùn)算位運(yùn)算符描述位運(yùn)算符描述&按位與~取反

10、按位或<<左移^按位異或>>右移8.2.1按位與操作按位與運(yùn)算符“&”是把參與運(yùn)算的兩個操作數(shù)所對應(yīng)的各個二進(jìn)制位進(jìn)行按位相與。只有當(dāng)對應(yīng)的兩個二進(jìn)制位全為1時,結(jié)果才為1,否則為0。參與運(yùn)算的兩個操作數(shù)以補(bǔ)碼形式出現(xiàn)。8.2.2按位或操作按位或操作運(yùn)算符“

11、”是把參與運(yùn)算的兩個操作數(shù)對應(yīng)的各個二進(jìn)制位進(jìn)行按位相或。對應(yīng)的兩個二進(jìn)制位中只要有一個為1,結(jié)

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。