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

正文內(nèi)容

基于stm32的嵌入式操作系統(tǒng)程序設(shè)計(jì)及實(shí)現(xiàn)本科畢業(yè)論文-wenkub.com

2024-08-22 15:11 本頁(yè)面
   

【正文】 //開(kāi)啟中斷 } OSTimeDlyHMSM(0,0,0,2)。304)Load_Drow_Dialog()。//關(guān)閉中斷 Convert_Pos()。 } } OSTimeDlyHMSM(0,0,0,400)。 case 82: LCD_ShowString(190,50, 9 )。 case 90: LCD_ShowString(190,50, 6 )。 case 122: LCD_ShowString(190,50, 3 )。 case 48: LCD_ShowString(190,50, 1 )。 case 152: LCD_ShowString(190,50, 100+ )。 case 144: LCD_ShowString(190,50, EQ )。 case 224: LCD_ShowString(190,50, VOL )。 case 34: LCD_ShowString(190,50, PREV )。 case 226: LCD_ShowString(190,50, CH+ )。 case 98: LCD_ShowString(190,50, CH )。//顯示按鍵次數(shù) switch(key) { case 0: LCD_ShowString(190,50, ERROR )。 LCD_ShowString(122,50, SYMBOL:)。 colorIndex++。 u16 colorTable[]={BLACK,YELLOW,RED,GREEN}。 LCD_ShowString(125,120, ^_^ )。 LCD_ShowString(125,100, The Design of)。 } } //任務(wù) 3 //按鍵檢測(cè) void TaskKey(void *pdata) { u8 key=0。 } //任務(wù) 1 //控制 DS0 的亮滅 . void TaskLed(void *pdata) { while(1) { 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 23 LED0=!LED0。 OSTaskCreate(TaskTouch, (void * )0, (OS_STK *)amp。 OSTaskCreate(TaskLCD, (void * )0, (OS_STK *)amp。 OSTaskCreate(TaskLed, (void * )0, (OS_STK *)amp。 //task priority OSStart()。 //初始化紅外接收 POINT_COLOR=RED。 //IIC 初始化 Touch_Init()。 //LED0, LED1 端口初始化 KEY_Init()。 //系統(tǒng)初始化 72M delay_init(72)。 Load_Drow_Dialog()。 POINT_COLOR=RED。//設(shè)置字體為藍(lán)色 LCD_ShowString(216,304,RST)。 void TaskKey(void *pdata)。 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 21 //任務(wù)申明 void TaskStart(void *pdata)。 OS_STK TASK_LCD_STK[LCD_STK_SIZE]。謝謝 你們的支持 ! 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 19 主要參考文獻(xiàn) [1] 意法半導(dǎo)體 . STM32中文參考手冊(cè) . 第 10版 .意法半導(dǎo)體(中國(guó))投資公司, 2020. [2] 劉軍 . 例說(shuō) STM32. 北京:北京航空航天大學(xué)出版社, 2020. [3] 宋巖(譯) . Joseph —M3 權(quán)威指南 . 北京:北京航空航天大學(xué)出版社 , 2020. [4] 劉榮 . 圈圈教你玩 USB. 北京:北京航空航天大學(xué)出版社 , 2020. [5] 杜春雷 . ARM 體系結(jié)構(gòu)與編程 . 北京:清華大學(xué)出版社, 2020. [6] 李寧 . ARM 開(kāi)發(fā)工具 Real View MDK 使用入門(mén) . 北京:北京航空航天大學(xué)出 版社 , 2020. [7] 俞建新 . 嵌入式系統(tǒng)基礎(chǔ)教程 . 北京:機(jī)械工業(yè)出版社, 2020. [8] 李寧 . 基于 MDK的 STM32處理器開(kāi)發(fā)應(yīng)用 . 北京:北京航空航天大學(xué)出版社, 2020. [9] 王永虹 . STM32 系列 ARM CortexM3微控制器原理與 實(shí)踐 . 北京:北京航空航天大學(xué)出版社, 2020. [10] 邵貝貝 (譯 ). 嵌入式實(shí)時(shí)操作系統(tǒng) 181。 在程序調(diào)試過(guò)程中,由于對(duì) STM32RTB6 內(nèi)核學(xué)習(xí)還不是很透徹,出現(xiàn)了警告,一直困擾。 由于實(shí)時(shí)操作系統(tǒng)內(nèi)核 181。本文 將嵌入式實(shí)時(shí)操作系統(tǒng) 181。經(jīng)過(guò)幾個(gè)月的 深入學(xué)習(xí), 了解了嵌入式操作系統(tǒng) 181。 ( 4) 在 Utilities 中,設(shè)置如圖 ,并打開(kāi) Settings,設(shè)置 FLASH 為 256KB。 再次,在 文件中設(shè)置任務(wù)堆棧大小、設(shè)置任務(wù)優(yōu)先級(jí)、任務(wù)堆棧,創(chuàng)建 5 個(gè)任務(wù)。C/OSII的配置部分,主要由用戶(hù)根據(jù)自己的需要對(duì) 181。C/OSIIPORT分組下面是我們移植 181。 181。C/OSIICORE、 181。C/OSII文件夾,存放181。 圖 按鍵和 LED 燈 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 15 紅處接收電路 HS0038 用于顯度的采集,其通信是單總 線 式,直接與 STM32F103 相連。 硬件結(jié)構(gòu) STM32 最小 系統(tǒng) STM32F103 最小系統(tǒng)包括電源電路,復(fù)位電路,時(shí)鐘電路,主芯片和下載接口。 P5 口是另外一個(gè) IO 引出排陣,將 PORTC和 PORTD 等的剩余 IO 口從這里引出。 P4 口連接了 PL2303 的串口輸出,對(duì)應(yīng)著 STM32 的串口 1( PA9/PA10),在使用的時(shí)候,也是通過(guò)跳線帽將這兩處連接起來(lái)。 P3 和 P1 分別用于 PORTA 和 PORTB 的 IO 口引出,其中 P2 還有部分用于 PORTC 口的引出。 ( 3) 最后新建 main 文件,在編輯區(qū)寫(xiě)代碼。單擊 “OK”按鈕,則彈出一個(gè)對(duì)話框加載啟動(dòng)文件到工程中。 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 12 3 LCD 屏程序設(shè)計(jì)及調(diào)試 工 具概述 RVMDK 源自德國(guó)的 KEIL 公司,是 RealView MDK 的簡(jiǎn)稱(chēng)。 } 其他的鉤子函數(shù)都為空函數(shù)。 //R7 *(stk) = (INT32U)0x00000000L。 // R11 *(stk) = (INT32U)0x00000000L。 //R3 *(stk) = (INT32U)0x00000000L。 //xPSR *(stk) = (INT32U)task。這個(gè)函數(shù)的代碼時(shí)下如下: OS_STK *OSTaskStkInit (void (*task)(void *pd), void *p_arg, OS_STK *ptos, INT16U opt) { OS_STK *stk。另外一個(gè)不是鉤子函數(shù),它是 OSTaskStkInit()。 OSTaskSwHook ()。 OSTaskDelHook ()。 從異常中返回; // 退出異常,處理器自動(dòng)恢復(fù) R3R0, R12, LR, PC和 xPSR 這樣很容易寫(xiě)出 PendSV中斷服務(wù)程序的代碼了。 //實(shí)現(xiàn)用戶(hù)擴(kuò)展功能而定義的鉤子 OSPrioCur = OSPrioHighRdy。首先是微處理器自動(dòng)保存上面提到的寄存器,然后把當(dāng)前的堆棧指針保存到任務(wù)的棧中,將要切換的任務(wù)的優(yōu)先級(jí)和任務(wù)控制塊的指針賦值給運(yùn)行時(shí)的最高優(yōu)先級(jí)指針和運(yùn)行時(shí)的任務(wù)控制塊指針,最后再把要運(yùn)行的任務(wù)的堆棧指針賦值給微處理器的堆 棧指針,這樣就可以退出中斷服務(wù)程序了。其代碼如下: OS_CPU_SR_Restore MSR PRIMASK, R0 BX LR CortexM3處理器有單獨(dú)的指令來(lái)打開(kāi)或者關(guān)閉中斷,所以這兩個(gè)函數(shù)實(shí)現(xiàn)起來(lái)很簡(jiǎn)單。故關(guān)中斷實(shí)現(xiàn)代碼如下 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 9 OS_CPU_SR_Save MRS R0, PRIMASK; CPSID I BX LR 這也是宏 OS_ENTER_CRITICAL() 的最終實(shí)現(xiàn)。 OSStartHighRdy()。 void OS_CPU_PendSVHandler(void)。 ( 5) 其他函數(shù)聲明 在 OS_ ,還聲明了以下幾個(gè)函數(shù),這幾個(gè)函數(shù)均在 中實(shí)現(xiàn)。 ( 3) 棧的增長(zhǎng)方向 盡管 181。} define OS_EXIT_CRITICAL() {OS_CPU_SR_Restore(cpu_sr)。 181。CortexM3 狀態(tài)寄存器為 32位,定義 OS_CPU_SR主要是為了在進(jìn)出臨界代碼 段武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 8 保存狀態(tài)寄存器。C/OSII源代碼中并未使用。 在 STM32處理器及 keil MDK 或者 IAR 編譯環(huán)境中可以通過(guò)查手冊(cè)得知short類(lèi)型是 16位而 int類(lèi)型是 32位,這對(duì)于 CortexM3內(nèi)核是一致的。 typedef float FP32。 typedef unsigned short INT16U。 移植方法 ( 1) 內(nèi)核頭文件( ) 在 OS_CP 中,主要聲明了一些與微處理器相關(guān)的常量、宏和 typedef。 ( 2) 用 C語(yǔ)言就可以打開(kāi)和關(guān)閉中斷。 武昌工學(xué)院畢業(yè)論文(設(shè)計(jì))專(zhuān)用稿紙 7 ( 2) 消息郵箱 一種通信機(jī)制,可以使一個(gè)任務(wù)或者中斷服務(wù)子程序向另一個(gè)任務(wù)發(fā)送一個(gè)指針型的變量,通常該指針指向一個(gè)包含了消息的特定數(shù)據(jù)結(jié)構(gòu)。C/OSII 任務(wù)間通信方式 ( 1) 信號(hào)量 信號(hào)量由兩部 分組成:一部分是 16位的無(wú)符號(hào)整型信號(hào)量的計(jì)數(shù)值;另一部分是由等待該信號(hào)量的任務(wù)組成的等待任務(wù)表 。 181。釋放內(nèi)存時(shí)將該塊放回它以前所屬的分區(qū),這樣能有效解決碎片問(wèn)題,同時(shí)執(zhí)行時(shí)間也是固定的。 181。啟動(dòng)之前要至少創(chuàng)建一個(gè)任務(wù)。C/OSII所有的變量和數(shù)據(jù)結(jié)構(gòu),并建立空閑任務(wù)。 181。假設(shè)用定時(shí)器TA0作為時(shí)鐘中斷源,那么,在移植過(guò)程中實(shí)現(xiàn)了函數(shù) init_timer_ta0(),此函數(shù)用來(lái)初始化定時(shí)器 TA0,并將其打開(kāi)。C/OSII要求用戶(hù)提供一個(gè)周期性的時(shí)鐘源,來(lái)實(shí)現(xiàn)時(shí)間的延遲和超時(shí)功能,時(shí)鐘節(jié)拍 應(yīng)該每秒發(fā)生 10~100次 /秒。 OSUnMapTbl[]是常量表,所以查找優(yōu)先級(jí)最高的任務(wù)的執(zhí)行時(shí)間為常量,和就緒表的任務(wù)數(shù)無(wú)關(guān)。 ( 2) 就緒表 每個(gè)就緒的任務(wù)都放在就緒表中,就緒表有兩個(gè)變量: OSRdyGrp和OSRdyTbl[]。 ② 將要運(yùn)行的高優(yōu)先級(jí)的任務(wù)的寄存器值從堆?;謴?fù)到 CPU寄存器。任務(wù)級(jí)的任務(wù)切換OS_TASK_SW()是宏調(diào)用,通過(guò)軟中斷指令來(lái)實(shí)現(xiàn) CPU寄存器內(nèi)容切換。這兩種任務(wù)調(diào)度情況調(diào)用的任務(wù)切換函數(shù)不同:任務(wù)級(jí)的任務(wù)調(diào)度 OS_Sched()調(diào)用了任務(wù)切換函數(shù) OS_TASK_SW(),而中斷級(jí)的調(diào)度 OSIntExt()調(diào)用了任務(wù)切換函數(shù) OSIntCtxSw()。C/OSII總是運(yùn)行進(jìn)入就緒態(tài)的優(yōu)先級(jí)最高的任務(wù)。 任務(wù)控制塊( TCB)是一個(gè)數(shù)據(jù)結(jié)構(gòu) OS_TCB,一旦一個(gè)任務(wù)創(chuàng)建,就有一個(gè)和它關(guān)聯(lián) 的 TCB被賦值。C/OSII內(nèi)核體系結(jié)構(gòu)如 圖 : 圖 內(nèi)核結(jié)構(gòu)圖 任務(wù)狀態(tài)及其轉(zhuǎn)換關(guān)系 在多任務(wù)系統(tǒng)中,任務(wù)是設(shè)計(jì)者實(shí)現(xiàn)應(yīng)用系統(tǒng)的基本形式,也是 181。C/OSII 內(nèi)核體系結(jié)構(gòu)圖 181。另外,
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1