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

正文內(nèi)容

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

2025-07-17 09:50 上一頁面

下一頁面
  

【正文】 efine TOUCH_TASK_Prio 7define START_TASK_Prio 10//任務(wù)堆棧OS_STK TASK_LED1_STK[LED_STK_SIZE]。本人認(rèn)真進(jìn)行了課題的研究并完成了本論文,由于作者水平有限,論文中可能仍有錯誤和不足之處,敬請大家批評指正。在實際應(yīng)用中可以根據(jù)需要裁減和優(yōu)化。該系統(tǒng)一方面實現(xiàn)了單個 IO 口和多人 IO口的組合輸入輸出控制,采用模塊化設(shè)計思想,具有代表性。C/OSII 時間管理函數(shù),任務(wù)管理函數(shù)的靈活應(yīng)用。現(xiàn)象如圖 圖 實物現(xiàn)象武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙18結(jié) 語本文完成基于 32 位 ARMv7 微處理器 CortexM3 和嵌入式實時操作系統(tǒng)181。為調(diào)試方便,將產(chǎn)生調(diào)試中間信息的復(fù)選框也選中。工程框架如下圖 :其次,對 里面定義 OS_TICKS_PER_SEC 的值為 200,也就是設(shè)置181。 181。C/OSII的核心源碼,我們不需要做任何變動。C/OSII CONFIG三個分組,分別添加181。C/OSII源碼分為三個文件夾:CORE、PORT和CONFIG) 。C/OSII里面創(chuàng)建6個任務(wù):開始任務(wù)、LED0、LED觸摸屏,KEY 按鍵任務(wù)和LCD顯示任務(wù),開始任務(wù)用于創(chuàng)建其他(LED0、LED1 、紅處接收、按鍵和LCD顯示)任務(wù),之后掛起;LED0任務(wù)用于控制DS0的亮滅,DS0 每秒鐘亮800ms; LED1任務(wù)用于控制DS1的亮滅,DS1 亮300ms,滅300ms,依次循環(huán);觸摸屏任務(wù)用于手寫輸入,并立即顯示;LCD顯示任務(wù)用于顯示圖形,和接收紅外信號信息顯示出來;KEY按鍵任務(wù)分別使屏進(jìn)入校準(zhǔn)功能,以及顯示歡迎界面。武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙14圖 最小系統(tǒng) LCD 接口顯示電路使用的是 寸的 TFT 液晶顯示器,該顯示器有 16 位的數(shù)據(jù)口和5 位的控制端口。 這里 STM32 的 VBAT 采用CR1220 紐扣電池和 混合供電的方式,在有外部電源()的時候,CR1220 不給 VBAT 供電,而在外部電源斷開的時候,則由 CR1220 給VBAT 供電。使用的時候,不受到 PL2303 的影響。P2 連接了 DS18B20 的數(shù)據(jù)口以及紅外傳感器的數(shù)據(jù)線,它們分別對應(yīng)著 PA0 和 PA1,只需要 19 通過跳線帽將 P2和 P3 連接起來就可以使用了。BOOT1 用于設(shè)置 STM32 的啟動方式,其對應(yīng)啟動模式如表 所示:表 BOOT0、BOOT1 啟動模式表BOOT0 BOOT1 啟動模式 說明0 X 用戶閃存存儲器 用戶閃存存儲器,也就是 FLASH 啟動1 0 系統(tǒng)存儲器 系統(tǒng)存儲器啟動,用于串口下載1 1 SRAM 啟動 SRAM 啟動,用于在 SRAM 中調(diào)試代碼按照表 ,一般情況下如果我們想用用串口下載代碼,則必須配置BOOT0 為 1,BOOT1 為 0,而如果想讓 STM32 一按復(fù)位鍵就開始跑代碼,則需要配置 BOOT0 為 0,BOOT1 隨便設(shè)置都可以。128K FLASH、20K SRAM、2 個 SPI、3 個串口、1 個 USB 、1 個 CAN、2 個 12 位的 ADC、RTC 、51 個可用 IO腳回到“畢業(yè)設(shè)計 ”文件夾中,把系統(tǒng) SYSTEM 文件夾(delay,sys,usart 文件夾)復(fù)制過來,再建立 main 和 hardware 文件夾用于主函數(shù)和各外設(shè)資源函數(shù)。 keil4 工程建立以及仿真方法(1)新建工程。整個移植的過程非常容易。 // R5 *(stk) = (INT32U)0x00000000L。 // R9 *(stk) = (INT32U)0x00000000L。 // R1 *(stk) = (INT32U)p_arg。 // R14 (LR) *(stk) = (INT32U)0x00000000L。 //防止編譯器報錯 stk = ptos。這個函數(shù)首先將用戶為任務(wù)分配的堆棧頂?shù)刂焚x值給一個棧指針變量,然后再通過這個棧指針向任務(wù)的棧空間寫入初值。 OSTimeTickHook ()。 OSTaskStatHook ()。 OSInitHookEnd ()。 // 設(shè)置運行的任務(wù)控制塊為最高 //就緒任控制塊務(wù) PSP = OSTCBHighRdyOSTCBStkPtr。具體的PendSV服務(wù)程序的偽代碼如下: OS_CPU_PendSVHandler : // 進(jìn)入異常,處理器自動保存R3R0,R12,LR,PC 和xPSR if (PSP != NULL) //判斷不是開始第一次任務(wù) { 武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙10保存R4R11到任務(wù)的堆棧; OSTCBCurOSTCBStkPtr = SP。OSStartHighRdy()主要完成以下幾項工作: ① 為任務(wù)切換設(shè)置PendSV的優(yōu)先級;② 為第一次任務(wù)切換設(shè)置棧指針為0;③ 設(shè)置OSRunning = TRUE,以表明系統(tǒng)正在運行;④ 觸發(fā)一次 PendSV,打開中斷等待第一次任務(wù)的切換。也就是將狀態(tài)寄存器的內(nèi)容從R0中恢復(fù),然后跳轉(zhuǎn)回去。 OSIntCtxSw()。 OS_CPU_SR_Save()。 void OSIntCtxSw(void)。即定義成如下形式 define OS_STK_GROWTH 1 (4)任務(wù)級任務(wù)切換 任務(wù)級任務(wù)切換調(diào)用宏OS_TASK_SW()來實現(xiàn)。同時得注意,在使用這兩個宏之前,必須定義OS_CPU_SR cpu_sr。一般來說,采用方法3來實現(xiàn)這兩個宏。C/OSII為了保證某段代碼的完整執(zhí)行,需要臨時的關(guān)閉中斷,在這段代碼執(zhí)行完成之后再打開中斷。C/OSII定義了一個堆棧數(shù)據(jù)類型。盡管181。 typedef unsigned int OS_STK。 typedef unsigned int INT32U。 typedef unsigned char INT8U。 (4)處理器支持能夠容納一定量數(shù)據(jù)(可能是幾千字節(jié))的硬件堆棧。 STM32 上移植方法 平臺需求181。信號量還可用于表示某事件的發(fā)生,用旗幟符號表示,符號旁數(shù)字代表事件已經(jīng)發(fā)武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙7生的次數(shù)。系統(tǒng)初始化時會自動產(chǎn)生兩個任務(wù):一個是空閑任務(wù),它的優(yōu)先級最低,該任務(wù)僅給一個整型變量做累加運算;另一個是統(tǒng)計任務(wù),它的優(yōu)先級為次低,該任務(wù)負(fù)責(zé)統(tǒng)計當(dāng)前CPU的利用率。C/OSII中最多可以支持64個任務(wù),分別對應(yīng)優(yōu)先級 0~63,其中0為最高優(yōu)先級。每個分區(qū)中包含整數(shù)個大小相同的內(nèi)存塊,但不同分區(qū)之間的內(nèi)存塊大小可以不同。 內(nèi)存管理在ANSI C中是使用 malloc和free兩個函數(shù)來動態(tài)分配和釋放內(nèi)存。C/OSII初始化任務(wù)控制塊、事件控制塊、消息隊列緩沖、標(biāo)志控制塊等數(shù)據(jù)結(jié)構(gòu)的空緩沖區(qū)。C/OSII的服務(wù)之前要先調(diào)用系統(tǒng)初始化函數(shù) OSInit()。C/OSII中的時鐘節(jié)拍服務(wù)是在ISR中調(diào)用OSTimeTick()實現(xiàn)的。應(yīng)該在多任務(wù)系統(tǒng)啟動后,也就是調(diào)用OSStart()后再開啟時鐘節(jié)拍器。C/OSII發(fā)生了中斷,這樣可以實現(xiàn)ISR 返回前的任務(wù)調(diào)度。 OSRdyGrp的每一位代表每組任務(wù)是否有進(jìn)入就緒態(tài)的任務(wù)。中斷級的任務(wù)切換OSIntCtxSw()是在OSIntExt()中調(diào)用的,我們一般在用戶ISR中調(diào)用OSIntExt()以實現(xiàn)中斷返回前的任務(wù)調(diào)度。任務(wù)級的任務(wù)切換過程:①保存當(dāng)前運行的任務(wù)的 CPU寄存器值到該任務(wù)的堆棧。而中斷返回前ISR 調(diào)用OSIntExt()函數(shù),該函數(shù)查找就緒表發(fā)現(xiàn)有必要進(jìn)行任務(wù)切換,從而被中斷的任務(wù)進(jìn)入等待狀態(tài),運行被激活的高優(yōu)先級的任務(wù)。181。這樣,當(dāng)任務(wù)重新獲得CPU使用權(quán)時,可以從TCB中獲取任務(wù)切換前的信息,準(zhǔn)確的繼續(xù)運行。任務(wù)可以是一個無限的循環(huán),也可以在一次執(zhí)行后被操作系統(tǒng)刪除。包含的模塊有任務(wù)管理、任務(wù)調(diào)度、任務(wù)間通信、時間管理、內(nèi)核初始化等。C/OSII所有的變量和數(shù)據(jù)結(jié)構(gòu),并建立空閑任務(wù)OS_TaskIdle(),這個任務(wù)總是處于就緒態(tài)。C/OSII的初始化OSInit()、任務(wù)創(chuàng)建、一些任務(wù)通信方法的創(chuàng)建、181。C/OSII 內(nèi)核結(jié)構(gòu)軟件硬件武昌工學(xué)院畢業(yè)論文(設(shè)計)專用稿紙4通信,以配合實現(xiàn)應(yīng)用系統(tǒng)的功能。C/OSII 提供的系統(tǒng)服務(wù)進(jìn)行應(yīng)用軟件(用戶代碼)181。C/OSII 各模塊的基本功能 181。(4)結(jié)語。主要介紹 181。主要介紹了開題的背景和研究意義,以及 181。C/OSII 下的移植、啟動、測試和功能實現(xiàn)等。C/OSII 移植到 STM32,建立了嵌入式操作系統(tǒng)研究及 181。C/OSII 上進(jìn)行嵌入式操作系統(tǒng)的移植和功能實現(xiàn)。據(jù)調(diào)查,目前國際上已有兩百多種嵌入式操作系統(tǒng),而各種各樣的開發(fā)工具、應(yīng)用于嵌入式開發(fā)的儀器設(shè)備更是不可勝數(shù)。今天嵌入式系統(tǒng)帶來的工業(yè)年產(chǎn)值已超過了1萬億美元,1997年來自美國嵌入式系統(tǒng)大會(Embedded System Conference) 的報告指出,未來 5年僅基于嵌入式計算機(jī)系統(tǒng)的全數(shù)字電視產(chǎn)品,就將在美國產(chǎn)生一個每年1500億美元的新市場。與此同時在大學(xué)電類相關(guān)的工科單片機(jī)教學(xué)中,依然是經(jīng)典的51,微機(jī)原理依然是8086/88,這顯然體現(xiàn)不了最新的技術(shù)特征,造成了大學(xué)教育與實際社會需要的脫節(jié)。 國 內(nèi) 外 研 究 狀 況 綜 述嵌入式系統(tǒng)是繼IT 網(wǎng)絡(luò)技術(shù)之后,又一個新的技術(shù)發(fā)展方向。對于任務(wù)較多而且復(fù)雜的情況我們就要引入實時操作系統(tǒng)RTOS。C/OSII廣泛的應(yīng)用于控制系統(tǒng)中,如在衍射儀高壓控制系統(tǒng)中使用181。C/OSII的源代碼90%以上是用 C語言編寫的,可以很容易地把它移植到各類8位、16位和32位處理器上。除了有上面的優(yōu)點外,181。 181。C/OSII transplantation. Finally, on the 181。C/OSII transplantation to STM32 can play its efficient performance, thus in social production and create a lot of useful and affordable electronic product, bring convenience to our lives. This article main research content is 181。(3)應(yīng)用程序設(shè)計優(yōu)先級分配要合理,硬件平臺初始化模塊化處理。主要研究結(jié)論如下:(1)181。首先,對 181。而基于CortexM3 架構(gòu)下的 STM32 是一款性價比優(yōu)越新型微處理器,將 181。因本畢業(yè)論文(設(shè)計)引起的法律結(jié)果完全由本人承擔(dān)。對本論文(設(shè)計)的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。C/OSII是高效、穩(wěn)定、可靠、節(jié)能的系統(tǒng),廣泛應(yīng)用安防,消費電子中。C/OSII 操作系統(tǒng)理論分析、移植方法、應(yīng)用程序設(shè)計及調(diào)試仿真實現(xiàn)。C/OSII 上開發(fā) LCD,LED ,按鍵 KEY 等應(yīng)用程序,并對多任務(wù)系統(tǒng)調(diào)試分析。C/OSII 移植主要在 , 三個文件中,涉及到數(shù)據(jù)類型、堆棧、中斷定義和任務(wù)切換等。C/OSII is efficient, stable, reliable, energy saving system, widely used in the security, and consumer electronics. And based on the STM32 architecture CortexM3 framework is a superior costeffective new microprocessor, 181。 Second, analysis of STM32 hardware platform and the demand 181。C/OSII transplantation mainly in , f
點擊復(fù)制文檔內(nèi)容
外語相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1