南工大ARM嵌入式系統參考復習題_第1頁
南工大ARM嵌入式系統參考復習題_第2頁
南工大ARM嵌入式系統參考復習題_第3頁
南工大ARM嵌入式系統參考復習題_第4頁
南工大ARM嵌入式系統參考復習題_第5頁
已閱讀5頁,還剩17頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、精選優質文檔-傾情為你奉上ARM嵌入式系統設計參考復習題(2017-11)主要知識點:第1章1. 嵌入式系統:“以應用為中心,以計算機技術為基礎,軟硬件可裁減,適用于應用系統對功能、可靠性、成本、體積、功耗有嚴格要求的專用計算機系統” 根據應用的要求,沿著“體積小、低功耗、高可靠”方向發展,對運算速度、存儲容量沒有統一要求。三要素:嵌入、專用、計算機。2. 嵌入式系統有哪些部分組成?一般由硬件層,中間層(HAL或BSP)和軟件層組成。粗略劃分:嵌入式處理器、外圍設備、嵌入式操作系統(可選)、嵌入式應用軟件 稍細劃分:嵌入式處理器、外圍設備、驅動程序、嵌入式操作系統、應用接口、嵌入式應用軟件3.

2、 嵌入式系統特點:系統內核小專用性強系統精簡高實時性。4. 嵌入式處理器的分類:嵌入式微處理器(MPU):就是和通用計算機的處理器對應的CPU,可以認為是“增強型”通用微處理器 。嵌入式微控制器(MCU):就是將整個計算機系統的主要硬件集成到一塊芯片中,芯片內部集成ROM/EPROM、RAM、總線,總線邏輯、定時/計數器、Watchdog、I/O、串行口、A/D等各種必要功能和外設。嵌入式DSP處理器(DSP):是專門用于信號處理方面的處理器,在系統結構和指令算法方面進行了特殊設計,具有很高的編譯效率和指令執行速度。嵌入式片上系統(SOC):是追求產品系統最大包容的集成器件。絕大多數系統構件都

3、在一個系統芯片內部。第二章 1. ARM:是Advance RISC Machine 的縮寫,既可以認為是一個公司的名字,也可以認為是對一類微處理器的通稱,還可以認為是一種技術的名字。2. 在ARM9TDMI中 “9TDMI”的含義: 9:采用版本為9的ARM微處理器 T:支持16為壓縮指令集Thumb,D: 支持片上Debug,稱為D變種 M:內嵌硬件乘法器 Multiplier,稱為M變種 I: 嵌入式ICE,支持片上斷點和調試,稱為I變種。3. ARM Cortex-A8處理器的三種工作狀態:ARM狀態,處理器執行32位的字對齊的ARM指令;Thumb狀態:處理器執行16位的半字對齊的T

4、humb指令和ThumbEE狀態:執行16位的半字對齊的Thumb指令集變種。8種工作模式:用戶模式(usr)、快速中斷模式(fiq)、外部中斷模式(irq)、管理模式(svc)、中止模式(abt)、未定義模式(und)、系統模式(sys)和監控模式(mon)。特權模式:除usr之外的其它的7種工作模式都是特權模式。異常模式:除usr和sys之外的其它的6種工作模式都是持權模式。4. ARM A8寄存器分成哪幾類?各類有哪些寄存器?寄存器LR有什么用途?分兩類:33個通用寄存器和7 個狀態寄存器。33個通用寄存器:R0R15;R13_svc、R14_svc;R13_abt、R14_abt;R1

5、3_und、R14_und;R13_irq、R14_irq;R8_fiq-R14_fiq、R13_mon、R14_mon;。7 個狀態寄存器:CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR_fiq和SPSR_mon。LR (R14):也稱作子程序鏈接寄存器或鏈接寄存器LR,當執行BL子程序調用指令時,R14中得到R15(程序計數器PC)的備份。其他情況下,R14用作通用寄存器。與之類似,當發生中斷或異常時,對應的分組寄存器R14_svc、R14_irq、R14_fiq、R14_abt、R14_und和R14_mon用來保存R15的返回值。5.CPSR

6、各位是意義:N:正負號/大小 標志位 0表示:正數/大于;1表示:負數/小于 Z:零標志位 0表示:結果不為零;1表示:結果為零C:進位/借位/移出位0表示:未進位/借位/移出0;1表示:進位/未借位/移出1 V:溢出標志位 0表示:結果未溢出;1表示:結果溢出I、I和F:irq和fiq中斷允許和禁止控制位,1 禁止irq或fiq中斷 0 允許irq或fiq中斷。T: 控制(標志)位反映處理器的運行狀態T=1時,程序運行于Thumb狀態,T=0時,程序運行于ARM狀態。TM:控制位決定了處理器的運行模式模式 TM4:0用戶 10000快中斷 10001中斷 10010管理 10011中止 10

7、111未定義 11011系統 11111監控 101106.ARM 異常響應過程(進入異常)執行哪些操作。保存返回地址、保存當前狀態寄存器CPSR的內容、設置當前狀態寄存器CPSR中的相應位、轉去執行中斷處理程序。第三章 1.ARM指令中的第二操作數“operand2”有哪些具體形式:三種:寄存器、寄存器移位、8位位圖立即數。 2.對于ARM的變址尋址方式,有基地址和偏倚地址兩部分組成。(1)基地址可以是哪些寄存器?(2)偏移地址可以有哪些形式?(3)總地址的計算方法有哪些?怎么表示?(4)變址尋址應用于哪些指令?(1)基地址可以是通用寄存器R0-R15中的任意一個。(2) 偏移地址

8、可以有三種形式:12位立即數、寄存器、寄存器移位。(3) 總地址的計算方法有三種: 前變址(前索引):先基址+偏址,生成操作數地址,做指令指定的操作。如:LDR Rd,Rn,#m后變址模式(修改基址寄存器): 基址寄存器不加偏移作為操作數地址。 完成指令操作后,用(基址+偏移)的值修改基址寄存器。如:LDR Rd,Rn,#m自動變址模式(修改基址寄存器): 先基址+偏移,生成操作數地址,做指令指定的操作。然后自動修改基址寄存器。如:LDR Rd,Rn,#m !(4) 有4條指令: LDR、STR、LDM、STM3ARM 有尋址方式:立即尋址、寄存器尋址、寄存器間接尋址、變址尋址、多寄

9、存器尋址、堆棧尋址、塊拷貝尋址、相對尋址4. ARM 偽指令:ADR:小范圍的地址讀取偽指令、ADRL:中等范圍的地址讀取偽指令、LDR:大范圍的地址讀取偽指令、NOP:空操作偽指令。 5. ARM 指令集分為哪幾種類型?各類有哪些指令(可以不考慮協處理器指令)。五類:存器訪問指令、數據處理指令、跳轉指令、協處理器指令、雜項指令。存儲器訪問指令:單存儲器存取指令,多存儲器存取指令。數據處理指令:算術運算指令,邏輯運算指令,數據傳送指令,比較指令,測試指令。跳轉指令:B跳轉指令 BL帶鏈接的跳轉指令 BX帶狀態切換的跳轉指令 BLX帶鏈接和狀態切換的跳轉指令。雜項指令:程序狀態寄存器操作指令,中

10、斷操作指令。6. ARM 有哪些條件碼?各個條件碼的符號及意義。(比較常用的應該會)。條件碼 0000 0001 0010 0011 0100 0101 0110 0111助記符 EQ NE CS/HS CC/LO MI PL VS VC含 義 相等 不相等 無符號數大于或等于 無符號數小于 負數 非負數 溢出 沒有溢出標 志 Z=1 Z=0 C=1 C=0 N=1 N=0 V=1 V=01000HI無符號數大于C=1且Z=01001LS無符號數小于或等于C=0或Z=11010GE有符號數大于或等于N=V1011LT有符號數小于N!=V1100GT有符號數大于Z=0且N=V1101LE有符號數

11、小于或等于Z=1或N!=V1110AL無條件執行arm采用32位架構,基本數據類型4種,填空Byte 8位 字節HalfWord 16 半字 2字節對齊Word 32 字 4DoubleWord 64 雙字 8內核工作模式,cortex a8,(課本8種)8種usrfiqirqsvc特權模式abt數據訪問中止模式und未定義指令中止模式sysmon監控模式, 可在安全模式和非安全模式切換8個模式中,除用戶模式usr, 其他7個全部特權模式7個特權模式中,除了系統模式,剩下6個都屬于異常模式異常模式:快速中斷請求模式(FIQ)    用于高速數據傳輸 外部

12、中斷請求模式(IRQ)   用于通常的中斷處理特權模式(SVC)  數據訪問終止模式(abt)   當數據或指令預取終止時進入該模式,可用于虛擬內存及存儲保護 未定義指令中止模式(und)   用于支持硬件協處理器的軟件仿真監控模式(mon)Arm微處理器工作模式,分別為: 1 用戶模式(Usr)            用于正常執行程序2 快速中斷模式(FIQ)

13、60;   用于高速數據傳輸3 外部中斷模式(IRQ)   用于通常的中斷處理4  特權管理模式(SVC)         使用的保護模式(高權限),復位和軟件中斷進入5 數據訪問中止模式(abt)   當數據或指令預取終止時進入該模式,可用于虛擬內存及存儲保護6 系統模式(sys)         

14、;   運行擁有特權的操作系統任務7 未定義指令終止模式(und)   用于支持硬件協處理器的軟件仿真(浮點、微量運算)8 監控模式(mon), 可在安全模式和非安全模式切換異常模式優先級如下:1(最高)    SVC 復位2 abt  數據中止3 FIQ(快速中斷請求)4 IRQ(外部中斷請求)5 abt 預取指令中止6(最低) und 未定義指令, SWI 軟件中斷 arm7為止使用流水線3級取指令,從寄存器裝載一條指令譯碼 為下一周期準備控制信號執行 處理指令,結果寫會寄存器arm9,五級流水線 3

15、級+緩沖/數據 回寫arm10 6級流水線 寄存器R13用作數據棧指針,記作SP。 寄存器R14稱為鏈接寄存器,記作LR,它用于保存子程序的返回地址。 寄存器R15是程序計數器,記作PC,不能用作其它用途。CPSR 當前程序狀態寄存器 理解CPSR格式,里面標志位含義等等跳轉指令,bl跳轉32mb范圍,跳轉pc,如ldrb pc,.可以4GB范圍AAPCS標準 子程序調用,用R0-R3存儲參數,R0存返回值I2C總線,通過串行數據線(SDA)和串行時鐘線 (SCL)在連接到總線的器件間傳遞信息。傳輸時包含尋址和數據信息,每個字節8位,每個字節后必須跟一個響應位。 A_D轉換結束的表達式是 !(

16、TSAADCCON0&(1<<15)獲取AD轉換結果的表達式是 (TSDATX0&0xfff) LCD 16M色的像素顏色的數據格式是怎樣的4個字節,前3個字節分別為紅,綠,藍三原色的色號。64K色的數據則用16位表示一個像素的顏色,三原色配比是5/6/5。android操作系統的源碼結構分為3個部分:核心工程(Core Project),擴展工程(External Project),包(Package),應用程序(Application)在package/apps 目錄中。二、簡答題: 1、Cortex-A8是ARMv7-A 架構的,共有哪幾種工作模式,其中哪幾種

17、屬于異常模式?usr用戶模式fiq快速中斷模式irq 外部中斷模式svc特權模式abt數據訪問中止und未定義指令中止模式sys系統模式mon監控模式,安全模式切換8種工作模式,除用戶模式,都是特權模式特權模式里面,除系統模式,其他都是異常模式。即異常模式6種:Fiq 快速中斷異常模式Irq 外部中斷請求模式svc特權模式abt數據訪問中止模式und未定義指令中止模式mon監控模式2.寄存器CPSR,SPSR的功能各是什么?CPSR(當前程序)在任何處理器模式下被訪問。它包含了條件標志位、中斷禁止位、當前處理器模式標志以及其他的一些控制和狀態位。 中斷時,保存當前程序狀態,處理器模式等等。每一

18、種處理器模式下都有一個專用的物理狀態寄存器,稱為(備份程序狀態寄存器)。當特定的異常中斷發生時,這個用于存放當前程序狀態寄存器的內容。在異常中斷退出時,可以用SPSR來恢復CPSRCPSR格式CPSR格式如下所示。和CPSR格式相同。31 30 29 28 27 26 7 6 5 4 3 2 1 0N Z C V Q IT1:0J I F T M4 M3 M2 M1 M0*條件標志位*Nn=1表示運算結果為負數,n=0表示結果為正數或零。zz=1表示運算的結果為零;z=0表示運算的結果不為零。C進位,標志VV=1表示符號位溢出JThumbEE狀態位 M4-0 模式位3、簡述S5PV210 外部

19、中斷處理和響應的流程。中斷發生后,處理: 通過堆棧和spsr寄存器,入棧保存現場,設置cpsr模式位,處理器模式變成外部中斷模式。外部中斷中斷發生后,VIC0IRQSTATUS相應位置改變,中斷向量地址VIC0ADDRESS相應位改變,pc跳到向量表的特定地址,從該地址開始執行,跳轉調用我們寫的中斷處理函數,執行中斷處理程序。/*4.使能向量地址通道16中斷*/rVIC0INTENABLE|=(1<<16);/*5.向量地址通道16選擇為IRQ中斷*/rVIC0INTSELECT|=(1<<16);/0為fiq模式,1 irq/* 5.安裝中斷服務函數到VIC0VECT

20、ADDR16 ,強制轉換提取EINT16_31_IRQHandler函數地址*/rVIC0VECTADDR16 = (unsigned int)EINT16_31_IRQHandler;void EINT16_31_IRQHandler(void)。三、編程應用題:(閱讀分析,加注釋、填空與編程)1.將存儲器中0x開始的200字節的數據,傳送到0x開始的區域。解: MOV R0,#0x LDR R1,=0xMOV R7,#200LP: LDRB R2,R0,#1STRB R2,R1,#1SUBS R7, R7,#1BNE LP HERE: B HERE2.編寫一程序,查找存

21、儲器從0x開始的100個字中為0的數目,將其結果存到0x中。解: MOV R0,#0x MOV R1,#0 MOV R7,#100LP: LDR R2,R0,#4 CMP R2,#0 BNE NEXT ADD R1,R1,#1NEXT: SUBS R7,R7,#1 BNE LP STR R1,R0 HERE : B HERE3. 編寫一簡單ARM匯編程序段,實現1+2+100的運算。 MOV R2,#100 MOV R1,#0LOOP ADD R1,R1,R2 ;R1中為累加和 SUBS R2,R2,#1 ;R2控制循環 BNE LOOP5. 用ARM匯編語言和C語言寫一個初始值為0x的延時函

22、數。匯編的為:delay:ldr r0,=0xtemp:sub r0,r0,#1cmp r0,#0bne tempbx lr 上面程序參考c語言的寫法void delay()volatile int i,j;for(i=0;i<0x;i+);6. 請對如下程序解釋 按k2按鍵,松手,led閃爍#include "stdio.h"#include "s5pv210.h"#define rGPJ2CON *(volatile unsigned long *)0xe) #define rGPJ2DAT *(volatile unsigned long *

23、)0xe) void key_init()rGPH2CON &=(0xf<<0); /全部清0,設置輸入模式,然后按鍵被按值變成0void led_init()rGPJ2CON &=(0xf<<0);rGPJ2CON |=(0x1<<0);rGPJ2DAT |=(0x1<<0);void delay()int i,j;for(i=0;i<100;i+)for(j=0;j<100;j+);int keyled(void)printf("按鍵燈測試n");key_init();led_init();wh

24、ile(1)if(rGPH2DAT &(0x1<<0) = 0) /如果按鍵2按下,按鍵值0,/printf("key2 put down!n");delay();if(rGPH2DAT &(0x1<<0) = 0) /重新判斷消抖動影響/printf("key really put down!n");while(!(rGPH2DAT&(0x1<<0); /松手檢測rGPJ2DAT &=(0x1<<0); /亮delay();rGPJ2DAT |=(0x1<<0)

25、; /led暗return 0;ARM部分實驗程序(僅供參考):<實驗一> ARM開發平臺使用入門.equnum,2.section .text.global _start_start:Reset_Handler:movr0, #0;/* set up the three parameters */movr1, #3movr2, #2blarithfunc;/* call the function */stop:bstop;# *;# * According R0 valude to execute the code *;# *arithfunc:;/* label the fun

26、ction */cmpr0, #num;/* Treat function code as unsigned integer */bhsDoAdd;/* If code is >=2 then do operation 0. */adrr3, JumpTable;/* Load address of jump table */ldrpc, r3,r0,LSL#2;/* Jump to the appropriate routine */JumpTable:.wordDoAdd.wordDoSubDoAdd:addr0, r1, r2;/* Operation 0, >1 */bxl

27、r ;/* Return */DoSub:subr0, r1, r2;/* Operation 1 */bxlr<實驗二> GPIO LED接口控制實驗(LED顯示燈控制)控制實驗平臺的發光二極管LED1,LED2,LED3,LED4,使它們有規律的點亮和熄滅,具體順序如下:LED1 亮->LED2 亮->LED3 亮->LED4 亮->LED1 滅->LED2 滅->LED3 滅->LED4 滅->全亮->全滅,如此反復。/* name:* func: led_on turn on the leds one by one*/

28、void led_on(void)int i,nOut; nOut = 0xF0; rGPFDAT = nOut & 0x70; for(i=0;i<i+); rGPFDAT=nOut & 0x30; for(i=0;i<i+); rGPFDAT=nOut & 0x10; for(i=0;i<i+); rGPFDAT=nOut & 0x00; for(i=0;i<i+);/* name:* func: led_off turn off the leds one by one */ void led_off(void)int i,nOut;

29、 nOut=0;rGPFDAT = 0; for(i=0;i<i+); rGPFDAT = nOut | 0x80; for(i=0;i<i+); rGPFDAT |= nOut | 0x40; for(i=0;i<i+); rGPFDAT |= nOut | 0x20; for(i=0;i<i+); rGPFDAT |= nOut | 0x10; for(i=0;i<i+);/* name:* func: led_on_off turn on the 4 leds and then turn off the 4 leds*/void led_on_off(voi

30、d)int i; rGPFDAT=0; for(i=0;i<i+); rGPFDAT=0xF0; for(i=0;i<i+);/* name:* func: led_test i/o control test(led) */void led_test(void)rGPFCON=0x; 2 / PORTF7/6/5/4 OUTPUTuart_printf("n I/O (Diode Led) Test Examplen"); led_on(); led_off(); led_on_off(); delay(1000); uart_printf(" end

31、.n");<實驗三> LED數碼管綜合實驗#include "s5pc210.h"#include "uart.h"#define U8 unsigned charunsigned char seg7table16 = /* 0 1 2 3 4 5 6 7*/ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, /* 8 9 A B C D E F*/ 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e,;/*/ Function name: de

32、lay/ Description : 延時子程序/ Return type: void/ Argument : count,延時的數值*/void delay( int count )int cnt;for( count = count; count>0; count-)for( cnt = 0; cnt < 1000; cnt+);void Gpio_init()GPH2.GPH2CON = 0x;GPH2.GPH2DAT = 0xff;GPH3.GPH3CON = 0xff;GPH3.GPH3DAT = GPH3.GPH3DAT | 0x3;int main()int temp

33、,i,j,lp,flag = 0; int segN=0; int sg5; uart_init();printf("CVT S5PV210 Jtag KeyPad Test.n");Gpio_init();flag = 1; while (flag != 0) && (lp<6) for(j=0;j<lp;j+) *(U8*) 0x) = (0x01<<j); *(U8*) 0x) = seg7tablesgj; delay (30); for(i=0;i<8;i+)/*GPH2.07引腳輸出高電平,那么GPH3.01將始終是

34、高電平,依次將GPH2.07設置成低電平,那么,當按鍵按下時,該鍵對應GPH3.01的引腳將會變成低電平,由此判斷按鍵*/GPH2.GPH2DAT = 0xff;/ GPH2.07引腳輸出高電平GPH2.GPH2DAT &= (0x1<<i);/ GPH2.07設置成低電平delay(10);temp = GPH3.GPH3DAT & 0x3;delay(10);/GPH3.01的引腳將會變成低電平,由此判斷按鍵if(temp != 0x3)switch (i) case 0:if(temp = 0x1)printf("VOL+ Pressn")

35、; segN=9;sglp = segN;break;case 1:if(temp = 0x1)printf("VOL- Pressn");segN=7;sglp = segN;else if(temp = 0x2)printf("DOWN Pressn");segN=8;sglp = segN;break;case 2:break;case 3:if(temp = 0x1)printf("UP Pressn");segN=2;sglp = segN;break;case 4:if(temp = 0x2)printf("SL

36、EEP Pressn"); segN=0;sglp = segN;break;case 5:if(temp = 0x1)printf("MENU Pressn");segN=1;sglp = segN;else if(temp = 0x2)printf("RIGHT Pressn");segN=6;sglp = segN;break;case 6:if(temp = 0x1)printf("BACK Pressn");segN=3;sglp = segN;else if(temp = 0x2)printf("ENT

37、ER Pressn");segN=5;sglp = segN;break;case 7:if(temp = 0x2)printf("LEFT Pressn");segN=4;sglp = segN;break;default:break;/switch flag = 0; /if if (flag = 0) *(U8*) 0x) = (0x01<<lp); *(U8*) 0x) = seg7tablesegN; delay (500); lp=(lp+1)%6; flag =1; /while lp flagwhile(1); return 0;<

38、;實驗四> A/D轉換控制實驗部分程序#include "s5pc210.h"#include "uart.h"#include "clock.h"int adc_test(void);int main(void) int jn,jn1;/系統時鐘初始化clock_init();/ 初始化串口 uart_init();/ 設置ADC 讀取AIN7while(1)jn=adc_test();jn1 = jn/1000;GPD0.GPD0CON = (GPD0.GPD0CON & (0xF000) | (0x2 <&l

39、t; 12);/設置Tout3輸出TIMER.TCFG0 = (TIMER.TCFG0 & 0xFF ) | 0xFF; /配置預分頻值為256/TIMER.TCFG1 = (TIMER.TCFG1 & 0xF000) | 4 <<12;/配置分頻的值為1/16分頻TIMER3.TCNTB3 = jn;/設置基數緩沖器的值switch(jn1)case 1:TIMER.TCFG1 = (TIMER.TCFG1 & 0xF000) | 1 <<12;TIMER3.TCMPB3 = jn /1; break;case 2:TIMER.TCFG1 =

40、(TIMER.TCFG1 & 0xF000) | 2 <<12;TIMER3.TCMPB3 = jn /3; break;case 3:TIMER.TCFG1 = (TIMER.TCFG1 & 0xF000) | 3<<12;TIMER3.TCMPB3 = jn /6; break;case 4:TIMER.TCFG1 = (TIMER.TCFG1 & 0xF000) | 4 <<12;TIMER3.TCMPB3 = jn /8; break;/設置比較緩沖器的值TIMER.TCON = 0x0e << 16; /手動更新

41、,是緩沖器的值到計數器里面,雙緩沖機制TIMER.TCON = 0x0d << 16;/清除手動更新位,并啟動定時器3 delay(1000);return 0;<實驗五> LCD 觸摸屏顯示控制實驗#include "s5pc210.h"#include "clock.h"#include "uart.h"#include "lcd.h"#include "ts_ft5x06.h"#define WIDTHEIGHT800#define HEIGHT480extern

42、struct ts_event Touch_MSG;/保存觸控點信息#define ROW(480)#define COL(800)int main()unsigned int i,j,n;unsigned char points;/觸控點數量字符信息unsigned char xch53;/觸控點坐標字符信息unsigned char ych53;uart_init();Uart_Select(2);printf("CVT S5PV210 Uart_Touch Test.n");iic_init();lcd_init();lcd_clear_screen(0x);/ 使用

43、黑色清除屏幕lcd_draw_hline(ROW/2, 100, COL-100, 0xff0000);/ 紅色橫線lcd_draw_vline(COL/2, 50, ROW-50, 0x00ff00);/ 綠色豎線while(1)get_ts_msg();/獲取當前觸控信息output_ts_xy();/串口打印信息/lcd_clear_screen(0x);if(Touch_MSG.point_num = 0) /如果觸控點數為0,則不顯示continue;/坐標信息轉化為字符points = Touch_MSG.point_num + '0'for(n=0; n <

44、 Touch_MSG.point_num; n+)xchn0 = (Touch_MSG.Touch_xyn.x / 100) + '0'xchn1 = (Touch_MSG.Touch_xyn.x / 10) % 10) + '0'xchn2 = (Touch_MSG.Touch_xyn.x % 10) + '0'ychn0 = (Touch_MSG.Touch_xyn.y / 100) + '0'ychn1 = (Touch_MSG.Touch_xyn.y / 10) % 10) + '0'ychn2 = (To

45、uch_MSG.Touch_xyn.y % 10) + '0'/顯示坐標信息字符lcd_draw_char(16,0,'',0xffff00);lcd_draw_char(16,8,points,0xffff00);lcd_draw_char(16,16,'',0xffff00);for(i=16,j=40,n=0; n < Touch_MSG.point_num; j+=80,n+)lcd_draw_char(i,j+8*0,'(',0xffff00);lcd_draw_char(i,j+8*1,xchn0,0xffff0

46、0);lcd_draw_char(i,j+8*2,xchn1,0xffff00);lcd_draw_char(i,j+8*3,xchn2,0xffff00);lcd_draw_char(i,j+8*4,',',0xffff00);lcd_draw_char(i,j+8*5,ychn0,0xffff00);lcd_draw_char(i,j+8*6,ychn1,0xffff00);lcd_draw_char(i,j+8*7,ychn2,0xffff00);lcd_draw_char(i,j+8*8,')',0xffff00);lcd_draw_circle(Tou

47、ch_MSG.Touch_xyn-1.x, Touch_MSG.Touch_xyn-1.y,100,0x68228B) ;/紫/手動刷新坐標信息的顯示區delay(3000);for(i=16; i< 32; i+)for (j = 0; j < COL; j+)lcd_draw_pixel(i, j, 0x);return 0;ARM嵌入式系統設計模擬試題 一、填空題(請將答案填入題后括號中):每空2分,滿分20分。1、對于嵌入式系統來說,(低功耗)設計是許多設計人員必須面對的問題,其原因在于嵌入式系統被廣泛應用于便攜式和移動式較強的產品中,而且大多數嵌入式設備都有(體積和質量)

48、約束。2、ARM Cortex-A8處理器的三種工作狀態:(ARM)狀態,處理器執行32位的字對齊的ARM指令;Thumb狀態:處理器執行16位的半字對齊的Thumb指令和(ThumbEE)狀態:執行16位的半字對齊的Thumb指令集變種。3、R14也稱作子程序鏈接寄存器或鏈接寄存器LR,當執行(BL或BLX)子程序調用指令時,R14中得到R15(程序計數器PC)返回地址的備份。其他情況下,R14可用作(通用寄存器)。4、設R0,R1寄存器對應變量a和b,如下ARM指令:CMP R0,R1; ADDHI R0,R0,#1; ADDLS R1,R1,#1;對應的C 語言程序段為(if(a>

49、b) a+;else b+;) 5、 ARM7TDMI中,T表示支持16位(Thumb)指令集,D表示在片可調試,M表示內嵌乘法器Multiplier,I表示(嵌入式ICE),支持在線斷點和調試。6、 當多個異常同時發生時,有優先級系統決定異常處理順序,優先級最高的是(Reset)異常。二、簡答題:共4小題,每小題10分,滿分40分。1、 嵌入式系統的主要特點有哪些?嵌入式系統主要特點如下:1) 嵌入式系統是面向具體應用的產品,專用性強2) 嵌入式系統軟件、硬件生命周期都比較長,內核小、可裁剪。3) 需要軟硬件開發工具和環境,需要應用專家參與開發4) 嵌入式系統需具有高實時性和可靠性。 2、 ARM A8寄存器分成哪幾類?各類有哪些寄存器?寄存器LR有什么用途?分兩類:33個通用寄存器和7 個狀態寄存器。33個通用寄存器:R0R15;R13_svc、R14_sv

溫馨提示

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

最新文檔

評論

0/150

提交評論