版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
廣東嶺南職業(yè)技術(shù)學(xué)院實訓(xùn)中心制《嵌入式系統(tǒng)技術(shù)》實訓(xùn)報告學(xué)期:日期:實訓(xùn)場所:二級學(xué)院信息工程學(xué)院班級姓名學(xué)號實驗題目實訓(xùn)五、C語言控制LED燈(走馬燈)1、實驗?zāi)康膠 熟悉ADS開發(fā)環(huán)境調(diào)試環(huán)境。z 掌握簡單的M匯編指令的使用方法。z 掌握S3C2440A的IO控制寄存器的配置。z 掌握M匯編指令和C語言相互調(diào)用的方法2、實驗設(shè)備z PC機、ARM仿真器、2440實驗箱、串口線。3、實驗內(nèi)容z 熟悉M開發(fā)環(huán)境的建立。z 使用M匯編和C語言設(shè)置GPIO的相應(yīng)寄存器。z 編寫跑馬燈程序。4、實驗原理C程序與匯編程序相互調(diào)用規(guī)則為了使單獨編譯的C語言程序和匯編程序之間能夠相互調(diào)用必須為子程序間的調(diào)用規(guī)定一定的規(guī)則。TPS,即ARM,Thub過程調(diào)用標準(AMhubPrdrelldr)是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則它規(guī)定了一些子程序間調(diào)用的基本規(guī)則如子程序調(diào)用過程中的寄存器的使用規(guī)則堆棧的使用規(guī)則參數(shù)的傳遞規(guī)則等。下面結(jié)合實際介紹幾種ATPS規(guī)如果讀者想了解更多的規(guī)則可以查看相關(guān)的書籍。.基本ATPCS基本ATPCS規(guī)定了在子程序調(diào)用時的一些基本規(guī)則,包括下面3方面的內(nèi)容:(1)各寄存器的使用規(guī)則及其相應(yīng)的名稱。(2)數(shù)據(jù)棧的使用規(guī)則。(3)參數(shù)傳遞的規(guī)則。相對于其它類型的ATPCS滿足基本ATPCS的程序的執(zhí)行速度更快所占用的內(nèi)存更少。但是它不能提供以下的支持:ARM程序和Thumb程序相互調(diào)用,數(shù)據(jù)以及代碼的位置無關(guān)的支持,子程序的可重入性,數(shù)據(jù)棧檢查的支持。而派生的其他幾種特定的TPS就是在基本TPS的基礎(chǔ)上再添加其他的規(guī)則而形成的。其目的就是提供上述的功能。.寄存器的使用規(guī)則寄存器的使用必須滿足下面的規(guī)則:(1) 子程序間通過寄存器R0~R3來傳遞參數(shù)這時寄存器R0~R3可以記作A0~A3。被調(diào)用的子程序在返回前無需恢復(fù)寄存器R0~R3的內(nèi)容。(2) 在子程序中,使用寄存器R4~Rll來保存局部變量。這時,寄存器R4~R11可以記作V1~V8如果在子程序中使用到了寄存器V1~V8中的某些寄存器子程序進入時必須保存這些寄存器的值在返回前必須恢復(fù)這些寄存器的值對于子程序中沒有用到的寄存器則不必進行這些操作。在Thumb程序中,通常只能使用寄存器R4~R7來保存局部變量。(3) 寄存器R12用作子程序間scratch寄存器記作IP在子程序間的連接代碼段中常有這種使用規(guī)則。(4)寄存器R13用作數(shù)據(jù)棧指針記作SP在子程序中寄存器R13不能用作其他用途。寄存器SP在進入子程序時的值和退出子程序時的值必須相等。(5)寄存器R14稱為連接寄存器記作LR它用于保存子程序的返回地址如果在子程序中保存了返回地址,寄存器R14則可以用作其他用途。() 寄存器5是程序計數(shù)器,記作P。它不能用作其他用途。.參數(shù)傳遞規(guī)則根據(jù)參數(shù)個數(shù)是否固定可以將子程序分為參數(shù)個數(shù)固定的(nonvariadic)子程序和參數(shù)個數(shù)可變的(variadic)子程序。這兩種子程序的參數(shù)傳遞規(guī)則是不同的。()參數(shù)個數(shù)可變的子程序參數(shù)傳遞規(guī)則對于參數(shù)個數(shù)可變的子程序,當參數(shù)不超過4個時,可以使用寄存器R0~R3來傳遞參數(shù);當參數(shù)超過4個時,還可以使用數(shù)據(jù)棧來傳遞參數(shù)。在參數(shù)傳遞時將所有參數(shù)看作是存放在連續(xù)的內(nèi)存字單元中的字數(shù)據(jù)然后次將各字數(shù)據(jù)傳送到寄存器R0、R1、R2、R3中,如果參數(shù)多于4個,將剩余的字數(shù)據(jù)傳送到數(shù)據(jù)棧中入棧的順序與參數(shù)順序相反即最后一個字數(shù)據(jù)先入棧按照上面的規(guī)則一個浮點數(shù)參數(shù)可以通過寄存器傳遞也可以通過數(shù)據(jù)棧傳遞也可能一半通過寄存器傳遞另一半通過數(shù)據(jù)棧傳遞。(2)參數(shù)個數(shù)固定的子程序參數(shù)傳遞規(guī)則對于參數(shù)個數(shù)固定的子程序,參數(shù)傳遞與參數(shù)個數(shù)可變的子程序參數(shù)傳遞規(guī)則不同。7、實驗程序?qū)崿F(xiàn)7.1利用C語言實現(xiàn)跑馬燈程序*** d_s_.c */*C語言函數(shù)*//*定義端口寄存器*/#definerGPBCON(*(volatileunsigned*)0x56000010)//PortBcontrol#definerGPBDAT(*(volatileunsigned*)0x56000014)//PortBdata#definerGPBUP(*(volatileunsigned*)0x56000018)//Pull-upcontrolB/*延遲程序*/externvoiddelay(inttimes);/*主程序*/voidxmain(void){rGPBCON=(rGPBCON&~(0xff<<10))|(0x55<<10);//GPB5-8setoutputrGPBUP=(rGPBUP&~(0xf<<5))|(0xf<<5);//disableGPBpullupwhile(1){rGPBDAT=(rGPBDAT|(0xf<<5))&(~(0x1<<7));//GPB7output0delay(0x5000000);//調(diào)用匯編語言編寫的延時程序rGPBDAT=(rGPBDAT|(0xf<<5))&(~(0x1<<8));//GPB8output0delay(0x5000000);//調(diào)用匯編語言編寫的延時程序0rGPBDAT=rGPBDAT&~(0x3<<7);//GPB7-8output0delay(0x5000000);//調(diào)用匯編語言編寫的延時程序rGPBDAT=rGPBDAT|(0x3<<7);//GPB7-8output1delay(0x5000000);//調(diào)用匯編語言編寫的延時程序}}7.2ARM匯編指令編寫的延時程序*** ls */EXPORTdelayAREADELAY,CODE,READONLY ;該偽指令定義了一個代碼段,段名為Init,屬性只讀;下面是延遲子程序delaysubr0,r0,#1 ;r0=r0-1cmpr0,#0x0 ;將r0的值與0相比較bnedelay ;比較的結(jié)果不為0(r0不為0),繼續(xù)調(diào)用delay,否則執(zhí)行下一條語句movpc,lr ;返回END ;程序結(jié)束符8、實驗步驟. 連接好實驗環(huán)境將仿真器的一端通過并口連接到PC機仿真器的另一端通過JAG線連接到的JAG接口。. 將串口線一端接到PC機另一端接到的COM1接,打開串口超級終端dn.ex,設(shè)置串口adae為120,選擇M。. 打開Sorrr在ADSCoderrior中建立實驗工程LED1.mcp對工程進行編譯。4. 重起,實驗箱會自動執(zhí)行sh中的IS程序打開dn.exe超級終端。5. 在w中,輸入“,選擇“USBdwnloadfil,在PC上安裝USB驅(qū)動。6. 點擊“BPt”“Tamt”選擇LED1目錄下的可執(zhí)行映象文件LED
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統(tǒng)編版語文三年級下冊情境化試期末測試題(含答案)
- 山東省煙臺市招遠市(五四學(xué)制)2024-2025學(xué)年八年級上學(xué)期期末考試語文試卷(含答案)
- 【先學(xué)后教新思路】2020高考物理一輪復(fù)習(xí)-教案39-磁場
- 2022《全程復(fù)習(xí)方略》高考生物一輪復(fù)習(xí):單元評估檢測(四)-必修一第六章細胞的生命歷程
- 【考前三個月】2021屆高考物理(安徽專用)專題講練:專題4-萬有引力定律及其應(yīng)用
- 【全程復(fù)習(xí)方略】2020年數(shù)學(xué)文(廣西用)課時作業(yè):第十一章-第三節(jié)相互獨立事件同時發(fā)生的概率
- 五年級數(shù)學(xué)(小數(shù)除法)計算題專項練習(xí)及答案
- 三年級數(shù)學(xué)計算題專項練習(xí)及答案
- 【全程復(fù)習(xí)方略】2020年高考化學(xué)課時提能演練(八)-2.4-鐵及其化合物(魯科版-福建專供)
- 《神經(jīng)肌肉促進技術(shù)》課件
- GB/T 44405-2024工業(yè)互聯(lián)網(wǎng)平臺服務(wù)商評價方法
- 護理部年終總結(jié)
- 部編版三年級上冊語文語文期末質(zhì)量監(jiān)測(含答題卡)
- 心理危機干預(yù)服務(wù)
- KISSSOFT操作與齒輪設(shè)計培訓(xùn)教程
- 2024年第二季度粵港澳大灣區(qū)經(jīng)濟分析報告-PHBS
- 消防安全制度完整版
- 新疆生產(chǎn)建設(shè)兵團2024-2025學(xué)年高一數(shù)學(xué)上學(xué)期期末考試試題含解析
- 建設(shè)工程施工合同農(nóng)民工工資補充協(xié)議
- AQ-T 1121-2023 煤礦安全現(xiàn)狀評價實施細則
- 湖南省矢量地圖課件模板(各市、區(qū)縣地圖-可編輯、配色)
評論
0/150
提交評論