




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 課程設(shè)計(大作業(yè))報告課程名稱:嵌入式操作系統(tǒng) 設(shè)計題目:MQX基本要素綜合項(xiàng)目 院 系: 設(shè) 計 者摘要 MQX已經(jīng)走過了20多年的發(fā)展歷程,基于MQX的產(chǎn)品已達(dá)數(shù)百萬。飛思卡爾于2009年收購MQX,并推出第一個版本MQX-RTOS3.0.1后,對其功能進(jìn)行了不斷加強(qiáng),MQX是一款免費(fèi)、開源、有技術(shù)支持,面向工業(yè)控制、醫(yī)療電子、家用電器等領(lǐng)域的嵌入式實(shí)時操作系統(tǒng)。MQX具有學(xué)習(xí)難度低,開發(fā)工具強(qiáng),外設(shè)驅(qū)動豐富,內(nèi)核精簡、架構(gòu)清晰、實(shí)時性強(qiáng)、應(yīng)用范圍廣等特點(diǎn)。與Linux相比,Linux的MMU、OpenGL功能強(qiáng)大,占用資源多,而MQX內(nèi)核精簡、效率高、實(shí)時性強(qiáng),更適合工業(yè)控制、醫(yī)療電子
2、、家用電器等領(lǐng)域。因此,選用MQX作為RTOS的學(xué)習(xí)藍(lán)本,不僅入門難度小,且實(shí)際應(yīng)用的可行性大。關(guān)鍵詞: MQX、內(nèi)核精簡、實(shí)時性強(qiáng)、效率高。目錄一、題目分析1二、MQX的介紹及說明1三、各任務(wù)的主要功能介紹2四、系統(tǒng)框圖3五、程序代碼及分析4六、運(yùn)行結(jié)果5七、總結(jié)5七、參考文獻(xiàn)5課程設(shè)計(大作業(yè))報告1、 題目分析MQX基本要素綜合項(xiàng)目,主要介紹一個包含MQX基本要素綜合項(xiàng)目的設(shè)計過程,主要分為幾個部分,介紹對模塊引腳做統(tǒng)一說明,介紹中斷服務(wù)例程ISR的功能設(shè)計與任務(wù)的功能設(shè)計,介紹PC與MCU通信幀協(xié)議,包含幀格式和幀命令,給出MCU方主要任務(wù)的代碼實(shí)現(xiàn),PC程序的界面。需求分析:將設(shè)計一
3、個實(shí)例來驗(yàn)證SD-FSL-K60-C評估板各個模塊的硬件功能,需要包含任務(wù)、中斷、驅(qū)動、輕量級事件、輕量級信號量、輕量級消息隊(duì)列、輕量級日志等基本要素。為區(qū)分不同的功能單元并確保數(shù)據(jù)的完整性,需要以組幀的方式完成數(shù)據(jù)的雙向傳輸。具體實(shí)現(xiàn)可通過串口發(fā)送相應(yīng)的幀數(shù)據(jù)來控制具體的模塊?;谝陨闲枨?,可運(yùn)用以上基本要素來實(shí)現(xiàn)對LED、UART、ADC、RTC、Flash等幾個模塊的測試,其中LED模塊控制板上的4盞小燈,UART模塊實(shí)現(xiàn)串口的發(fā)送接收,ADC模塊實(shí)現(xiàn)AD采樣,RTC模塊實(shí)現(xiàn)實(shí)時對時,F(xiàn)lash模塊實(shí)現(xiàn)Flash的讀取。2、 MQX的介紹及說明1、介紹:本部分對程序中所使用的LED,AD
4、C,RTC,Flash,UART幾個模塊的引腳做統(tǒng)一說明。2、MQX的特點(diǎn):(1)實(shí)時性高。MQX提供高效的任務(wù)調(diào)度、內(nèi)存管理等功能。MQX采用基于優(yōu)先級的、搶占式調(diào)度策略。帶有最優(yōu)化上下文切換和中斷處理,用于實(shí)現(xiàn)快速、高效的預(yù)測響應(yīng)時間,具有高實(shí)時性。(2)內(nèi)核精簡。MQX采用微內(nèi)核結(jié)構(gòu),代碼最小為16KB,RAM最小開銷為2KB,對硬件系統(tǒng)開銷較??;可以根據(jù)需要添加可定制組件,具有直接應(yīng)用編程接口API、高度模塊化架構(gòu),能夠很好地滿足各種不同應(yīng)用需求。(3)內(nèi)核免費(fèi)且有技術(shù)支持。MQX內(nèi)核完全免費(fèi),開放源碼,成本低,軟件資源豐富。(4)開發(fā)工具成熟、外設(shè)驅(qū)動豐富。(5)性價比高。3、硬件說
5、明: LED:LED1的外接引腳為PTB6,LED2的外接引腳為PTB7,LED3的外接引腳為PTB8,LED4的外接引腳為PTB9。 ADC:因外接引腳較多,ADC0模塊的14通道為PTC0,ADC1模塊的17通道為PTA17,K60芯片溫度傳感器內(nèi)接ADC0模塊的26通道。 RTC:要使RTC模塊能夠正確運(yùn)行,首先要把K60_C型板反面上的32.768kHz晶振旁邊的R8電阻去掉。 Flash:在默認(rèn)情況下,程序中有關(guān) Flash讀寫操作的 Flash區(qū)域是在 Flash的塊0的最后若干字節(jié),使用的長度取決于 Flash模塊的幀數(shù)據(jù)內(nèi)容。 Flash分為塊0和塊1,均為256KB,塊0的范
6、圍是0x-0x0003FFFF。 UART:發(fā)送引腳為PTE24,接收引腳為PTE25。3、 各任務(wù)的主要功能介紹1、主任務(wù)(task_main):完成全局變量初始化(如輕量級信號量)、外設(shè)初始化、創(chuàng)建其他任務(wù)、安裝用戶ISR。2、LED任務(wù)(task_run_LED)主要功能是用以控制K60-C板上的4盞LED燈。首先解析發(fā)給LED模塊的幀命令,控制K60-C板上的4盞LED燈的某一盞。本任務(wù)中運(yùn)用了輕量級日志,先將這6個32位的數(shù)據(jù)逐一寫入一則日志條目中,再從該日志中將數(shù)據(jù)讀取出來放入一個局部變量的數(shù)組中,最后將數(shù)據(jù)放入輕量級發(fā)送消息隊(duì)列中。3、解幀任務(wù)(task_decode):將由串口
7、4接收到的完整幀數(shù)據(jù)分別復(fù)制到LED模塊、ADC模塊、RTC模塊和Flash模塊各自的緩沖區(qū),并設(shè)置各個模塊任務(wù)的事件位。4、UART任務(wù)(task_run_UART):為了防止幀數(shù)據(jù)包含幀尾類型的數(shù)據(jù),要對幀數(shù)據(jù)增加轉(zhuǎn)義字符。本任務(wù)從輕量級發(fā)送消息隊(duì)列中取出數(shù)據(jù),然后調(diào)用轉(zhuǎn)義函數(shù)對其增加轉(zhuǎn)義字符。把各個任務(wù)的存放數(shù)據(jù)的全局?jǐn)?shù)組元素定義為32位,是因?yàn)镸QX提供的輕量級消息隊(duì)列操作的數(shù)據(jù)單位為32位。5、ADC任務(wù)(task_run_ADC):主要功能是通道初始化和AD數(shù)據(jù)采集。根據(jù)幀數(shù)據(jù)中與ADC模塊相關(guān)的命令字段來區(qū)分是通道初始化操作還是AD數(shù)據(jù)采集操作。通道初始化操作的模塊號與通道號來自
8、PC界面的選項(xiàng),在默認(rèn)情況下,采樣位數(shù)定為16位,采樣次數(shù)為10次。AD數(shù)據(jù)采集操作將從最新初始化過的AD通道中采樣數(shù)據(jù),并在該操作的最后,將采樣數(shù)據(jù)放入輕量級發(fā)送消息隊(duì)列中。6、RTC任務(wù)(task_run_RTC):主要功能是時間對表和回發(fā)當(dāng)前RTC時間。這兩種操作實(shí)際上操縱的都是相對于公共參考時間的相對秒數(shù),只是PC把相對秒數(shù)轉(zhuǎn)換過后顯示絕對時間,時間對表也不回發(fā)數(shù)據(jù),對表正確性與否可通過回發(fā)當(dāng)前RTC時間操作在PC的顯示的時間信息來判斷。在該任務(wù)最后,將實(shí)時時鐘的相關(guān)幀數(shù)據(jù)放入輕量級發(fā)送消息隊(duì)列中。7、Flash任務(wù)(task_run_FLASH):主要功能是向Flash讀取數(shù)據(jù),在該
9、例子中Flash功能較為簡單,不提供Flash隨機(jī)讀寫。讀寫操作的Flash區(qū)域是在Flash的塊0的最后若干字節(jié),長度取決于Flash模塊的幀數(shù)據(jù)內(nèi)容。四、系統(tǒng)框圖系統(tǒng)框圖12. 幀格式:幀頭幀長模塊編碼有效數(shù)據(jù)幀尾命令編碼命令參數(shù)1B1B1B1BNB1B各字段的含義現(xiàn)介紹如下:幀頭:0xAA。幀長:包括幀頭、幀長、模塊編號、有效數(shù)據(jù)、幀尾五個部分在內(nèi)的所有字節(jié)總數(shù)。模塊編號:0x01、0x02、0x03、0x04分別對應(yīng)LED、ADC、RTC、Flash。有效數(shù)據(jù):每一個模塊以不同的操作來區(qū)分不同的命令,長度根據(jù)模塊的使用情況而定。幀尾:0x55。MCU僅在把數(shù)據(jù)回發(fā)給PC時增加了轉(zhuǎn)義字符
10、,以提高PC解析MCU數(shù)據(jù)幀的速度,程序中轉(zhuǎn)義字符約定為0xA5。幀數(shù)據(jù)中除幀頭、幀尾之外,如果遇到0xAA、0xA5、0x55,就在這幾個數(shù)據(jù)之前增加一個0x55,以區(qū)別幀頭、轉(zhuǎn)義、之外。而PC在將幀數(shù)據(jù)發(fā)給MCU時并不增加轉(zhuǎn)義字符。 五、程序代碼及分析改進(jìn)后的代碼:switch(gLED_Buff4) case 0x01:light_control(Light_D1,LIGHT_OFF); / 設(shè)定為高電平light_control(Light_D2,LIGHT_ON);light_control(Light_D3,LIGHT_ON);light_control(Light_D4,LIGH
11、T_ON);break;case 0x02:light_control(Light_D1,LIGHT_ON);light_control(Light_D2,LIGHT_OFF); / 設(shè)定為高電平light_control(Light_D3,LIGHT_ON); light_control(Light_D4,LIGHT_ON); break; case 0x03: light_control(Light_D1,LIGHT_ON); light_control(Light_D2,LIGHT_ON);light_control(Light_D3,LIGHT_OFF); light_control(
12、Light_D4,LIGHT_ON);/light_control(Light_D3,LIGHT_OFF);break;case 0x04: light_control(Light_D1,LIGHT_ON); / 設(shè)定為高電平light_control(Light_D2,LIGHT_ON);light_control(Light_D3,LIGHT_ON); / 設(shè)定為高電平light_control(Light_D4,LIGHT_OFF); /light_control(Light_D4,LIGHT_OFF); break; default:break;思想分析:LED燈開始是全亮的,首先Li
13、ght_D1關(guān)閉,則其余三個小燈都打開,因?yàn)槭侨》?,所以?dāng)關(guān)閉的時候燈是亮的,其他的小燈也一樣。1、串口4的ISR:設(shè)計串口4的ISR的目的是為了接收PC發(fā)來的數(shù)據(jù)幀,并將完整的數(shù)據(jù)幀傳遞給解幀任務(wù)。2、設(shè)計主任務(wù)的目的是完成解幀任務(wù)、LED任務(wù)、ADC任務(wù)、RTC任務(wù)、Flash任務(wù)、UART任務(wù)正常運(yùn)行之前的準(zhǔn)備工作。3、解析幀數(shù)據(jù)是發(fā)送給哪一個模塊工作,如果放在串口4的ISR中完成,會大大降低串口4的組幀函數(shù)的重用性,為把該工作獨(dú)立出來,增加一個解幀任務(wù)來完成。4、設(shè)計LED任務(wù)的目的是接收PC的命令,控制K60-C板上的4盞LED燈的亮暗。5、設(shè)計ADC任務(wù)的目的是為了控制ADC通道進(jìn)
14、行AD數(shù)據(jù)采集。6、設(shè)計RTC任務(wù)的目的是為了控制RTC模塊計時。7、設(shè)計Flash任務(wù)的目的是為了控制Flash模塊完成數(shù)據(jù)的寫操作與讀操作。8、設(shè)計UART任務(wù)的目的是為了測試UART4模塊,同時完成將數(shù)據(jù)幀傳遞到輕量級消息隊(duì)列的工作。六、運(yùn)行結(jié)果七、總結(jié) 通過此次嵌入式操作系統(tǒng)課程設(shè)計,在課程設(shè)計期間,編寫程序代碼并進(jìn)行修改。編寫完成程序代碼運(yùn)行中出現(xiàn)了好多個錯誤和警告,與同學(xué)討論之后改正了幾個錯誤但是還存在錯誤沒有修改完,后面又問了其他同學(xué)加上自己查閱資料,找出了錯誤的出處。在這次課程設(shè)計中讓我更加的掌握了這門課程中平時所沒有掌握的知識,并且能夠把嵌入式操作系統(tǒng)很好的運(yùn)用,也提高了我的知識領(lǐng)域。結(jié)束了兩周的課程設(shè)計,也讓我從課
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶能源職業(yè)學(xué)院《機(jī)電系統(tǒng)建模與仿真》2023-2024學(xué)年第二學(xué)期期末試卷
- 甘孜職業(yè)學(xué)院《大跨度空間結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆寧夏吳忠市高三上學(xué)期適應(yīng)性考試(一模)歷史試卷
- 2024-2025學(xué)年浙江省六校聯(lián)盟高一上學(xué)期期中聯(lián)考?xì)v史試卷
- 做賬實(shí)操-代理記賬行業(yè)的賬務(wù)處理分錄
- 長春大學(xué)旅游學(xué)院《幼兒舞蹈創(chuàng)編二》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖北省新高考聯(lián)考協(xié)作體高一上學(xué)期期中考試歷史試卷
- 濟(jì)南工程職業(yè)技術(shù)學(xué)院《信息安全基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 聊城大學(xué)東昌學(xué)院《病理學(xué)與病理生理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 亳州職業(yè)技術(shù)學(xué)院《數(shù)據(jù)分析與可視化實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- JTG∕T F30-2014 公路水泥混凝土路面施工技術(shù)細(xì)則
- 篆刻學(xué)全套課件
- GB 1886.375-2024食品安全國家標(biāo)準(zhǔn)食品添加劑氫氧化鈣
- 物業(yè)員工晉升述職報告
- 建設(shè)工程施工專業(yè)分包合同(GF-2003-0213)
- 耳鼻喉科各項(xiàng)規(guī)章制度
- 虹吸現(xiàn)象講解
- 設(shè)備采購計劃書
- 長興縣合溪水庫清淤工程(一期)環(huán)境影響報告
- 粒籽源永久性植入治療放射防護(hù)要求
- 新聞選題申報單
評論
0/150
提交評論