嵌入式系統設計報告王瀟瀟

2022-12-25 00:12:02 字數 3802 閱讀 5445

姓名: 廖華文

學號: 20121001003

班級序號: 231122-3

指導老師: 張莉君

所在學院: 自動化學院

實驗一 arm組合語言程式設計

一. 實驗報告內容

(1)說明實驗內容三中例程軟體的功能並給出實現流程圖。

答:首先用匯程式設計序進行一些初始定義,然後呼叫c語言實現主要main函式功能。c語言函式中定義好led燈和按鍵輸入輸出埠位址,main函式中選取gpb5、6、7三個埠,和gpf0、1,然後開始掃瞄按鍵key1,將rgpbdat位址初始化為0xff;,用rgpfdat與按鍵訊號相與,判斷key1鍵是否按下。

若有,則呼叫延時函式,結束後判斷按鍵是否確實發生,若有,則將rgpbdat位址訊號左移五位,實現led1的點亮;若無,則進入下一段程式判斷key2鍵是否按下,工作原理同key1鍵的判斷過程。

流程圖nnny y

(2)給出實驗內容三中按鍵軟體防抖功能的詳細實現流程圖。

nyny y n

(3)給出實現開發板上3個led按流水燈方式閃爍的程式,其中具有必要注釋,並附axd中除錯成功的截圖。

;彙編指令實驗

;定義埠e暫存器預定義

rpcone equ 0x01d20028

rpdate equ 0x01d2002c

rpupe equ 0x01d20030

area init,code,readonly ;該偽指令定義了乙個**段,段名為init,屬性唯讀

entry ;程式的入口點標識

resetentry

;下面這三條語句,主要是用來設定i/o口gpe7為輸出屬性

ldr r0,=rpcone ;將暫存器rpcone的位址存放到暫存器r0中

ldr r1,=0x5400

str r1,[r0] ;將r1中的資料存放到暫存器rpcone中

;下面這三條語句,主要是禁止gpe埠的上拉電阻

ldr r0,=rpupe

ldr r1,=0xffff

str r1,[r0]

ldr r2,=rpdate ;將資料埠e的資料暫存器的位址附給暫存器r2

ledloop

ldr r1,=0xff

str r1,[r2] ;燈全滅

bl delay ;呼叫延遲子程式

ldr r1,=0xdf

str r1,[r2] ;使gpe5輸出高電平,led1燈會亮

bl delay ;呼叫延遲子程式

ldr r1,=0xbf

str r1,[r2] ;使gpe6輸出高電平,led2燈會亮

bl delay ;呼叫延遲子程式

ldr r1,=0x7f

str r1,[r2] ;使gpe7輸出高電平,led3燈會亮

bl delay ;呼叫延遲子程式

ldr r1,=0x0

str r1,[r2] ;使gpe7輸出低電平  d9燈亮

bl delay ;呼叫延遲

b ledloop ;不斷的迴圈,led1.2.3將不停的閃爍

;下面是延遲子程式

delay

ldr r3,=0xbffff ;設定延遲的時間

delay1

sub r3,r3,#1 ;r3=r3-1

cmp r3,#0x0 ;將r3的值與0相比較

bne delay1 ;比較的結果不為0(r3不為0),繼續呼叫delay1,否則執行下一條語句

mov pc,lr ;返回

end ;程式結束符

axd中除錯成功的截圖

rgpbdat=0xffff,置初始值

rgpbdat=0xff7f,led1亮

rgpbdat=0xffdf,led3亮

二.思考題

(1)在嵌入式系統程式設計當中,組合語言和c語言分別有什麼優勢?是否可以完全擯棄其中一種語言?為什麼?

答:組合語言執行效率高,能夠對cpu中的暫存器直接操作,但其適用範圍較窄,不同的及其對應不同彙編指令,開發周期短,可惡意之星差,開發周期長。而c語言則適用範圍廣,可移植性強,開發周期短,但是與組合語言比較知性效率低。

兩者混合使用,可結合各自優點,故不可完全摒棄其中一種語言。

(2)arm彙編呼叫c語言以及c語言呼叫arm彙編時,如何傳遞引數?本次實驗例程中引數是如何傳遞的?

答:當引數不超過4個時,可使用暫存器r0~r3來傳遞引數,當引數個數超過4個時,還可以使用資料棧來傳遞引數。返回結果通過r0~r3傳遞。

本次實驗例程中資料傳遞是通過暫存器r3傳遞的資料。

(3)例程中查詢方式的按鍵,採用了軟體防抖措施,其工作流程是什麼?還有哪些方式可實現按鍵防抖?

答:例程中軟體防抖工作流程是先掃瞄按鍵key1,若key1鍵按下則執行下面程式,若有鍵按下,則呼叫延時程式,延時返回後繼續掃瞄key1鍵,結束後判斷按鍵是否確實發生,若有,則將rgpbdat位址訊號左移五位,實現led1的點亮,然後開始掃瞄key2鍵,防抖原理如key1。

硬體法:

1、電容濾波法:利用其充放電特性,使整流後的脈動直流電壓變成相對比較穩定的直流電壓。

2、rs觸發器法:兩個與非門構成乙個rs觸發器,當按鍵未按下時,輸出為1,當鍵按下時,輸出為0.

3、中斷法:各個按鍵都接到外部中斷口上,當任何乙個按鍵按下時,引起中斷。

(4)c語言中和組合語言中是如何操作暫存器的?

答:通過對暫存器位址、資料的輸入、傳遞、輸出來操作的。

實驗二 s3c2440時鐘和中斷實驗

二. 實驗報告內容

三. 請畫出本程式發生按鍵中斷後,中斷響應及返回的整個流程圖。

ny201(2)本實驗程式中定時器timer0是如何實現按鍵防抖動的,請畫出中斷方式的按鍵,軟體防抖動的流程圖。

nyny二.思考題

思考題:

(1)比較實驗1和實驗2中ads下的工程設定的異同點,並分析其不同點設定的理由。

答:實驗1中linker裡面的1output ro base 位址設為0x30000000,這是s3c2440的sdram的首位址。二在實驗二中output ro base 位址改為0x00000000,這是s3c2440的nand flash的首位址。

實驗一程式是在nor flash模式下執行,實驗二是在nand flash模式下。

(2)在本實驗中為什麼要把可執行程式**到nand flash中執行,而不是直接**到sdram中執行?如果直接**到sdram中執行會發生什麼情況?

答:中斷向量表位於位址0x30000000 一下,如irq 中斷向量位址為0x00000018,、fiq 中斷向量位址為0x0000001c;而sdram 一般是對映到位址0x30000000 以後。此程式中使用了中斷,若程式**到sdram 中,則會因中斷向量位址不對而找不到中斷函式,則程式無法正常執行。

故要將程式**到nand flash 中執行。

(3)本實驗中,fclk設定為200mhz,s3c2440的主頻可以達到400mhz,若想設定fclk為400mhz,暫存器mpllcon該如何設定?

答:已知開發板外部時鐘晶振fin = 12mhz,要是pll 輸出fclk = 400mhz,則可令公式中 m = 200,p = 3,s = 2;則相應的mdiv = 192 = 0xc0,pdiv = 1,sdiv = 2;故 mpllcon = ((0xc0<<12)+(0x01<<4)+(0x02))

實驗小結

本次實驗收穫頗多,經過實驗我學會了使用ads這個軟體。同時在實驗的過程中是自己對上課內容得到了更深的體會,像在編寫流水燈的實驗過程中,知道了怎麼編寫位址來控制不同的燈等等,經過試驗時自己對很多概念更加清晰。此外,此次試驗還是我對arm的興趣更加濃烈,也讓自己明白到自己動手實踐可以得到更大的真知。

嵌入式系統設計

課程學習 題目 基於arm嵌入式影象處理系統設計與實現 院系 資訊工程與自動化學院 專業 模式識別與智慧型系統 學生姓名 學號指導老師 2013年08月10日 摘要本文主要設計了一種基於arm的可攜式影象採集處理系統。該系統以arm7 s3c44box 為核心,配上外圍電路以實現影象處理功能,並結合...

嵌入式系統設計

課程 設計 題目 基於51微控制器的秒錶的實現 電腦科學與技術王偉 摘要 本次設計內容為以stc89c52微控制器為核心的秒錶,它採用獨立鍵盤輸入 1602液晶顯示的特點。利用微控制器的定時器中斷的原理,用1602液晶以及獨立按鍵來設計秒錶。將軟 硬體有機地結合起來,使其擁有正確的計時 暫停 清零的...

《嵌入式系統》設計方案

移動列印終端終嵌入式系統設計方案 閱讀目錄 一專案概述 1 二系統總體架構 2 2.1.1 各功能部件作用 2 2 2 1 手持式掃瞄器 3 2 2 2 嵌入式開發板 3 2 2 3 微型印表機的選型 4 2 2 4 遠端伺服器 5 三軟 硬體設計 5 3 2 硬體設計 6 3 2 1 嵌入式開發板...