版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
一、填空題
1、哈佛體系結(jié)構(gòu)數(shù)據(jù)空間和地址空間〔分開),ARM920T采用〔哈佛)的內(nèi)核架構(gòu)。
2、ARM7TDMI采用[3)級流水線結(jié)構(gòu),ARM920TDMI采用(5)級流水線。
3、ARM7TDMI中,T表示支持16位Thumb指令集,D表示〔在片可調(diào)式),M表示內(nèi)嵌乘法器Multiplier,I
表示(嵌入式ICE),支持在線斷點和調(diào)試。
4、“嵌入性”、"專用性〃與“計算機(jī)系統(tǒng)”是嵌入式系統(tǒng)的三個根本要素。
5、ARM處理器共有37個存放器,31個通用存放器,6個狀態(tài)存放器。存放器R13通常用作堆棧指針,稱作SP。
存放器R14用作子程序鏈接存放器,也稱為鏈接存放器LK〔LinkRegister)。
6、程序狀態(tài)存放器CPSR的N、Z、C、V分別指一,1=1指-禁止IRQ中斷-、F=1指-禁止FIQ中斷M[4:0]用
做-處理器模式選擇-。
7、ARM微處理器支持四種類型的堆棧,即:滿遞增堆棧、滿遞減堆棧、空遞增堆棧、空遞減堆棧。
8、ARM微處理器有_乙種工作模式,它們分為兩類特權(quán)模式、非特權(quán)模式o其中用戶模式屬于_韭
特權(quán)模式
9、ARM支持兩個指令集,ARM核因運行的指令集不同,分別有兩個狀態(tài)ARM狀態(tài)、thumb狀態(tài),狀態(tài)存放器
CPSR的T1或者填D5)位反映了處理器運行不同指令的當(dāng)前狀態(tài)
10、ARM處理器有兩種總線架構(gòu),數(shù)據(jù)和指令使用同一接口的是馮諾依曼結(jié)構(gòu),數(shù)據(jù)和指令分開使用不同接
口的是哈佛結(jié)構(gòu)
11、ARM核有多個存放器,其中大局部用于通用存放器,有小局部作為專用存放器,R15存放器用于存儲
PC,R13通常用來存儲SP〔或者填堆棧指針)
12、編譯鏈接代碼時,有兩種存儲代碼和數(shù)據(jù)的字節(jié)順序,一種是小端對齊,另一種是大端對齊
13、不同的中斷處理不同的處理模式,具有不同的優(yōu)先級,而且每個中斷都有固定的中斷入口地址。當(dāng)一個中
斷發(fā)生時,相應(yīng)的R14存儲中斷返回地址,SPSR存儲狀態(tài)存放器CPSR的值。
14、嵌入式微處理器有嵌入式微處理器、嵌入式微控制器、曲入式DSP處理器和嵌入式片上系統(tǒng)四種類型。
15、ARM9TDMI采用5級流水線:取指、譯碼、執(zhí)行、訪存和寫回。
16、AMBA總線結(jié)構(gòu)包括ASB、AHB和APB總線。ASB/AHB用于CPU與存儲器、DMA控制器、總線仲裁控制器等片
上系統(tǒng)中芯片的連接,APB用于連接低速的外圍設(shè)備。
17、函數(shù)的參數(shù)傳遞方法有兩種:R0~R3存放器和堆棧
二、指令解析
1、LDRRO,[R1];從R1存放器指向的地址中取出一個字的數(shù)據(jù),存儲到R0存放器中
2、STRRO,[R1],#8;將R0中的字?jǐn)?shù)據(jù)寫入R1為地址的存儲器中,并將新地址R1+8寫入R1
3、ADDSR1,R1,#1;R1+1給RI
4、LDMFDR13!,{RO,R4-R12,PC};將堆棧內(nèi)容恢復(fù)到存放器(RO,R4到R12,LR)。
5、初始值R1=23H,R2=0FH執(zhí)行指令BICRO,RI,R2,LSL#1后,存放器RO,RI的值分別是多少?R0=21H,
R1=23H,R2=1EH
6、寫一條ARM指令,完成操作rl=r2*3(4分)
addrl,r2,r2LSL#1
7、說明指令STMIArl2!,{rO-rll}的操作功能。(4分)
將RO-R11十二個存放器中的32位數(shù)據(jù),存儲到R12地址指針為起始地址的內(nèi)存中,地址的操作方式是
先操作、后增加,并更新地址。
8、ADDRO,RO,#1;將R0+1的結(jié)果送R0是保存
9、ADDRO,RI,[R2];將以R2中的內(nèi)容為地址的單元中的值與RI相加,結(jié)果送RO保存
10、LDRRO,[R1+4];指令實現(xiàn)的功能是將R1的內(nèi)容加4后送R0
4.LDRRO,[R1+4]!;將R1的內(nèi)容加4后送R0,然后R1的內(nèi)容自增4個字節(jié)
5.BLable;程序無條件跳轉(zhuǎn)到標(biāo)號Lable處執(zhí)行
6.MOVRI,R0;指令實現(xiàn)的功能是將存放器R0的值傳送到存放器R1
7.CMPRI,R0;存放器R1的值與存放器R0的值相減,根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位
8.CMNRI,R0;將存放器R1的值與存放器R0的值相加,根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位
9.ORRRO,R0,#3;該指令設(shè)置R0的0、1位,其余位保持不變
10.MRSRO,SPSR;傳送SPSR的內(nèi)容到R0
11.CMPRI,R2;存放器R1的值與存放器R2的值相減,根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位
12.MRSRO,CPSR;傳送SPSR的內(nèi)容到R0
13.MOVR2,RO;將存放器R0的值傳送到存放器R2
14.ADDRLRL#3;將R1+3的結(jié)果送R1是保存
15.ADDR2,RL[RO];將以R0中的內(nèi)容為地址的單元中的值與R1相加,結(jié)果送R2保存
16.LDRRI,[R0+4]將R1的內(nèi)容加4后送R0
17.LDRRI,[R0+4]!;將R1的內(nèi)容加4后送R0,然后R1的內(nèi)容自增4個字節(jié)。
18.ANDRO,RO,#3;保持R0的0、1位,其余位清零
19.B0x1200;程序無條件跳轉(zhuǎn)到0x1200處執(zhí)行
20.CMNRI,R2;將存放器R1的值與存放器R2的值相加,并根據(jù)結(jié)果設(shè)置CPSR的標(biāo)志位
三、看圖答復(fù)
1、以下圖是ARM9處理器的當(dāng)前程序狀態(tài)存放器,請簡單說明各位的功能。
N:負(fù)標(biāo)志位,運算結(jié)果的第31位值,記錄標(biāo)志設(shè)置的結(jié)果。
Z:零標(biāo)志位,如果標(biāo)志設(shè)置操作的結(jié)果為0,那么置位。
C:進(jìn)位標(biāo)志位,記錄無符號加法溢出,減法無錯位,循環(huán)移位。
V:溢出標(biāo)志位,記錄標(biāo)志設(shè)置操作的有符號溢出。
I:中斷禁止標(biāo)志位,置位時禁止IRQ中斷,否那么允許IRQ中斷使能。
F:中斷禁止標(biāo)志位,置位時禁止FIQ中斷,否那么允許FIQ中斷使能。
T:控制位,置位時處理器運行在Thumb狀態(tài)下,清零時處理器運行在ARM狀態(tài)下。
M0~M4:模式控制位,定義處理器的7中模式。
其余位為保存位,留作將來使用。
2、閱讀以下與看門狗有關(guān)的存放器描述,解釋每一行代碼的功能。
NT3000008寫[狗計數(shù)器當(dāng)前值000
#definerWTCON(*(volatileunsigned*)0x53000000)//第1行
#definerWTDAT(*(volatileunsigned*)0x53000004)//第2行
#definerWTCNT(*(volatileunsigned*)0x53000008)//第3行
voidwatchdog_test(void)
(
rWTCON=((PCLK/1000000-l)?8)|(3?3)|(1?2);//第4行
rWTDAT=7812;//第5行
rWTCNT=7812;//第6行
rWTCON|=(1?5);//第7行
3、閱讀以下S3c2410局部用戶手冊.求:當(dāng)PCLK或UCLK為40MHz時,串口0的波特率為2400bps,串
口1的波特率為115200bps,相應(yīng)的控制存放器如何設(shè)置.
UARTBAUDRATEDIVISORREGISTER
TherearethreeUARTbaudratedivisorregisters(存放器〕includingUBRDIVO,UBRDIV1andUBRDIV2in
theUARTblock1模塊).Thevaluestoredinthebaudratedivisorregister(UBRDIVn),isusedto
determinetheserialTx/Rxclockrate(baudrate)asfollows:
UBRDIVn=(int)(PCLK/(bpsx16))-lorUBRDIVn=(int)(UCLK/(bpsx16))-1
Where,thedivisorshouldbefrom1to(216-1)andUCLKshouldbesmallerthanPCLK.
isterresscriptionetValue
DIV00000028dratedivisorregister0
DIV10004028dratedivisorregister1
DIV20008028dratedivisorregister2
DIVncriptiontialState
DIV:0]dratedivisionvalueUBRDIVn>0
四、簡答題
1、根據(jù)嵌入式系統(tǒng)的特點,寫出嵌入式系統(tǒng)的定義。
答:嵌入式系統(tǒng)是以應(yīng)用為中心,以計算機(jī)技術(shù)為根底,軟/硬件可裁減,功能??煽啃?,本錢,體積,功耗要
求嚴(yán)格的專用計算機(jī)系統(tǒng)。
2、嵌入式系統(tǒng)的主要應(yīng)用領(lǐng)域有哪些?
3、什么是RISC?什么是CISC?
答:RISC是英文ReducedInstructionSetComputer的縮寫,漢語意思為“精簡指令系統(tǒng)計算機(jī)
相對應(yīng)的CISC就是〃復(fù)雜指令系統(tǒng)計算機(jī)〃的意思。
CPU從指令集的特點上可以分為兩類二CISC和RISCo
4、ARM9TDMI中的T、D、S、I分別表示什么含義?
答:T表示支持16位Thumb指令集,D表示在片可調(diào)式(Debug),M表示內(nèi)嵌乘法器Multiplier,
I表示嵌入式ICE,支持在線斷點和調(diào)試。
4、ARM處理器模式和ARM處理器狀態(tài)有什么區(qū)別?
答:[1)ARM7TARM體系結(jié)構(gòu)支持7種處理器模式,分別為:用戶模式、快中斷模式、中斷模式、管理模式、
中止模式、未定義模式和系統(tǒng)模式。
(2)ARM處理器狀態(tài):ARM狀態(tài)、Thumb狀態(tài)。
(3〕兩種處理器狀態(tài)都有這7種處理器模式;兩個狀態(tài)之間切換并不影響處理器模式或存放器內(nèi)容。
5、ARM9TDMI有幾種尋址方式?
答:立即尋址、存放器尋址、基地址變址尋址、存放器偏移尋址、存放器間接尋址、多存放器尋址
6、ARM9的內(nèi)部存放器R13、R14、R15的主要功能和作用?
7、FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不同?
答:[1)FIQ的優(yōu)先級比IRQ高,對外部事件響應(yīng)比IRQ快。
(2)A:向量IRQ具有中等優(yōu)先級,對外部事件響應(yīng)比擬及時;非向量IRQ優(yōu)先級最低,中斷延遲時間比擬長。
B:向量IRQ能為每個向量IRQ中斷源設(shè)置效勞程序地址;而所有的非向量IRQ中斷都共用一個相同的效勞程
序入口地址。
8、ARM9TDMI支持哪幾種指令集,各有什么特點?
9、ARM9TDMI有幾種處理器模式,簡單介紹該幾種模式的工作特點?
答:P45
ARM7TARM體系結(jié)構(gòu)支持7種處理器模式
1.用戶模式:正常處理程序時的模式
2.快中斷模式:響應(yīng)快速中斷時的處理模式
3.中斷模式:響應(yīng)普通中斷時的模式
4.管理模式:操作系統(tǒng)的保護(hù)模式
5.中止模式:指令或數(shù)據(jù)預(yù)取操作中止時的模式,該模式下實現(xiàn)虛擬存儲器或存儲器保護(hù)
6.未定義模式:當(dāng)執(zhí)行未定義的指令時進(jìn)入該模式
7.系統(tǒng)模式:運行特權(quán)操作系統(tǒng)任務(wù)時的模式
10、ARM9TDMI采用了幾級流水線工作方式,簡要說明。
11、ARM9TDMI支持的數(shù)據(jù)類型有幾種?各有什么要求?
12、ARM920T體系結(jié)構(gòu)支持哪兩種方法存儲字?jǐn)?shù)據(jù)?
13、ARM920T體系結(jié)構(gòu)所支持的哪幾種異常?說明其具體含義。
14、簡述ARM處理器對異常的響應(yīng)的步驟。
15、簡述ARM處理器從異常返回的步驟
16、寫出基于ARM920T核的處理器的異常優(yōu)先級(ExceptionPriorities)?
17.寫出基于ARM920T核的處理器的異常向量(ExceptionVectors)及異常進(jìn)入的模式
18.畫出采用力猥格式存放01020304H的存儲器示意圖。
19.畫出采用立超格式存放05060708H的存儲器示意圖。
20、ARM920T有哪些運行模式,其中哪些屬于特權(quán)模式?
21、用ARM匯編指令寫出實現(xiàn)64位加法和64位減法的代碼段,使用的存放器請自行分配
假定低32位數(shù)存放在r0和rl里面,高32位數(shù)存放在r2和r3里面。答:加法:ADDSr0,rO,rl〃加S是
因為要讓這個操作影響標(biāo)志位
ADCr2,r2,r3//ADC是帶進(jìn)位的加法,如果上一條指令產(chǎn)生進(jìn)位那么一起加進(jìn)來
減法:SUBSr0,r0,rl〃加S是因為要讓這個操作影響標(biāo)志位
SBCr2,r2,r3〃SBC是帶進(jìn)位的減法指令22、S3c2410支持幾種引導(dǎo)方式〔或者說是內(nèi)存映射方
式)?簡述Nand引導(dǎo)方式S3c2410硬件做的事情。
1)norflash啟動方式。2)nandflash啟動方式。
從Nandflash啟動時,S3c2410首先會執(zhí)行固化在片上ROM中的一段小程序,這段程序負(fù)
責(zé)將nandflash前2K的代碼搬移到片上RAM,然后將PC指針指向0x0地址(注意這個時候片上
RAM被映射到0x0的起始地址〕23、ARM微處理器內(nèi)核是如何進(jìn)行異常處理的?
答:1〕當(dāng)異常產(chǎn)生時,ARM內(nèi)核拷貝CPSR到SPSR_<mode>,設(shè)置適當(dāng)?shù)腃PSR位:改變處理器狀態(tài)進(jìn)入
ARM態(tài),改變處理器模式進(jìn)入相應(yīng)的異常模式,設(shè)置中斷禁止位禁止相應(yīng)中斷(如果需要);保存返回地
址到LR_〈mode>,設(shè)置PC為相應(yīng)的異常向量。2)返回時,異常處理需要從SPSR_〈mode>恢復(fù)CPSR,從
LR_〈mode>恢復(fù)PC,注意:這些操作只能在ARM態(tài)執(zhí)行。
24、ARM提供的可執(zhí)行映像文件的模板包括哪3個生成目標(biāo)?各包含什么調(diào)試信息?
答:ARM提供的可執(zhí)行的映像文件的模板包括了下面3個生成目標(biāo):
1)Debug使用本生成目標(biāo)生成的映像文件中包含了所有的調(diào)試信息,用于在開發(fā)過程中使用;
2)2〕Release使用本生成目標(biāo)生成的映像文件中不包含調(diào)試信息,用于生成實際發(fā)行的軟件版本;3)DebugRel
使用本生成目標(biāo)生成的映像文件中包含了根本的調(diào)試信息。
25、為什么需要嵌入式操作系統(tǒng)?
答:嵌入式系統(tǒng)與一般的系統(tǒng)不同,設(shè)計成為執(zhí)行特定的操作,但是初期的嵌入式系統(tǒng)比擬單純,不需
要特殊的操作系統(tǒng),由人來編寫程序并順序執(zhí)行,只有當(dāng)中間發(fā)生中斷時才會暫時脫離此順序程序。過
去的嵌入式系統(tǒng)主要與簡單而順序的操作有關(guān),使用操作系統(tǒng)成為浪費和不必要的舉措。但是最近的嵌
入式系統(tǒng)領(lǐng)域中系統(tǒng)本身相當(dāng)龐大,網(wǎng)絡(luò)和多媒體成為系統(tǒng)的根本功能,嵌入式系統(tǒng)要做的事情既多又
復(fù)雜,順序程序的操作變得越來越難。因而在嵌入式系統(tǒng)中出現(xiàn)了操作系統(tǒng)的概念,要滿足其實時的要
求,進(jìn)而產(chǎn)生了實時操作系統(tǒng)。
26、簡述口C/OSTI操作系統(tǒng)的移植條件。
答:要使口c/os—ii能正常運行,處理器必須滿足以下要求。
(1)處理器的c編譯器能產(chǎn)生可重入代碼
可重入代碼是指可以被多個任務(wù)同時調(diào)用,而不會破壞數(shù)據(jù)的一段代碼;或者說代碼具有在執(zhí)行過
程中打斷后再次被調(diào)用的能力。
12)處理器支持中斷,并且能產(chǎn)生定時中斷。arm處理器支持中斷并能產(chǎn)生定時中斷。
(3)c語言可以開/關(guān)中斷
arm處理器核包含一個cpsr存放器,該存放器包括一個全局中斷禁止位,控制它翻開和關(guān)閉中斷。
(4)處理器支持一定數(shù)量的數(shù)據(jù)存儲硬件堆棧
對于一些只有10根地址線的8位控制器,芯片最多可訪問Ikb存儲單元,在這樣的條件下移植是比擬
困難的。
15)處理器有將堆棧指針以及其他cpu存放器的內(nèi)容讀出并存儲到堆?;騼?nèi)存中去的指令
arm處理器中匯編指令stmfd可以將所有存放器壓棧,對應(yīng)的也有一個出棧指令I(lǐng)dmfdo
27、簡要說明嵌入式操作系統(tǒng)多任務(wù)通訊的常用方式。
答:多任務(wù)通訊的方式:a)共享內(nèi)存,主要是數(shù)據(jù)的共享;b)信號量,用于根本的互斥和任務(wù)同步;c)
消息隊列和管道,單CPU的消息傳送;d)Socket和遠(yuǎn)程過程調(diào)用,用于網(wǎng)絡(luò)間任務(wù)消息傳送。
28、嵌入式開發(fā)環(huán)境主要包括哪些組件?
嵌入式系統(tǒng)開發(fā)需要交叉編譯和在線調(diào)試的開發(fā)環(huán)境,主要包括
1宿主機(jī)2目標(biāo)機(jī)(評估電路板〕3基于JTAG的ICD仿真器、或調(diào)試監(jiān)控軟件、或在線仿
真器ICE。4運行于宿主機(jī)的交叉編譯器和鏈接器、以及開發(fā)工具鏈或軟件開發(fā)環(huán)境。5嵌
入式操作系統(tǒng)
29、在進(jìn)行基于ARM核的嵌入式系統(tǒng)軟件開發(fā)時,調(diào)用如下函數(shù):
intdo_something(intargl,void*arg2,chararg3,int*arg4)
這四個套數(shù)通過什么方式從調(diào)用程序傳入被調(diào)函數(shù)?
根據(jù)ATPCS編程標(biāo)準(zhǔn),調(diào)用函數(shù)和子程序通過R0——R3四個存放器傳遞參數(shù),超過四個
參數(shù)使用堆棧傳遞。因此argl通過R0傳入,arg2,通過R1傳入,arg3通過R2傳入,arg4
通過R3傳入
30、簡述MMU的含義及主要工作。
答:MMU,也就是“內(nèi)存管理單元”(memorymanagementunit)。
其主要作用是兩個方面:一是地址映射;二是對地址訪問的保護(hù)和限制。
31、ARM9TDMI核中TDMI的根本含義是:P42
T表示支持16位Thumb指令集,D表示在片可調(diào)式[Debug),
M表示內(nèi)嵌乘法器Multiplier,I表示嵌入式ICE,支持在線斷點和調(diào)試。
32、簡述ARM微處理器支持的指令集。
ARM微處理器支持32位的ARM指令集和16位的Thumb指令集。ARM指令集效率高,但代碼密度低;Thumb
指令集具有較高的代碼密度,可保持ARM的大多數(shù)性能上的優(yōu)勢,可看做是ARM指令集的子集。ARM程
序和Thumb程序可以相互調(diào)用,且沒有狀態(tài)切換開銷。
33、解釋以下標(biāo)識符的作用
33、描述嵌入式系統(tǒng)中存儲系統(tǒng)結(jié)構(gòu),存儲器分類以及各類存儲器的常規(guī)用途
分類:隨機(jī)存儲器[RAM):方便讀寫,
但掉電后信息喪失。
只讀存儲器(ROM):讀取方便,
但寫入需要特殊時序,
掉電后信息不喪失。
五、編程題
1.用匯編語言編寫程序讀取存儲器0x40003100地址上的數(shù)據(jù),將數(shù)據(jù)加1,假設(shè)結(jié)果小于10那么使用STR指
令把結(jié)果寫回原地址,假設(shè)結(jié)果大于等于10,那么把0寫回原地址。
2、用匯編語言調(diào)用C語言實現(xiàn)n個數(shù)相加,n為C函數(shù)的參數(shù),由匯編語言傳遞,結(jié)果存放在R5存放器中。
C程序:
2.3匯編指令實驗2SUBR5,R0,R8,LSL#3
XEQU11;判斷(5*Y/2)嗎,假設(shè)大于,那么
YEQU8R5=R5&0XFFFF0000
BIT23EQU(1?23)否那么,R5=R5|OXOOOOOOFF
AREAExamples,CODE,READONLYMOVRO,#Y
ENTRYADDRO,R0,RO,LSL#2
C0DE32MOVRO,R0,LSL#1
START;使用MOV.ADD指令實現(xiàn):R8=R3=X+YMOVR1,#X
MOVR0,#XMOVR1,R1,LSL#1
MOVRI,#YCMPRO,RI
ADDR3,R0,RILDRHIR2,=OXFFFFOOOO
MOVR8,R3ANDHIR5,R5,R2
;實現(xiàn)R5RX5FFFFFF8-R8*8ORRLSR5,R5,#OXOOOOOOFF
MVNR0,#OXAOOOOOO使用TST指令測試R5的BIT23是否為1,假
設(shè)是那么將BIT6位清零DOWHILE_ENDNOP
TSTR5,#BIT23;switch(key&OxOF)
BICNER5,R5,#0X00000040;{caseO:
BSTART;case2:
END;case3:x=key+y;
2.4匯編指令實驗3;break;
AREAExamples,CODE,READONLY;case5:x=key-y;
ENTRY;break;
C0DE32;case?:x=key-y;
START;(x>y)z=100;;break;
;elsez=50;;default:x=168;
MOVRO,#76;break;
MOVRI,#243;)
CMPRO,RIMOVRI,#3
MOVHIR2,#100MOVR2,#2
MOVLSR2,#50SWITCHANDR2,R2,#0x0F
;for(i=0;i<10;i++)CASE_OCMPR2,#0
;{x++CASE_2CMPNER2,#0
;)CASE_3CMPNER2,#0
MOVRO,#0BNECASE_5
MOVR2,#0ADDRO,R2,RI
FOR_L1CMPR2,#10BSWITCH_END
BHSFOR_ENDCASE_3CMPR2,#5
ADDRO,RO,#1BNECASE_7
ADDR2,R2,#1SUBRO,R2,RI
BFOR_L1BSWITCH_END
FOR_ENDNOPCASE_7CMPR2,#7
;while(x<y)BNEDEFAULT
;{x*=2MULRO,R2,RI
;)BSWITCH_END
MOVRO,#1DEFULTMOVRO,#168
MOVRI,#20SWITCH_ENDNOP
BWHILE_L2HALFBHALF
WHILE_L1MOVRO,RO,LSL#1END
WHILE_L2CMPRO,RI2.6C語言程序?qū)嶒?/p>
BLSWHILE_L1#defineunit8unsignedint
WHILE_ENDNOR#defineunit32unsignedint
;do#defineN100
;(unit32sum;
;}while(x>0);voidMain(void)
MOVRO,#5{unit32i;
DOWHILE_L1ADDRO,RO,#Tsum=0;
D0WHILE_L2MOVSRO,ROfor(i=0;i<=N;i++)
BNEDOWHILE_L1{sum+=i;
〃控制蜂鳴器BE的一聲
while(1);voidRunBeep(void)
)
匯編rGPHDAT=rGPHDAT&BEEP_MASK;//BEEP=0
IMPORT|Image$$RO$$Limit|DelayNS(5);
IMPORT|Image$$RW$$BaserGPHDAT=rGPHDAT|BEEP;BEEP=1
IMPORTImage$$ZI$$BaseDelayNS(5);
IMPORTImage$$ZI$$Limit)
IMPORTMain〃控制LEDrLED4全部點亮
AREAStart,CODE,READONLYvoidLEDDispAllOn(void)
ENTRY(
C0DE32rGPHDAT=rGPHDAT|(0x03?ll);
RestLDRSP,=0X40003F00rGPHDAT=rGPHDAT|(0x05?4);
LDRRO,=Image$$RO$$Limit}
LDRRI,=Image$$RW$$BaseE〃控制LED「LED4全部熄滅
LDRR3,=Image$$ZI$$BasevoidLEDDispAllOff(void)
CMPRO,RI(
BEQLOOP1rGPHDAT=rGPHDAT&C(0x03?l1));
LOOPOCMPR1,R3rGPHDAT=rGPHDAT&C(0x05?4));
LDRCCR2,[RO],#4}
STRCCR2,[RI],#4〃控制LEDPLED4顯示指定16進(jìn)制數(shù)值。
BCCLOOPOLED4為最高位,LED1為最低位
LOOP1LDRRI,=Image$$ZI$$Limit點亮表示該位為1
MOVR2,#0voidLEDDispNum(unit32dat)
LOOP2CMPR3,R1(
STRCCR2,[R3],#4dat=dat&0x0000000F;//參數(shù)過濾
BCCL00P2〃控制LED4,LED3顯示(d3,d2位)
BMain
ENDif(dat&0x08)rGPHDAT=rGPHDAT|(0X01?16
2.7);
2.8GPIO輸出控制實驗else
ftinclude"config,h”rGPHDAT=rGPHDAT&("(0X01?16));
ttdefineLED1_CON(1?11)
ftdefineLED2_CON(1?12)if(dat&0x04)rGPHDAT=rGPHDAT|(0X01?4)
ttdefineLED3_CON(1?4)
ttdefineLED4_C0N(1?6)else
ftdefineBEEP(l?10)rGPHDAT=rGPHDAT&C(0X01?4));
ttdefineBEEP_MASK("BEEP)〃控制LED2,LED1顯示〔dl,dO位)
voidDelayNS(uint32dly)
(rGPHDAT=(rGPHDATfeC(0X03?l1)))|((dat
uint32i;&0x03)?ll);
for(;dly>0;dly一))
for(i=0;i<50000;i++);初始化I/O,然后控制LED顯示
intmain(void)
rGPFCON=(rGPFCONfeC(0x03?8)));
inti;
初始化I/OrGPHCON=(rGPHCONfeC(0x03?20)))|(0x01
rGPECON=(rGPECONfeC(0X0F?22)))|(0X05?20);
?22);while(1)
rGPHCON=(rGPECONfeC(0X33?8)))|(OX11<{
<8);if(rGPFDAT&KEY_CON)
rGPHCON=(rGPECONfeC(0X03?20)))(0X51(
?20);rGPHDAT=rGPHDAT|BEEP;
))
控制LED顯示else
while(1)(
{rGPHDAT=rGPHDAT|BEEP_MASK;
RunBeep();〃蜂鳴器響一聲)
LED全閃爍5次DelayNS(1);
for(i=0;i<5;i++))
(return(0);
LED_DisA110ff();//LED全熄滅}
DelayNS(5);2.10外部中斷實驗
LED_DisA110n();//LED全點亮ftinclude"config,h”
DelayNS(5);ttdefineLED1_CON(1?11)
控制LED指示0~F的十六進(jìn)制數(shù)值ttdefineLED2_C0N(1?12)
)#defineLED3_C0N(1?4)
for(i=0;i<16;i++)ttdefineLED4_C0N(1?6)
(ttdefineKEY_CON(1?4)
LED_DisNum(i);〃顯示數(shù)值iuint8ledcon=0x00;
DelayNS(5);voidDelayNS(uint32dly)
uint32i;
return(0);for(;dly>0;dly一)
)for(i=0;i<50000;i++);
2.9GPI0輸入控制實驗}
ftinclude"config,h”voidIRQ_Eint4(void)
ftdefineKEY_CON(1?4)(
ftdefineBEEP(l?10)inti;
ftdefineBEEP_MASK("BEEP)rGPFCON=rGPFCON&C(0x03?8));
voidDelayNS(uint32dly)for(i=0;i<10000;i++);
(if(rGPFDAT&KEY_CON)
uint32i;{
for(;dly>0;dly一)rGPFCON=rGPFCON|(0x02?8);
for(i=0;i<50000;i++);rEINTPEND=(l?4);
)rSRCPND=(l?4);
intmain(void)rINTPND=rINTPND;
return;
LED_DispA110ff0;
rGPFCON=rGPFCON|(0x02?8);EINT_init();
if(ledcon)IRQEnable();
(while(1);
ledcon=0;return(0);
rGPEDAT=rGPEDAT&("LED1_CON);)
)2.11UART通訊實驗
else#include"config,h”
(voidDelayNS(uint32dly)
ledcon=l;
rGPEDAT=rGPEDAT|LED1_CON;uint32i;
}for(;dly>0;dly一)
rEINTPEND=(l?4);for(i=0;i<50000;i++);
rSRCPND=(l?4);}
rINTPND=rINTPND;串口接受字符
Unitg_getch=0;
voidEINTinit(void)
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 娛樂場所安全操作規(guī)范手冊(標(biāo)準(zhǔn)版)
- 2025 小學(xué)四年級科學(xué)上冊四季的探究報告課件
- 選煤廠安全生產(chǎn)例會制度
- 收費站安全生產(chǎn)匯報制度
- 園區(qū)安全生產(chǎn)檢查制度
- 生產(chǎn)廠家定制翅片管理制度
- 道路運輸安全生產(chǎn)例會制度
- 安全生產(chǎn)記錄控制制度
- 供電所安全生產(chǎn)班組制度
- 2026年職場技能提升與個人發(fā)展測試題
- ICU護(hù)士長2025年度述職報告
- 2026云南保山電力股份有限公司校園招聘50人筆試參考題庫及答案解析
- 引水壓力鋼管制造及安裝工程監(jiān)理實施細(xì)則
- 鋼結(jié)構(gòu)除銹后油漆施工方案
- 骨科患者圍手術(shù)期靜脈血栓栓塞癥預(yù)防指南(2025年)
- 輔助生殖項目五年發(fā)展計劃
- 倉庫安全消防管理制度
- 2025年信息化運行維護(hù)工作年度總結(jié)報告
- 腸梗阻的課件
- 廣西對口升專職業(yè)技能測試答案
- 冶煉煙氣制酸工藝解析
評論
0/150
提交評論