ARM 課程考試相關(guān)知識(shí)點(diǎn) 主要: l 嵌入式系統(tǒng)的五個(gè)特性 包括:專用性,可剪裁性,可靠性,低功耗性和實(shí)時(shí)性。 l 嵌入式系統(tǒng)的特點(diǎn):專用性強(qiáng),可剪裁性好,實(shí)時(shí)性和可靠性好,功耗低 l 嵌入式操作系統(tǒng)的特點(diǎn):微型化,可裁剪性,實(shí)時(shí)性,高可靠性,易移植性 l 嵌入式系統(tǒng)設(shè)計(jì)過(guò)程的主要步驟(5個(gè)): n 1、系統(tǒng)需求分析 n 2、體系結(jié)構(gòu)設(shè)計(jì) n 3、硬件/軟件設(shè)計(jì) n 4、系統(tǒng)集成 n 5、系統(tǒng)測(cè)試 l ARM處理器的五個(gè)系列:(體系架構(gòu)是否是馮諾依曼)ARM7和ARM9的體系架構(gòu)? n ARM7(馮諾依曼結(jié)構(gòu)) n ARM9(哈佛體系結(jié)構(gòu)) n ARM9E(哈佛體系結(jié)構(gòu)) n ARM10E n SecurCore 馮諾依曼結(jié)構(gòu)指數(shù)據(jù)空間和地址空間不分開(kāi);哈佛結(jié)構(gòu)數(shù)據(jù)空間和地址空間是分開(kāi)的 l 操作系統(tǒng)指令執(zhí)行的三個(gè)階段 n 1、獲得指令 n 2、分析指令 n 3、執(zhí)行指令 l 代碼密度:就是處理完成一個(gè)完整的操作,需要的指令條數(shù),按字節(jié)計(jì)算 越少效率越高 l MMU(Memory Management Unit):存儲(chǔ)器管理單元。P176 存儲(chǔ)器管理單元MMU主要完成以下工作: 虛擬存儲(chǔ)空間到物理存儲(chǔ)空間的映射; 存儲(chǔ)器訪問(wèn)權(quán)限的控制; 設(shè)置虛擬存儲(chǔ)空間的緩沖的特征。 MMU可以將某些地址變換條目鎖定在快表【TLB(translation lookaside buffer)】中,從而使得進(jìn)行與該地址變換條目相關(guān)的地址變換速度保持很快。MMU可以將整個(gè)存儲(chǔ)空間分為最多16個(gè)域。 功能:將虛擬地址映射為物理地址;提供硬件機(jī)制的內(nèi)存訪問(wèn)授權(quán)。 l ARM的尋址方式 n 立即數(shù)尋址 n 寄存器尋址 n 寄存器移位尋址 n 寄存器間接尋址 n 多寄存器尋址 n 基址變址尋址 n 相對(duì)尋址 n 堆棧尋址 n 塊拷貝尋址 l 嵌入式系統(tǒng)/操作系統(tǒng)?主要由哪幾部分組成 嵌入式系統(tǒng)的組成部分: n 嵌入式處理器 (ARM,MIPS,PowerPC) n 外圍設(shè)備(存儲(chǔ)器 接口) n 嵌入式操作系統(tǒng) n 應(yīng)用軟件 l ARM的最小系統(tǒng),畫出框圖,并說(shuō)明。 1. ARM芯片。 2. 電源電路、復(fù)位電路,晶振電路。 電源電路:S3C4510B及部分外圍器件的工作電壓為3.3V,還有部分外圍器件的工作電壓為5V,因此整個(gè)最小系統(tǒng)需要兩組工作電壓,即: 3.3V和5V。5V電壓由外部電源引入, 3.3V電壓由5V轉(zhuǎn)3.3V 的DC-DC轉(zhuǎn)換器獲得 復(fù)位電路:復(fù)位電路完成系統(tǒng)的上電復(fù)位和系統(tǒng)在運(yùn)行時(shí)的按鍵復(fù)位功能。復(fù)位電路可由簡(jiǎn)單的RC電路構(gòu)成,也可使用其他的相對(duì)較復(fù)雜,但功能更完善的電路完成。 晶振電路:晶振電路用于向CPU提供工作時(shí)鐘。 3. 存儲(chǔ)器(FLASH和SDRAM) 4. UART接口電路。 UART接口電路用于TTL電平與RS232電平之間的轉(zhuǎn)換。常用的UART接口芯片為MAXIM公司生產(chǎn)的MAX232。 5. JTAG調(diào)試接口。 利用ARM處理器中的調(diào)試模塊的功能,通過(guò)其JTAG邊界掃描口來(lái)與仿真器連接,以達(dá)到對(duì)芯片內(nèi)部的工作狀態(tài)進(jìn)行監(jiān)控的目的。 結(jié)構(gòu)框圖: file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-10538.png l ADS 由哪幾部分組成及其主要功能。 ADS(ARM Developer Suite),即ARM開(kāi)發(fā)工具。ADS由命令行開(kāi)發(fā)工具,ARM時(shí)實(shí)庫(kù),GUI開(kāi)發(fā)環(huán)境(Code Warrior和AXD),實(shí)用程序和支持軟件組成。 功能:ADS 是全套的實(shí)時(shí)開(kāi)發(fā)軟件工具,包編譯器生成的代碼密度和執(zhí)行速度優(yōu)異。可快速低價(jià)地創(chuàng)建ARM 結(jié)構(gòu)應(yīng)用。 l ARM與Thumb指令集的聯(lián)系與區(qū)別。 Thumb指令集是將ARM指令集的 子集重新編碼形成的一個(gè)指令集。ARM指令長(zhǎng)度為32位,Thumb指令長(zhǎng)度位為16位。這樣,使用Thumb指令集可以得到密度更高的代碼,這對(duì)于需要嚴(yán)格控制產(chǎn)品成本的設(shè)計(jì)是非常有意義的。 與ARM指令集相比,Thumb指令集具有以下局限: n 完成相同的操作,Thumb指令通常需要更多的指令。因此,在對(duì)系統(tǒng)運(yùn)行時(shí)間要求苛刻的應(yīng)用場(chǎng)合,ARM指令集更為合適。 n Thumb指令集沒(méi)有包含進(jìn)行異常處理時(shí)需要的一些指令。因此在異常中斷的低級(jí)處理時(shí),還需要使用ARM指令。這種限制決定了Thumb指令需要和ARM指令配合使用。對(duì)于支持Thumb指令的ARM體系版本,使用字符T來(lái)表示。 l Vxworks的開(kāi)發(fā)平臺(tái)是 tornado 。 l EVC EVC,以太網(wǎng)虛連接(Ethernet Virtual Connection),與ATM技術(shù)中的PVC/SVC的概念是非常類似的。EVC是描述一種端到端的概念,我們可以把它想象成邏輯管道,以太網(wǎng)幀一旦進(jìn)入到管道中,是不會(huì)泄露的,除非從管道的另一個(gè)口子出來(lái)。 l 大端/小端模式 n 大端模式: 所謂的大端模式,是指數(shù)據(jù)的低位(就是權(quán)值較小的后面那幾位)保存在內(nèi)存的高地址中,而數(shù)據(jù)的高位,保存在內(nèi)存的低地址中,這樣的存儲(chǔ)模式有點(diǎn)兒類似于把數(shù)據(jù)當(dāng)作字符串順序處理:地址由小向大增加,而數(shù)據(jù)從高位往低位放; n 小端模式: 所謂的小端模式,是指數(shù)據(jù)的低位保存在內(nèi)存的低地址中,而數(shù) 據(jù)的高位保存在內(nèi)存的高地址中,這種存儲(chǔ)模式將地址的高低和數(shù)據(jù)位權(quán)有效地結(jié)合起來(lái),高地址部分權(quán)值高,低地址部分權(quán)值低,和我們的邏輯方法一致。 l I²C SPI 特性 I²C(Inter-Integrated Circuit)總線是由PHILIPS公司開(kāi)發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡(jiǎn)單,器件封裝形式小,通信速率較高等優(yōu)點(diǎn)。 SPI:高速同步串行口。是一種標(biāo)準(zhǔn)的四線同步雙向串行總線。 l ARM對(duì)異常中斷響應(yīng)及返回過(guò)程。 u 對(duì)異常中斷的響應(yīng)過(guò)程: n 保存處理器當(dāng)前狀態(tài),中斷屏蔽位以及各條件標(biāo)志位。這是通過(guò)將當(dāng)前程序狀態(tài)寄存器CPSR的內(nèi)容保存到要執(zhí)行的異常中斷對(duì)應(yīng)SPSR寄存器中實(shí)現(xiàn)的。各異常中斷有自己的物理SPSR寄存器。 n 設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中的相應(yīng)位。包括:設(shè)置CPSR中的位,使處理器進(jìn)入相應(yīng)的執(zhí)行模式;設(shè)置CPSR中的位,禁止IRQ中斷,當(dāng)進(jìn)入FIQ模式時(shí),禁止FIQ中斷。 n 將寄存器lr_mode設(shè)置成返回地址。 n 將程序寄存器值(PC),設(shè)置該異常中斷的中斷向量地址,從而跳轉(zhuǎn)到相應(yīng)的異常處理程序處執(zhí)行。 u 返回過(guò)程: n 恢復(fù)被中斷的處理器狀態(tài),即將SPSR_mode寄存器內(nèi)容復(fù)制到CPSR中。 n 返回到發(fā)生異常中斷指令的下一條指令處執(zhí)行,即將lr_mode寄存器的內(nèi)容復(fù)制到程序計(jì)數(shù)器PC中 l ARM處理器模式 n 用戶模式(User) n 快速中斷模式(FIQ)Fast Interrupt Request n 外部中斷模式(IRQ) Interrupt Request n 特權(quán)模式(Supervisor) n 數(shù)據(jù)訪問(wèn)中止模式(Abort) n 未定義指令中止模式(Undefined) n 系統(tǒng)模式(System) l 在嵌入式OS中對(duì)I/O接口芯片有哪些尋址方式 n I/O端口尋址方式有兩種:一種是存儲(chǔ)器映射方式,即把端口地址與存儲(chǔ)器地址統(tǒng)一編址;另一種是I/O映射方式,即把I/O端口地址與存儲(chǔ)器地址分別進(jìn)行獨(dú)立的編址.CPU對(duì)輸入輸出設(shè)備的訪問(wèn)采用按地址訪問(wèn)的形式,即先送地址碼,以確定訪問(wèn)的具體設(shè)備,然后進(jìn)行信息交換.因此,各種外設(shè)都要進(jìn)行編址.目前有兩種編址方式:獨(dú)立編址與存儲(chǔ)器統(tǒng)一編址. n 執(zhí)行ARM 系統(tǒng)I/O 功能的標(biāo)準(zhǔn)方法是使用存儲(chǔ)器映射的I/O。裝載或保存I/O 值時(shí),使用提供給I/O 功能的特殊存儲(chǔ)器地址。通常,從存儲(chǔ)器映射的I/O 地址裝載用于輸入,而保存到存儲(chǔ)器映射的I/O 地址則用于輸出。裝載和保存都可用于執(zhí)行控制功能,用于取代它們正常的輸入或輸出功能。存儲(chǔ)器映射的I/O 位置的動(dòng)作通常不同于正常的存儲(chǔ)器位置的動(dòng)作。例如,正常存儲(chǔ)器位置的兩次連續(xù)裝載每次都會(huì)返回相同的值,除非中間插入了保存的操作。對(duì)于存儲(chǔ)器映射的I/O 位置,第二次裝載返回的值可以不同于第一次返回的值。因?yàn)榈谝淮窝b載的副作用(例如從緩沖區(qū)移走已裝載的值)或是因?yàn)椴迦肓硪粋(gè)存儲(chǔ)器映射I/O 位置的裝載和保存的副作用。 l 什么是快速上下文切換技術(shù) n 快速上下文切換技術(shù)通過(guò)修改系統(tǒng)中不同進(jìn)程的虛擬地址,避免在進(jìn)程間切換時(shí)造成的虛擬地址到物理地址的重映射,從而提高系統(tǒng)的性能。FCSE(Fast Context Switch Extension,快速上下文切換)位于CPU和MMU之間,如果兩個(gè)進(jìn)程使用了同樣的虛擬地址空間,則對(duì)CPU而言,兩個(gè)進(jìn)程使用了同樣的虛擬地址空間。快速上下文切換機(jī)構(gòu)對(duì)各進(jìn)程的虛擬地址進(jìn)行變換,這樣系統(tǒng)中除了CPU之外的部分看到的是經(jīng)過(guò)快速上下文切換機(jī)構(gòu)變換的虛擬地址。快速上下文切換機(jī)構(gòu)將各進(jìn)程的虛擬空間變換成不同的虛擬空間,這樣在進(jìn)行進(jìn)程間切換時(shí)就不需要進(jìn)行虛擬地址到物理地址的重映射。 l 什么是進(jìn)程切換 n 進(jìn)行進(jìn)程切換就是從正在運(yùn)行的進(jìn)程中收回處理器,然后再使待運(yùn)行進(jìn)程來(lái)占用處理器。這里所說(shuō)的從某個(gè)進(jìn)程收回處理器,實(shí)質(zhì)上就是把進(jìn)程存放在處理器的寄存器中的中間數(shù)據(jù)找個(gè)地方存起來(lái),從而把處理器的寄存器騰出來(lái)讓其他進(jìn)程使用。 l 基于嵌入式LINUX開(kāi)發(fā)流程和步驟 n 建立開(kāi)發(fā)環(huán)境:操作系統(tǒng)一般使用RedHat-Linux,下載相應(yīng)的GCC交叉編譯器進(jìn)行安裝或者安裝產(chǎn)品廠家提供的交叉編譯器。 n 配置開(kāi)發(fā)主機(jī):配置MINICOM,一般的參數(shù)為波特率為115 200bps,數(shù)據(jù)位為8位,停止位為1,無(wú)奇偶校驗(yàn),軟件硬件流控設(shè)為無(wú)。配置網(wǎng)絡(luò),主要是配置NFS 網(wǎng)絡(luò)文件系統(tǒng),需要關(guān)閉防火墻,簡(jiǎn)化嵌入式網(wǎng)絡(luò)調(diào)試環(huán)境設(shè)置過(guò)程 n 建立引導(dǎo)裝載程序BOOTLOADER:從網(wǎng)絡(luò)上下載一些公開(kāi)源代碼的BOOTLOADER,如U-BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據(jù)自己具體的芯片進(jìn)行移植修改。 n 下載別人已經(jīng)移植好的Linux操作系統(tǒng) n 建立根文件系統(tǒng):從www.busybox.net下載使用BUSYBOX軟件進(jìn)行功能裁減,產(chǎn)生一個(gè)最基本的根文件系統(tǒng),再根據(jù)自己的應(yīng)用需要添加其他程序。根文件系統(tǒng)在嵌入式系統(tǒng)中一般設(shè)為只讀,需要使用mkcramfs、genromfs等工具產(chǎn)生燒寫映像文件。 n 建立應(yīng)用程序的Flash磁盤分區(qū) n 一般使用JFFS2或YAFFS文件系統(tǒng),這需要在內(nèi)核中提供這些文件系統(tǒng)的驅(qū)動(dòng),有的系統(tǒng)使用一個(gè)線性Flash(NOR型)512KB~32MB,有的系統(tǒng)使用非線性Flash(NAND型)8~512MB,有的兩個(gè)同時(shí)使用,需要根據(jù)應(yīng)用規(guī)劃Flash的分區(qū)方案。 n 開(kāi)發(fā)應(yīng)用程序 n 應(yīng)用程序可以放入根文件系統(tǒng)中,也可以放入YAFFS、JFFS2文件系統(tǒng)中,有的應(yīng)用不使用根文件系統(tǒng),直接將應(yīng)用程序和內(nèi)核設(shè)計(jì)在一起,這有點(diǎn)類似于μCOS-II的方式。 n 燒寫內(nèi)核、根文件系統(tǒng)、應(yīng)用程序 n 發(fā)布產(chǎn)品 次要: u ARM處理器的幾種工作狀態(tài)/工作方式。 ARM處理器的工作狀態(tài)一般分為兩種,并可在兩種狀態(tài)間切換 : 第一種為ARM狀態(tài):此時(shí)ARM處理器執(zhí)行32位的字對(duì)齊的ARM指令。 第二種為Thumb狀態(tài):此時(shí)ARM處理器執(zhí)行16位的,半字對(duì)齊的Thumb指令。 u 存儲(chǔ)系統(tǒng)的存取方式。(大端/小端格式) u 寫出五種及以上嵌入式操作系統(tǒng)名稱及其特點(diǎn)。 n μCLinux n μC/OS n Windows CE n VxWorks n Palm OS n QNX u 什么叫同步、異步、系統(tǒng)監(jiān)視定時(shí)。 n 在同步定時(shí)協(xié)議中,事件出現(xiàn)在總線上的時(shí)刻由總線時(shí)鐘信號(hào)來(lái)確定。由于采用了公共時(shí)鐘,每個(gè)功能模塊什么時(shí)候發(fā)送或接收信息都由統(tǒng)一時(shí)鐘規(guī)定,因此,同步定時(shí)具有較高的傳輸頻率。 同步定時(shí)適用于總線長(zhǎng)度較短、各功能模塊存取時(shí)間比較接近的情況。 n 在異步定時(shí)協(xié)議中,后一事件出現(xiàn)在總線上的時(shí)刻取決于前一事件的出現(xiàn),即建立在應(yīng)答式或互鎖機(jī)制基礎(chǔ)上。在這種系統(tǒng)中,不需要統(tǒng)一的共公時(shí)鐘信號(hào)。總線周期的長(zhǎng)度是可變的。 異步定時(shí)的優(yōu)點(diǎn)是總線周期長(zhǎng)度可變,不把響應(yīng)時(shí)間強(qiáng)加到功能模塊上,因而允許快速和慢速的功能模塊都能連接到同一總線上。但這以增加總線的復(fù)雜性和成本為代價(jià)。 u 如何將AD/DA與ARM相連。 軟件啟動(dòng):1、定義與AD相關(guān)的寄存器。 2、定義與AD相關(guān)的寄存器的初始化。 3、rADCCON|=0x01;啟動(dòng)AD 硬件啟動(dòng):1、復(fù)位AD轉(zhuǎn)換器相關(guān)寄存器 2、 外接用高電平觸發(fā)ADCCON[0] u CPSR(當(dāng)前程序狀態(tài)寄存器)——>SPSR(備份程序狀態(tài)寄存器) u SWI n SWI(Software Interrupt),可以直譯為軟中斷(指令),在 RISC OS中使用 SWI 來(lái)訪問(wèn)操作系統(tǒng)例程或第三方生產(chǎn)的模塊。許多應(yīng)用使用模塊來(lái)給其他應(yīng)用提供低層外部訪問(wèn)。 u ARM7系列包括ARM7TDMI,ARM7TDMI-S……,其中TD代表的意思是。 n ARM7DMI:T表示支持Thumb,D表示支持片上調(diào)試 Debug,M表示內(nèi)嵌硬件乘法器 Multiplier,I表示嵌入式ICE 仿真器,支持片上斷點(diǎn)和調(diào)試點(diǎn) in-circuit emulater u ADS的升級(jí)版(realview) |