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

正文內(nèi)容

基于stm32的嵌入式操作系統(tǒng)程序設(shè)計及實現(xiàn)本科畢業(yè)論文(留存版)

2024-08-04 09:50上一頁面

下一頁面
  

【正文】 滿足以下要求:(1)處理器的C編譯器能產(chǎn)生可重入代碼。 typedef unsigned int OS_CPU_SR。這兩個宏分別定義如下: define OS_CRITICAL_METHOD 3 define OS_ENTER_CRITICAL() {cpu_sr = OS_CPU_SR_Save()。 OS_CPU_SR_Restore()。 //保存堆棧的指針到任務(wù)控制塊 } OSTaskSwHook()。 這10個函數(shù)有9個是為了擴展用戶功能而定義的鉤子函數(shù),這些鉤子函數(shù)可以都為空函數(shù),也可以加上一些用戶需要的擴展功能。 //R0 : 傳遞的參數(shù) // 剩下的寄存器初始化 *(stk) = (INT32U)0x00000000L。打開 MDK 軟件,選擇 Project→New uVision Project 菜單項,新建一個文件夾名為“畢業(yè)設(shè)計 ”,保存,則彈出器件選擇對話框,這里選擇 STM32F103RB。這里不直接連在一起的原因有二:1,防止紅外傳感器和 DS18B20 對這兩個 IO 口作為其他功能使用的時候的影響;2,DS18B20 和紅外傳感器還可以用來給其他板子提供輸入,等于我們的板子為別的板子提供了紅外接口和溫度傳感器,在調(diào)試的時候,還是蠻有用的。 首先,建立基本的工程后,在該工程源碼下面加入181。C/OSIICONFIG分組下面是181。認真掌握 CortexM3 的硬件結(jié)構(gòu)和指令系統(tǒng),并在 ALIENTEK MiniSTM32 開發(fā)板上調(diào)試串口,TFT 彩屏以及 ADC 實驗。OS_STK TASK_LED_STK[LED1_STK_SIZE]。LCD_DrawLine(120, 75, 240, 75)。武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙22AT24CXX_Init()。TASK_LED1_STK[LED1_STK_SIZE1], LED1_TASK_Prio)。 } else if(key==2) { LCD_ShowString(125,80, Wel !!! )。 LCD_ShowString(122,30, KEYCNT:)。break。break。break。 } Pen_Int_Set(1)。break。break。break。 LCD_Fill(10,30,50,120,colorTable[colorIndex])。OSTimeDlyHMSM(0,0,0,300)。 //OS_ENTER_CRITICAL()。//串口初始化,波特率 9600 LED_Init()。 POINT_COLOR=BLUE。最后,感謝指導(dǎo)老師的關(guān)懷和細心的指導(dǎo),感謝同學(xué)們的幫助。C/OSII 的嵌入式操作系統(tǒng)的移植和功能的實現(xiàn)。 181。圖 液晶顯示 LED 接口輸入單元和指示部分,直接引到 STM32F103 的 IO 口。ALIENTEK 這款開發(fā)板專門設(shè)計了一鍵下載電路,通過串口的 DTR 和 RTS 信號,來自動配置 BOOT0 和 武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙13BOOT1,因此不需要用戶來手動切換他們的狀態(tài),直接串口下載和軟件自動控制,可以非常方便的下載代碼。剩下的工作就是編寫用戶任務(wù),并在開發(fā)板上驗證,以此來驗證該移植方案是可行的和成功的。 //R12 *(stk) = (INT32U)0x00000000L。 OSTaskStkInit ()。 (4)任務(wù)級和中斷級任務(wù)切換 因為CortexM3 進入異常自動保存寄存器 R3R0,R12,LR ,PC和xPSR這種的特殊機制,這兩個函數(shù)都是觸發(fā)一次PendSV來實現(xiàn)任務(wù)的切換。 void OSStartHighRdy(void)。這樣的代碼段稱作臨界代碼段。 typedef signed int NT32S。互斥型信號量用于處理共享資源。但在嵌入式實時系統(tǒng)中,多次這樣的操作會導(dǎo)致內(nèi)存碎片,且由于內(nèi)存管理算法的原因,malloc和free的執(zhí)行時間也是不確定。系統(tǒng)設(shè)計者可以在第1個開始運行的任務(wù)中調(diào)用時鐘節(jié)拍啟動函數(shù)。如:堆棧指針,程序計數(shù)器,狀態(tài)寄存器等。任務(wù)函數(shù)和任何C函數(shù)一樣,具有一個返回類型和一個參數(shù),但是它決不返回。與前后臺系統(tǒng)一樣,基于181。C/OSII 各模塊的基本功能和在STM32 上移植方法。通過將嵌入式實時操作系統(tǒng) 181。中國單片機二十年論壇總結(jié)出,我國嵌入式起步較早,但總體來說發(fā)展緩慢,和國外的開發(fā)應(yīng)用具有很大的差距,造成這一局面的原因是多方面的。C/OSII它具有別的操作系統(tǒng)沒有的優(yōu)點,具體如下:(1)源代碼開放:181。關(guān)鍵詞:嵌入式系統(tǒng);181。畢業(yè)論文(設(shè)計)成果歸武昌工學(xué)院所有。C/OSII 的移植需求;最后,在 181。C/OSII operating system consists of three major task management, memory management and time management, in which munication is through the message queue and . (2) 181??刂葡到y(tǒng)是一個復(fù)雜的系統(tǒng),它需要多個系統(tǒng)協(xié)同工作。 1998年11月在美國加州舉行的嵌入式系統(tǒng)大會上,基于RTOS的Embedded Inter成為一個技術(shù)新熱點。C/OSII 的應(yīng)用設(shè)計。C/OSII 是以源代碼形式提供的實時操作系統(tǒng)內(nèi)核,其包含的文件結(jié)構(gòu)如圖 所示:基于181。C/OSII 內(nèi)核體系結(jié)構(gòu)圖181。這兩種任務(wù)調(diào)度情況調(diào)用的任務(wù)切換函數(shù)不同:任務(wù)級的任務(wù)調(diào)度OS_Sched()調(diào)用了任務(wù)切換函數(shù) OS_TASK_SW(),而中斷級的調(diào)度OSIntExt() 調(diào)用了任務(wù)切換函數(shù) OSIntCtxSw()。OSUnMapTbl[] 是常量表,所以查找優(yōu)先級最高的任務(wù)的執(zhí)行時間為常量,和就緒表的任務(wù)數(shù)無關(guān)。C/OSII所有的變量和數(shù)據(jù)結(jié)構(gòu),并建立空閑任務(wù)。181。 移植方法(1)內(nèi)核頭文件() 在OS_CP 中,主要聲明了一些與微處理器相關(guān)的常量、宏和typedef。C/OSII源代碼中并未使用。 (3)棧的增長方向 盡管181。故關(guān)中斷實現(xiàn)代碼如下 OS_CPU_SR_Save MRS R0, PRIMASK; CPSID I BX LR 這也是宏OS_ENTER_CRITICAL() 的最終實現(xiàn)。 從異常中返回; // 退出異常,處理器自動恢復(fù)R3R0,R12,LR,PC 和xPSR 這樣很容易寫出PendSV中斷服務(wù)程序的代碼了。這個函數(shù)的代碼時下如下: OS_STK *OSTaskStkInit (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt) { OS_STK *stk。 //R7 *(stk) = (INT32U)0x00000000L。(3)最后新建 main 文件,在編輯區(qū)寫代碼。P5 口是另外一個 IO 引出排陣,將PORTC 和 PORTD 等的剩余 IO 口從這里引出。C/OSIICORE、181。再次,在 文件中設(shè)置任務(wù)堆棧大小、設(shè)置任務(wù)優(yōu)先級、任務(wù)堆棧,創(chuàng)建 5 個任務(wù)。由于實時操作系統(tǒng)內(nèi)核 181。武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙21//任務(wù)申明void TaskStart(void *pdata)。 Load_Drow_Dialog()。 //初始化紅外接收 POINT_COLOR=RED。 OSTaskCreate(TaskTouch, (void * )0, (OS_STK *)amp。LCD_ShowString(125,120, ^_^ )。//顯示按鍵次數(shù) switch(key){case 0:LCD_ShowString(190,50, ERROR )。case 224:LCD_ShowString(190,50, VOL )。case 122:LCD_ShowString(190,50, 3 )。//關(guān)閉中斷Convert_Pos()。if(216amp。case 16:LCD_ShowString(190,50, 4 )。case 168:LCD_ShowString(190,50, VOL+ )。case 162: LCD_ShowString(190,50, CH )。} } //任務(wù) 4武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙24 //液晶顯示 void TaskLCD(void *pdata){u8 colorIndex=0。 OSTaskSuspend(START_TASK_Prio)。OSTaskCreate( TaskStart,//task pointer(void *)0, //parameter(OS_STK *)amp。LCD_ShowString(10,4,LCD Display)。void TaskLed1(void *pdata)。在實際應(yīng)用中可以根據(jù)需要裁減和優(yōu)化。為調(diào)試方便,將產(chǎn)生調(diào)試中間信息的復(fù)選框也選中。C/OSII CONFIG三個分組,分別添加181。 這里 STM32 的 VBAT 采用CR1220 紐扣電池和 混合供電的方式,在有外部電源()的時候,CR1220 不給 VBAT 供電,而在外部電源斷開的時候,則由 CR1220 給VBAT 供電。128K FLASH、20K SRAM、2 個 SPI、3 個串口、1 個 USB 、1 個 CAN、2 個 12 位的 ADC、RTC 、51 個可用 IO腳 // R5 *(stk) = (INT32U)0x00000000L。 //防止編譯器報錯 stk = ptos。 OSInitHookEnd ()。也就是將狀態(tài)寄存器的內(nèi)容從R0中恢復(fù),然后跳轉(zhuǎn)回去。即定義成如下形式 define OS_STK_GROWTH 1 (4)任務(wù)級任務(wù)切換 任務(wù)級任務(wù)切換調(diào)用宏OS_TASK_SW()來實現(xiàn)。C/OSII定義了一個堆棧數(shù)據(jù)類型。 typedef unsigned char INT8U。系統(tǒng)初始化時會自動產(chǎn)生兩個任務(wù):一個是空閑任務(wù),它的優(yōu)先級最低,該任務(wù)僅給一個整型變量做累加運算;另一個是統(tǒng)計任務(wù),它的優(yōu)先級為次低,該任務(wù)負責(zé)統(tǒng)計當前CPU的利用率。C/OSII初始化任務(wù)控制塊、事件控制塊、消息隊列緩沖、標志控制塊等數(shù)據(jù)結(jié)構(gòu)的空緩沖區(qū)。C/OSII發(fā)生了中斷,這樣可以實現(xiàn)ISR 返回前的任務(wù)調(diào)度。而中斷返回前ISR 調(diào)用OSIntExt()函數(shù),該函數(shù)查找就緒表發(fā)現(xiàn)有必要進行任務(wù)切換,從而被中斷的任務(wù)進入等待狀態(tài),運行被激活的高優(yōu)先級的任務(wù)。包含的模塊有任務(wù)管理、任務(wù)調(diào)度、任務(wù)間通信、時間管理、內(nèi)核初始化等。C/OSII 提供的系統(tǒng)服務(wù)進行應(yīng)用軟件(用戶代碼)181。主要介紹了開題的背景和研究意義,以及 181。據(jù)調(diào)查,目前國際上已有兩百多種嵌入式操作系統(tǒng),而各種各樣的開發(fā)工具、應(yīng)用于嵌入式開發(fā)的儀器設(shè)備更是不可勝數(shù)。對于任務(wù)較多而且復(fù)雜的情況我們就要引入實時操作系統(tǒng)RTOS。 181。主要研究結(jié)論如下:(1)181。對本論文(設(shè)計)的研究做出重要貢獻的個人和集體,均已在文中以明確方式標明。C/OSII 移植主要在 , 三個文件中,涉及到數(shù)據(jù)類型、堆棧、中斷定義和任務(wù)切換等。C/OSII是由美國工程師Jean Labrosse編寫的嵌入式多任務(wù)的實時操作系統(tǒng),包括實時內(nèi)核、任務(wù)管理、時鐘管理、任務(wù)間通信同步(信號量、郵箱、消息隊列)和內(nèi)存管理。所以,使用實時操作系統(tǒng),將不同的功能劃分成不同的任務(wù)進行處理使得設(shè)計大大簡化。 研 究 的 主 要 內(nèi) 容本文是在基于 32 位的 ARM 微處理器 STM32 和嵌入式實時操作系統(tǒng)181。C/OSII 的理論介紹。
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1