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

正文內(nèi)容

觸摸屏控制實驗設計報告-資料下載頁

2024-08-12 07:08本頁面
  

【正文】 /OSII在讀/寫處理器寄存器時,只能通過匯編語言來實現(xiàn)。由于μC/OSII在設計時就已充分考慮了可移植性,所以μC/OSII的移植相對來說是比較容易的。   由于P89V51RD2是一款80C51微控制器,片內(nèi)包含了64KB的FLASH程式存儲器,并且支持串行在線編程(ISP)。使他在ROM空間上非常適合做μC/OSII的移植。不過他片內(nèi)RAM空間非常有限,只有1KB,不能滿足μC/OSII對RAM的需求。不過由于P89V51RD2能擴展RAM空間,使這一問題得以解決。我們?yōu)樗麛U展了一片32KB的RAM來構成移植μC/OSII的硬件平臺。這樣P89V51RD2就滿足了移植μC/OSII的所有需求。  由于μC/OSII絕大部分代碼是用標準的C語言編寫的,所以C語言研發(fā)工具對于μC/OSII是必不可少的。由于μC/OSII是個可剝奪行的占先式內(nèi)核,所以需求C編譯器能產(chǎn)生可重入型代碼。筆者選擇Keil C51集成研發(fā)環(huán)境作為研發(fā)工具。該研發(fā)工具有C編譯器,匯編器和鏈接定位器等工具構成。鏈接器用來將不同模塊(編譯過或匯編過的文件)鏈接成目標文件,定位器則允許將代碼和數(shù)據(jù)放置在目標處理器的指定內(nèi)存中。Keil C51 還能生成HEX格式的編程文件用于編程EPROM或是FLASH,同時能實現(xiàn)完整軟件仿真支持。Keil C51支持所有8051變種的微控制器。通過設置編譯控制選項,他完萬能滿足編譯μC/OSII原始碼的需求。 4 . 2  μC/OSII源文件移植   在了解了P89V51RD2微處理器和Keil C51 編譯器的技術細節(jié)的基礎上,就能開始μC/OSII源文件移植的工作了。真正編寫移植代碼的工作就相對比較簡單了。圖1表示了基于μC/OSII的應用的系統(tǒng)結構結構。由圖1能看出由于μC/OSII自生的絕大部分代碼是使用ANSI C編寫的,而且代碼的層次結構十分干凈,、。下面分別解釋各個文件在P89V51RD2上的移植。 define語句定義的、和處理器相關的常數(shù)、宏及類型。因為不同的處理器有不同的字長,所以μC/OSII的移植包括的一系列數(shù)據(jù)類型定義,以確保其可移植性。μC/OSII代碼不使用語言中的short,int,及l(fā)ong等數(shù)據(jù)類型,因為他們是和編譯器相關的,是不可移植的。采用定義的整形數(shù)據(jù)結構等既是可移植的,又非常直觀。參考Cx51編譯手冊。   和所有的實時內(nèi)核相同,μC/OSII需要先關中斷,再處置臨界段代碼,并且在處置完畢后重新開中斷。這樣能保護臨界段代碼免受多任務或中斷服務子程式的破壞。為了隱藏不同編譯器提供的不同的關中斷和開中斷的實現(xiàn)方法,增強可移植性,μC/,來開中斷和關中斷:OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()。根據(jù)P89V51RD2的結構和Keil C51提供的方法,我們通過置位或清零中斷允許位來實現(xiàn)。 代碼如下: OS_ENTER_CRITICAL() EA=0 OS_EXIT_CRITICAL() EA=1 MCS51 堆棧從下往上增長(1=向下0=向上) ,OS_STK_GROWTH 定義為0。   μC/。但唯一必要的μC/。但唯一 必要的是OSTaskStkInit(),其他九個必須聲明,但不一定要所有程式代碼?! STaskStkInit()是在系統(tǒng)創(chuàng)建任務時用來初始化任務堆棧的,使堆??雌饋砭拖笾袛鄤偘l(fā)生相同,所有寄存器都保存在堆棧中。由于P89V51RD2硬件堆棧非常小,最多只能有在內(nèi)部RAM空間的256字節(jié)。因此非常難將所有任務的堆棧都用硬件堆棧來實現(xiàn)。為了解決這個問題,我們?yōu)槊總€任務在外部RAM空間都分配一段連續(xù)的存儲區(qū),用來模擬每個任務的堆棧。在μC/OSII進行任務轉換時,首先將P89V51RD2硬件堆棧中的內(nèi)容復制到要失去CPU擁有權的任務的外部模擬堆棧區(qū),然后將要得到CPU擁有權的任務的外部模擬堆棧中的有效數(shù)據(jù)復制到P89V51RD2的硬件堆棧中。這樣就實現(xiàn)了任務保護和轉換。任務模擬堆棧和硬件的堆棧結構如圖2所示。TCB 結構體中OSTCBStkPtr 總是指向用戶堆棧最低地址,該地址空間內(nèi)存放用戶堆棧長度,其上空間存放系統(tǒng)堆棧映像,即:任務模擬堆??臻g大小=系統(tǒng)硬件堆??臻g大小+1。SP 總是先加1再存數(shù)據(jù),因此SP初始時指向系統(tǒng)堆棧起始地址(OSStack)減1 處(OSStkStart)。非常明顯系統(tǒng)硬件堆棧存儲空間大小=SPOSStkStart。編寫OSTaskStkInit()主要完成用戶堆棧初始化,從下向上依次保存用戶堆棧長度(5),PCL, PCH,PSW, AC C,B, DPL, DPH,R0,R1, R2,R3,R4,R5,R6,R7。不保存SP,任務轉換時根據(jù)用戶堆棧長度計算得出。緊接著的兩字節(jié)保存可重入函數(shù)仿真堆棧的指針X_CP的高8位和低8位,初始化為任務模擬棧的最高地址的高8位和低8位。OSTaskStkInit()總是返回任務模擬棧的最低地址。4 . 2 . 1   : OSStartHighRdy() OSCtxSw() OSIntCtxSw() OSTickISR()   μ C/OSII的啟動函數(shù)OSStart()調(diào)用OSStartHighRdy()來使就緒態(tài)任務中 優(yōu)先級最高的任務開始運行,我們通過將任務模擬棧的有效長度內(nèi)的數(shù)據(jù)復制到系統(tǒng)硬件堆棧,然后使用緊接著的兩字節(jié)來改寫X_CP的值。使可重入函數(shù)仿真堆棧指針指向該任務模擬棧的最高地址,這樣做是因為Keil C51使用的可重入函數(shù)仿真堆棧的增長方向是向下的,和系統(tǒng)硬件堆棧的增長方向相反。這樣就完成了OSStartHighRdy()的移植?! τ谠赑89V51RD2上的移植而言,這兩個函數(shù)的實現(xiàn)基本相同。只是OSIntCtxSw()在中斷調(diào)用中 由于OSIntExit()和自身對硬件堆棧的影響,需要將要保存的SP指針向下調(diào)整4個字節(jié),以消除影響。μC/OSII在需要任務轉換時,根據(jù)CPU是否處在中斷狀態(tài)選擇調(diào)用其中一個函數(shù)。如圖2堆棧結構 所示,任務轉換時先保存當前任務堆棧內(nèi)容,方法是:用SPOSStkStart 得出保存字節(jié)數(shù)。 μC/OSII需求用戶提供一個周期性的時鐘源,來實現(xiàn)時間的延遲和超時功能。在P89V51RD2中我們通過定時器T0來提供時鐘源。頻率設為50Hz。時鐘節(jié)拍中斷服務子程式的編寫也非常簡單,示意性代碼如下: void OSTickISR(void) { 保存處理器寄存器; 調(diào)用OSIntEnter()。 定時器計數(shù)器重裝; 調(diào)用OSTimeTick()。 調(diào)用OSIntExit()。 恢復處理器寄存器; 執(zhí)行中斷返回指令; } 4 . 2 . 2  μC/OSII 移植代碼的測試   完成μC/OSII移植后,就要對移植的代碼進行測試。測試移植的μC/OSII是否能夠完成任務調(diào)度、時間管理、任務管 理和同步等功能,是否能夠啟動多 任務環(huán)境。在P89V51RD2的移植中,編寫簡單的測試程式進行多任務的測試。測試程式創(chuàng)建了4任務,任務AA,BB,CC和LedFlash優(yōu)先級分別為2,3,4,5。任務AA延時一秒通過串口輸出一 次,任務BB延時3秒通過串口輸出一次,任務CC延時6秒通過串口輸出一次?! edFlash等待信號量有效時。定時器中斷服務子 程式定時發(fā)出信號量。這樣任務LedFlash實現(xiàn)LED的閃爍功能?! ˇ藽/OSII測試程式的文件結構,硬件測試結果和Keil C51的軟件仿真結果如圖3所示。結果表明μC/OSII在P89V51RD2上 的移植是成功的。 4 . 3  結語 通過μC/OSII在P89V51RD2上的移植,掌控了μC/OSII內(nèi)核的工作原理和移植方法,測試程式表明移植代碼能穩(wěn)定可靠的運行,實現(xiàn)了多任務的管理和調(diào)度。μC/OSII實時操作系統(tǒng)的移入,不僅能提高系統(tǒng)的實時性、可靠性和穩(wěn)定性,還提高了應用軟件的可移植性,降低了研發(fā)人員的工作量。參考文獻[1] 李力,的觸摸屏漢字輸入方法的設計[J].微機算機與信息,:9891.[2]賴誠,觸摸屏原理及在單片機系統(tǒng)的應用[J].商場現(xiàn)代化,2006年6月(下旬刊)總第471期[3] [M].北京,北京航空航天大學出版社,.149150[4] [5] [D].吉林大學信號與信息處理專業(yè)碩士論文[ 6 ]李健無線點菜系統(tǒng)的研究[D]天津大學碩士學位申請論文[7]羅雪蓮,[J].:7273[8]倪天龍,鄧洪波,金連文.通過ADS7846在PDA上實現(xiàn)個性化書法輸入[J].[9]SamsungElectronicsUser’sManualS3C44B0X32BitRISCMicroprocessor[Z].2003.[10]SharpMicroelectronicUser’sManualLM7M632PassiveMatrixLCDModule[Z].1998.
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1