課題 ARM嵌入式系統基礎教程 周立功第2版

2023-02-11 03:24:02 字數 5032 閱讀 6682

arm嵌入式系統基礎教程(周立功第2版). 第一章

思考與練習

1、舉出3個書本中未提到的嵌入式系統的例子。

答:紅綠燈控制,數字空調,機頂盒

2、什麼叫嵌入式系統

嵌入式系統:以應用為中心、以計算機技術為基礎、軟體硬體可裁剪、適應應用系

統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

3、什麼叫嵌入式處理器?嵌入式處理器分為哪幾類?

嵌入式處理器是為完成特殊的應用而設計的特殊目的的處理器。

嵌入式微處理器(embedded microprocessor unit, empu)

嵌入式微控制器(microcontroller unit, mcu)

嵌入式dsp 處理器(embedded digital signal processor, edsp)

嵌入式片上系統(system on chip)

4、什麼是嵌入式作業系統?為何要使用嵌入式作業系統?

是一段在嵌入式系統啟動後首先執行的背景程式,首先,嵌入式實時作業系統提高了系統的可靠性。其次,提高了開發效率,縮短了開發周期。再次,嵌入式實時作業系統充分發揮了 32 位 cpu 的多工潛力。

第二章1、嵌入式系統專案開發的生命週期分哪幾個階段?各自的具體任務是什麼?

專案的生命週期一般分為識別需求、提出解決方案、執行專案和結束專案4 個階段。

識別需求階段的主要任務是確認需求,分析投資收益比,研究專案的可行性,分析廠商所應具備的條件。

提出解決方案階段由各廠商向客戶提交標書、介紹解決方案。

執行專案階段細化目標,制定工作計畫,協調人力和其他資源;定期監控進展,

分析專案偏差,採取必要措施以實現目標。

結束專案階段主要包括移交工作成果,幫助客戶實現商務目標;系統交接給維護人員;結清各種款項。

2、為何要進行風險分析?嵌入式專案主要有哪些方面的風險?

在乙個專案中,有許多的因素會影響到專案進行,因此在專案進行的初期,在客戶和開發團隊都還未投入大量資源之前,風險的評估可以用來預估專案進行可能會遭遇的難題。

需求風險;時間風險;資金風險;專案管理風險

3、何謂系統規範?制定系統規範的目的是什麼?

規格制定階段的目的在於將客戶的需求,由模糊的描述,轉換成有意義的量化資料。

4、何謂系統規劃?為何要做系統規劃

系統規劃就是擬定乙個開發程序,使專案在合理的程序範圍中逐漸建構完成。其目地是讓客戶可以進一步地掌握系統開發的程序,並確定檢查點,以讓雙方確定專案是否如預期中的進度完成。

5、為什麼在專案結束前需要進行專案討論?

專案的討論乙個專案進行的反饋機制。通過這乙個程式,專案團隊的經驗才可以被記錄

下來,也就是說,這是乙個撰寫專案歷史的過程。

第三章1、arm7tdmi中的t、d、m、i的含義是什麼?

64 位乘法指令(帶m 字尾的)、支援片上除錯(帶d 字尾的)、高密度 16 位的thumb

指令機擴充套件(帶t 字尾的)和embededice 觀察點硬體(帶i 字尾的)

2、arm7tdmi採用幾級流水線?使用何種儲存器編址方式?

**流水線(取指解碼執行);使用了馮·諾依曼(von neumann )結構,指令和資料共用一條32 位匯流排。

3、arm處理器模式和arm處理器狀態有何區別?

處理器模式指的是處理器在執行程式時在不同時刻所處的不同狀態,處理器狀態指的是處理器當前所執行的指令集。

4、分別列舉arm的處理器模式和狀態。

狀態:arm 狀態 32 位,這種狀態下執行的是字方式的arm 指令

thumb 狀態 16 位,這種狀態下執行半字方式的 thumb 指令

模式:使用者模式、快中斷模式、中斷模式、管理模式、 中止模式、未定義模式和系統模式。

5、pc和lr分別使用哪個暫存器?

pc使用r15暫存器,lr使用r14暫存器

6、r13暫存器的通用功能是什麼?

堆疊第四章

1、基礎知識

(1)arm7tdmi(-s)有幾種定址方式?lor r1,[r0,#0x08]屬於哪種定址方式?

1. 暫存器定址;2. 立即定址;3.

暫存器移位定址;4. 暫存器間接定址;5. 基址定址;6.

多暫存器定址;7. 堆疊定址;8. 塊拷貝定址;9.

相對定址;lor r1,[r0,#0x08]屬於基址定址。

(2)arm指令的條件碼有多少個?預設條件碼是什麼?

16條, 預設條件碼是al。

(3)arm指令中第二個運算元有哪幾種形式?舉例5個8點陣圖立即數。

(1) 立即數;(2) 暫存器;(3) 暫存器及移位常數;

0x3fc(0xff<<2)、0、0xf0000000(0xf0<<24)、200(0xc8)、0xf0000001(0x1f<<28)。

(4)ldr/str指令的偏移形式有哪4種?ldrb和ldrsb有何區別?

(1) 零偏移;(2) 前索引偏移;(3) 程式相對偏移;(4) 後索引偏移。ldrb就是讀出指定位址的資料並存入指定暫存器,ldrsb讀出指定位址的資料,並高24位用符號位擴充套件,再存入指定暫存器。

(5)請指出mov指令與ldr載入指令的區別及用途。

mov 將 8 位圖(pattern)立即數或暫存器(operand2)傳送到目標暫存器(rd),可用於移位運算等操作。讀取指定位址上的儲存器單元內容,執行條件al.

(6)cmp指令的操作是什麼?寫乙個程式,判斷r1的值是否大於0x30,是則將r1減去0x30。

cmp 指令將暫存器rn 的值減去operand2 的值,根據操作的結果更新cpsr 中的相應條件標誌位,以便後面的指令根據相應的條件標誌來判斷是否執行。

cmp r1,0x30

subhi r1,r1,0x30

(7)呼叫子程式是用b還是用bl指令?請寫出返回子程式的指令?

bl 指令用於子程式呼叫。

mov pc, r14

(8)請指出ldr偽指令的用法。指令格式與ldr載入指令的區別是什麼?

ldr 偽指令用於載入 32 位的立即數或乙個位址值到指定暫存器。第二個數為位址表示式。

(9)arm狀態與thumb狀態的切換指令是什麼?請舉例說明。

bx指令,

(10)thumb狀態與arm狀態的暫存器有區別嗎?thumb指令對哪些暫存器的訪問受到一定限制?

thumb狀態下不能更新cpsr 中的alu 狀態標誌。,thumb指令對r8~r15暫存器訪問受限。

(11)thumb指令集的堆疊入棧、出棧指令是哪兩條?

push pop

(12)thumb指令集的bl指令轉換範圍為何能達到±4mb?其指令編碼是怎樣的?

thumb 採用兩條16 位指令組合成22 位半字偏移(符號擴充套件為32 位),使指令轉移範圍為±4mb。

2 有符號和無符號加法

下面給出a 和b 的值,您可先手動計算a+b,並**n、z、v 和 c 標誌位的值。然後修改程式清單4.1 中r0、r1 的值,將這兩個值裝載到這兩個暫存器中(使用ldr 偽指令,

如ldr r0,=0x ffff0000),使其執行兩個暫存器的加法操作。除錯程式,每執行一次加法操作就將標誌位的狀態記錄下來,並將所得結果與您預先計算得出的結果相比較。如果兩個運算元看作是有符號數,如何解釋所得標誌位的狀態?

同樣,如果這兩個運算元看作是無符數,所得標誌位又當如何理解?

0xffff000f 0x7fffffff 67654321 (a)

+ 0x0000fff1 + 0x02345678 + 23110000 (b)

結果3 資料訪問

把下面的 c **轉換成彙編**。陣列 a 和b 分別存放在以 0x4000 和 0x5000 為起始位址的儲存區內,型別為long(即32 位)。把編寫的組合語言進行編譯連線,並進行除錯。

for (i=0; i<8; i++)

第五章1、基礎知識:

(1)lpc2114可使用的外部晶振頻率範圍是多少(使用/不使用pll功能時)?

晶振頻率範圍:1~30 mhz,若使用pll 或isp 功能為:10~25mhz。

(2)描述一下lpc2210的po.14、p1.20、p1.

26、boot1和boot0引腳在晶元復位時分別有什麼作用?並簡單說明lpc2000系列arm7微控制器的復位處理流程。

p0.14 的低電平強制片內引導裝載程式復位後控制器件的操作,即進入isp 狀態。

p1.20 的低電平使 p1.25~p1.16 復位後用作跟蹤埠。

p1.26 的低電平使 p1.31~p1.26 復位後用作乙個除錯埠。

當reset 為低時,boot0 與boot1 一同控制引導和內部操作。引腳的內部上拉確保了引腳未連線時呈現高電平。

外部復位輸入:當該引腳為低電平時,器件復位,i/o口和外圍功能進入預設狀態,處理器從位址0 開始執行程式。復位訊號是具有遲滯作用的ttl 電平。

(3)lpc2000系列arm7微控制器對向量表有何要求(向量表中的保留字)?

向量表所有資料32 位累加和為零(0x00000000~0x0000001c 的8 個字的機器碼累加),才能離線執行使用者程式,這是

lpc2114/2124/2212/2214 的特性。

(4)如何啟動lpc2000系列arm7微控制器的isp功能?相關電路應該如何設計?

(5)lpc2000系列arm7微控制器片內flash是多位寬度的介面?它是通過哪個功能模組來提高flash的訪問速度?

128位, 通過儲存器加速模組(mam)來提高flash的訪問速度

(6)若lpc2210的bank0儲存塊使用32位匯流排,訪問bank0時,位址線a1、a0是否有效?emc模組中的blso~bls4具有什麼功能? 無效,( 如果儲存器組配置成 16 位寬,則不需要 a0;8 位寬的儲存器組需要使用 a0 。

);位元組定位選擇訊號。

(7)lpc2000系列arm7微控制器具有引腳功能復用特性,那麼如何設定某個引腳為指定功能?

通過引腳功能選擇暫存器的設定來設定某個引腳為指定功能

(8)設定引腳為gpio功能時,如何控制某個引腳單獨輸入/輸出?當前要知道某個引腳當前的輸出狀態時,是讀取iopin暫存器還是讀取ioset暫存器?

gpio方向暫存器,iopin。

(9)p0.2和p0.3口是i2c介面,當設定它們為gpio時,是否需要外接上拉電阻才能輸出高電平?

基於ARM的嵌入式系統程式開發要點

異常處理機制的設計 異常或中斷是使用者程式中最基本的一種執行流程或形態,這部分對arm架構下異常處理程式的編寫作乙個全面的介紹。arm一共有7種型別的異常,按優先從高到低排列如下 reset data abort fiqirqprefetch abort swiundefined instructi...

基於ARM的嵌入式工業控制系統設計

嵌入式系統如今已經廣泛的應用到了科學研究,工程設計,軍事技術,各類產業和商業等領域。並且還在不斷的發展和延續,嵌入式系統中又以arm架構的運用最為有發展前景,普及最為廣泛。在嵌入式作業系統領域中則是種類繁多,各有特色,windows ce作業系統由微軟開發,還繼承了windows等系列作業系統的有點...

嵌入式系統軟體教程複習

一 填空題 10分 1.處理器體系結構按指令和資料的儲存位置進行分類,一般劃分為哪兩類 2.處理器的指令系統一般有兩類 cisc和risc 他們的典型代表是?3.cpu與i o裝置之間的交換資訊一般包括 4.cpu對i o埠訪問一般有兩種方式。5.作業系統排程方式一般分為哪兩種?6.嵌入式匯流排按功...