freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于arm9的μcosⅱ嵌入式系統(tǒng)移植-在線瀏覽

2025-08-09 04:39本頁(yè)面
  

【正文】 這種情況下,需要對(duì)μC/OSⅡ進(jìn)行中斷的禁止操作,且在訪問(wèn)代碼結(jié)束重新將中斷置為允許狀態(tài)。結(jié)構(gòu)常量OS_STK_GROWTH是在移植過(guò)程中專門為改變堆棧生長(zhǎng)方式而定義的一個(gè)宏:將其置1時(shí)生長(zhǎng)方式是從上往下,置0則相反。任務(wù)切換簡(jiǎn)而言之就是將當(dāng)前任務(wù)的寄存器和狀態(tài)字保存到堆棧中并把更高優(yōu)先級(jí)任務(wù)從堆棧中恢復(fù)出來(lái)。 μC/OSⅡ的移植中需要用C語(yǔ)言編寫六個(gè)簡(jiǎn)單的函數(shù):1. OSTaskStkInit()2. OSTaskCreateHook()3. OSTaskDelHook()4. OSTaskSwHook()5. OSTaskStatHook()6. OSTimeTickHook()在移植過(guò)程中,OSTaskStkInit()是唯一需要進(jìn)行改寫的函數(shù),其余的五個(gè)鉤子函數(shù)(掛機(jī)函數(shù)),只需要對(duì)其聲明,不需要詳細(xì)的代碼,且由于只是聲明。 在早期任務(wù)創(chuàng)建時(shí)使用OSTaskCreate()和 OSTaskCreateExt()調(diào)用OSTaskStkInt(),在這個(gè)過(guò)程中OSTaskStkInt()獲得通過(guò)的pdata指針,任務(wù)堆棧棧頂和任務(wù)優(yōu)先級(jí)和其它參數(shù)參數(shù),以確保正確的初始化堆棧結(jié)構(gòu)。建立任務(wù)之后會(huì)返回一個(gè)OS_TCB的指針,在選擇擴(kuò)展功能的時(shí)候,該指針會(huì)傳給OSTaskCreateHook(),通過(guò)這個(gè)指針訪問(wèn)任務(wù)的附加數(shù)據(jù)(MMU 寄存器,浮點(diǎn)寄存器,以及調(diào)試的信息等)和結(jié)構(gòu)成員。 OSTaskDelHook()OSTaskDelHook():用于任務(wù)的刪除。從而決定刪除的對(duì)象。調(diào)用OSTaskSwHook()期間中斷應(yīng)該處于禁止的狀況,這是為了防止程序的崩潰。 OSTaskStatHook()OSTaskStatHook():進(jìn)行擴(kuò)展統(tǒng)計(jì)功能的函數(shù)。 OSTimeTickHook()OSTaskTimeHook():應(yīng)用于每一個(gè)時(shí)鐘節(jié)拍中。OSTaskTimeHook()無(wú)參數(shù),無(wú)返回值。 OSStartHighRdy()OSStartHighRdy():選擇優(yōu)先級(jí)最高的任務(wù)執(zhí)行。在任務(wù)切換之后和恢復(fù)先前任務(wù)之前需要將此函數(shù)的OSRunning設(shè)置為0。調(diào)用任務(wù)切換函數(shù)的時(shí)候中斷也必須處于禁止?fàn)顟B(tài)。 OSTickISR() OSTickISR():為了滿足時(shí)間期滿和延遲功能而編寫的函數(shù)。通過(guò)源碼介紹、軟件設(shè)置和仿真調(diào)試,實(shí)現(xiàn)ARM9開發(fā)板上LED燈的控制。通過(guò)網(wǎng)絡(luò)或其它途徑獲得μC/OSⅡ的源代碼,對(duì)于一些在第四章描述的變量、宏和函數(shù)進(jìn)行重新定義和配置。如圖53所示:圖53 includes文件夾、 、這些都是一些與芯片相關(guān)的源文件,執(zhí)行測(cè)試操作,如圖54:圖54 source文件夾uCOS_II文件夾中包含了四個(gè)文件夾,分別是API、include、arm、SOURCE。圖58所示:圖58 SOURCE文件夾在對(duì)源碼結(jié)構(gòu)了解之后,就是對(duì)所需文件進(jìn)行相應(yīng)的配置,具體配置代碼見附錄1。 JLink與ARM9連接圖如圖59所示圖59 JLink與ARM9的連接圖PC機(jī)上啟動(dòng)ADS ,新建一個(gè)ARM Executable Image工程,在【Project name】中填寫工程名稱:,在Location中填入代碼所在位置,工程建立完畢。圖510 (1)在【Target】條目中選擇【Access Paths】,將【Always Search User Paths】選中(因?yàn)橄到y(tǒng)的部分文件采用包涵在include ,這里不做修改可能無(wú)法導(dǎo)致文件)。(3)在【Language Settings】條目下選擇【ARM C Compliler】,在【Errors】中勾銷掉【Implicit pointer c】,然后選擇【ARM C Compliler】,在【W(wǎng)arnings】中購(gòu)銷掉【Unused declaration】(O1 g+ cpu ARM920T Wx Ec),如圖512所示圖512 (4)在【ARM Linker】條目下選擇【Output】,將【RO Base】設(shè)置成0x30000000,【Options】下【Image entry point】設(shè)置成0x30000000,【Layout】下【Place at beginning of image】下的【Object/Symbol】,【Section】設(shè)置成Init,【Listings】下選勾Image map、【List file】,勾上Sizes、Totals、Unused、Veneers。圖513 (5)【ARM fromELF】條目下選擇【Output file name】,填寫“輸出的二進(jìn)制”,如圖514所示圖514 (6),同樣對(duì)JLinkH進(jìn)行相應(yīng)的設(shè)置。 實(shí)例調(diào)試在工程和JLink全部設(shè)置完畢,測(cè)試程序見附錄。編譯成功顯示如圖517所示:圖517編譯界面在這里顯示出現(xiàn)0個(gè)錯(cuò)誤,7個(gè)警告,由下面的窗口可知,警告是因?yàn)長(zhǎng)CD日期打印,導(dǎo)致的原因可能是下載的源碼中LCD源碼部分不完整或者混淆,但是這不影響移植的測(cè)試,所以未加以修改。點(diǎn)擊Debug,進(jìn)行JLink的仿真調(diào)試在這里聲明一下,因?yàn)镴Link是一個(gè)在線修改下載的仿真器,所以在代碼不正確都得情況下,可以直接在線修改,不需要像DNW和超級(jí)終端一樣重復(fù)下載。 第六章 結(jié)束語(yǔ)本文通過(guò)對(duì)嵌入式、μC/OSⅡ和ARM9的介紹,以及較為詳細(xì)的移植內(nèi)容分析,、EasyJTAGH仿真器和開發(fā)板組合的實(shí)例測(cè)試,驗(yàn)證了此移植的準(zhǔn)確性,為μC/OSⅡ嵌入式系統(tǒng)的應(yīng)用,提供了最為基本的條件。[參考文獻(xiàn)][1] 王振宇. uC/OS操作系統(tǒng)在ARM系統(tǒng)中的應(yīng)用[D]. 長(zhǎng)春:吉林大學(xué)碩士學(xué)位論文, 2003:116. [2] 李承創(chuàng), 陳躍斌, 房曉麗, 等. uC/OSIII在CortexM3處理器上的移植[J]. 單片機(jī)與嵌入式系統(tǒng)應(yīng)用, 2012(4):4244. [3] 孫順遠(yuǎn),秦會(huì)
點(diǎn)擊復(fù)制文檔內(nèi)容
法律信息相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1