昆明理工大學 嵌入式技術及應用 實驗一_第1頁
昆明理工大學 嵌入式技術及應用 實驗一_第2頁
昆明理工大學 嵌入式技術及應用 實驗一_第3頁
昆明理工大學 嵌入式技術及應用 實驗一_第4頁
昆明理工大學 嵌入式技術及應用 實驗一_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

千里之行,始于足下讓知識帶有溫度。第第2頁/共2頁精品文檔推薦昆明理工大學嵌入式技術及應用實驗一昆明理工高校信息工程與自動化學院同學試驗報告

(2022—2022學年第1學期)

課程名稱:嵌入式技術應用基礎開課試驗室:4422022年04月24日

一、試驗目的

初步學會使用EmbestIDEforARM開發(fā)環(huán)境及ARM軟件模擬器;

通過試驗把握容易ARM匯編指令的使用辦法。

二、試驗原理及基本技術路線圖(方框原理圖)

ARM處理器共有37個寄存器:

31個通用寄存器,包括程序計數(shù)器(PC)。這些寄存器都是32位。

6個狀態(tài)寄存器。這些寄存器也是32位,但只使用了其中的12位。

1.ARM通用寄存器

通用寄存器(R0~R15)可分為3類。

1)不分組寄存器R0~R7

R0~R7是不分組寄存器。在全部處理器模式下,它們都能被拜訪。它們是真正的通用寄存器,沒有體系結(jié)構(gòu)所隱含的特別用途。

2)分組寄存器R8~R14

R8~R14是分組寄存器。被拜訪的物理寄存器取決于當前的處理器模式。若要拜訪特定的物理寄存器而不依靠當前的處理器模式,則要使用規(guī)定的名字。

寄存器R8~R12各有兩組物理寄存器:一組為FIQ模式,另一組為除了FIQ模式以外的全部模式。R8~R12沒有任何指定的特別用途。只是使用R8~R12來容易地處理中斷。寄存器R13和寄存器R14各有6個分組的物理寄存器,1個用于用戶模式和系統(tǒng)模式,其他5個分離用于5種異樣模式。R13通常用作堆棧指針,稱作SP。每種異樣模式都有自己的R13。R14用作子程序鏈接寄存器,也稱作LR。

3)程序計數(shù)器R15

寄存器R15用作程序計數(shù)器(PC)。

本試驗中,ARM核工作在用戶模式,R0~R15可用。

2.存儲器格式

ARM體系結(jié)構(gòu)可以用兩種辦法存儲字數(shù)據(jù),分離稱為大端格式和小端格式。

1)大端格式

在這種格式中,字數(shù)據(jù)的高位字節(jié)存儲在低地址中,而字數(shù)據(jù)的低位字節(jié)存

放在高地址中,如下所示:

高地址3123221615870字地址

低地址2)小端格式

在這種格式中,字數(shù)據(jù)的高位字節(jié)存儲在高地址中,而字數(shù)據(jù)的低位字節(jié)存放在低地址中,如下所示:

高地址3123221615870字地址

低地址

3.GNU基礎學問

EmbestIDE集成了GNU匯編器as、編譯器gcc和鏈接器ld。因此,編寫程序要符合GNU的語法和規(guī)章。這里容易介紹幾點基本學問:

●程序默認入口點為“_start”,代碼段默認起始地址為0x8000●常用偽操作符1).equ

為數(shù)字常量、基于寄存器的值和程序標號定義一個字符名稱。2).global及.globl

聲明一個符號可以被其他文件引用,相當于聲明白一個全局變量。3).text

840

840

將操作符開頭的代碼編譯到代碼段或代碼段子段(Subsection)。

4).end

標記匯編文件的結(jié)束行。

試驗內(nèi)容

●認識開發(fā)環(huán)境的使用并使用ldr/str,mov等指令拜訪寄存器或存儲單元。

●使用add/sub/lsl/lsr/and/orr等指令,完成基本數(shù)學/規(guī)律運算。

●運行EmbestIDE集成開發(fā)環(huán)境,將下面兩段參考程序分離編輯輸入,生成目標代碼,

設置調(diào)試模塊,下載目標代碼到軟件仿真器。

三、所用儀器、材料(設備名稱、型號、規(guī)格等)

EmbestIDE集成開發(fā)環(huán)境

四、試驗辦法、步驟

1.打開memory窗口,觀看地址0x8000~0x801f與地址0x1000的內(nèi)容。

2.單步執(zhí)行程序并觀看和記錄寄存器與memory的值變化。

3.結(jié)合試驗內(nèi)容和相關資料,觀看程序運行,通過試驗加深理解ARM指令的使用。

試驗參考程序

1.試驗A參考程序:

.equx,45/*定義變量x,并賦值為45*/

.equy,64/*定義變量y,并賦值為64*/

.equstack_top,0x1000/*定義棧頂0x1000*/

.global_start

.text

_start:/*程序代碼開頭標志*/

MOVsp,#stack_top

MOVr0,#x/*x的值放入R0*/

STRr0,[sp]/*R0的值保存到堆棧*/

MOVr0,#y/*y的值放入R0*/

LDRr1,[sp]/*取堆棧中的數(shù)到R1*/

ADDr0,r0,r1

STRr0,[sp]

stop:

Bstop/*程序結(jié)束,進入死循環(huán)*/

.end

2.試驗B參考程序:

.equx,45/*定義變量x,并賦值為45*/

.equy,64/*定義變量y,并賦值為64*/

.equz,87/*定義變量z,并賦值為87*/

equstack_top,0x1000/*定義棧頂0x1000*/

.global_start

.text

_start:/*程序代碼開頭標志*/

MOVr0,#x/*x的值放入R0*/

MOVr0,r0,lsl#8/*R0的值乘以2的8次方*/

MOVr1,#y/*y的值放入R1*/

ADDr2,r0,r1,lsr#1/*R1的值除以2加上R0的值放入R2*/MOVsp,#0x1000

STRr2,[sp]

MOVr0,#z/*z的值放入R0*/

ANDr0,r0,#0xFF/*取R0的低八位*/

MOVr1,#y/*y的值放入R1*/

ADDr2,r0,r1,lsr#1/*R1的值除以2加上R0的值放入R2*/LDRr0,[sp]/*y的值放入R1*/

MOVr1,#0x01

ORRr0,r0,r1

MOVr1,R2/*y的值放入R1*/

ADDr2,r0,r1,lsr#1/*R1的值除以2加上R0的值放入R2*/stop:

Bstop/*程序結(jié)束,進入死循環(huán)*/

.end

四、試驗過程原始記錄(數(shù)據(jù)、圖表、計算等)

A程序截圖

B程序截圖

五、試驗結(jié)果、分析和結(jié)論(誤差分析與數(shù)據(jù)處理、成績總結(jié)等。其中,繪制曲

線圖時必需用計算紙)注:報告內(nèi)容按試驗須知中六點

溫馨提示

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

評論

0/150

提交評論