s3c2410基礎(chǔ)實驗教程.pdf

s3c2410基礎(chǔ)實驗教程.pdf

ID:52924122

大?。?.93 MB

頁數(shù):119頁

時間:2020-04-01

s3c2410基礎(chǔ)實驗教程.pdf_第1頁
s3c2410基礎(chǔ)實驗教程.pdf_第2頁
s3c2410基礎(chǔ)實驗教程.pdf_第3頁
s3c2410基礎(chǔ)實驗教程.pdf_第4頁
s3c2410基礎(chǔ)實驗教程.pdf_第5頁
資源描述:

《s3c2410基礎(chǔ)實驗教程.pdf》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、實驗1ARM匯編指令實驗1、實驗?zāi)康模酣笆煜DS開發(fā)環(huán)境和wiggler調(diào)試環(huán)境。ò掌握簡單的ARM匯編指令的使用方法。2、實驗設(shè)備òPC機、JTAG調(diào)試板、S3C2410開發(fā)板。3、實驗內(nèi)容ò熟悉ARM開發(fā)環(huán)境的建立。ò使用ARM匯編指令設(shè)置GPIO口的相應(yīng)寄存器,控制LED燈的亮滅。4、實驗原理下面介紹本實驗用到的一些匯編指令。1).LDR/STR指令說明:LDR/STR指令用于加載/存儲寄存器。舉例說明:示例:LDRr3,[r0],#4//從r0表示的地址中讀取數(shù)據(jù)分別存放到r3中,然后將r0加4。STRr3,[r1],#4//將r3中的數(shù)據(jù)保存到r1表示的地址中,然后將r1加4

2、。LDMIA/STMIA指令說明:LDM/STM指令用于加載/存儲多個寄存器,舉例示例:LDMIAr0!,{r4---r11}//從r0表示的地址中順利取出8個字?jǐn)?shù)據(jù)分別存放到r4-r11中。2).程序分支指令B指令說明:B指令為ARM的分支指令,將引起處理器轉(zhuǎn)移到制定標(biāo)號處執(zhí)行。示例:BLabel//處理器轉(zhuǎn)移到Label標(biāo)號處執(zhí)行BEQstop//Z標(biāo)記置位,則跳轉(zhuǎn)到stop標(biāo)號處執(zhí)行;否則繼續(xù)下一條指令BNEoctcopy//Z標(biāo)記清0,則跳轉(zhuǎn)到octcopy標(biāo)號處執(zhí)行;否則繼續(xù)下一條指令3).其他指令SUBS說明:該指令有SUB指令加上S后綴組成,S后綴標(biāo)志根據(jù)執(zhí)行結(jié)果更新條件標(biāo)

3、志碼。示例:SUBSr3,r3,#1//如果r3等于0,則Z位清0MOVS指令說明:該指令由MOV指令加上后綴S組成,S后綴標(biāo)志根據(jù)執(zhí)行結(jié)果更新條件標(biāo)志碼。1示例:MOVSr3,r2,LSB#3//將r2右移3位即除以8,然后賦值給r3。5、實驗相應(yīng)寄存器說明GPFCON-端口配置寄存器。GPFDAT-端口數(shù)據(jù)寄存器GPFUP-端口上拉電阻使能寄存器6、實驗電路圖27.實驗程序?qū)崿F(xiàn)利用ARM匯編語言實現(xiàn)跑馬燈程序/*asm.s*/GPFCONEQU0x56000050GPFDATEQU0x56000054GPFUPEQU0x56000058EXPORTLEDTESTAREALEDTEST

4、ASM,CODE,READONLY;該偽指令定義了一個代碼段,段名為LEDTESTASM,屬性只讀LEDTEST;設(shè)置GPF4-GPF7為outputldrr0,=GPFCONldrr1,=0x5500strr1,[r0];禁止GPF4-GPF7端口的上拉電阻ldrr0,=GPFUPldrr1,=0xff00strr1,[r0];將數(shù)據(jù)端口F的數(shù)據(jù)寄存器的地址賦值給寄存器r2ldrr2,=GPFDAT;跑馬燈循環(huán)ledloop1ldrr1,=0xf0strr1,[r2];使GPF7輸出高電平,D9-D12燈會滅bldelay1;調(diào)用延遲子程序ledloop2ldrr1,=0x0strr1

5、,[r2];使GPE7輸出低電平 D9-D12燈亮3bldelay2;調(diào)用延遲;延遲程序delay1ldrr3,=0x1ffff;設(shè)置延遲的時間delay3subr3,r3,#1;r3=r3-1cmpr3,#0x0;將r3的值與0相比較bnedelay3;比較的結(jié)果不為0(r3不為0),繼續(xù)調(diào)用delay1,否則執(zhí)行下一條語句bledloop2movpc,lr;返回;延遲程序delay2ldrr3,=0x2ffff;設(shè)置延遲的時間delay4subr3,r3,#1;r3=r3-1cmpr3,#0x0;將r3的值與0相比較bnedelay4;比較的結(jié)果不為0(r3不為0),繼續(xù)調(diào)用dela

6、y1,否則執(zhí)行下一條語句bledloop1movpc,lr;返回END;程序結(jié)束符4實驗2C和匯編語言的混合編程實驗1、實驗?zāi)康抹皩W(xué)習(xí)在C程序中使用嵌入式匯編編寫程序ò了解嵌入式匯編的格式、語言特點2、實驗設(shè)備òS3C2410開發(fā)板òADS1.2集成開發(fā)環(huán)境,JTAG調(diào)試器ò串口連接線3、實驗原理在ARM的應(yīng)用開發(fā)中,C語言功能強大且容易編寫程序,但是匯編程序在底層的操作仍然具有C程序無法替代的功能,有時候我們需要在C程序中嵌入?yún)R編程序來完成一些直接對底層的諸如寄存器的操作。在ARMC語言中,使用關(guān)鍵詞__asm來標(biāo)志一段匯編指令程序:其格式如下,__asm{匯編程序}嵌入式匯編語言不同

7、的地方有:ò如果一行中有多個匯編指令,指令之間用分號(;)隔離ò如果一天指令占多行,要使用續(xù)行符號()ò在匯編指令段中可以使用C語言的注釋語句4、實驗電路圖5、程序?qū)崿F(xiàn)5.1創(chuàng)建GPFC.c源文件,應(yīng)用C語言實現(xiàn)嵌入式編程/*這是一個利用GPIO做跑馬燈的程序*/1/*GPIO1到GPIO4分別對應(yīng)2410的GPF4到GPF7*/#include"2410lib.h"#defineGPFCON(*(volatileunsigned

當(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ò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。