版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、三級嵌入式系統(tǒng)學習總結一 第一章1. 嵌入式系統(tǒng)概論嵌入式系統(tǒng)中的軟件一般都固化在只讀存儲器中,用戶不能隨意更改其中的程序功能。嵌入式系統(tǒng)的邏輯組成:1)處理器2)存儲器3)I/O 設備與 I/O 接口4)數(shù)據(jù)總線5)軟件嵌入式處理芯片有四種類型:1)微處理器2)數(shù)字信號處理器3)微控制器(單片機)4)片上系統(tǒng)微控制器 MCU 的低端產(chǎn)品并不會因為高端產(chǎn)品的出現(xiàn)而衰落在 32 位 MCU 中,絕大多數(shù)使用 RAM 內核EDA:電子設計自動化IP 核可以分為三種:軟核、硬核、固核2. 嵌入式系統(tǒng)與數(shù)字媒體計算機中常用的最廣泛的西文字符及其編碼是ASCII 字符集和換碼,共有128 個字符,一個字
2、符占一個字節(jié)。我國目前廣泛使用的漢字編碼國家標準有GB2312 和 GB18030ASCII 碼,即美國標準信息交GB2312 只有 6763 個漢字,不夠用GB18030 字符集與國際標準UCS/Unicode字符集基本兼容。GB18030采用不等長的編碼方法,單字節(jié)編碼表示ASCII 碼,雙字節(jié)編碼表示漢字,與GB2312 保持向下兼容,四字節(jié)編碼表示其他字符Unicode 最新版本是 6.3。UCS/Unicode 在計算機中具體實現(xiàn)時采用不同的編碼方案,最常用的是 UTF-8 和 UTF-16,UTF-8采用的是單字節(jié)可變長編碼; UTF-16 采用的是雙字節(jié)可變長編碼文本的類型可以分
3、為簡單文本、豐富格式文本、超文本圖像的數(shù)據(jù)量 =圖像水平分辨率 * 圖像垂直分辨率 * 像素深度 /8 (像素深度指的是每個像素用多少個二進制數(shù)來表示)數(shù)字視頻的數(shù)據(jù)量非常大,在進行傳輸時必須進行壓縮,壓縮編碼標準是國際標準化組織(ISO)制定的,其名稱為MPEG。無線局域網(wǎng)采用的協(xié)議主要是IEEE 802.11(俗稱 WIFI)3. 數(shù)字通信與計算機網(wǎng)絡微波是一種 300MHz-300GHz 的電磁波計算機網(wǎng)絡的組成:1)計算機等智能電子設備2)數(shù)據(jù)通信鏈路3 )通信協(xié)議4)網(wǎng)絡軟件以太局域網(wǎng):1)發(fā)送數(shù)據(jù)設備必須把要傳輸?shù)臄?shù)據(jù)分成小塊(幀)進行傳輸,一次只能傳輸1 幀;2)局域網(wǎng)中的每一個
4、終端都有自己唯一的標識,稱為物理地址或MAC 地址, 在發(fā)送的每一幀數(shù)據(jù)中,必須包含自己的MAC 地址和接收終端的MAC 地址3)IP 協(xié)議定義了主機的概念,所有主機及使用一種統(tǒng)一格式的地址標識,稱為4)以太局域網(wǎng)大多是由集線器或者交換機組網(wǎng)計算機網(wǎng)絡的類型:1)局域網(wǎng)2)城域網(wǎng)2)廣域網(wǎng)IP 地址分為A、 B、 C 三類。IP 是由四段數(shù)字組成,共32 位, 8 位一段。A 類 IP 段0.0.0.0 到 127.255.255.255 (0 段和 127 段不使用 )IP 地址。B類IP段128.0.0.0到 191.255.255.255C類 IP段192.0.0.0到 223.255.
5、255.255XP默認分配的子網(wǎng)掩碼每段只有255或 0A 類的默認子網(wǎng)掩碼255.0.0.0一個子網(wǎng)最多可以容納1677 萬多臺電腦B 類的默認子網(wǎng)掩碼255.255.0.0一個子網(wǎng)最多可以容納6 萬臺電腦C類的默認子網(wǎng)掩碼255.255.255.0一個子網(wǎng)最多可以容納254 臺電腦二 第二章1. 嵌入式處理器嵌入式處理器按照指令集可以分為復雜指令集結構和精簡指令集結構,按存儲機制可以分為馮諾依曼結構及哈佛結構,按字長可以分為8位、 16 位、 32位等精簡指令集結構采用加載和存儲兩種指令對存儲器進行讀寫操作。ARM 內核采用多層次的存儲結構,在處理器與主存儲器之間加入CACHE,綜合了哈佛
6、結構和馮諾依曼結構的優(yōu)點。ARM 處理器的主流為 32 位,其主要特征如下:1)單周期操作2)只是用加載 / 存儲指令訪問內存3)指令長度固定4)三地址指令格式5)指令流水線格式6)低功耗設計ARM 由三種指令集,分別是:1) ARM 指令集2)Thumb 指令集3) Thumb-2 指令集2. 典型 ARM 處理器介紹ARM 處理器分為5 類,分別是:1)經(jīng)典 ARM 處理器2 )ARM Cortex 嵌入式處理器3)ARM Cortex 實時嵌入式處理器4)ARM Cortex 應用處理器5) ARM 專家處理器ARM Cortex 處理器包括: 1)Cortex-A 面向高端應用的處理器
7、2)Cortex-R 面向實時控制的處理器3 ) Cortex-M 面向微控制器的處理器3. ARM 處理器體系結構ARM 處理器的工作狀態(tài): 1)ARM 狀態(tài),即 32 位狀態(tài)2)Thumb 狀態(tài),即 16 位狀態(tài)3)調試狀態(tài)ARM 處理器有7 種工作模式,分別是1)用戶模式 User2)快速中斷模式 FIQ3)外部中斷模式 IRQ4)管理模式 SVC5)中止模式 ABT6)未定義指令模式UND7)系統(tǒng)模式 SYSARM 處理器由37 個寄存器,包括 31 個通用寄存器和6 個狀態(tài)寄存器,通用寄存器中不分組的有 8 個,即 R0-R7。ARM 處理器用兩種模式存儲數(shù)據(jù),一是大端模式,即32
8、位的高字節(jié)存放在低地址中,低字節(jié)存放在高字節(jié)中;二是小端模式,即32 位的高字節(jié)存放在高地址中,低字節(jié)存放在低字節(jié)中。MMU ,即存儲器管理模塊,作用是進行虛擬地址到物理地址的映射、存儲器訪問權限控制 MPU 是存儲器保護單元4. ARM 處理器指令集指令的條件碼:EQ:相等NE:不相等CS:無符號數(shù)大于或等于CC:無符號數(shù)小于HI:無符號數(shù)大于LS:無符號數(shù)小于或等于GE:帶符號數(shù)大于或等于LT:帶符號數(shù)小于GT:帶符號數(shù)小于或等于LE:帶符號數(shù)小于或等于PL:正數(shù)或 0塊拷貝尋址舉例:LDMIA R0,R1, R2, R5, R9R1R0, R2 R0+4, R3R0+8,R4R0+12S
9、TMIA R0, R1-R7 R0R1, R0+4R2, R0+8 R3,R0+12R4, R0+16R5程序狀態(tài)寄存器訪問指令舉例:MRS R0, CPSR 傳送 CPSR中的值到R0MSR CPSR, R0 傳送 R0 的值到 CPSRs5. ARM 匯編語言程序設計意會三 第三章1. 嵌入式系統(tǒng)硬件組成概述最小系統(tǒng)的構成:嵌入式處理器、存儲器、復位電路、電源電路、時鐘電路、調試測試接口典型嵌入式應用系統(tǒng)的硬件組成:最小硬件系統(tǒng)、前向通道、 后向通道、人機交互通道以及相互互聯(lián)通信通道。前向通道即輸入接口,由模擬量輸入接口和數(shù)字量輸入接口組成;后巷通道即輸出接口,由模擬輸出接口和數(shù)字輸出接口
10、組成;人機交互通道即輸入輸出接口;2.嵌入式處理芯片AMBA( Advanced Microcontroller Bus Architecture )先進微控制器總線體系結構 AMBA 規(guī)定了兩種類型的總線,分別是系統(tǒng)總線和外圍總線,通過橋接器進行連接與系統(tǒng)總線連接的部件:電源及時鐘控制器、內核、DMA、外部存儲器控制接口、USB主機、SRAM、中斷控制器、LCD控制器;與外圍總線連接的部件:GPIO、UART、SPI、IIC、IIS、USB 設備、 WDT、TIMER、RTC、PWM、ADC/DAC、CAN、 Ethernent 。片內程序存儲器常用Flash ROM,片內數(shù)據(jù)存儲器常用SR
11、AM。3.嵌入式系統(tǒng)的存儲器嵌入式系統(tǒng)的存儲器結構:嵌入式處理器器(外存), Cache 由 SRAM 承擔(內部L1/L2 Cache)、主存儲器(內存) 、外部存儲MROM:掩膜只讀存儲器,出廠后信息確定,無法改變;PROM:一次可編程存儲器EPROM:紫外線可擦除的只讀存儲器EEPROM:電擦除可編程存儲器FLASH ROM:閃存; NOR FLASH 和 NAND FLASH是流行的閃存新存儲器: FRAM(鐵電存儲器) 、 MRAM (磁性存儲器)存儲器容量 =單元總數(shù) * 數(shù)據(jù)位數(shù) / 單元并行總線的存儲器帶寬 =總線頻率 * 數(shù)據(jù)寬度 /8* 傳輸次數(shù) / 總線周期串行總線的存儲
12、器帶寬 =總線頻率 /104. I/O 接口及常用的 GPIOGPIO提供的輸入具有緩沖功能,輸出有鎖存功能IIC 總線有兩條數(shù)據(jù)線,分別是數(shù)據(jù)線 SDA和時鐘線 SCL。SCL為高, SDA 由高變低時啟動傳輸, SCL為高, SDA由高變低時停止傳輸。傳輸時高位在前,低位在后,傳輸?shù)牡谝粋€字節(jié)為地址, 地址的最后一位指示數(shù)據(jù)傳輸方向,第 9 位為應答位。 總線控制遵循低電平優(yōu)先的原則。SPI是同步串行接口,一般使用四條線,分別是時鐘、輸入、輸出、片選。SPI發(fā)送數(shù)據(jù)時,數(shù)據(jù)從主機中從左向右發(fā)送給從機(主機數(shù)據(jù)左對齊),從機數(shù)據(jù)從右向左發(fā)送給主機(從機數(shù)據(jù)右對齊) ,發(fā)送數(shù)據(jù)時,高位在前,低
13、位在后UART:常用于全雙工串行異步通信,發(fā)數(shù)據(jù)時,低位在前,高位在后USB:最多可以連接127 個設備。 USB系統(tǒng)由 USB硬件和 USB軟件組成。硬件中的主控制器包括一個根集線器,傳輸時采樣翻轉不歸零。采用半雙工差分方式傳輸數(shù)據(jù)。觸摸屏分為電阻式和電容式5. ARM 內核典型處理器芯片S3C2410是韓國三星公司制造的微處理器,以下都是S3C2410的有關介紹電源管理模塊有正常模式、慢速模式、休眠模式、掉電模式。任何情況下復位操作均進入正常模式,在掉電模式和休眠模式下, 只要有任何一個外部中斷 EINT或者 RTC時鐘中斷發(fā)生,均將返回到正常模式??偣灿?5 個 16 位定時器timer
14、 , 4 個具備 PWM 的功能。定時器輸入時鐘頻率=PCLK/(預分頻值 +1) * 時鐘因子有三個 UART,UBRDIV=INT( UCLK/(波特率 *16 )-1,UCLK可以是 PCLK,也可以是UEXTCLK??撮T狗定時器的技術脈沖周期為: t_watchdog=1/ ( PCLK/(預分頻值 +1) / 分頻系數(shù)),計數(shù)初值為 WTCON=T/t_watch_dog6. 嵌入式系統(tǒng)外部通信接口RS-485采用差分信號傳輸方式CAN 總線也使用差分的方式傳輸四 第四章在 uC/OS-II 中,任務或者中斷服務可以通過事件控制模塊(ECB)相其他任務發(fā)出信號1. 嵌入式系統(tǒng)的軟件組
15、成嵌入式系統(tǒng)的特點:軟件與硬件一體化、軟件代碼時空效率要求高、軟件可剪裁、軟件應用環(huán)境復雜、軟件開發(fā)難度大、軟件面向用戶、面向產(chǎn)品、面向應用、軟件產(chǎn)業(yè)高度分散、軟件具有較長的生命周期。嵌入式系統(tǒng)的軟件結構:簡單的輪詢結構(只進行查詢操作) 、 帶中斷的輪詢結構、監(jiān)控式操作系統(tǒng) +應用軟件的結構、通用嵌入式操作系統(tǒng)+應用軟件的結構。高端嵌入式系統(tǒng)的軟件結果層次示例:硬件層、硬件抽象層、操作系統(tǒng)層、中間件層、應用軟件層。中間件是指除了操作系統(tǒng)內核、設備驅動程序和應用軟件之外的系統(tǒng)軟件。硬件抽象層( Hardware Abstract Layer HAL)和板極支持包(Board Support P
16、ackage BSP)是嵌入式系統(tǒng)的底層軟件, 引入 HAL 對硬件進行抽象, 通過硬件抽象層應用編程接口 ( HAL API)向上提供服務。BSP在系統(tǒng)復位之后負責系統(tǒng)軟硬件環(huán)境的初始化,包括三個方面的內容,一是系統(tǒng)復位時的硬件初始化, 包括處理器芯片的初始化和電路板的初始化,二是為操作系統(tǒng)提供硬件相關的驅動程序支持,三是引導加載操作系統(tǒng)。BSP是操作系統(tǒng)正常運行的前提,其效率和穩(wěn)定性直接影響整個系統(tǒng)的性能及穩(wěn)定性。引導加載程序(引導程序)bootloader 是底層軟件的一部分,嵌入式系統(tǒng)上電后首先運行引導加載程序,進行系統(tǒng)上電自檢、硬件初始化、建立存儲空間映射、配置系統(tǒng)參數(shù)、建立上層軟件
17、運行環(huán)境,加載和啟動操作系統(tǒng)等等。嵌入式操作系統(tǒng)的加載方式:1 )在 ROM 中直接運行操作系統(tǒng)代碼2)在 RAM 中運行操作系統(tǒng)代碼3)從外存儲器加載操作系統(tǒng)代碼運行4)從通信端口加載操作系統(tǒng)代碼運行。引導加載程序的運行過程,一是讓嵌入式系統(tǒng)正常運起來,與處理器體系結構相關的硬件初始化和板極初始化等操作通常在第一步完成,一般用匯編語言來寫。第二是實現(xiàn)操作系統(tǒng)加載的功能,用C 語言實現(xiàn)。設備驅動程序是指直接與硬件相互作用并控制硬件的軟件,是對硬件操作的抽象。2. 嵌入式操作系統(tǒng)實時系統(tǒng)( Real-Time System)是必須在有限和確定的時間內對外部事件做出響應的信息系統(tǒng)。實時系統(tǒng)的關鍵特
18、性: 1)時間約束性 2)可預測性 3)可靠性 4)交互性硬實時任務:必須在給定的時間內完成,超過時限會引起重大的錯誤軟實時任務:超過時限不會引發(fā)致命錯誤,而是造成任務的服務質量下降準實時任務:通常允許偶爾錯過最后時限,若超過時限,所進行的操作或計算沒有任何意義。實時操作系統(tǒng)采用如下的機制來保持對實時任務的響應和處理的時間確定性:1)事件驅動2)多級中斷嵌套處理3)細粒度的任務優(yōu)先級控制4)實施搶占式調度。實時操作系統(tǒng)的實時性指標:評價實時操作系統(tǒng)的實時性最重要的指標是響應時間,從事件請求開始到任務完成的時間間隔。除此之外,還有以下的幾點:即系統(tǒng)1)中斷延遲時間:從接收到可屏蔽中斷請求到操作系
19、統(tǒng)做出響應并轉入中斷服務程序所需要的最長時間2)任務切換時間:操作系統(tǒng)在兩個獨立且具有相同優(yōu)先級的就緒態(tài)任務之間切換所需要的時間3)任務搶占時間: 系統(tǒng)將優(yōu)先權從低優(yōu)先級的任務轉移到高優(yōu)先級任務所需要花費的時間。嵌入式操作系統(tǒng)的特點:代碼固化存儲、可裁剪、實時性、強穩(wěn)定性、硬件適應性。嵌入式操作系統(tǒng)的分類:1)按實時性分硬實時操作系統(tǒng):如 VxWorks、 RTEMS、QNX、 uC/OS-II、 Nucleus;軟實時操作系統(tǒng):如 WinCE、多種嵌入式 Linux 系統(tǒng)2)按開發(fā)方式:專門為嵌入式環(huán)境開發(fā)的嵌入式操作系統(tǒng)從通用計算機操作系統(tǒng)移植而來的嵌入式系統(tǒng)3)按商業(yè)模式:免費的嵌入式操
20、作系統(tǒng)商業(yè)嵌入式操作系統(tǒng)操作系統(tǒng)是由內核、用戶界面、中間件、使用程序等組件組成的,內核起著最重要的作用,其作用是管理系統(tǒng)資源,支持多任務并發(fā)執(zhí)行。單內核可以分為整體結構和分層結構兩種類型。單內核的優(yōu)點是性能較好系統(tǒng)各個組件可以相互調用。缺點是占用資源多, 維護工作量大。 單內核的操作系統(tǒng)有:Unix 、BSD Unix、Linux、MS-DOS、 Windows 9x ( Windows 95/98/ME)、 Windows CE、Android操作系統(tǒng)。微內核結構: 操作系統(tǒng)僅僅將必須的基本功能放入內核, 其他功能在內核之外。內核的操作系統(tǒng)有 AIX、 Mach、 Minix 、 VxWor
21、ks、 QNX 等。常見的嵌入式操作系統(tǒng):采用純粹微VxWorks:采用的是微內核結構QNX:類 Unix 的實時操作系統(tǒng),是非常成功的微內核操作系統(tǒng),其內核僅僅提供進程調度、進程間通信、底層網(wǎng)絡通信和中斷處理。Nucleus PLUS:搶占式多任務商業(yè)操作系統(tǒng)內核RTEMS:實時多處理器系統(tǒng)TinyOS:專門為硬件資源極為有限的無線傳感器網(wǎng)絡應用而量身定制的操作系統(tǒng)eCOS:嵌入式可配置操作系統(tǒng)Linux 是單內核結構,采用模塊化設計,支持內核線程。Linux 內核可以分為三個層次:最上層是系統(tǒng)調用接口、中間層是內核的核心部分、最下層是 BSP。Linux 內核內部包含了若干相關的組成部件,
22、理器 4)虛擬文件系統(tǒng) 5)網(wǎng)絡接口包括 1)初始化部件 2)進程調度器 3)內存管6)進程間通信 7)可加載模塊 8)設備驅動程序Linux 實時化技術的三個途徑:1)內核補丁方式2)雙內核方式3)超微內核方式嵌入式 linux 發(fā)行版本: uClinux、RTlinux、Monta Vista Linux、Wind River Linux、RTAI、Xenomai 。Android 系統(tǒng)采用堆層式軟件架構,分為四層,從底層到高層分別是Linux 內核、系統(tǒng)運行庫、應用程序框架和應用程序。其中,系統(tǒng)運行庫由android 運行環(huán)境和組件庫兩部分組成。IOS操作系統(tǒng)架構分為四個層次,分別是核心
23、操作系統(tǒng)層、核心服務層、媒體層、觸控界面層。3. uC/OS-II 嵌入式操作系統(tǒng)uC/OS-II 的特點:1)公開源碼的高質量實時內核2)可以移植3)可裁剪、可固化4)時間確定性5)多任務6)搶占式內核7)多種系統(tǒng)服務uC/OS-II 的源代碼主要有以下幾部分構成:1) 系統(tǒng)核心2) 任務管理3) 時鐘管理4) 任務同步與任務間通信5) 內存管理6) 處理器相關代碼在 uC/OS-II 中,任務是操作系統(tǒng)的基本調度單位, 由操作系統(tǒng)內核管理。 任務由三部分構成,分別是任務的程序代碼、任務堆棧和任務控制塊。每一個任務的??臻g大小不同,在文件OS_CPU.H中定義了一個數(shù)據(jù)類型OS_STK,在應
24、用程序中定義任務堆棧的棧區(qū)只需要聲明一個 OS_STK即可,如 OS_STK TaskStkTASK_STK。uC/OS-II 的任務處于五種狀態(tài)之一,分別是等待態(tài)、休眠態(tài)、就緒態(tài)、運行態(tài)和被中斷態(tài)。休眠態(tài)指任務代碼駐留在內存中還沒有交給內核調度的狀態(tài);就緒態(tài)指任務已經(jīng)具備運行的條件但因優(yōu)先級比正在運行的任務低而暫時不能運行的狀態(tài); 運行態(tài)指任務已獲得處理器使用權而正在運行的狀態(tài); 等待態(tài)也稱為掛起, 指正在運行的程序因為等待某一事件發(fā)生而將處理器的使用權讓出給其他任務而自身掛起; 被中斷態(tài)指因處理器執(zhí)行中斷而被暫停運行的任務狀態(tài)。uC/OS-II 可以管理 64 個任務,有 64 個優(yōu)先級,
25、 0 是最高優(yōu)先級別。最低優(yōu)先級別由OS_LOWEST_PRIO來定義。任務分為用戶任務和系統(tǒng)任務,系統(tǒng)預定義了兩個系統(tǒng)任務為應用程序服務,即空閑任務和統(tǒng)計任務。系統(tǒng)總是把最低優(yōu)先級固定賦給空閑任務。采用的是基于優(yōu)先級的任務調度。uC/OS-II內核通過OSIntExit()判斷是否存在更高優(yōu)先級的就緒任務。利用宏 OS_ENTER_CRITICAL()和 OS_EXIT_CRITICAL()實現(xiàn)關中斷和開中斷。利用函數(shù)OSSchedLock()和 OSSchedUnLock()給調度器上鎖和解鎖。通過函數(shù)OSStart()開始任務調度之前創(chuàng)建函數(shù) OSTaskCreate()和 OSTask
26、CreateExt()都可以創(chuàng)建任務函數(shù) OSTaskDel()既可以刪除任務本身,也可以刪除其他的任務。刪除自己的調用形式為:OSTaskDel(OS_PRIO_SELF)函數(shù) OSTaskDelRel()的作用是讓某個任務使用完資源后先釋放資源,再執(zhí)行除自己OSTaskDel來刪函 數(shù) OSTaskSuspend()可 以 掛 起 一 個 任 務 , 被 掛 起 的 任 務 只 能 等 待 其 他 的 任 務 調 用OSTaskResume()函數(shù)才能實現(xiàn)任務恢復函數(shù) OSTimeTick()返回是否等待超時或等待事件的任務是否超時用 UNIT32U OSTimeGet()獲得 tick
27、計數(shù)器的當前值,可以調用 OSTimeSet()改變 tick 計數(shù)器的當前值。通過 OSTimeDly()或者OSTimeDlyHMSM()延遲處于運行態(tài)的任務由 OSSemCreate()函數(shù)創(chuàng)建信號量由 OSSemDel()函數(shù)刪除一個信號量由 OSSemPost()釋放信號量由 OSSemPend()等待信號量由 OSSemAccept()無等待的請求信號量由 OSSenQuery()查詢信號量狀態(tài)調用 OSInit()進行內核初始化五 第五章1. 開發(fā)嵌入式系統(tǒng)的基礎知識(1) 嵌入式系統(tǒng)的開發(fā)過程1) 需求分析與規(guī)格說明2) 系統(tǒng)設計:根據(jù)規(guī)格說明書中所描述的系統(tǒng)需要實現(xiàn)的功能,確
28、定如何實現(xiàn)這些功能的硬件和軟件結構。3) 構件設計: 設計或者選擇符合系統(tǒng)結構和規(guī)格說明中所需要的具體構件,有通用的構件,如 CPU、存儲器芯片,也有專用的構件,如AX88796(不知道是什么玩意)4) 系統(tǒng)集成與測試(2)嵌入式系統(tǒng)的開發(fā)平臺與工具嵌入式系統(tǒng)的開發(fā)特點1) 使用宿主機 -目標機的開發(fā)架構2) 與底層硬件控制程序的關系密切3) 軟硬件資源受到限制4) 需要固化程序IDE( Integrated Development Environment(3)嵌入式系統(tǒng)的調試):集成開發(fā)環(huán)境四種調試技術:1) 在線仿真器( In-Circuit Emulator ICE):ICE具有與索要開
29、發(fā)的嵌入式系統(tǒng)相同的嵌入式處理器,進行調試時,用在線仿真器取代被調試系統(tǒng)的處理器。2) 片上調試技術JTAG3) 駐留監(jiān)控軟件調試:使用駐留監(jiān)控軟件(Resident Monitors),即固化在目標機ROM中的程序,在目標機中運行。4) 指令集模擬器 ( Instruction Set SimulatorISS)在宿主機上模擬應用程序在目標機上潤興行為的一個軟件工具。主要應用于沒有目標機開發(fā)板硬件、有開發(fā)板硬件,但使用開發(fā)板成本高、被調試的程序模塊不需要在實際開發(fā)板上執(zhí)行、對模塊代碼進行語法檢查、避免因對硬件不熟悉而在調試硬件方面耗費過多精力。常用的兩種指令集模擬器:ARMulator 、
30、SkyEye2. 系統(tǒng)開發(fā)工具軟件( 1) ADS1.2 工具軟件( ARM Developer Suite):支持開發(fā)的嵌入式應用軟件通常是無操作系統(tǒng)的,即使有,也是 uC/OS-II 這樣的小型系統(tǒng)。ADS1.2 的工程項目:一個工程項目至少應包括一個生產(chǎn)目標,即用于生成特定輸出文件的生成選項以及所用的全部文件的集合。生成選項包括匯編選項、編譯選項、連接選項和連接后選項。三個可執(zhí)行文件的模板:1) Debug:生成的額輸出文件包括所有調試信息,用于在開發(fā)過程中使用;2) Release:生成的輸出文件中不包括調試信息,用于生成實際發(fā)行的軟件3) DebugRel:生成的輸出文件包含了基本的
31、調試信息。當?shù)刂酚成潢P系比較簡單時,使用編譯、連接選項來確定輸入文件的連接順序當?shù)刂酚成潢P系比較復雜時, 使用 scatter(分散加載) 格式的文件來確定輸入文件的連接順序。連接中的地址映射:ADS 把編譯后的目標文件信息按照3 種存儲區(qū)域類型進行劃分,分別是:1) RO端段:代碼存儲區(qū)和常數(shù)存儲區(qū),具有只讀的性質2) RW 段:指初始值為非0 的全局變量數(shù)據(jù)區(qū),具有可讀可寫的性質3) ZI 段:指初始值為0 的全局變量數(shù)據(jù)區(qū),包括未初始化的全局變量,具有可讀可寫的性質。下載時域和運行時域:下載時域是下載時的存儲空間;運行時域是運行時的存儲空間。1) simple 連接類型:應用于地址映射簡
32、單的工程項目。RW base 文本框配置的是RW 字段的和 ZI 字段運行時域的地址,輸入的地址值必須是字對準的,即能被4 整除。2) 對地址映射關系較為復雜的項目,使用scatter 連接類型,需要提供一個scatter 格式的文件( .scf)。配置文件是一個文本文件,使用BNF語法來進行描述。在 scatter 類型下,下載時域的語法結構如下:Load_nameBase_AddAttribute size Load_name 是下載時域的名稱,是下載時域的唯一標識。Base_Add 是下載時域的首地址,Attribute 是下載時域的數(shù)屬性,可省略。size 是下載時域的容量大小。在 s
33、catter 類型下,運行時域的描述語法結構如下:Exec_nameBase_AddAttributeSizeExec_name 是運行時域的名稱。屬性可省略。在 scatter 類型下,輸入端的描述結構如下:* 代表若干個任意字符,?代表一個任意字符Load_10x00000x8000Exec_1 0x00000x8000*(+RO)Exec_2 0x100000x6000*(+RW, +ZI)上述是一個簡單的配置文件,定義了一個下載時域,名稱為的容量是 0x8000,定義了兩個運行時域,第一個名稱為Load_1,首地址是0x0000,域Exec_1,首地址為0x0000,容量為0x8000
34、,域中包含了所有的代碼和常數(shù),即包含了所有了所有的RW、 ZI 屬性的輸入段。(2)RVDS( RealView Development Suite )要使用 RVDS來調試程序,必須使用RealView-ICE仿真器RVDS的功能模塊包括工程管理器(IDE)、編譯鏈接器(真器( RVISS)等。RO 屬性的輸入段。第二個域中包含RVCT)、調試器( RVD)和指令集仿RVDS能夠記錄ARM CPU從開始執(zhí)行程序到停止執(zhí)行程序這段時間所執(zhí)行的所有操作,稱為Trace 功能;而 Profile 功能指 RVDS可以對 Trace 功能所記錄的內容進行性能分析。(3)GNU( GNUs Not U
35、nix)是一種常用于基于Linux 操作系統(tǒng)的嵌入式軟件的工具套件的簡稱。GCC是GNU 開發(fā)工具套件中的核心工具軟件,是一種針對linux操作系統(tǒng)環(huán)境下運行程序的編譯工具。它由源文件生成可執(zhí)行文件的過程是預處理,編譯,匯編,連接。匯編階段,生成二進制目標文件,以為文件的結尾。Linux 操作系統(tǒng)中的可執(zhí)行文件沒有統(tǒng)一的文件后綴,按文件的屬性來進行區(qū)分,若成可執(zhí)行文件時沒有指定文件名,則 GCC生成一個名為 a.out 的可執(zhí)行文件。GCC生GCC所規(guī)定的文件后綴與文件類型的對應關系:.c:用 C 語言編寫的源程序文件.a:由目標文件構成的源文件.C、.cc、 .cxx:用 C+語言編寫的源文
36、件.h:頭文件,可以被其他源文件包含.i:已經(jīng)預處理過的C 語言編寫的源程序文件.ii:已經(jīng)過預處理的C+語言編寫的源程序文件.o:編譯及匯編后生成的目標文件.s:編譯后生成的匯編語言程序.S:匯編語言編寫的源文件程序。GCC的命令及參數(shù):基本命令格式為gcc options filenames ,其中,options 代表編譯命令所需要的參數(shù),filename表示命令中所涉及到的文件名稱。針對不同的嵌入式處理器,GCC的命令格式不同,如針對ARM, GCC基本命令格式為:arm-linux-gcc options filenamesGCC命令的參數(shù)(針對ARM)-c:僅完成編譯操作而不進行編
37、譯操作,編譯器把輸入的文件生成后綴為-E:僅完成預處理操作而不進行后續(xù)處理操作,生成后綴為i 的文件.o 的目標文件-S:僅完成預處理操作、編譯操作而不進行后續(xù)操作,輸出后綴為.s 的文件-o filename_out:確定編譯后的輸出文件名為filename_out,可以根據(jù)自己的需求確定生成的輸出文件名稱,但不能與源文件名稱相同。若不指定,則輸出為a.out-g:編譯時產(chǎn)生一個用于調試的符號表,對元層序進行調試-O:對程序進行優(yōu)化編譯-I dirname :將目錄名為dirname 的目錄加入到源程序頭文件的目錄列表中-L dirname: 將目錄為dirname 的目錄加入到庫文件的目錄列表中假設源文件名稱為 test.c,以下是幾個常見的GCC編譯命令:arm-linux-gcc-o test test.c :生成文件名為 test 的輸出文件Arm-linux-gcc-c-o test.o test.c :生成文件名為test.o的目標文件Arm-linux-gcc-S-o test.s test.c :生成文件名為test.s 的匯編語
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 大班九月主題計劃
- 2024年c1客運資格證圖片
- 2024年宜賓駕??荚嚳瓦\從業(yè)資格證考試題庫
- 2024年福州客運從業(yè)資格證要考幾門科目
- 2025屆浙江金蘭教育合作組織數(shù)學高一上期末教學質量檢測模擬試題含解析
- 2024年銀川客運從業(yè)資格證模擬考試試題題庫
- 七年級下語文版知識課件
- 天津市大白高中2025屆高二上數(shù)學期末檢測模擬試題含解析
- 2025屆江蘇省常熟市英語高三第一學期期末聯(lián)考試題含解析
- 2024年黨員領導干部黨紀黨規(guī)知識競賽題庫及答案(83題)
- 阜陽職業(yè)技術學院2024年教師招聘招聘歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 2024新信息科技三年級第四單元:創(chuàng)作數(shù)字作品大單元整體教學設計
- TBIA 22-2024 骨科疾病診療數(shù)據(jù)集-頸椎退行性疾病
- 考研英語模擬試題一
- 2024至2030年中國油茶行業(yè)發(fā)展策略分析及投資前景研究報告
- 《人工智能與大數(shù)據(jù)技術》高職全套教學課件
- 2023-2024學年北京市東城區(qū)東直門中學七年級(上)期中數(shù)學試卷【含解析】
- 2024年統(tǒng)編版新教材語文小學一年級上冊第五單元檢測題及答案
- 2024年新蘇教版六年級上冊科學全冊知識點(超全)
- 統(tǒng)編版語文四年級上冊第五單元 跟作家學寫作 把事情寫清楚單元任務群整體公開課一等獎創(chuàng)新教學設計
- TLCM組裝貼合制程工藝介紹-
評論
0/150
提交評論