《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt

上傳人:san****019 文檔編號(hào):20442179 上傳時(shí)間:2021-03-21 格式:PPT 頁數(shù):45 大?。?13.60KB
收藏 版權(quán)申訴 舉報(bào) 下載
《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt_第1頁
第1頁 / 共45頁
《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt_第2頁
第2頁 / 共45頁
《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt_第3頁
第3頁 / 共45頁

下載文檔到電腦,查找使用更方便

9.9 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《嵌入式系統(tǒng)總結(jié)》PPT課件.ppt(45頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 按照章節(jié)進(jìn)行分類 嵌入式系統(tǒng)總結(jié) 嵌入式系統(tǒng)的概念及現(xiàn)實(shí)中的實(shí)例 兩種比較合理定義: 從 技術(shù)的角度 定義:以應(yīng)用為中心、以計(jì)算機(jī) 技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng) 對(duì)功能、可靠性、成本、體積、功耗嚴(yán)格要求 的專用計(jì)算機(jī)系統(tǒng)。 從 系統(tǒng)的角度 定義:嵌入式系統(tǒng)是設(shè)計(jì)完成復(fù) 雜功能的硬件和軟件,并使其緊密耦合在一起 的計(jì)算機(jī)系統(tǒng)。 第一章嵌入式系統(tǒng)概述 2.1 ARM簡(jiǎn)介 ARM公司簡(jiǎn)介 ARM是 Advanced RISC Machines的縮寫,它是 一家微處理器行業(yè)的知名企業(yè),該企業(yè)設(shè)計(jì)了大量 高性能、廉價(jià)、耗能低的 RISC (精簡(jiǎn)指令集)處 理器。 公司的特點(diǎn)是只設(shè)計(jì)芯片,而

2、不生產(chǎn)。它 將技術(shù)授權(quán)給世界上許多著名的半導(dǎo)體、軟件和 OEM廠商,并提供服務(wù)。 ARM兩大處理器狀態(tài)特點(diǎn)及其關(guān)系 ARM7TDMI處理器內(nèi)核包含 2套指令系統(tǒng),分別為 ARM指令集和 Thumb指令,并且各自對(duì)應(yīng) 1種處理器的 狀態(tài): ARM狀態(tài): 32位,處理器執(zhí)行字方式的 ARM指令, 處理器默認(rèn)為此狀態(tài); Thumb狀態(tài): 16位,處理器執(zhí)行半字方式的 Thumb 指令。 第 3章 ARM7TDMI(-S)指令系統(tǒng) 簡(jiǎn)介 ARM處理器是基于精簡(jiǎn)指令集計(jì)算機(jī) (RISC)原 理設(shè)計(jì)的 , 指令集和相關(guān)譯碼機(jī)制較為簡(jiǎn)單 。 ARM7TDMI(-S)具有 32位 ARM指令集 和 16位 T

3、humb 指令集 , ARM指令集效率高 , 但是代碼密度低 ;而 Thumb指令集具有較高的代碼密度 , 卻仍然保持 ARM的大多數(shù)性能上的優(yōu)勢(shì) , 它是 ARM指令集的 子集 。 所有的 ARM指令都是可以有條件執(zhí)行的 , 而 Thumb指令僅有一條指令具備條件執(zhí)行功能 。 ARM 程序和 Thumb程序可相互調(diào)用 , 相互之間的狀態(tài)切 換開銷幾乎為零 。 第 3章 ARM7TDMI(-S)指令系統(tǒng) ARM指令集與 Thumb指令集的關(guān)系 Thumb指令集 具有靈活、小 巧的特點(diǎn) ARM指令集支持 ARM核所有的特 性,具有高效、 快速的特點(diǎn) 3.1 ARM處理器尋址方式 尋址方式分類 尋

4、址方式是根據(jù)指令中給出的地址碼字段來實(shí) 現(xiàn)尋找真實(shí)操作數(shù)地址的方式 。 ARM處理器具有 8種 基本尋址方式 。 1.寄存器尋址; 2.立即尋址; 3.寄存器移位尋址; 4.寄存器間接尋址; 5.基址尋址; 6.多寄存器尋址; 7.堆棧尋址; 8.相對(duì)尋址 。 3.2 指令集 常用指令的使用 3.2 指令集介紹 ARM存儲(chǔ)器訪問指令 單寄存器存取 裝載指令: LDR 目標(biāo)寄存器 ,源地址 存儲(chǔ)指令: STR 源寄存器 ,目標(biāo)地址 存儲(chǔ)器 源地址 目標(biāo)寄存器 存儲(chǔ)器 目標(biāo)地址 源寄存器 思考與練習(xí) ? 1.MOV指令與 LDR指令都是往目標(biāo)寄存器中 傳送數(shù)據(jù) , 但是它們有什么區(qū)別嗎 ? MOV

5、指令用于將數(shù)據(jù)從一個(gè)寄存器傳送 到另一個(gè)寄存器中 , 或者將一個(gè)常數(shù)傳送到 一個(gè)寄存器中 , 但是不能訪問內(nèi)存 。 LDR指 令用于從內(nèi)存中讀取數(shù)據(jù)放入寄存器中 。 3.2 指令集介紹 算術(shù)邏輯運(yùn)算指令 算術(shù)邏輯運(yùn)算指令包括 “ 加 /減 ” 以及 “ 與 / 或 /異或 ” 等指令 , 它們的格式如下: OpCode 結(jié)果寄存器,運(yùn)算寄存器,第二操作數(shù) 運(yùn)算寄存器 第二操作數(shù) 運(yùn)算符 結(jié)果寄存器 1.LPC2000系列簡(jiǎn)介 2.引腳描述 3.存儲(chǔ)器尋址 4.系統(tǒng)控制模塊 5.存儲(chǔ)器加速模塊 ( MAM) 6.外部存儲(chǔ)器控制器 ( EMC) 7.引腳連接模塊 8.GPIO 第四章 LPC200

6、0系列 ARM硬件結(jié)構(gòu) 9.向量中斷控制器 10.外部中斷輸入 11.定時(shí)器 0和定時(shí)器 1 12.SPI接口 13.I2C接口 14.UART(0、 1) 15.A/D轉(zhuǎn)換器 16.看門狗 17.脈寬調(diào)制器 (PWM) 18.實(shí)時(shí)時(shí)鐘 4.3.1 片內(nèi)存儲(chǔ)器 片內(nèi) Flash編程方法 1. 使用 JTAG仿真 /調(diào)試器,通過芯片的 JTAG接口下載程序; 2 使用在系統(tǒng)編程技術(shù)(即 ISP),通過 U RT0接口下載程 序; 3.使用在應(yīng)用編程技術(shù)(即 IAP),在用戶程序運(yùn)行時(shí) 對(duì) Flash進(jìn)行擦除和 /或編程操作,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和固 件的現(xiàn)場(chǎng)升級(jí)。 ARM7 處理器核 外設(shè) 控制器 R

7、AM Boot Block FLASH JTAG UART0 串口 并口 JTAG 4.3.1 片內(nèi)存儲(chǔ)器 片內(nèi) Flash編程方法 2. 使用在系統(tǒng)編程技術(shù)(即 ISP),通過 UART0接口下載程 序; 3. 使用在應(yīng)用編程技術(shù)(即 IAP),在用戶程序運(yùn)行時(shí)對(duì) Flash進(jìn)行擦除和 /或編程操作,實(shí)現(xiàn)數(shù)據(jù)的存儲(chǔ)和固件的現(xiàn) 場(chǎng)升級(jí)。 1. 使用 JTAG仿真 /調(diào)試器,通過芯片的 JTAG接口下載 程序; 4.3.2 片外存儲(chǔ)器 片外 Flash編程方法 Flash的擦寫操作需要配合一段符合 Flash編程時(shí)序 的代碼,這段代碼稱為 裝載程序 ,一般由用戶編寫。 程序代碼(源) 程序代碼(

8、目標(biāo)) Loader 目標(biāo)板 CPU BUS Flash 串口 下載用戶代碼時(shí),首先得在 CPU內(nèi)運(yùn)行裝載程序, 通過它把從串口(或其它接口)接收的代碼寫到片外 Flash中。 概述 4.3.3 存儲(chǔ)器映射 ARM芯片可以存在片內(nèi)和片外存儲(chǔ)器,這些存儲(chǔ) 器本身不具有地址信息,它們?cè)谛酒械牡刂肥怯尚?片廠家或用戶分配的,那么 給物理存儲(chǔ)器分配邏輯地 址的過程稱為存儲(chǔ)器映射 。通過這些邏輯地址就可以 訪問到相應(yīng)存儲(chǔ)器的物理存儲(chǔ)單元。 4.3.5 存儲(chǔ)器重映射及引導(dǎo)塊 存儲(chǔ)器重映射 將已經(jīng)過映射的存儲(chǔ)器再次映射的過程稱為 存儲(chǔ) 器重映射 ,它使同一物理存儲(chǔ)單元出現(xiàn)多個(gè)不同的邏 輯地址。這些存儲(chǔ)單元

9、主要包括 引導(dǎo)塊 “ Boot Block” 和用于保存異常向量表的少量存儲(chǔ)單元。 Addr1 程序所見存儲(chǔ)器 . Addr2 Addr1 存儲(chǔ)器管理部件 0 x1234 0 x1234 實(shí)際物理存儲(chǔ)器 0 x1234 注意: 存儲(chǔ)器重映射并不是對(duì)映射單元的內(nèi)容進(jìn) 行了復(fù)制,而只是將多個(gè)地址指向了同一個(gè)存儲(chǔ)單元, 這種效果是通過芯片內(nèi)部的 “ 存儲(chǔ)器管理部件 ” 實(shí)現(xiàn) 的。 實(shí)際物理存儲(chǔ)單元通過 存儲(chǔ)器管理部件進(jìn)行存儲(chǔ)器 映射,獲得邏輯地址 Addr1。 1 實(shí)際物理存儲(chǔ)單元通過 存儲(chǔ)器管理部件進(jìn)行存儲(chǔ)器 重映射,獲得邏輯地址 Addr2。此時(shí),邏輯地址 Addr1和 Addr2可以訪問同一

10、實(shí)際物理存儲(chǔ)單元。 2 4.4.2 時(shí)鐘系統(tǒng) 時(shí)鐘系統(tǒng)結(jié)構(gòu) LPC2000系列微控制器的時(shí)鐘系統(tǒng)包括四個(gè)部分: 晶體振蕩器、喚醒定時(shí)器、鎖相環(huán)( PLL)和 VPB分頻器。 外接晶體或 外接時(shí)鐘源 產(chǎn)生穩(wěn)定的 時(shí)鐘信號(hào) 將 Fosc提升到 合適的頻率 PLL 晶體 振蕩器 VPB 分頻器 FCCLK FPCLK fOSC FOSC CPU內(nèi)核 芯片外設(shè) 喚醒 定時(shí)器 ON/OFF 1 3 4 2 為系統(tǒng)提供基本的時(shí)鐘信號(hào) (Fosc) 。 1 在復(fù)位或處理器從掉電模式被喚醒時(shí),為輸入的時(shí)鐘信號(hào)做計(jì)數(shù)延時(shí),使芯片內(nèi)部部件有時(shí)間進(jìn)行初始化。 2 把 Fosc信號(hào)提高到一個(gè)符合用戶需要的頻率 (Fc

11、clk) 其中 Fcclk用于 CPU內(nèi)核。 3 用于把 Fcclk信號(hào)降低到一個(gè)合適的 Fpclk值(也可以不降低),該信號(hào)用于外設(shè)部件 。 4 4.5 存儲(chǔ)器加速模塊( MAM) 概述 LPC2000微控制器擴(kuò)展了器件內(nèi)部 Flash總線寬 度為 128位,用于提高處理器的指令執(zhí)行速度。這個(gè) 接口通過存儲(chǔ)器加速模塊 (MAM)來控制。 Flash組 2 Flash組 1 CPU 執(zhí)行指令 取指階段 等待 指令 提供指令 1 提供指令 3 . . 取指階段 提供指令 4 取指階段 等待 3 等待 取指階段 提供指令 2 取指階段 等待 1 2 4 關(guān)閉 MAM指令執(zhí)行情況 從 Flash組

12、1中讀取指令, CPU處于等待狀態(tài)。 1 CPU從 1組指令緩存區(qū)中獲取指令并執(zhí)行。 2 從 組 2中讀取指令, 處于等待狀態(tài)。 3 從 2組指令緩存區(qū)中獲取指令并執(zhí)行。 4 所有存儲(chǔ)器操作請(qǐng)求都會(huì)直接對(duì) Flash操作,由此產(chǎn)生了 CPU停止,等待若干周期的情況。 Flash組 2 Flash組 1 CPU 執(zhí)行指令 開啟 MAM指令執(zhí)行情況 . 14 13 提供指令 13 14 15 16 取指階段 12 11 10 9 取指階段 提供指令 9 10 11 12 8 7 6 5 取指階段 提供指令 5 6 7 8 4 3 2 1 提供指令 1 2 3 4 5 6 7 8 取指階段 取指階段

13、 等待 指令 . . 兩組指令緩存區(qū)中不存在指令,啟動(dòng) Flash存儲(chǔ)器 指令讀取周期, CPU停止,等待若干周期。 1 CPU執(zhí)行 Flash組 1指令緩存區(qū)中的指令。 2 執(zhí)行 組 2指令緩存區(qū)中的指令,同時(shí)從 Flash組 1中讀取指令。 3 只要指令存在兩個(gè)組的指令緩存區(qū)中, CPU的 指令執(zhí)行是連續(xù)的,由此大大提高了指令執(zhí)行效率。 4.9 向量中斷控制器 概述 ARM7TDMI內(nèi)核具有兩個(gè)中斷輸入,分別為 IRQ中斷和 FIQ中斷。向量中斷控制器( VIC)負(fù)責(zé) 管理芯片的中斷源,最多可以管理 32個(gè)中斷輸入請(qǐng) 求。 CPU 內(nèi)核 ARM7TDMI-S 4.9 向量中斷控制器 FIQ

14、中斷硬件處理流程 將當(dāng)前的程序狀態(tài)寄存器的內(nèi)容備份 即, SPSR_fiq = CPSR 處理器切換到 FIQ模式 禁止 IRQ和 FIQ中斷,即, I = F = 1 保存返回地址 LR_fiq = PC 設(shè)置 FIQ異常入口地址 PC = 0 x1C 發(fā)生 FIQ異常事件 說明: ARM7不支持 FIQ中斷嵌套 4.9 向量中斷控制器 IRQ中斷相應(yīng)流程 將當(dāng)前的程序狀態(tài)寄存器的內(nèi)容備份 即, SPSR_irq = CPSR 處理器切換到 IRQ模式 禁止 IRQ中斷,即, I = 1 保存返回地址 LR_irq = PC 設(shè)置 IRQ異常入口地址 PC = 0 x18 發(fā)生 IRQ異常事

15、件 說明: ARM7不支持 IRQ中斷嵌套 4.10 外部中斷輸入 概述 LPC2000系列 ARM具有 4路外部中斷,可以設(shè)置為 2種類型: 邊沿觸發(fā): 上升沿觸發(fā) 下降沿觸發(fā) 電平觸發(fā): 高電平觸發(fā) 低電平觸發(fā) 4.12 SPI接口 (Serial Peripheral Interface-串行外設(shè)接口 ) SPI總線系統(tǒng)是一種同步串行外設(shè)接口,它可以使 MCU 與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍 設(shè)置 FLASHRAM、網(wǎng)絡(luò)控制器、 LCD顯示驅(qū)動(dòng)器、 A/D轉(zhuǎn)換器和 MCU等。 SPI總線系統(tǒng)可直接與各個(gè)廠家 生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用 4 條線:串行

16、時(shí)鐘線( SCK)、主機(jī)輸入 /從機(jī)輸出數(shù)據(jù) 線 MISO、主機(jī)輸出 /從機(jī)輸入數(shù)據(jù)線 MOSI和低電平有 效的從機(jī)選擇線 SS(有的 SPI接口芯片帶有中斷信號(hào)線 INT或 INT、有的 SPI接口芯片沒有主機(jī)輸出 /從機(jī)輸入 數(shù)據(jù)線 MOSI)。 SCL SDA CPU A CPU B LCD驅(qū)動(dòng)器 E2PROM ADC 4.13 I2C接口 概述 I2C總線是 Philips推出的串行傳輸總線,它以 2根 連線實(shí)現(xiàn)了完善的全雙工同步數(shù)據(jù)傳送,可以極方 便地構(gòu)成多機(jī)系統(tǒng)和外圍器件擴(kuò)展系統(tǒng)。 I2C總線采用了器件地址的硬件設(shè)置方法, 通過軟件尋址完全避免了期間的片選線 尋址方法,從而使硬件系

17、統(tǒng)具有最簡(jiǎn)單 而靈活的擴(kuò)展方法。 I2C總線的兩根線(串行數(shù)據(jù) SDA,串行 時(shí)鐘 SCL)連接到總線上的任何一個(gè)器 件,每個(gè)器件都應(yīng)有一個(gè)唯一的地址, 而且都可以作為一個(gè)發(fā)送器或接收器。 此外,器件在執(zhí)行數(shù)據(jù)傳輸時(shí)也可以被 看作是主機(jī)或者從機(jī)。 I2C總線規(guī)范 傳輸協(xié)議 主機(jī)發(fā)送數(shù)據(jù)到從機(jī) 主機(jī) 從機(jī) 主機(jī)發(fā)送起始信號(hào),開始數(shù)據(jù)傳輸 對(duì)從機(jī)進(jìn)行尋址,同時(shí) R/W = 0 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送停止信號(hào),結(jié)束數(shù)據(jù)通信 I2C總線規(guī)范 傳輸協(xié)議 主機(jī)讀取從機(jī)數(shù)據(jù) 主機(jī) 從機(jī) 發(fā)送停止信號(hào),結(jié)束數(shù)據(jù)通信 主機(jī)發(fā)送起始信號(hào),開始數(shù)據(jù)傳輸 對(duì)從機(jī)進(jìn)行尋址,

18、同時(shí) R/W = 1 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送應(yīng)答信號(hào) 發(fā)送非應(yīng)答信號(hào) 復(fù)合格式 發(fā)送停止信號(hào),結(jié)束數(shù)據(jù)通信 再次發(fā)送起始信號(hào) 對(duì)從機(jī)進(jìn)行尋址,同時(shí) R/W = 1 發(fā)送應(yīng)答信號(hào) 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送應(yīng)答信號(hào) 發(fā)送非應(yīng)答信號(hào) 主機(jī)發(fā)送起始信號(hào),開始數(shù)據(jù)傳輸 對(duì)從機(jī)進(jìn)行尋址,同時(shí) R/W = 0 發(fā)送 1字節(jié)數(shù)據(jù) 主機(jī) 從機(jī) 發(fā)送應(yīng)答信號(hào) 發(fā)送應(yīng)答信號(hào) 發(fā)送應(yīng)答信號(hào) 發(fā)送 1字節(jié)數(shù)據(jù) 發(fā)送 1字節(jié)數(shù)據(jù) UART簡(jiǎn)介 UART: Universal Asynchronous Receiver/Transmitter, 通用異步接收 /發(fā)送

19、裝置, UART是一個(gè)并行輸入成為 串行輸出的芯片,通常集成在主板上,多數(shù)是 16550AFN芯片。因?yàn)橛?jì)算機(jī)內(nèi)部采用并行數(shù)據(jù),不能 直接把數(shù)據(jù)發(fā)到 Modem,必須經(jīng)過 UART整理才能進(jìn) 行異步傳輸,其過程為: CPU先把準(zhǔn)備寫入串行設(shè)備 的數(shù)據(jù)放到 UART的寄存器(臨時(shí)內(nèi)存塊)中,再通過 FIFO( First Input First Output,先入先出隊(duì)列)傳送 到串行設(shè)備,若是沒有 FIFO,信息將變得雜亂無章, 不可能傳送到 Modem。 應(yīng)用示例 LPC2000的 I/O電壓為 3.3V,連接時(shí)須注意電平 的匹配。 LPC2000 其它 通信設(shè)備 TxD0 RxD0 TxD

20、0 RxD0 與 PC機(jī)相連時(shí),由于 PC機(jī) 串口是 RS232電平,所以 連接時(shí)需要使用 RS232轉(zhuǎn) 換器。 LPC2000 PC機(jī)串口 232 電平轉(zhuǎn)換 TxD0 RxD0 TxD0 RxD0 RxD1 RTS CTS DSR1 DTR1 TxD1 LPC2000 Modem TxD RxD DCD RI1 RTS CTS DSR1 DTR1 DCD1 RI1 RS232 電平轉(zhuǎn)換 當(dāng)使用 Modem接口時(shí),需 要一個(gè) RS232轉(zhuǎn)換器將信 號(hào)轉(zhuǎn)換為 RS232電平后, 才能與 Modem連接 。 4.16 看門狗 看門狗簡(jiǎn)介 在嵌入式應(yīng)用中, CPU必須可靠工作,即使因?yàn)?某種原因進(jìn)入

21、了一個(gè)錯(cuò)誤狀態(tài),系統(tǒng)也應(yīng)該可以自動(dòng) 恢復(fù)??撮T狗的用途就是使微控制器在進(jìn)入錯(cuò)誤狀態(tài) 后的一定時(shí)間內(nèi)復(fù)位。 其原理是在系統(tǒng)正常工作時(shí),用戶程序每隔一段 時(shí)間執(zhí)行喂狗動(dòng)作(一些寄存器的特定操作),如果 系統(tǒng)出錯(cuò),喂狗間隔超過看門狗溢出時(shí)間,那么看門 狗將會(huì)產(chǎn)生復(fù)位信號(hào),使微控制器復(fù)位。 4.16 看門狗 看門狗簡(jiǎn)介 看門狗分 硬件看門狗和軟件看門狗 。硬件看門狗是利 用一個(gè)定時(shí)器電路,其定時(shí)輸出連接到電路的復(fù)位端, 程序在一定時(shí)間范圍內(nèi)對(duì)定時(shí)器清零 (俗稱“喂狗” ), 因此程序正常工作時(shí),定時(shí)器總不能溢出,也就不能 產(chǎn)生復(fù)位信號(hào)。如果程序出現(xiàn)故障,不在定時(shí)周期內(nèi) 復(fù)位看門狗,就使得看門狗定時(shí)器溢

22、出產(chǎn)生復(fù)位信號(hào) 并重啟系統(tǒng)。 4.17 脈寬調(diào)制器 PWM簡(jiǎn)介 LPC2000的 PWM基于標(biāo)準(zhǔn)的定時(shí)器模塊,具有 定時(shí)器的所有特性,它是定時(shí)器匹配功能的擴(kuò)展。 使用 PWM功能,可以在指定引腳輸出需要的波形。 輸出波形可分為兩類: 單邊沿輸出; 雙邊沿輸出。 5.1 最小系統(tǒng) 框圖 嵌入式控制器 時(shí)鐘系統(tǒng) 調(diào)試測(cè)試接口 復(fù)位及其 配置系統(tǒng) 存儲(chǔ)器系統(tǒng) 供電系統(tǒng) (電源 ) 可選,因?yàn)樵S多面向嵌入 式領(lǐng)域的微控制器內(nèi)部集 成了程序和數(shù)據(jù)存儲(chǔ)器 可選,但是在樣 品階段通常都會(huì) 設(shè)計(jì)這部分電路 C/OS-II程序設(shè)計(jì)基礎(chǔ) September,2007 ww w. zlg mcu .co m 任務(wù)設(shè)

23、計(jì) | C/OS-II程序設(shè)計(jì)基礎(chǔ) 任務(wù)的分類 任務(wù) 單次執(zhí)行 類 事件觸發(fā) 類 周期執(zhí)行 類 按 照 執(zhí) 行 方 式 分 類 一般的操作系統(tǒng)都提供時(shí)間管理的函數(shù) , 最基本的就是延時(shí)函數(shù) , C/OS-II也不 例外 , C/OS-II所具有的時(shí)間管理函數(shù)見下表 。 C/OS-II具有簡(jiǎn)單的動(dòng)態(tài)內(nèi)存管理能力 。 C/OS-II的動(dòng)態(tài)內(nèi)存管理函數(shù)見下表 。 任務(wù)管理函數(shù)是操作與任務(wù)相關(guān)功能的函數(shù) , 詳見下表 。 系統(tǒng)管理函數(shù)是一些與 C/OS-II內(nèi)核或功能相關(guān)的一些函數(shù),詳見下表。 C/OS-II的初始化函數(shù)有 2個(gè): OSInit()和 OSStart(), 它們不能在任何任務(wù)和中斷 服

24、務(wù)程序中使用 , 僅在 main()函數(shù)中按照一定的規(guī)范被調(diào)用 , 其中 OSInit()函數(shù)初 始化 C/OS-II內(nèi)部變量 , OSStart()函數(shù)啟動(dòng)多任務(wù)環(huán)境 。 C 把信號(hào)量等都稱為事件 , 管理它們的就是事件管理函數(shù) 。 C/OS-II V2.52 具有的事件有普通信號(hào)量 、 互斥信號(hào)量 、 事件標(biāo)志組 、 消息郵箱和消息隊(duì)列 , 這 些都是 C/OS-II用于同步與通訊的工具 , 本章后述的內(nèi)容將會(huì)詳細(xì)介紹 。 系統(tǒng)函數(shù)概述 | C/OS-II程序設(shè)計(jì)基礎(chǔ) 系統(tǒng)函數(shù)的分類 初始化 任務(wù)管理 時(shí)間管理 內(nèi)存管理 根 據(jù) 功 能 分 類 事件管理 函數(shù)名 功能 備注 OSStatI

25、nit() 使能任務(wù)統(tǒng)計(jì)功能 復(fù)位一次只能調(diào)用一次,并且必須在任務(wù)中調(diào)用,在調(diào)用時(shí)其它用戶任務(wù)不能處于就緒狀態(tài) OSIntEnter() 進(jìn)入中斷處理 必須由中斷服務(wù)程序按照規(guī)范調(diào)用,使用本公司的模版 就不需要調(diào)用它們 OSIntExit() 退出中斷處理 OSSchedLock() 鎖調(diào)度器 必須配對(duì)使用,一般情況不需要使用。事實(shí)上, C/OS-II不推薦使用它們 OSSchedUnlock() 解鎖調(diào)度器 OS_ENTER_CRITICAL() 進(jìn)入臨界區(qū) 必須配對(duì)使用,一般通過禁止中斷和允許中斷來實(shí)現(xiàn)的。 對(duì)于一些移植代碼來說,不能嵌套調(diào)用 OS_EXIT_CRITICAL() 退出臨界

26、區(qū) 函數(shù)名 功能 函數(shù)名 功能 OSTaskChangePrio() 改變?nèi)蝿?wù)優(yōu)先級(jí) OSTaskSuspend() 掛起任務(wù) OSTaskCreate() 建立任務(wù) OSTaskResume() 恢復(fù)任務(wù) OSTaskCreateExt() 建立任務(wù),比 OSTaskCreate() 控制任務(wù)屬性更多 OSTaskStkChk() 檢查堆棧 OSTaskDel() 刪除任務(wù) OSTaskQuery() 獲得任務(wù)信息 OSTaskDelReq() 請(qǐng)求刪除任務(wù),有特殊用途 系統(tǒng)管理 函數(shù)名 功能 備注 OSTimeDly() 以時(shí)鐘節(jié)拍為單位延時(shí) OSTimeDlyHMSM() 以鐘時(shí)分秒毫秒

27、為單位延時(shí) OSTimeDlyResume() 恢復(fù)延時(shí)的任務(wù) OSTimeDlyHMSM()可能需要多次才能恢復(fù) OSTimeGet() 獲得系統(tǒng)時(shí)間 以時(shí)鐘節(jié)拍為單位 OSTimeSet() 設(shè)置系統(tǒng)時(shí)間 以時(shí)鐘節(jié)拍為單位 OSTimeTick() 時(shí)鐘節(jié)拍處理函數(shù) 由時(shí)鐘節(jié)拍中斷處理程序調(diào)用,用戶很少使用 函數(shù)名 功能 OSMemCreate() 初始化一個(gè)堆 OSMemGet() 從指定堆中獲得一個(gè)內(nèi)存塊 OSMemPut() 從指定堆中釋放一個(gè)內(nèi)存塊 OSMemQuery() 查詢指定堆的狀態(tài) C/OS-II程序設(shè)計(jì)基礎(chǔ) 互斥信號(hào)量 簡(jiǎn)介 資源同步 函數(shù)列表 1 2 3 互斥信號(hào)量

28、| C/OS-II程序設(shè)計(jì)基礎(chǔ) 簡(jiǎn)介 互斥信號(hào)量也稱為 mutex, 專用于資源同步 。 互斥信號(hào)量具有一些特 性:占用一個(gè)空閑優(yōu)先級(jí) , 以便解決優(yōu)先級(jí)反轉(zhuǎn)問題 。 在日常生活中 , 出租車是一種常用的共享資源 , 當(dāng)出租車載客 時(shí) , 從外面可以看到標(biāo)識(shí)為載客;當(dāng)空閑時(shí) , 標(biāo)識(shí)為空車 。 這樣 等車的人就可以根據(jù)標(biāo)識(shí)知道出租車的當(dāng)前狀態(tài) , 判斷是否能夠 座上這輛車 。 這個(gè)標(biāo)識(shí)牌就是一個(gè)二值信號(hào)量 。 由于這種二值信 號(hào)量可以實(shí)現(xiàn)對(duì)共享資源的獨(dú)占式處理 , 所以叫做互斥信號(hào)量 。 載客 空車 二值信號(hào)量 可以實(shí)現(xiàn)對(duì)共享資源 的獨(dú)占式處理 互斥信號(hào)量 互斥信號(hào)量 | C/OS-II程序設(shè)

29、計(jì)基礎(chǔ) 簡(jiǎn)介 優(yōu) 先 級(jí) 列 表 任務(wù) 1 任務(wù) 2 任務(wù) 3 高 低 共享資源 假設(shè)任務(wù) 1和任務(wù) 3共享一個(gè)資源 , 任務(wù) 2為優(yōu)先級(jí)介于任務(wù) 1 和任務(wù) 3之間的一個(gè)與該共享資源無關(guān)任務(wù) , 分析優(yōu)先級(jí)反轉(zhuǎn)問 題 。 任務(wù) 2優(yōu)先級(jí)高于任務(wù) 3而進(jìn)入運(yùn)行狀態(tài) 任務(wù) 1申請(qǐng)共享資源而處于等待狀態(tài) 此時(shí) , 雖然任務(wù) 1比任務(wù) 2優(yōu)先級(jí)更高 , 但卻在任務(wù) 2之后運(yùn)行 , 這種現(xiàn)象就是優(yōu)先級(jí) 反轉(zhuǎn) 。 任務(wù) 3得到共享資源而處于運(yùn)行狀態(tài) 互斥信號(hào)量 | C/OS-II程序設(shè)計(jì)基礎(chǔ) 簡(jiǎn)介 綜上所述,可以說能防止優(yōu)先級(jí)反轉(zhuǎn)現(xiàn)象的信號(hào)就是互斥信號(hào) 量。 優(yōu) 先 級(jí) 列 表 互斥信號(hào)量 任務(wù) 1 任務(wù) 2 任務(wù) 3 高 低 互斥信號(hào)量 任務(wù) 3 互斥信號(hào)量 假設(shè)任務(wù) 1和任務(wù) 3共享一個(gè)資源 , 使用互斥信號(hào)量進(jìn)行資源同 步 , 任務(wù) 2為優(yōu)先級(jí)介于任務(wù) 1和任務(wù) 3之間的一個(gè)與該共享資源無 關(guān)任務(wù) , 通過互斥信號(hào)量解決優(yōu)先級(jí)反轉(zhuǎn)問題 。 任務(wù) 2優(yōu)先級(jí)不夠高無法獲得 CPU 任務(wù) 1申請(qǐng)互斥信號(hào)量而處于等待狀態(tài) 此時(shí) , 任務(wù) 2無法在任務(wù) 1之前得到運(yùn)行 , 不發(fā)生優(yōu)先級(jí)反轉(zhuǎn) 互斥信號(hào)量 任務(wù) 1 任務(wù) 3獲得 CPU, 且優(yōu)先級(jí)升到互斥信號(hào)量?jī)?yōu)先級(jí) 1獲得 , 且優(yōu)先級(jí)升到互斥信號(hào)量?jī)?yōu)先級(jí) 祝大家考試順利!

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

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!