C和匯編語(yǔ)言的混合編程實(shí)驗(yàn)_第1頁(yè)
C和匯編語(yǔ)言的混合編程實(shí)驗(yàn)_第2頁(yè)
C和匯編語(yǔ)言的混合編程實(shí)驗(yàn)_第3頁(yè)
C和匯編語(yǔ)言的混合編程實(shí)驗(yàn)_第4頁(yè)
已閱讀5頁(yè),還剩100頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)驗(yàn)2c和匯編語(yǔ)言的混合編程實(shí)驗(yàn)1、實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)在C程序中使用嵌入式匯編編寫

程序了解嵌入式匯編的格式、語(yǔ)言特點(diǎn)2、實(shí)驗(yàn)設(shè)備S3c2410開發(fā)板ADS1.2集成開發(fā)環(huán)境,JTAG調(diào)試器串ロ連接線3、實(shí)驗(yàn)原理序在底層的操作仍然具有C程序無(wú)法替代的功能,有時(shí)候我們需要在C程序中嵌入?yún)R編程序來(lái)完成一些直接對(duì)底層的諸如寄存器的操作。在ARMC語(yǔ)言中,使用關(guān)鍵詞ーasm

來(lái)標(biāo)志一段匯編指令程序:其格式

如下,UISE匯編程序嵌入式匯編語(yǔ)言不同的地方有:如果一行中有多個(gè)匯編指令,指令之間用分號(hào)(ワ隔離如果一天指令占多行,要使用續(xù)行符號(hào)(ヽ)在匯編指令段中可以使用C語(yǔ)言的注釋語(yǔ)句4、實(shí)驗(yàn)電路圖5、程序?qū)崿F(xiàn)5.1創(chuàng)建GPFC.c源文件,應(yīng)用C

語(yǔ)言實(shí)現(xiàn)嵌入式編程/?這是ー個(gè)利用GPIO做跑馬燈

的程序?1/*GPI01到GPIO4分別對(duì)應(yīng)2410

的GPF4至リGPF7*/#includen24101ib.hn#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFintMain()GPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7設(shè)置為

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxBO;Delay(lOO);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOx7O;Delay(lOO);2創(chuàng)建GPFA.c源程序,實(shí)現(xiàn)在C程序中嵌入ARM匯編指令〃定義寄存器地址#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFintMain()OHXJin〃時(shí)鐘、端口、串口初始化SetClockDivider(l,1);xlVAMqoHIHd)ヨ?!筍AS而sXanvq—Ixvn=UIgrlGPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7設(shè)置為

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;Delay(200);asm〃嵌入?yún)R編指令GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;Delay(200);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxBO;Delay(200);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOx7O;Delay(200);Uart_Printf(nthevalueofxis:%d\n”,x);〃串口輸出5.3創(chuàng)建delays和GPFTEST.c源

文件,實(shí)現(xiàn)在C程序中匯編函數(shù)

調(diào)用/*delay,s*/EXPORTdelayAREADELAY,CODE,READONLY;該偽指令定義了一個(gè)代碼段,段名為Init,屬性只讀;下面是延遲子程序p①prO,rO,ttl;rO=rOsub;rO=rO-1cmprO,#0x0將rO的值與〇相比較比較的結(jié)果不為〇(rO不為〇),繼續(xù)調(diào)用delay,否則執(zhí)行下一條語(yǔ)句movpc,Ir返回END程序結(jié)束符 ’/*GPFTEST.C刃/*c語(yǔ)言函數(shù)?//?端口F寄存器預(yù)定義?/#defineGPFCON(*(volatile

unsigned*)0x56000050)//PortF

control#defineGPFDAT(*(volatile

unsigned*)0x56000054)//PortF

data#defineGPFUP(*(volatile

unsigned*)0x56000058)//Pull-up

controlFexternintdelay(inttime);/?聲明匯

編函數(shù)?/intMain()GPFCON=(GPFCONIOxFFOO)&Ox

FFFF55FF;//GPF4—GPF7設(shè)置為

outputGPFUPI=OxFFOO;GPFpullup//disablewhile(l)GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxEO;delay(Oxlffff);GPFDAT=(GPFDAT&OxFFFFFFO

F)IOxDO;delay(Oxlffff);GPFDAT=(

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論