


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、一、嵌入式微處理器體系結(jié)構(gòu)嵌入式微處理器的體系結(jié)構(gòu)可以采用馮諾依曼體系結(jié)構(gòu)或哈佛體系結(jié)構(gòu),指令系統(tǒng)可以選用精簡指令系統(tǒng)RISC和復雜指令集系統(tǒng) CISC。1馮諾依曼體系結(jié)構(gòu)和哈佛體系結(jié)構(gòu);1馮諾依曼結(jié)構(gòu)的電腦由 CPU和存儲器構(gòu)成,其程序和數(shù)據(jù)共用一個存儲空間,程序 指令存儲地址和數(shù)據(jù)存儲地址指向同一個存儲器的不同物理位置;采用單一的地址及數(shù)據(jù)總線,程序指令和數(shù)據(jù)的寬度相同。程序計數(shù)器 PC是CPU內(nèi)部指示指令和數(shù)據(jù)的存儲位 置的存放器。2哈佛結(jié)構(gòu)的主要特點是將程序和數(shù)據(jù)存儲在不同的存儲空間中,即程序存儲器和數(shù)據(jù) 存儲器是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問。提高執(zhí)行速度,提高數(shù)
2、據(jù)的吞吐率,具有較高的執(zhí)行效率。2、CISC 和 RISC類別CISCRISC指令系統(tǒng)指令數(shù)量很多較少,通常少于100執(zhí)行時間有些指令執(zhí)行時間很長, 如整塊的存儲器內(nèi)容拷貝; 或?qū)⒍鄠€存放器的內(nèi)容 拷貝到存貯器沒有較長執(zhí)行時間的指令編碼長度編碼長度可變,1-15字節(jié)二編碼長度固定,通常為 4個字節(jié)尋址方式尋址方式多樣二簡單尋址操作可以對存儲器和存放器 進行算術(shù)和邏輯操作只能對存放器對行算術(shù)和邏輯操作,Load/Store體系結(jié)構(gòu)編譯難以用優(yōu)化編譯器生成 高效的目標代碼程序采用優(yōu)化編譯技術(shù),生成高效的目標代碼程序二、ARM狀態(tài)各模式下的存放器1所有的37個存放器,分成兩大類:(1) 31個通用3
3、2位存放器;(2) 6個狀態(tài)存放器。2、R0R7為未分組的存放器,也就是說對于任何處理器模式,這些存放器都對應(yīng)于相同 的32位物理存放器。3、存放器R8R14為分組存放器。它們所對應(yīng)的物理存放器取決于當前的處理器模式,幾 乎所有允許使用通用存放器的指令都允許使用分組存放器4、 存放器R8R12有兩個分組的物理存放器。一個用于除FIQ模式之外的所有存放器模式, 另一個用于FIQ模式。這樣在發(fā)生 FIQ中斷后,可以加速 FIQ的處理速度5、 存放器R13、R14分別有6個分組的物理存放器。一個用于用戶和系統(tǒng)模式,其余5個 分別用于5種異常模式。三、處理器工作模式1、ARM處理器有7種工作模式; u
4、sr用戶模式:ARM處理器正常程序執(zhí)行模式。 fiq快速中斷模式:用于高速數(shù)據(jù)傳輸或通道處理 irq外部中斷模式:用于通用的中斷處理 SVC管理模式:操作系統(tǒng)使用的保護模式 abt 數(shù)據(jù)訪問終止模式 : 當數(shù)據(jù)或指令預取終止時進入該模式,可用于虛擬存儲及存 儲保護。 sys系統(tǒng)模式:運行具有特權(quán)的操作系統(tǒng)任務(wù)。 und未定義指令中止模式:當未定義的指令執(zhí)行時進入該模式,可用于支持硬件協(xié)處理器的軟件仿真。ARM 微處理器的運行模式可以通過軟件改變,也可以通過外部中斷或異常處理改變。 除用戶模式以外,其余的所有 6 種模式稱之為非用戶模式,或 特權(quán)模式 PriVilegedModes;其中除去用戶
5、模式和系統(tǒng)模式以外的5種又稱為異常模式Exception Modes,常用于處理中斷或異常,以及需要訪問受保護的系統(tǒng)資源等情況。2、除用戶模式外, 其它模式均為特權(quán)模式。 ARM 內(nèi)部全部系統(tǒng)資源和一些片內(nèi)外設(shè)在硬件 設(shè)計上只允許或者可選為只允許特權(quán)模式下訪問。3、此外,特權(quán)模式可以自由的切換處理器模式,而用戶模式不能直接切換到別的模式。四、ARM 異常處理1、當異常產(chǎn)生時 , ARM 核: 1拷貝 CPSR 到 SPSR_ 2設(shè)置適當?shù)?CPSR 位:a. 改變處理器狀態(tài)進入 ARM態(tài)b. 改變處理器模式進入相應(yīng)的異常模式c. 設(shè)置中斷禁止位禁止相應(yīng)中斷如需要 3保存返回地址到 LR_ 4設(shè)
6、置 PC 為相應(yīng)的異常向量地址2、返回時 , 異常處理程序需要 :1從 SPSR_恢復 CPSR 2從 LR_ 恢復 PC 3注意 :這些操作只能在 ARM 態(tài)執(zhí)行 .五、ARM 指令集1、ARM 尋址方式:掌握 ARM 微處理器 9 種尋址方式的特點。 1 存放器尋址 操作數(shù)的值在存放器中,指令中的地址碼字段給出的是存放器編號,存放器的內(nèi)容是操作數(shù),指令執(zhí)行時直接取出存放器值操作。例如指令:MOVR1,R2SUBRO,R1,R2 2 立即尋址;R1 R2;R0 R1- R2在立即尋址指令中數(shù)據(jù)就包含在指令當中, 立即尋址指令的操作碼字段后面的地址碼部 分就是操作數(shù)本身,取出指令也就取出了可以
7、立即使用的操作數(shù)也稱為立即數(shù)。立即數(shù)要以“ #為前綴,表示 16進制數(shù)值時以“ Ox表示。例如指令:ADDRO,RO,#1MOVRO,#OxffOO 3存放器移位尋址;R0R0 + 1 ;R0 0xff00存放器移位尋址是 ARM 指令集特有的尋址方式。第 2 個存放器操作數(shù)在與第 1 個操 作數(shù)結(jié)合之前,先進行移位操作。例如指令:MOVR0,R2,LSL #3; R2的值左移 3位,結(jié)果放入 R0, 即卩R0=R2 * 8ANDSR1,R1,R2,LSL R3; R2的值左移 R3位,然后和 R1相與操作,結(jié)果放入 R1可采用的移位操作如下:LSL :邏輯左移Logical Shift Le
8、ft,存放器中字的低端空出的位補0。LSR :邏輯右移Logical Shift Right,存放器中字的高端空出的位補0。ASR :算術(shù)右移Arithmetic Shift Right,移位過程中保持符號位不變,即如果源操作數(shù)為 正數(shù),那么字的高端空出的位補0,否那么補 1ROR :循環(huán)右移Rotate Right,由字的低端移出的位填入字的高端空出的位RRX :帶擴展的循環(huán)右移Rotate Right extended by 1 place,操作數(shù)右移一位,高端空出的 位用原 C 標志值填充。 4存放器間接尋址 指令中的地址碼給出的是一個通用存放器編號,所需要的操作數(shù)保存在存放器指定地 址
9、的存儲單元中,即存放器為操作數(shù)的地址指針,操作數(shù)存放在存儲器中。例如指令 :LDR R0,R1 ; R0-R1將R1中的數(shù)值作為地址,取出此地址中的數(shù)據(jù)保存在 R0中STR R0,R1; R1 R0 5變址尋址變址尋址是將基址存放器的內(nèi)容與指令中給出的偏移量相加,形成操作數(shù)的有效地址,變址尋址用于訪問基址附近的存儲單元,常用于查表,數(shù)組操作,功能部件存放器訪問等。例如指令:LDR R2,R3,#4; R2R3 + 4將 R3 中的數(shù)值加 4作為地址,取出此地址的數(shù)值保存在 R2 中STR R1,R0,#-2; R0-2 R1將R0中的數(shù)值減 2作為地址,把 R1中的內(nèi)容保存到此地址位置 6多存
10、放器尋址 LDM/STM LDM/STM 指令可以把存儲器中的一個數(shù)據(jù)塊加載到多個存放器中,也可以把多個寄 存器中的內(nèi)容保存到存儲器中。尋址操作中的存放器可以是R0-R15 這 16 個存放器的子集或是所有存放器。 采用多存放器尋址方式, 一條指令可以完成多個存放器值的傳送, 這種尋 址方式用一條指令最多可以完成 16 個存放器值的傳送。格式為:LDM或STM條件類型基址存放器 ! ,存放器列表 A 該指令的常見用途是將多個存放器的內(nèi)容入?;虺鰲?。 7 堆棧尋址堆棧是一種數(shù)據(jù)結(jié)構(gòu), 堆棧是特定順序進行存取的存儲區(qū), 操作順序分為 “后進先出 和“先進后出 ,堆棧尋址時隱含的,它使用一個專門的存
11、放器堆棧指針指向一塊存儲 區(qū)域堆棧 ,指針所指向的存儲單元就是堆棧的棧頂。 8塊復制尋址 塊復制尋址用于把一塊從存儲器的某一位置復制到另一位置, 是一個多存放器傳送指令。 9相對尋址相對尋址是變址尋址的一種變通,由程序計數(shù)器 PC 提供基準地址,指令中的地址碼 字段作為偏移量,兩者相加后得到的地址即為操作數(shù)的有效地址。2、堆棧尋址 滿遞增堆棧 FA :堆棧指針指向最后壓入的數(shù)據(jù),且由低地址向高地址生成。 滿遞減堆棧 FD :堆棧指針指向最后壓入的數(shù)據(jù),且由高地址向低地址生成。空遞增堆棧 EA :堆棧指針指向下一個將要放入數(shù)據(jù)的空位置, 且由低地址向高地址生成。 空遞減堆棧ED:堆棧指針指向下一
12、個將要放入數(shù)據(jù)的空位置,且由高地址向低地址生成。3、多存放器尋址 (塊拷貝尋址 ) 1塊拷貝尋址是多存放器傳送指令 LDM/STM 的尋址方式。 LDM/STM 指令可以把存 儲器中的一個數(shù)據(jù)塊加載到多個存放器中,也可以把多個存放器中的內(nèi)容保存到存儲器中。 尋址操作中的存放器可以是 R0-R15 這 16個存放器的子集或是所有存放器。 2 LDM/STM 指令依據(jù)其后綴名的不同其尋址的方式也有很大不同。3LDMIA R1!,R0,R2, R3指令執(zhí)行后, R1 的值變?yōu)?R1+12 R1 ;注:!決定 Rn 的值是否隨著傳送而改變尋址模式描述起始地址結(jié)束地址Rn!IA執(zhí)行后增加RnRn+4*N
13、Rn+4*NIB執(zhí)行前增加Rn+4Rn+4*NRn+4*NDA執(zhí)行后減少RnRn-4*NRn-4*NDB執(zhí)行前減少Rn-4Rn-4*NRn-4*N六 ARM 狀態(tài)與 Thumb 狀態(tài) 的轉(zhuǎn)換1、實現(xiàn) ARM 工作狀態(tài)轉(zhuǎn)換的指令,其句法如下:BX 目標地址1 BX 指令將引起處理器轉(zhuǎn)移到目標地址所指向的地址處執(zhí)行。 2目標地址的位 0不用來作為地址的一局部。a. 假設(shè)目標地址的位0為1,那么指令將CPSR中的標志T置位,且將目標地址的代碼解釋為 Thumb 代碼;b. 假設(shè)目標地址的位0為0,那么指令將CPSR中的標志T復位,且將目標地址的代碼解釋為 ARM 代碼。七、 ARM 的硬件系統(tǒng)結(jié)構(gòu)1
14、 、 S3C2410 的存儲器系統(tǒng) 1 S3C2410 支持大、小端模式,可通過軟件選擇大小端模式;2存儲空間分成 8個Bank,每個Bank 128Mbytes,總共 1GB;6 個 Bank 用于控制 ROM, SRAM, etc.剩余的 2 個 Bank 用于控制 ROM, SRAM, SDRAM, etc .3除Bank0 (16/32-bit)夕卜,所有的Bank都可以通過編程選擇總線寬度 =(8/16/32-bit); 4 7 個 Bank 固定起始地址,最后一個 Bank 可調(diào)整起始地址; 5最后兩個 Bank 大小可編程 6所有 Bank 存儲周期可編程控制; 7 如果同時使用
15、 Bank6/ Bank7 ,那么要求連接相同容量的存儲器,而且其地址空間在物理 上是連續(xù)的。2、S3C2410 的 I/O 口配置S3C2410有117個多功能口,掌握如何通過軟件編程對每個I/O 口進行配置。如將端口C的最低2為設(shè)置為01,既設(shè)置成輸出模式,其余位不變。rGPCCON = rGPCCO N&0 xfffffffc|0x00000001;rGPCDAT= rGPCDAT |0x001;/PC0 口電平輸出高表3.4.3S3C2410A的端口 C I/O 口配置情況端口 C可選擇的引腳端功能GPC15 GPC8輸入/輸出VD7 VD0-GPC7 GPC5輸入/輸出LCDVF2
16、LCDVF0GPC4輸入/輸出VMGPC3輸入/輸出VFRAMEGPC2輸入/輸出VLINEGPC1輸入/輸出VCLKGPC0輸入/輸出LEND存放器地址讀/寫描述復位值GPCCON0x56000020R/W配置端口 C引腳端,使用位31:0,分別對端口 B的16個引腳端進行配置。00 :輸入;01 :輸出;10 :第2功能;11:保存0x0GPCDAT0x56000024R/W端口 C數(shù)據(jù)存放器,使用位15:0未定義GPCUP0x56000028R/W端口 C上拉電阻不使能存放器,使用位 15:0。0:使能;1:不使能0x0保存0X5600002C保存未定義表 端口 C控制存放器3、掌握AR
17、M微處理器的中斷系統(tǒng)的特點了解:一旦有中斷發(fā)生,ARM的中斷系統(tǒng)將如何處理。在ARM系統(tǒng)中,支持復位、未定義指令、軟中斷、預取中止、數(shù)據(jù)中止、IRQ和FIQ7種異常,每種異常對應(yīng)于不同的處理器模式,有對應(yīng)的異常向量固定的存儲器地址。在ARM系統(tǒng)中,一旦有中斷發(fā)生,正在執(zhí)行的程序都會停下來,通常都會執(zhí)行如下的中斷 步驟:1保存現(xiàn)場。保存當前的 PC值到R14,保存當前的程序運行狀態(tài)到SPSR。2模式切換。根據(jù)發(fā)生的中斷類型,進入IRQ模式或FIQ模式。3獲取中斷效勞子程序地址。PC指針跳到異常向量表所保存的IRQ或FIQ地址處,IRQ 或 FIQ 的異常向量地址處一般保存的是中斷效勞子程序的地址
18、, PC 指針跳入到中斷服 務(wù)子程序,進行中斷處理。4多個中斷請求處理。在 ARM 系統(tǒng)中,可以存在多個中斷請求源,比方串口中斷、 AD 中斷、外部中斷、定時器中斷及 DMA 中斷等,所以可能出現(xiàn)多個中斷源同時請求中斷的情 況。為了更好地區(qū)分各個中斷源, 通常為這些中斷定義不同的優(yōu)先級別, 并為每一個中斷設(shè) 置一個中斷標志位。 當發(fā)生中斷時, 通過判斷中斷優(yōu)先級以及訪問中斷標志位的狀態(tài)來識別 哪一個中斷發(fā)生了,進而調(diào)用相應(yīng)的函數(shù)進行中斷處理。5中斷返回,恢復現(xiàn)場。當完成中斷效勞子程序后,將SPSR 中保存的程序運行狀態(tài)恢復到CPSR中,R14中保存的被中斷程序的地址恢復到PC中,繼續(xù)執(zhí)行被中斷
19、的程序。4、了解 S3C2410 的 DMA 控制器的根本工作原理。DMA Direct Memory Acess ,直接存儲器存取 方式是指存儲器與外設(shè)在 DMA 控制器的控 制下, 直接傳送數(shù)據(jù)而不通過 CPU ,傳輸速率主要取決于存儲器存取速度。 在 DMA 傳輸過 程中, DMA 控制器負責管理整個操作,并且無須 CPU 介入,從而大大提高了 CPU 的工作 效率。 DMA 方式為高速 I/O 設(shè)備和存儲器之間的批量數(shù)據(jù)交換提供了直接的傳輸通道。由 于 I/O 設(shè)備直接同內(nèi)存發(fā)生成塊的數(shù)據(jù)交換,可以提高 I/O 效率?,F(xiàn)在大局部電腦系統(tǒng)均采 用 DMA 技術(shù)。許多輸入輸出設(shè)備的控制器都
20、支持 DMA 方式。采用 DMA 方式進行數(shù)據(jù)傳輸?shù)木唧w過程如下。1 外設(shè)向 DMA 控制器發(fā)出 DMA 請求。2 DMA 控制器向 CPU 發(fā)出總線請求信號。3CPU 執(zhí)行完現(xiàn)行的總線周期后,向 DMA 控制器發(fā)出響應(yīng)請求的答復信號。4 CPU 將控制總線、地址總線及數(shù)據(jù)總線讓出,由DMA 控制器進行控制。5 DMA 控制器向外部設(shè)備發(fā)出 DMA 請求答復信號。6進行 DMA 傳送。7數(shù)據(jù)傳送完畢, DMA 控制器通過中斷請求線發(fā)出中斷信號。 CPU 在接收到中斷信號 后,轉(zhuǎn)人中斷處理程序進行后續(xù)處理。8中斷處理結(jié)束后, CPU返回到被中斷的程序繼續(xù)執(zhí)行。CPU重新獲得總線控制權(quán)。每個 DM
21、A 控制器可以處理以下 4 種情況: 1 源和目的都在系統(tǒng)總線上; 2源在系統(tǒng)總線上,目的在外圍總線上; 3源在外圍總線上,目的在系統(tǒng)總線上; 4源和目的都在外圍總線上。5、嵌入式存儲系統(tǒng)的特點。 1 高速緩沖存儲器原理及特點。高速緩沖存儲器cache用來提高存儲器系統(tǒng)的性能,許多微處理器體系結(jié)構(gòu)都把它作為 其定義的一局部。cache能夠減少內(nèi)存平均訪問時間。Cache可以分為統(tǒng)一 cache和獨立的數(shù)據(jù)/程序 cache。2存儲器管理單元 MMU 主要完成的功能。 1虛擬存儲空間到物理存儲空間的映射。采用了頁式虛擬存儲管理,它把虛擬地址空 間分成一個個固定大小的塊, 每一塊稱為一頁, 把物理
22、內(nèi)存的地址空間也分成同樣大小的頁。 MMU 實現(xiàn)的就是從虛擬地址到物理地址的轉(zhuǎn)換。 2存儲器訪問權(quán)限的控制。3設(shè)置虛擬存儲空間的緩沖的特性。八、 嵌入式系統(tǒng) I/O 設(shè)備接口1掌握S3C2410的I/O接口的編程要求:掌握 I/O 口編程,能編寫實現(xiàn) LED1、 LED2 、 LED3、 LED4 輪流閃爍的程 序。實現(xiàn)LED1和LED2輪流閃爍的程序代碼void Main void int flag , i;Target Init; /進行硬件初始化操作,包括對 I/O 口的初始化操作 for;ifflag = = 0 fori = 0; i 1000000; i+;/延時rGPGCON =
23、 rGPGCON & OxfffOffff | 0x00050000 ; /配置第 8、第/9 位為輸出引腳rGPGDAT = rGPGDAT & 0xeff | 0x200 ;/第 8 位輸出為低電平/第 9 位輸出高電平fori = 0; i 10000000; i+;/延時flag = 1;elsefori = 0; i 1000000; i+;/延時rGPGCON = rGPGCON & 0xfff0ffff 0x00050000 ; /配置第 8、/第 9 位 為輸出引腳rGPGDAT = rGPGDAT& Oxdff | 0x100 ; /第 8 位輸出為高電平/第 9 位輸 出低
24、電平fori = 0;i 1000000;i+;/延時flag = 0 ;2、掌握S3C2410的A/D轉(zhuǎn)換器接口的原理要求:掌握 A/D 轉(zhuǎn)換器接口的原理,能編寫 A/D 轉(zhuǎn)換器初始化函數(shù)和獲取 A/D 的轉(zhuǎn)換 值的程序。 1 A/D 轉(zhuǎn)換器模數(shù)轉(zhuǎn)換器完成電模擬量到數(shù)字量的轉(zhuǎn)換。實現(xiàn)A/D 轉(zhuǎn)換的方法很多,常用的方法有計數(shù)法、雙積分法和逐次逼近法等。 2對 A/D 轉(zhuǎn)換器進行初始化程序中的參數(shù) ch 表示所選擇的通道號,程序如下:void AD_Init unsigned char chrADCDL Y=100;/ADC 啟動或間隔延時rADCTSC=0; / 選擇 ADC 模式 rADCC
25、ON= 114|496|ch3 |02|07 return 0;/ 通道不能大于 7fori=0; i 16; i+/為轉(zhuǎn)換準確,轉(zhuǎn)換 16 次rADCCON |=0x1;/啟動 A/D 轉(zhuǎn)換rADCCON= rADCCON 0xffc7 | ch 4;/為轉(zhuǎn)換準確,除以 16 取均值3、掌握四線式電阻式觸摸屏的工作原理,能分析觸摸點的 X 軸坐標和 Y 軸坐標是如何測量出來的。觸摸屏按其工作原理可分為矢量壓力傳感式、電阻式、電容式、紅外線式和外表聲波式 5 類。在嵌入式系統(tǒng)中常用的是電阻式觸摸屏。四線式觸摸屏的 X 工作面和 Y 工作面分別加在兩個導電層上, 共有 4 根引出線: X 、X
26、, Y 、 Y 分別連到觸摸屏的 X 電極對和 Y 電極對上。四線電阻屏觸摸壽命小于 100萬次。當給 X 方向的電極對施加一確定的電壓, 而 Y 方向電極對不加電壓時, 在 x 平行電壓場中, 觸點處的電壓值可以在 Y +或Y電極上反映出來,通過測量Y +電極對地的電壓大小, 通過 A/D 轉(zhuǎn)換,便可得知觸點的 X 坐標值。同理,當給 Y 電極對施加電壓,而 X 電極對不 加電壓時,通過測量 X +電極的電壓,通過 A/D轉(zhuǎn)換便可得知觸點的 Y坐標。四線電阻觸摸屏的分辨方法是將四線電阻觸摸后變化的模擬量轉(zhuǎn)換成數(shù)字量,經(jīng)過軟件計算得出不同的屏幕上不同的X,Y坐標。此工作主要是靠S3C2440A
27、芯片中的模數(shù)轉(zhuǎn)換器來實現(xiàn)的。4、了解 S3C2410 的 UART 串行接口的工作原理,掌握 S3C2410 的 UART 發(fā)送和接收數(shù)據(jù) 的程序設(shè)計。UART 通用異步收發(fā)器主要由數(shù)據(jù)線接口、控制邏輯、配置存放器、波特率發(fā)生器、發(fā) 送局部和接收局部組成,采用異步串行通信方式,采用 RS-232C 9 芯接插件 DB-9 連接, 是廣泛使用的串行數(shù)據(jù)傳輸方式 .本程序?qū)嵗龑崿F(xiàn)從 UART0 接收數(shù)據(jù), 然后分別從 UART0 和 UART1 發(fā)送出去。 其功能可 以把鍵盤敲擊的字符通過 PC 機的串口發(fā)送給 ARM 系統(tǒng)上的 UART0 ,ARM 系統(tǒng)上的 UART0 接收到字符后, 再通過
28、UART0 和 UART1 送給 PC 機,這樣就完成了串口間的收發(fā)數(shù)據(jù)。 要 實現(xiàn)以上數(shù)據(jù)的收發(fā)功能,需要編寫的主要代碼如下。1發(fā)送數(shù)據(jù)其中 whichUart 為全局變量, 指示當前選擇的 UART 通道, 使用串口發(fā)送一個字節(jié)的代碼如 下:void Uart_SendByte int dataif whichUart= =0 if data= = nwhile ! rUTRSTAT0 0x2 ;Delay 10 ;/延時,與終端速度有關(guān)WrUTXH r;while ! rUTRSTAT0 0x2 ;/等待,直到發(fā)送狀態(tài)就緒Delay 10;WrUTXH0 data;else if whi
29、chUart= =1 ifdata= nwhile!rUTRSTAT10x2;Delay 10;/延時,與終端速度有關(guān)rUTXH1= r;while!rUTRSTAT10x2;/等待,直到發(fā)送狀態(tài)就緒Delay 10;rUTXHI = data;else if whichUart= =2 if data= = nwhile!rUTRSTAT20x2;Delay 10 ;/延時,與終端速度有關(guān)rUTXH2 = r;while !rUTRSTAT20x2;/等待,直到發(fā)送狀態(tài)就緒Delay 10;rUTXH2 = data;2接收數(shù)據(jù)如果沒有接收到字符那么返回 0。使用串口接收一個字符的代碼如下:
30、 char Uart_GetKey void if whichUart = 0if rUTRSTAT00x1return RdURXH0 ;elsereturn 0;else if whichUart= =1 if rUTRSTAT10x1return RdURXH1 ;elsereturn 0;else if whichUart= =2 if rUTRSTA T2 0x1 return RdURXH2 ; elsereturn 0; elsereturn 0;/UARTO 接收到數(shù)據(jù)/UART1 接收到數(shù)據(jù)/UART2 接收到數(shù)據(jù)5、掌握鍵盤接口設(shè)計的方法。要求:掌握矩陣式鍵盤的掃描原理,能
31、設(shè)計一個與 S3C2410 連接的 4X4 的矩陣式鍵盤的 接口電路 ,并編寫鍵盤掃描程序。1矩陣鍵盤的按鍵按 N 行 M 列排列, 每個按鍵占據(jù)行列的一個交點, 需要的 I/O 口數(shù)目 是N+M,容許的最大按鍵數(shù)是 N x M。矩陣鍵盤可以減少與微控制器I/O接口的連線數(shù),是常用的一種鍵盤結(jié)構(gòu)形式。 根據(jù)矩陣鍵盤的識鍵和譯鍵方法的不同, 矩陣鍵盤又可以分為 非編碼鍵盤和編碼鍵盤兩種。2一個用 I/O 口實現(xiàn)的鍵盤接口,為了識別鍵盤上的閉合鍵,常采用行 掃描法 。行掃描 法是使鍵盤上某一行線為低電平, 而其余行接高電平, 然后讀取列值, 如果列值中有某位為 低電平,那么說明行列交點處的鍵被按下
32、;否那么掃描下一行,直到掃描完全部的行線為止。3根據(jù)行掃描法的原理,識別矩陣鍵盤按鍵閉合分兩步進行:a識別鍵盤哪一行的鍵被按下:讓所有行線均為低電平,檢查各列線電平是否為低,如果 有列線為低,那么說明該列有鍵被按下,否那么說明無鍵被按下。b.如果某列有鍵被按下,識別鍵盤哪一行的鍵被按下:逐行置低電平,并置其余各行為高電平, 檢查各列線電平的變化, 如果列電平變?yōu)榈碗娖剑?那么可確定此行此列交叉點處按鍵被 按下。void keyboard_test(void)UINT8T ucChar;UINT8T szBuf40;uart_printf( “n Keyboard Test Examplen )
33、;uart_printf( “ Press any key to exit n );Keyboard_init();g_nKeyPress=0xFE;While(1)f_nKeyPress=0; while(f_nKeyPress=0)if(uart_tetkey() /Press any key from UART0 to exit return;else if(ucChar=7)/or press 5*4 Key-7 to exitreturn;else if(g_nKeyPress!=0xFE) /or SB1202/SB1203 to exit return; iic_read_key
34、bd(0x70,0x1,&ucChar); /get data from ZLG7290 If(ucChar!=0)ucChar-key_set(ucChar); /key map for Edukit II if(ucChar16)sprintf(&szBuf, press key %d ,ucChar); else if(ucChar255)sprintf(&szBuf, press key %d ,ucChar); if(ucChar=0xFF)sprintf(&szBuf, press key %c ,ucChar); if(ucChar=0xFF)sprintf(&szBuf, pr
35、ess key FUN ); #ifdef BOARDTESTprint_lcd(200,170,0x1c,&szBuf);#endifuart_printf(szBuf); uart_printf( “n )uart_printf( “ end.n );九、嵌入式軟件及操作系統(tǒng)1正確理解進程、線程的概念,掌握進程及進程的主要特點,并能說明進程和程序有什么 區(qū)別。(1)進程process是在描述多道系統(tǒng)中并發(fā)活動過程引入的一個概念。進程和程序是兩 個既有聯(lián)系又有區(qū)別的概念,兩者不能混為一談。而進程那么是一次執(zhí)行過程,它是暫時的, 是動態(tài)地產(chǎn)生和終止的。一個進程通常包含有以下幾個方面的內(nèi)容:相應(yīng)的程序; CPU上下文;一組系統(tǒng)資源。 進程的特點:進程具有動態(tài)性;進程具有獨立性;進程具有并發(fā)性。2線程thread是一個比進程更小的能獨立運行的根本單位。所謂的線程,就是進程當 中的一條執(zhí)行流程。包括運行上下文、內(nèi)存地址空間、翻開的文件等。可以用線程來作為 CPU的根本調(diào)度單位,使得各個線程之間可以并發(fā)執(zhí)行。對于同一個進 程當中的各個線程來說,運行在相同的資源平臺上,可以共享該進程的大局部資源,但也有一小局部資源是不能共享的,每個線程都必須擁有各自獨
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安全與可靠性試題及答案
- 深度分析2025年能源行業(yè)智能電網(wǎng)優(yōu)化與能源互聯(lián)網(wǎng)產(chǎn)業(yè)鏈圖譜報告
- 安全環(huán)保試題及答案大全
- 2025年成人教育線上學習模式創(chuàng)新與學習評價工具研發(fā)報告001
- 2025年文化與科技融合趨勢下的數(shù)字博物館數(shù)字化技術(shù)應(yīng)用案例研究報告
- 中國醫(yī)保體制培訓課件
- 員工培訓視頻課件
- 中國制度自信課件
- 再貼現(xiàn)政策課件
- 北京十一學校2025屆八年級英語第二學期期中考試試題含答案
- 生活飲用水游離余氯方法驗證報告
- DB32∕T 186-2015 建筑消防設(shè)施檢測技術(shù)規(guī)程
- C-TPAT反恐知識培訓ppt課件
- 巡檢培訓課件.ppt
- 二代征信系統(tǒng)數(shù)據(jù)采集規(guī)范釋義
- 軸承基礎(chǔ)知識PPT通用課件
- 蘇教版二年級(下冊)科學全冊單元測試卷含期中期末(有答案)
- 河南華泰特種電纜項目可行性分析報告
- 公司員工合理化建議獎勵辦法
- 加工中心刀具庫選擇PLC控制系統(tǒng)設(shè)計
- 初中生物知識點匯總細胞
評論
0/150
提交評論