<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 基于STM32處理器的數(shù)字PDA系統(tǒng)設(shè)計(jì)

          基于STM32處理器的數(shù)字PDA系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2012-06-06 來(lái)源:網(wǎng)絡(luò) 收藏

          3 軟件
          3.1 軟件總體介紹
          相比較硬件電路來(lái)說(shuō),硬件電路一旦確定并且電路正確,基本上沒(méi)有大的變化,而軟件部分則會(huì)出現(xiàn)非常大變化,因?yàn)閼?yīng)用的程序是多種多樣的。但是微控制器沒(méi)有像PC那樣含有MMU,不能運(yùn)行Linux和WinCE操作系統(tǒng),但是在很多情況下,系統(tǒng)是要實(shí)現(xiàn)多任務(wù)操作的,或者說(shuō)多線程操作,所以在這種條件下,系統(tǒng)采選用μC/OS-Ⅱ進(jìn)行多任務(wù)之間根據(jù)優(yōu)先級(jí)別的調(diào)度,而應(yīng)用程序又是操作系統(tǒng)和硬件的,為了提高操作系統(tǒng)的穩(wěn)定性和減少在數(shù)字PDA添加應(yīng)用程序時(shí)代碼的修改了,所以數(shù)字PDA系統(tǒng)將操作系統(tǒng)、GUI、硬件驅(qū)動(dòng)程序、文件系統(tǒng)FATFS進(jìn)行整合,采用一種頁(yè)機(jī)制,每一頁(yè)就是指一個(gè)TFT LCD顯示的頁(yè),每一頁(yè)就是一個(gè)線程,當(dāng)頁(yè)切換時(shí),底層操作系統(tǒng)就實(shí)現(xiàn)任務(wù)的切換。
          3.2 FATFS文件系統(tǒng)的移植
          由于PDA數(shù)字系統(tǒng)使用SD卡作為大容量數(shù)據(jù)的存儲(chǔ),雖然主控制器含有SDIO接口,硬件驅(qū)動(dòng)程序只要進(jìn)行相應(yīng)的配置就能實(shí)現(xiàn)SD的讀寫操作,但是這種操作時(shí)扇區(qū)的,而上層應(yīng)用程序操作的是文件,所以必須移植文件系統(tǒng)。移植步驟就是將SD的讀寫扇區(qū)函數(shù)和文件系統(tǒng)的底層接口函數(shù)想關(guān)聯(lián)。數(shù)字PDA系統(tǒng)使用FATFS文件系統(tǒng),當(dāng)然也可以使用FAT32文件系統(tǒng),F(xiàn)ATFS文件系統(tǒng)中diskio.c中提供五個(gè)接口函數(shù),如圖2所示。

          本文引用地址:http://www.ex-cimer.com/article/160480.htm

          b.jpg


          將microSD卡驅(qū)動(dòng)函數(shù)的SD扇區(qū)讀函數(shù)、扇區(qū)寫函數(shù)、以及SD初始化的函數(shù)和圖中的disk_read,disk_write,disk_initialize進(jìn)行對(duì)接,當(dāng)讓還要在FATFS文件系統(tǒng)中數(shù)據(jù)類型integer.h中包含stm32f10x.h以及將integer.h中的數(shù)據(jù)類型進(jìn)行更改,只需要更改文件系統(tǒng)中BOOL類型數(shù)據(jù)和stm32f10x.h中的bool類型一致即可,文件系統(tǒng)就移植完了。移植了FATFS文件系統(tǒng)后,數(shù)字PDA系統(tǒng)在讀取SD卡時(shí),就可以按照大家常用的文件格式進(jìn)行讀取數(shù)據(jù)。
          3.3 μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)的移植
          μC/OS-Ⅱ?yàn)镻DA數(shù)字系統(tǒng)的操作系統(tǒng)提供多線程操作,任務(wù)的調(diào)度。由于系統(tǒng)需要多線程的調(diào)度,需要為數(shù)字PDA系統(tǒng)移植μC/OS-Ⅱ。數(shù)字PDA系統(tǒng)使用信號(hào)量和郵箱機(jī)制進(jìn)行多任務(wù)的調(diào)度。μC/OS-Ⅱ是用標(biāo)準(zhǔn)C語(yǔ)言和匯編語(yǔ)言來(lái)寫的,只有與微相關(guān)的是由匯編指令寫的,所以在F103ZET6上中移植μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),只需要更改或者重寫相關(guān)文件OS_CPU.H和OS_CPU_C.C,匯編文件OS_CPU-A.ASM,系統(tǒng)配置文件OS_CFG.h。
          3.4 硬件驅(qū)動(dòng)程序
          數(shù)字PDA系統(tǒng)在調(diào)用微控制器的各種外設(shè)接口資源、以及各種硬件資源時(shí)需要調(diào)用這些硬件資源的驅(qū)動(dòng)程序。數(shù)字PDA系統(tǒng)的硬件驅(qū)動(dòng)程序由串口打印輸出驅(qū)動(dòng)程序、SD卡驅(qū)動(dòng)程序、VS1003B硬件驅(qū)動(dòng)程序、TFT LCD液晶顯示器驅(qū)動(dòng)程序、3個(gè)SPI串行通信口的驅(qū)動(dòng)程序、NOR FLASH和STM32 FSMC接口驅(qū)動(dòng)程序、觸摸屏TSC2046驅(qū)動(dòng)程序組成。以上的驅(qū)動(dòng)程序保證了各個(gè)模塊硬件資源的正常工作。作為最底層驅(qū)動(dòng)程序,這些程序保證了整個(gè)數(shù)字PDA系統(tǒng)能夠?qū)崿F(xiàn)各種應(yīng)用程序。
          3.5 頁(yè)與GUI圖形界面接口
          數(shù)字PDA系統(tǒng)要在TFT LCD液晶顯示器中的進(jìn)行圖形界面的顯示,需要GUI的支持,數(shù)字PDA系統(tǒng)采GUI沒(méi)有移植uCGui,而是根據(jù)液晶控制器重寫的GUI,由于STM32F103ZET6微控制器的時(shí)鐘為72 MHz,這樣寫的好處在于提高液晶頁(yè)面顯示的速度,減少刷屏現(xiàn)象的產(chǎn)生,提高PDA液晶畫面顯示的質(zhì)量。
          數(shù)字PDA系統(tǒng)將以上的所有軟件進(jìn)行了整合,將液晶屏顯示一個(gè)頁(yè)作為一個(gè)線程,頁(yè)面進(jìn)行切換就實(shí)現(xiàn)了任務(wù)的切換,任務(wù)的切換由操作系統(tǒng)實(shí)現(xiàn)。通過(guò)頁(yè)機(jī)制的框架,在應(yīng)用程序進(jìn)行修改或者添加新的應(yīng)用程序時(shí),減少了代碼的修改量,保證系統(tǒng)的穩(wěn)定性。
          數(shù)字PDA系統(tǒng)啟動(dòng)后就進(jìn)入主頁(yè)線程,操作系統(tǒng)系統(tǒng)根據(jù)硬件中斷和信號(hào)量郵箱機(jī)制,進(jìn)行也切換,頁(yè)切換的時(shí)候,會(huì)調(diào)用文件系統(tǒng)或者硬件驅(qū)動(dòng)程序,這就是PDA系統(tǒng)的工作原理。

          4 結(jié)語(yǔ)
          數(shù)字PDA是在硬件電路設(shè)計(jì)上移植文件系統(tǒng)、操作系統(tǒng)上完成的,整個(gè)系統(tǒng)不僅要求硬件電路的兼容正確,同時(shí)也要求FATFS文件系統(tǒng)和μC/OS-Ⅱ操作系統(tǒng)的移植正確,整個(gè)系統(tǒng)頁(yè)的機(jī)制進(jìn)行任務(wù)切換,經(jīng)過(guò)實(shí)際證明頁(yè)機(jī)制可以進(jìn)行快速嚴(yán)謹(jǐn)?shù)膽?yīng)用程序開發(fā)。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();