




已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
北京航空航天大學(xué) ARM9實驗報告實驗三 UC-OS移植實驗一、實驗?zāi)康脑趦?nèi)核移植了uCOS-II 的處理器上創(chuàng)建任務(wù)。二、實驗內(nèi)容1運行實驗十,在超級終端上觀察四個任務(wù)的切換。 2. 任務(wù)13,每個控制“紅”、“綠”、“藍”一種顏色的顯示,適當增加OSTimeDly()的時間,且優(yōu)先級高的任務(wù)延時時間加長,以便看清三種顏色。 3. 引入一個全局變量 BOOLEAN ac_key,解決完整刷屏問題。 4. #define rUTRSTAT0 (*(volatile unsigned *)0x50000010) #define RdURXH0()(*(volatile unsigned char *)0x50000024) 當鍵盤有輸入時在超級終端上顯示相應(yīng)的字符。三、實驗設(shè)備硬件:ARM嵌入式開發(fā)平臺、用于ARM920T的JTAG仿真器、PC機Pentium100以上。軟件:PC機操作系統(tǒng)Win2000或WinXP、ARM ADS1.2集成開發(fā)環(huán)境、仿真器驅(qū)動程序、超級終端通訊程序。四、實驗原理所謂移植,指的是一個操作系統(tǒng)可以在某個微處理器或者微控制器上運行。雖然uCOS-II的大部分源代碼是用C語言寫成的,仍需要用C語言和匯編語言完成一些與處理器相關(guān)的代碼。比如:uCOS-II在讀寫處理器、寄存器時只能通過匯編語言來實現(xiàn)。因為uCOS-II在設(shè)計的時候就己經(jīng)充分考慮了可移植性,所以,uCOS-II的移植還是比較容易的。要使uCOS一工工可以正常工作,處理器必須滿足以下要求:1)處理器的C編譯器能產(chǎn)生可重入代碼。2)在程序中可以打開或者關(guān)閉中斷。3)處理器支持中斷,并A能產(chǎn)生定時中斷(通常在10Hz1000Hz之間)。4)處理器支持能夠容納一定量數(shù)據(jù)的硬件堆棧。5) 處理器有將堆棧指針和其它CPU寄存器存儲和讀出到堆棧(或者內(nèi)存)的指令。uCOS-II進行任務(wù)調(diào)度的時候,會把當前任務(wù)的CPU寄存器存放到此任務(wù)的堆棧中,然后,再從另一個任務(wù)的堆棧中恢復(fù)原來的工作寄存器,繼續(xù)運行另一個任務(wù)。所以,寄存器的入棧和出棧是uCOS一工工多任務(wù)調(diào)度的基礎(chǔ)。五、實驗步驟1 以實驗十為模板,將實驗六 inc目錄下的LCD320.H 和src目錄下的LCD640.C拷到 模板下的相應(yīng)目錄,將LCD640.C加入工程中。2 包含以下頭文件 #include “inc/lcd320.h”。3 改LCD640.C 文件中包含頭文件的路徑 。 #include ./inc/drv/reg2410.h 4 聲明引用的變量 extern U32 LCDBufferII2LCDHEIGHTLCDWIDTH; 六、 源程序#include./ucos-ii/includes.h /* uC/OS interface */#include ./ucos-ii/add/osaddition.h#include ./inc/drivers.h#include ./inc/sys/lib.h#include ./src/gui/gui.h#include ./inc/lcd320.h#include #include /#include .inc/lcd320.h/#pragma import(_use_no_semihosting_swi) / ensure no functions that use semihosting OS_EVENT *MboxSem;/*任務(wù)定義*/*OS_STK SYS_Task_StackSTACKSIZE= 0, ; /system task刷新任務(wù)堆棧#define SYS_Task_Prio1 void SYS_Task(void *Id);*/OS_STK task1_StackSTACKSIZE=0, ; /Main_Test_Task堆棧void Task1(void *Id); /Main_Test_Task#define Task1_Prio 12OS_STK task2_StackSTACKSIZE=0, ; /test_Test_Task堆棧void Task2(void *Id); /test_Test_Task#define Task2_Prio 15OS_STK task3_StackSTACKSIZE=0, ; /test_Test_Task堆棧void Task3(void *Id); /test_Test_Task#define Task3_Prio 17OS_STK task4_StackSTACKSIZE=0, ; /test_Test_Task堆棧void Task4(void *Id); /test_Test_Task#define Task4_Prio 10extern U32 LCDBufferII2LCDHEIGHTLCDWIDTH; extern BOOLEAN ac_key=1;int k,j;#define rUTRSTAT0 (*(volatile unsigned *)0x50000010)#define RdURXH0() (*(volatile unsigned char *)0x50000024)/*已經(jīng)定義的OS任務(wù)*#define SYS_Task_Prio1#define Touch_Screen_Task_Prio9#define Main_Task_Prio 12#define Key_Scan_Task_Prio 58#define Lcd_Fresh_prio 59#define Led_Flash_Prio 60*/*事件定義*/ Main function. /int main(void)ARMTargetInit(); / do target (uHAL based ARM system) initialisation /OSInit(); / needed by uC/OS-II / LCD_Init();/OSTaskCreate(SYS_Task, (void *)0, (OS_STK *)&SYS_Task_StackSTACKSIZE-1, SYS_Task_Prio); OSTaskCreate(Task1, (void *)0, (OS_STK *)&task1_StackSTACKSIZE-1, Task1_Prio); OSTaskCreate(Task2, (void *)0, (OS_STK *)&task2_StackSTACKSIZE-1, Task2_Prio); OSTaskCreate(Task3, (void *)0, (OS_STK *)&task3_StackSTACKSIZE-1, Task3_Prio); OSTaskCreate(Task4, (void *)0, (OS_STK *)&task4_StackSTACKSIZE-1, Task4_Prio); OSAddTask_Init(0); BSPprintf(0,Starting uCOS-II.n);OSStart(); / start the OS / never reached /return 0;/void Task1(void *Id) for(;) if(ac_key=1) ac_key=0; BSPprintf(0,RED%nn); for (k=0;k480;k+) for (j=0;j640;j+) LCDBufferII2kj=0x000000ff; LCD_Refresh(); OSTimeDly(10000); ac_key=1; void Task2(void *Id) for(;) if(ac_key=1) ac_key=0; BSPprintf(0,GREEN%nn); for (k=0;k480;k+) for (j=0;j640;j+) LCDBufferII2kj=0x0000fc00; LCD_Refresh(); ac_key=1; OSTimeDly(8000); void Task3(void *Id) for(;) if(ac_key=1) ac_key=0; BSPprintf(0,BLUE%nn); for (k=0;k480;k+) for (j=0;j640;j+) LCDBufferII2kj=0x00f80000; LCD_Refresh(); ac_key=1; OSTimeDly(6000); void Task4(void *Id) char s;for(;) ac_key=0; if (rUTRSTAT0 & 1) s=RdURXH0(); OSTi
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教育與培訓(xùn)行業(yè):教育培訓(xùn)機構(gòu)品牌建設(shè)與營銷策略研究報告
- 城市公共自行車智能化改造對城市交通影響評估報告
- 2025年元宇宙社交平臺虛擬社交場景下的用戶需求分析報告
- 2025年能源行業(yè)環(huán)保報告:能源行業(yè)污染防治技術(shù)與政策要求
- 2025年醫(yī)院電子病歷系統(tǒng)在醫(yī)療信息化中的數(shù)據(jù)挖掘與分析優(yōu)化報告001
- 2025年醫(yī)藥行業(yè)CRO模式下的臨床試驗結(jié)果解讀與報告撰寫報告
- 2025年數(shù)字貨幣在數(shù)字貨幣錢包的安全性評估與優(yōu)化研究報告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)模式藥物研發(fā)精準醫(yī)療與個性化治療報告
- 2025年醫(yī)藥企業(yè)研發(fā)外包(CRO)合同管理與法律風險防范報告
- 2025年醫(yī)藥流通企業(yè)供應(yīng)鏈優(yōu)化與成本控制物流信息化建設(shè)案例分析報告
- 第三講加快發(fā)展新質(zhì)生產(chǎn)力-2024年形勢與政策
- 腦出血疑難病例討論護理
- 雨季行車安全培訓(xùn)
- 廣西南寧市英語小升初試卷及解答參考(2024-2025學(xué)年)
- 2016年北京市中考真題數(shù)學(xué)試題(解析版)
- 智能客服培訓(xùn)手冊
- 個人雇護工簽訂協(xié)議書范本范本
- 山東省濰坊市2024-2025學(xué)年高二生物下學(xué)期期末考試試題
- 2024年蘇教版四年級數(shù)學(xué)上冊全冊教案
- 初++中數(shù)學(xué)設(shè)計學(xué)校田徑運動會比賽場地+課件++人教版七年級數(shù)學(xué)上冊
- 《衛(wèi)星導(dǎo)航系統(tǒng)》全套教學(xué)課件
評論
0/150
提交評論