




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、嵌入式開發(fā)系統(tǒng)概況1嵌入式開發(fā)系統(tǒng)概況和設(shè)備驅(qū)動開發(fā)平臺硬件資源開發(fā)平臺軟件資源嵌入式開發(fā)平臺的硬件布局嵌入式系統(tǒng)開發(fā)流程集成開發(fā)環(huán)境可以練習(xí)的實驗項目2開發(fā)平臺硬件資源1)CPU:ARM7TDMI結(jié)構(gòu)芯片S3C44B0X,工作頻率60MHz;2)BIOS:2M,NOR FLASH;3)內(nèi)存:8M,SDRAM;4)海量存儲器:16M,NAND Flash;5)鍵盤:17鍵數(shù)字小鍵盤;6)顯示:320240 、256色LCD,帶四線電阻式觸摸屏;7)USB接口:D12芯片,USB 1.1標(biāo)準(zhǔn);8)串口:2路,最高波特率115200 b/s;9)網(wǎng)絡(luò)接口:RTL8019,10M以太網(wǎng);10)CAN
2、接口:波特率125Kb、250Kb、500Kb、1Mb;311)調(diào)試接口:JTAG,14針、20針;12)電機(jī):直流電機(jī),步進(jìn)電機(jī)(帶1/64減速器);13)A / D:ARM自帶8路10位A /D,滿量程2.5V,4路電位器,4路擴(kuò)展;14)D / A:10位,滿量程4.096V;15)LED: 8個,共陰,與鍵盤同由ZLG7289芯片驅(qū)動;16)音頻輸出:IIS總線,UDA1341芯片,44.1KHz音頻;17)擴(kuò)展插槽:2個,提供系統(tǒng)總線以及空余資源接口;4嵌入式微處理器嵌入式微處理器(EMPU)、嵌入式微控制器(MCU)、嵌入式DSP處理器(EDSP)、嵌入式片上系統(tǒng)(SOC)ARM、
3、MIPS、68K、DSP、ARM7、ARM9、ARM11、XSCALE、本開發(fā)系統(tǒng)的選擇:ARM7TDMI結(jié)構(gòu)芯片S3C44B0X 5ARMAdvanced RISC Machines ARM(Advanced RISC Machines),既可以認(rèn)為是一個公司的名字,也可以認(rèn)為是對一類微處理器的通稱,還可以認(rèn)為是一種技術(shù)的名字。ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計開發(fā)的公司,作為知識產(chǎn)權(quán)供應(yīng)商,本身不直接從事芯片生產(chǎn),靠轉(zhuǎn)讓設(shè)計許可由合作公司生產(chǎn)各具特色的芯片,世界各大半導(dǎo)體生產(chǎn)商從ARM公司購買其設(shè)計的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐罚瑥亩纬勺约旱腁R
4、M微處理器芯片進(jìn)入市場。 6ARM微處理器的特點 采用RISC架構(gòu)的ARM微處理器一般具有如下特點:1、體積小、低功耗、低成本、高性能;2、支持Thumb(16位)/ARM(32位)雙指令集,能很好的兼容8位/16位器件;3、大量使用寄存器,指令執(zhí)行速度更快;4、大多數(shù)數(shù)據(jù)操作都在寄存器中完成;5、尋址方式靈活簡單,執(zhí)行效率高;6、指令長度固定;7ARM微處理器系列 ARM微處理器目前包括下面幾個系列,以及其它廠商基于ARM體系結(jié)構(gòu)的處理器,除了具有ARM體系結(jié)構(gòu)的共同特點以外,每一個系列的ARM微處理器都有各自的特點和應(yīng)用領(lǐng)域。ARM7系列ARM9系列ARM9E系列ARM10E系列Secur
5、Core系列Inter的XscaleInter的StrongARM8ARM7微處理器系列 ARM7系列微處理器為低功耗的32位RISC處理器,最適合用于對價位和功耗要求較高的消費(fèi)類應(yīng)用。ARM7微處理器系列具有如下特點:具有嵌入式ICERT邏輯,調(diào)試開發(fā)方便。極低的功耗,適合對功耗要求較高的應(yīng)用,如便攜式產(chǎn)品。能夠提供0.9MIPS/MHz的三級流水線結(jié)構(gòu)。代碼密度高并兼容16位的Thumb指令集。對操作系統(tǒng)的支持廣泛,包括Windows CE、Linux、Palm OS等。指令系統(tǒng)與ARM9系列、ARM9E系列和ARM10E系列兼容,便于用戶的產(chǎn)品升級換代。主頻最高可達(dá)130MIPS,高速的
6、運(yùn)算處理能力能勝任絕大多數(shù)的復(fù)雜應(yīng)用。 ARM7系列微處理器包括如下幾種類型的核:ARM7TDMI、ARM7TDMI-S、ARM720T、ARM7EJ。其中,ARM7TMDI是目前使用最廣泛的32位嵌入式RISC處理器,屬低端ARM處理器核。 9ARM7TDMI結(jié)構(gòu)T取至THUMB,表示支持16bit的高代碼密度的THUMB指令集。THUMB指令集是ARM指令集的子集,并且壓縮到16bit字長。在系統(tǒng)中合理地交叉使用ARM和THUMB指令集,可以使系統(tǒng)在達(dá)到設(shè)計要求的同時,盡可能地減小代碼量。D取至Debug,表示支持Debuging功能。M取至Multiplier,表示具備32bit硬件乘法
7、器。I取至ICE,表示支持Embedded-ICE接口,可進(jìn)行在線仿真。 10ARM微處理器的寄存器結(jié)構(gòu) ARM處理器共有37個寄存器,被分為若干個組(BANK),這些寄存器包括: 31個通用寄存器,包括程序計數(shù)器(PC指針),均為32位的寄存器。 6個狀態(tài)寄存器,用以標(biāo)識CPU的工作狀態(tài)及程序的運(yùn)行狀態(tài),均為32位,目前只使用了其中的一部分。11ARM微處理器的工作狀態(tài) 從編程的角度看,ARM微處理器的工作狀態(tài)一般有兩種,并可在兩種狀態(tài)之間切換:第一種為ARM狀態(tài),此時處理器執(zhí)行32位的字對齊的ARM指令;第二種為Thumb狀態(tài),此時處理器執(zhí)行16位的、半字對齊的Thumb指令。當(dāng)ARM微處
8、理器執(zhí)行32位的ARM指令集時,工作在ARM狀態(tài);當(dāng)ARM微處理器執(zhí)行16位的Thumb指令集時,工作在Thumb狀態(tài)。在程序的執(zhí)行過程中,微處理器可以隨時在兩種工作狀態(tài)之間切換,并且,處理器工作狀態(tài)的轉(zhuǎn)變并不影響處理器的工作模式和相應(yīng)寄存器中的內(nèi)容。12ARM處理器模式 ARM微處理器支持7種運(yùn)行模式,分別為: 用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài) 快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道處理 外部中斷模式(irq):用于通用的中斷處理 管理模式(svc):操作系統(tǒng)使用的保護(hù)模式 數(shù)據(jù)訪問終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時進(jìn)入該模式,可用于虛擬存儲及存儲保護(hù)。 系
9、統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù)。 未定義指令中止模式(und):當(dāng)未定義的指令執(zhí)行時進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。13Samsung S3C44B0XSamsung S3C44B0X微處理器是三星公司專為手持設(shè)備和一般應(yīng)用提供的高性價比和高性能的微控制器解決方案,它使用ARM7TDMI核,工作在66MHZ。為了降低系統(tǒng)總成本和減少外圍器件,這款芯片中還集成了下列部件:8KB Cache、外部存儲器控制器、LCD控制器、4個DMA通道、2通道UART、1個多主I2C總線控制器、1個IIS總線控制器,5通道PWM定時器及一個內(nèi)部定時器、71個通用I/O口、8個外部中斷
10、源、實時時鐘、8通道10位ADC等。14基于ARM的嵌入式硬件平臺體系結(jié)構(gòu)15開發(fā)平臺軟件資源 1)UarmJtag并口仿真器驅(qū)動程序;2)23個實驗案例源代碼3)UCOS-II操作系統(tǒng)、文件系統(tǒng)、驅(qū)動程序、API函數(shù)的庫文件;16嵌入式操作系統(tǒng)近200種操作系統(tǒng),WinCE、Linux、Vxworks、QNX、Nucleus、適于學(xué)習(xí)的源代碼開放的操作系統(tǒng):Linux、C/OSLinux:層次結(jié)構(gòu)且內(nèi)核完全開放、網(wǎng)絡(luò)功能強(qiáng)大、完整開發(fā)工具、廣泛的硬件支持、遵循通用國際標(biāo)準(zhǔn),便于程序的移植 C/OS:源代碼公開、實時內(nèi)核、易懂、易學(xué)、易用17嵌入式開發(fā)平臺的硬件布局 18微處理器與接口設(shè)計嵌入
11、式操作系統(tǒng)嵌入式系統(tǒng)編程嵌入式軟硬件協(xié)同設(shè)計嵌入式系統(tǒng)開發(fā)實踐基礎(chǔ)平臺:ARM/DSP/FPGA/SOPC嵌入式系統(tǒng)設(shè)計1920集成開發(fā)環(huán)境ARM SDT 2.5開發(fā)環(huán)境 ADS1.2 開發(fā)環(huán)境 集成開發(fā)環(huán)境的使用,參看實驗指導(dǎo)講義21可以練習(xí)的實驗項目實驗一A:ARM SDT 2.5開發(fā)環(huán)境實驗一B:ADS1.2 開發(fā)環(huán)境實驗一C:超級終端設(shè)置及BIOS功能使用實驗二 ARM的串行口實驗實驗三 鍵盤及LED驅(qū)動實驗實驗四 D/A接口試驗實驗五 ARM的A/D接口實驗實驗六 電機(jī)轉(zhuǎn)動控制實驗實驗七 LCD的驅(qū)動控制實驗實驗八 觸摸屏程序設(shè)計實驗九 CAN總線通訊實驗實驗十 定時器中斷和驅(qū)動程序
12、實驗22實驗十一 BOOTLOADER實驗實驗十二A C/OS-II在ARM微處理器上的移植及編譯實驗十二B 完善的C/OS-開發(fā)框架實驗十三 音頻實驗實驗十四 繪圖的API函數(shù)實驗十五 系統(tǒng)的消息循環(huán)實驗十六 文件的使用實驗十七 列表框控件的使用實驗十八 文本框控件實驗十九 多任務(wù)和系統(tǒng)時鐘實驗二十UDP通訊實驗實驗二十一 綜合實驗實驗二十二 模擬電子畫板實驗觸摸屏應(yīng)用實驗二十三 基于ARM的多通道儀表信號采集實驗多任務(wù)與A/D轉(zhuǎn)換23嵌入式系統(tǒng)課題設(shè)計24可選課題GPS通訊與路況信息系統(tǒng) 車輛照明模擬實驗 車內(nèi)空調(diào)系統(tǒng)實驗 車內(nèi)音頻播放系統(tǒng) 車速控制和剎車系統(tǒng) 系統(tǒng)綜合實驗(看人數(shù)情況)2
13、5實驗方式及要求46人一組,每組選定一個課題項目課題內(nèi)部進(jìn)行任務(wù)規(guī)劃與分配對課題進(jìn)行功能、性能方面的分析完成硬件及操作系統(tǒng)裁減的規(guī)劃設(shè)計在開發(fā)平臺上實現(xiàn)操作系統(tǒng)的移植與裁減完成課題各個任務(wù)模塊的分析 、模擬與仿真系統(tǒng)調(diào)試實驗過程及經(jīng)驗總結(jié)26嵌入式系統(tǒng)開發(fā)流程系統(tǒng)功能、性能分析系統(tǒng)方案總體設(shè)計硬件平臺的選擇與裁減操作系統(tǒng)的選擇與裁減最小系統(tǒng)的設(shè)計與驗證應(yīng)用程序的設(shè)計性能指標(biāo)優(yōu)化開發(fā)經(jīng)驗總結(jié)27GPS通訊與路況信息系統(tǒng)1.背景全球定位系統(tǒng)(Global Positioning System),通常簡稱GPS,是一個中距離圓型軌道衛(wèi)星定位系統(tǒng)。它可以為地球表面絕大部分地區(qū)提供準(zhǔn)確的定位和高精度的時
14、間基準(zhǔn)。 車輛自動導(dǎo)航系統(tǒng),它根據(jù)GPS接收機(jī)提供的車輛當(dāng)前位置和用戶輸入的車輛目的地,參照電子地圖計算合適的行駛路線并在行駛中以適當(dāng)?shù)姆绞浇o駕駛員提供必要的信息。282.車輛GPS導(dǎo)航系統(tǒng)的功能: 及時顯示汽車在預(yù)先制定的電子地圖中的位置、行駛速度以及與目的地距離;輸入目的地后主動生成一條去目的地的最佳行駛路線,并在轉(zhuǎn)彎時用語言提醒用戶,使其去任何地方不用問路就可直接到達(dá);隨時可查詢沿途的酒店、商店、加油站、修理廠、車站、碼頭等處的最新路況信息,為用戶提供方便;可在汽車遭遇搶劫后,在指定范圍內(nèi)停止發(fā)動機(jī)的運(yùn)行,并把汽車所出的位置報告警察;29使用處理流程用戶輸入目的地。輸入方法主要有下面幾種
15、。在系統(tǒng)顯示的電子圖上直接點擊選取地點;借助外接鍵盤,以類似PC機(jī)的中文輸入法將地名輸入導(dǎo)航系統(tǒng);確定位置。行駛路線。在用戶輸入了目的地之后,導(dǎo)航系統(tǒng)根據(jù)電子地圖上存儲的地圖信息,就可以自動算出一條最合適的路線,指示給用戶;行駛中的導(dǎo)航。在必要時刻向駕駛員提示信息。比如,車輛行駛到系統(tǒng)推薦路線中應(yīng)轉(zhuǎn)彎的路口前,系統(tǒng)應(yīng)提示駕駛員:“200m后請向左轉(zhuǎn)” 。303系統(tǒng)總體設(shè)計由于實驗平臺沒有配備GPS模塊,本實驗通過模擬實現(xiàn)。在LCD上顯示模擬電子地圖,實驗者在觸屏上直接點擊選取目的地,然后實驗者從PC機(jī)鍵盤輸入汽車當(dāng)前位置,通過串口傳到ARM,用以模擬GPS模塊接收到的從地面控制中心傳來的汽車位
16、置數(shù)據(jù)。導(dǎo)航系統(tǒng)將傳回的數(shù)據(jù)與電子地圖對比,得到汽車的當(dāng)前位置,然后計算出一條最佳行車路線,并顯示在LCD上。 314硬件平臺選擇與剪裁剪裁后的硬件:CPU: ARM7TDMI結(jié)構(gòu)芯片S3C44B0X;BIOS:2M , NOR FLASH;內(nèi)存:8M , SDRAM;海量存儲器:16M , NAND FLASH;USB接口:D12芯片,USB 1.1標(biāo)準(zhǔn);顯示:320*240像素、256色LCD,帶4線電阻式觸摸屏;325操作系統(tǒng)的移植與裁剪5.1 操作系統(tǒng)的選擇5.2 操作系統(tǒng)的移植5.3 操作系統(tǒng)的裁剪文件系統(tǒng)的建立;必要的外設(shè)的驅(qū)動程序;實現(xiàn)基于Unicode的漢字字庫;繪圖等實用AP
17、I;336.最小系統(tǒng)的設(shè)計與驗證 6.1 最小系統(tǒng)的設(shè)計6.2 最小系統(tǒng)的驗證347應(yīng)用程序設(shè)計 7.1 程序功能7.2 界面設(shè)計7.3 程序流程358指標(biāo)優(yōu)化時間指標(biāo)資源占用指標(biāo)系統(tǒng)穩(wěn)定性 369總結(jié)在實驗課題設(shè)計中,實現(xiàn)了哪些部分,使用到了哪些知識,掌握了哪些。在方案設(shè)計與系統(tǒng)調(diào)試過程中遇到的問題與解決方案系統(tǒng)方案中還存在的缺陷對該課題提出的創(chuàng)新性的見解在實驗中,希望能加強(qiáng)掌握的知識與實驗有哪些?37車輛照明模擬實驗 背景智能化的汽車照明系統(tǒng)又稱適應(yīng)性的照明系統(tǒng)(Adaptive Lighting Systems),它包括自適應(yīng)前照燈系統(tǒng)AFS(Adaptive Frontlighting
18、 Systems)、改進(jìn)的的信號照明和車內(nèi)照明控制三部分。 38適應(yīng)性的前方照明系統(tǒng)AFS適應(yīng)性的前方照明系統(tǒng)AFS是EUREKA的1403號項目,歐洲的汽車公司、車燈公司和光源公司共同承擔(dān)了這個項目,美國和日本的一些公司也參與了此一項目。AFS具有彎道照明BL(Bending Light)、高速公路照明ML(Motorway Light)/鄉(xiāng)間照明CL(Country Light)/城鎮(zhèn)照明TL(Town Light)和惡劣天氣照明AL(Adverse Weather Light)等功能。在城區(qū)駕駛時路面情況復(fù)雜,因而光形較寬,又由于車速不快,因而照射的距離不要很遠(yuǎn)。在高速公路,車速快,因而
19、ML光束照射得遠(yuǎn)。在彎道處,BL應(yīng)該給彎道以良好的照明。39實驗要求:本次實驗主要設(shè)計模擬AFS系統(tǒng)的部分功能。通過處理器對車速信息和方向信息的采集來控制車燈的照明方向和強(qiáng)度。同時接收控制信息,對車燈進(jìn)行控制。40實驗?zāi)M條件:由于實驗板上資源有限,對于AFS系統(tǒng)只能作簡單的模擬,用8個共陰極LED模擬兩個前大燈,點亮不同的LED表示不同的照明焦點。從正中間起對8個LED作對稱編號,1號LED用于模擬正常前大燈,2號LED用于模擬高速行駛時的遠(yuǎn)光燈,3號LED用于模擬轉(zhuǎn)向時的側(cè)光燈,4號LED用于模擬轉(zhuǎn)向時的信號燈。因為沒有復(fù)雜的傳感器,所以對道路情況和天氣情況的傳感轉(zhuǎn)變?yōu)閷τ烷T和車速的傳感。
20、用AD1模擬方向盤,采樣其值用作對3號和4號LED的控制,用AD2模擬油門,當(dāng)油門超過一定值時認(rèn)為進(jìn)入高速行駛路段,點亮遠(yuǎn)光燈。利用鍵盤作為用戶輸入,模擬車內(nèi)控制信息。 41車內(nèi)空調(diào)系統(tǒng) 背景:汽車空調(diào)系統(tǒng)作為影響汽車舒適性的主要總成之一,為汽車提供制冷、取暖、除霜、空氣過濾和溫度控制功能 。42實驗要求:車內(nèi)智能空調(diào)系統(tǒng)將可以采樣車內(nèi)溫度,讀取用戶輸入溫度,根據(jù)兩個溫度的差別,確定供暖風(fēng)和還是冷風(fēng),并根據(jù)所需溫差的大小控制風(fēng)力的大小。同時,可以根據(jù)用戶的需要,改變供風(fēng)的風(fēng)向和狀態(tài)。43實驗?zāi)M條件:鑒于實驗開發(fā)板上的資源有限,在模擬空調(diào)系統(tǒng)時,用直流電機(jī)的轉(zhuǎn)動模擬空調(diào)壓縮機(jī)運(yùn)轉(zhuǎn),用步進(jìn)電機(jī)的
21、轉(zhuǎn)動模擬空調(diào)風(fēng)向的變化。用兩個AD轉(zhuǎn)換器分別表示車內(nèi)溫度和用戶輸入溫度,用鍵盤的上下調(diào)整風(fēng)向變化。空調(diào)運(yùn)行狀態(tài)的信息顯示在LCD上。44車內(nèi)音頻播放 背景:MP3等多種音樂格式的廣泛流行。設(shè)計一套適宜人們放松精神,緩解疲勞的音頻播放系統(tǒng)是十分必要的。播放系統(tǒng)需要可以顯示音樂列表、按照駕駛員的控制播放音樂、方便的調(diào)節(jié)音量和切換歌曲、并且播放系統(tǒng)帶有傳感器,當(dāng)出現(xiàn)復(fù)雜道路情況,車速變化頻繁時自動停止播放以免干擾司機(jī)駕駛。45實驗要求:1.能夠?qū)?wav文件實現(xiàn)單聲道,多聲道選擇播放2.能夠自動存儲播放列表.3.自由調(diào)整播放聲音大小4.當(dāng)車開動后能自動關(guān)閉播放,以免妨礙司機(jī)開車5.自由控制播放與停止
22、.46實驗?zāi)M條件:實驗箱已經(jīng)能夠滿足音頻播放的硬件要求47MCUScreenKeyboardFLASHIIS 總線D/A主控器輸出執(zhí)行檢測輸入控制框圖物理框圖播放器48車速控制和剎車系統(tǒng)背景及規(guī)劃:速度控制系統(tǒng),英文為Speed Control System;又稱為巡航控制系統(tǒng)(Crusle Control System),縮寫為CCS.速度控制系統(tǒng)是一種減輕駕車者疲勞的裝置。當(dāng)汽車在長距離的高速公路行駛時,啟動速度控制系統(tǒng)就可以自動將汽車固定在特定的速度上,免除駕車者長時間腳踏油門踏板之苦。另外,還有節(jié)省燃料和減少排放的好處,因為汽車都有對應(yīng)的經(jīng)濟(jì)速度,當(dāng)駕駛者將速度控制系統(tǒng)調(diào)置在經(jīng)濟(jì)速度
23、上就可以起到省油的作用.49實驗?zāi)M條件:指令開關(guān)部分可以通過按鍵模擬。(車速調(diào)置開關(guān)、制動踏板、恢復(fù)開關(guān))車速傳感器可以用一個模擬信號,經(jīng)ad轉(zhuǎn)換模擬。油門執(zhí)行模塊用直流電機(jī)和步進(jìn)電機(jī)模擬。系統(tǒng)設(shè)計主要完成ECU控制部分的設(shè)計,可以在ucos操作系統(tǒng)下實現(xiàn)。50ECU車速傳感器指令開關(guān)油門執(zhí)行器51系統(tǒng)綜合實驗1.背景完整的汽車電子系統(tǒng),是一個有機(jī)整體,把上述部分進(jìn)行系統(tǒng)整合,形成汽車車載系統(tǒng)的完整解決方案,將很有實際意義52實驗要求:利用CAN總線,把各個模塊連接起來實現(xiàn)CAN總線的通信對于數(shù)據(jù)通信協(xié)議的規(guī)劃53實驗條件:實驗箱已具備CAN總線54資料下載:網(wǎng)上搜集以往的總結(jié)資料聯(lián)系方式:
24、 TEL:8953834555uC/OS-II移植實驗56實驗?zāi)康牧私鈛C/OS-II內(nèi)核的基本原理和主要結(jié)構(gòu)掌握將uC/OS-II內(nèi)核移植到ARM處理器上的基本方法掌握uC/OS-II下基本多任務(wù)應(yīng)用程序的編寫57實驗內(nèi)容學(xué)習(xí)uC/OS-II再ARM處理器上的移植過程編寫簡單的多任務(wù)應(yīng)用程序,同時實現(xiàn)跑馬燈和數(shù)碼管顯示的功能58預(yù)備知識了解嵌入式操作系統(tǒng)的構(gòu)架以及具體的uC/OSII的組成了解操作系統(tǒng)的移植方法59uC/OS-II概述uC/OS-II在特定處理器上的移植工作絕大部分集中在多任務(wù)切換的實現(xiàn)上,因為這部分代碼主要是用來保存和恢復(fù)處理器現(xiàn)場,許多操作如讀寫寄存器操作不能用C語言,只
25、能使用特定的處理器的匯編語言來完成。將uC/OS-II移植到ARM處理器上,需要完成的工作非常簡單,大部分的修改工作集中在三個和體系結(jié)構(gòu)相關(guān)的文件中,代碼量大約是500行。這三個文件是OS_CPU_C.c、OS_CPU_C.H以及OS_CPU_A.S。6061移植的主要工作用#define設(shè)置一個常量的值(OS_CPU.H)聲明10個數(shù)據(jù)類型(OS_CPU.H)用#define聲明三個宏(OS_CPU.H)用C語言編寫六個簡單的函數(shù)(OS_CPU_C.C)編寫四個匯編語言函數(shù)(OS_CPU_A.ASM)根據(jù)處理器的不同,一個移植實例可能需要編寫或改寫50至300行的代碼,需要的時間從幾個小時到
26、一星期不等。62OS_CPU.H1. 數(shù)據(jù)類型 (與編譯器相關(guān))2.與處理器相關(guān)的代碼 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() OS_ENTER_CRITICAL(); /* C/OS-II 臨界代碼段 */ OS_EXIT_CRITICAL();OS_STK_GROWTH 3. OS_TASK_SW() 它是在C/OS-從低優(yōu)先級任務(wù)切換到最高優(yōu)先級任務(wù)時被調(diào)用的。 63OS_CPU.H的移植數(shù)據(jù)類型定義typedef unsigned char BOOLEAN;typedef unsigned char INT8U; /* Unsigned 8 bit
27、 quantity */typedef signed char INT8S; /* Signed 8 bit quantity */typedef unsigned int INT16U; /* Unsigned 16 bit quantity */typedef signed int INT16S; /* Signed 16 bit quantity */typedef unsigned long INT32U; /* Unsigned 32 bit quantity */typedef signed long INT32S; /* Signed 32 bit quantity */type
28、def float FP32; /* Single precision floating point */typedef double FP64; /* Double precision floating point */* Define data types for backward compatibility . */#define BYTE INT8S /* . to uC/OS V1.xx. Not actually needed for . */#define UBYTE INT8U /* . uC/OS-II. */#define WORD INT16S #define UWORD
29、 INT16U#define LONG INT32S#define ULONG INT32U堆棧單位定義typedef unsigned int OS_STK; /* Each stack entry is 16-bit wide */64OS_CPU.H的移植ARM處理器相關(guān)宏定義#defineOS_ENTER_CRITICAL()ARMDisableInt()#defineOS_EXIT_CRITICAL()ARMEnableInt()堆棧增長方向 堆棧由高地址向低地址增長,這個也是和編譯器有關(guān)的,當(dāng)進(jìn)行函數(shù)調(diào)用時,入口參數(shù)和返回地址一般都會保存在當(dāng)前任務(wù)的堆棧中,編譯器的編譯選項和由此生
30、成的堆棧指令就會決定堆棧的增長方向。#define OS_STK_GROWTH 65OS_CPU_C.COSTaskStkInit()OSTaskCreateHook()OSTaskDelHook()OSTaskSwHook()OSTaskStatHook()OSTimeTickHook()唯一必要的函數(shù)是OSTaskStkInit(),其它五個函數(shù)必須得聲明但沒必要包含代碼。 66OS_CPU.c的移植任務(wù)堆棧初始化該函數(shù)由OSTaskCreate()或OSTaskCreateExt()調(diào)用,用來初始化任務(wù)的堆棧并返回新的堆棧指針stk。初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結(jié)構(gòu)。在ARM體
31、系結(jié)構(gòu)下,任務(wù)堆??臻g由高至低依次將保存著pc、lr、r12、r11、r10、 r1、r0、CPSR、SPSR,下圖說明了OSTaskStkInit()初始化后的也是新創(chuàng)建任務(wù)的堆棧內(nèi)容。堆棧初始化工作結(jié)束后,OSTaskStkInit()返回新的堆棧棧頂指針,OSTaskCreate()或 OSTaskCreateExt()將指針保存在任務(wù)的OS_TCB中。67OS_CPU.c的移植系統(tǒng)HOOK函數(shù):在這個文件里面還需要實現(xiàn)幾個操作系統(tǒng)規(guī)定的hook函數(shù),這些函數(shù)為用戶定義函數(shù),它將在相應(yīng)的操作系統(tǒng)調(diào)用后執(zhí)行由用戶定義的這些hook函數(shù),執(zhí)行特定的用戶操作,如果沒有特殊需求,則只需要簡單地將
32、它們都實現(xiàn)為空函數(shù)就可以。這些函數(shù)包括:OSSTaskCreateHook( )OSTaskDelHook( )OSTaskSwHook( )OSTaskStatHook( )OSTimeTickHook( )68OS_CPU.c的移植中斷級任務(wù)切換函數(shù)該函數(shù)由OSIntExit()和OSExIntExit()調(diào)用。它是在時鐘中斷服務(wù)例程中發(fā)現(xiàn)有高優(yōu)先級任務(wù)等待的時鐘信號到來,則需要在中斷退出后并不返回被中斷任務(wù),而是直接調(diào)度就緒的高優(yōu)先級任務(wù)執(zhí)行。這樣做的目的主要是能夠盡快地讓高優(yōu)先級的任務(wù)得到響應(yīng),保證系統(tǒng)的實時性能。該函數(shù)通過設(shè)置一個全局變量need_to_s標(biāo)志以表示在中斷服務(wù)程序中進(jìn)
33、行任務(wù)切換,并在OSTickISR()中判斷該變量以進(jìn)行正確的動作。其函數(shù)如下:void OSIntCtxSw(void)need_to_s = 1;69OS_CPU_A.ASMC/OS-的移植實例要求用戶編寫四個簡單的匯編語言函數(shù):OSStartHighRdy()OSCtxSw()OSIntCtxSw()OSTickISR()OSStart( )調(diào)用本函數(shù);OSStart( )負(fù)責(zé)使就緒狀態(tài)的任務(wù)開始運(yùn)行;OSStartHighRdy( )負(fù)責(zé)獲取新任務(wù)的堆棧指針并從堆棧指針中恢復(fù)新任務(wù)的所有處理器寄存器。OSStart( )調(diào)用本函數(shù);OSStart( )負(fù)責(zé)使就緒狀態(tài)的任務(wù)開始運(yùn)行;OS
34、StartHighRdy( )負(fù)責(zé)獲取新任務(wù)的堆棧指針并從堆棧指針中恢復(fù)新任務(wù)的所有處理器寄存器。OSIntExit( )調(diào)用本函數(shù); OSIntExit由OSTickISR調(diào)用,負(fù)責(zé)在定時中斷中任務(wù)之間的切換;OSIntCtxSw( )主要保存當(dāng)前任務(wù)堆棧指針,并將新任務(wù)對應(yīng)的處理器寄存器從堆棧中恢復(fù)出來。定時中斷函數(shù); OSTickISR( )主要負(fù)責(zé)在進(jìn)入時保存處理器寄存器,完成任務(wù)的切換,退出時恢復(fù)寄存器并返回。70OSStartHighRdy()運(yùn)行優(yōu)先級最高的就緒任務(wù)void OSStartHighRdy (void) Call user definable OSTaskSwHook(); Get the stack pointer of the task to resume: Stack pointer = OSTCBHighRdy-OSTCBStkPtr; /設(shè)置新的當(dāng)前任務(wù)的地址 OSRunning = TRUE;
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 環(huán)保理念與低碳生活實踐方法作業(yè)指導(dǎo)書
- 三農(nóng)人才培養(yǎng)及實施方案指導(dǎo)書
- 新能源汽車充電紅燈
- 新能源汽車充電樁難題
- 品牌管理與推廣操作手冊
- 商家自行配送怎么查物流
- 施工建筑設(shè)計說明
- 企業(yè)員工內(nèi)訓(xùn)方案
- 電子商務(wù)平臺運(yùn)營模式創(chuàng)新研究
- 醫(yī)學(xué)影像學(xué)設(shè)備操作與維護(hù)指南
- 2025年醫(yī)保知識考試題庫及答案-醫(yī)保定點醫(yī)療機(jī)構(gòu)管理流程詳解試題
- 2025年鐵嶺衛(wèi)生職業(yè)學(xué)院單招職業(yè)傾向性測試題庫學(xué)生專用
- (一模)2025屆安徽省“江南十?!备呷?lián)考地理試卷(含官方答案)
- 數(shù)學(xué)-2025屆安徽省江南十校聯(lián)考試題和解析
- 普通高中學(xué)生綜合素質(zhì)評價自我陳述報告
- 竣工結(jié)算審計服務(wù)投標(biāo)方案(2024修訂版)(技術(shù)方案)
- 物流無人機(jī)垂直起降場選址與建設(shè)規(guī)范
- T∕CGCC 17-2018 商業(yè)信譽(yù)評價體系
- 數(shù)獨(dú)6×6初級打印版
- 九種常規(guī)曲線測井方法
- 關(guān)于進(jìn)一步明確長春市物業(yè)服務(wù)收費(fèi)
評論
0/150
提交評論