国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法

      文檔序號(hào):6362588閱讀:325來(lái)源:國(guó)知局
      專利名稱:基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及一種基于CorteX-M3系列微處理器的圖形化編程開發(fā)方法,主要用于電子信息產(chǎn)品與智能儀器設(shè)備等設(shè)計(jì)應(yīng)用領(lǐng)域。
      背景技術(shù)
      在智能設(shè)備高速發(fā)展的今天,人們對(duì)控制芯片綜合性能的需求也日益增強(qiáng)。ARM作為一種低功耗、低成本和高性能的嵌入式系統(tǒng)高端核心芯片,在無(wú)線通信、便攜式產(chǎn)品、網(wǎng)絡(luò)、數(shù)字消費(fèi)產(chǎn)品等應(yīng)用領(lǐng)域占據(jù)了領(lǐng)先地位。從應(yīng)用的角度,在選擇ARM芯片時(shí),根據(jù)其內(nèi)核、接口、拓展以及外設(shè)等性能的不同,而選擇不同的芯片。由于CorteX-M3整合了多種技術(shù),減少內(nèi)存需求量,并在RISC內(nèi)核上提供低功耗和高性能,可實(shí)現(xiàn)由以往的代碼向32 位微控制器的快速移植,因此,Cortex-M3系列微處理器已成為實(shí)際電子信息產(chǎn)品與智能儀器設(shè)備等項(xiàng)目設(shè)計(jì)開發(fā)人員首選的ARM處理器。
      隨著ARM的飛速發(fā)展,在一些大學(xué)及科研院所涌起一股學(xué)習(xí)ARM的熱潮,因此市場(chǎng)對(duì)ARM開發(fā)平臺(tái)的要求也越來(lái)越高。目前,市場(chǎng)上銷售的ARM開發(fā)板一般主要由三部分組成ARM芯片的最小系統(tǒng)、外設(shè)應(yīng)用模塊和下載調(diào)試模塊,其組成框圖如圖1所示。
      現(xiàn)有ARM系統(tǒng)的軟件開發(fā),一般采用MDK或IAR等編輯環(huán)境通過(guò)C源碼的編輯、調(diào)試和下載來(lái)完成軟件開發(fā)。然而,該方法存在一定的不足之處(1)對(duì)學(xué)習(xí)者知識(shí)儲(chǔ)備和編程能力要求較高。ARM編程軟件的學(xué)習(xí)一般是從庫(kù)函數(shù)的學(xué)習(xí)和應(yīng)用開始的,這對(duì)C語(yǔ)言水平不是很高的學(xué)習(xí)者來(lái)說(shuō)是一個(gè)很大的障礙;(2)對(duì)學(xué)習(xí)者關(guān)于ARM內(nèi)核方面的了解程度要求較高。ARM主要是以其精簡(jiǎn)內(nèi)核而聞名的,因此ARM的學(xué)習(xí)者必須閱讀繁瑣的寄存器功能,以便了解ARM內(nèi)核的結(jié)構(gòu),這要求學(xué)習(xí)者要具有較高的模電和數(shù)電方面的專業(yè)知識(shí)。
      但是,由于目前一些生產(chǎn)商提供的庫(kù)函數(shù)太過(guò)生澀難懂;學(xué)習(xí)者對(duì)ARM內(nèi)核結(jié)構(gòu)的學(xué)習(xí)十分困難,真正能夠快速有效的掌握ARM應(yīng)用技術(shù)的學(xué)習(xí)者少之又少。
      綜上所述,市場(chǎng)和學(xué)習(xí)者都急需一套實(shí)用、簡(jiǎn)潔、新穎、易于學(xué)習(xí)和操作的ARM編程開發(fā)方法和實(shí)驗(yàn)平臺(tái)。發(fā)明內(nèi)容
      本發(fā)明的目的在于提出一種基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法,實(shí)現(xiàn)嵌入式系統(tǒng)高端核心ARM芯片的圖形化編程操作。設(shè)計(jì)者無(wú)需進(jìn)行代碼的編輯,以圖形化的方式進(jìn)行編程,即可完成對(duì)Cortex-M3系列微處理器的設(shè)置,且編程開發(fā)平臺(tái)可自動(dòng)生成與之相對(duì)應(yīng)的C語(yǔ)言代碼,從而簡(jiǎn)化設(shè)計(jì)者的編程過(guò)程,縮短軟件開發(fā)時(shí)間,進(jìn)而提高信息技術(shù)應(yīng)用領(lǐng)域中電子信息產(chǎn)品與智能儀器設(shè)備的設(shè)計(jì)開發(fā)效率和水平。
      本發(fā)明的技術(shù)方案如圖2所示,編程開發(fā)平臺(tái)包括圖形化編程PC機(jī)、USB程序下載器和ARM實(shí)驗(yàn)板。其中,圖形化編程PC機(jī)包括圖形編程模塊、程序指令生成模塊和C程序生成模塊(軟件);USB程序下載器包括USB轉(zhuǎn)換電路和RS232串口電路;ARM實(shí)驗(yàn)板包括:ARM處理器、電源模塊、光敏電阻模塊、蜂鳴器模塊、紅外傳感陣列模塊、觸摸屏、電機(jī)控制模塊、速度采集模塊、可調(diào)電阻模塊、溫度采集模塊、按鍵和LED跑馬燈模塊,以及ARM處理器和觸摸屏外圍電路(
      在申請(qǐng)?zhí)枮?01120174061. 1 一種基于Cortex-M3系列微處理器的圖形化軟件開發(fā)實(shí)驗(yàn)平臺(tái),申請(qǐng)日為2011-5-27的專利申請(qǐng)中已詳述),如圖3所示;所述的ARM實(shí)驗(yàn)板中ARM處理器用來(lái)管理整個(gè)實(shí)驗(yàn)平臺(tái),為其它外設(shè)電路提供驅(qū)動(dòng)支持;所述紅外傳感陣列模塊、觸摸屏、電機(jī)控制模塊、速度采集模塊、可調(diào)電阻模塊、溫度采集模塊、按鍵和LED跑馬燈模塊為實(shí)驗(yàn)?zāi)K,該類實(shí)驗(yàn)?zāi)K主要完成實(shí)驗(yàn)平臺(tái)上的各項(xiàng)功能的開發(fā);觸摸屏既是該平臺(tái)的輸入設(shè)備,也是顯示設(shè)備,使用者通過(guò)點(diǎn)擊觸摸屏對(duì)該實(shí)驗(yàn)平臺(tái)進(jìn)行操作,同時(shí)觸摸屏還可以實(shí)時(shí)顯示出該實(shí)驗(yàn)平臺(tái)的內(nèi)核工作狀態(tài);所述的ARM處理器外圍電路包括時(shí)鐘電路、復(fù)位電路、仿真電路、外部接口電路、電源轉(zhuǎn)換電路。時(shí)鐘電路為ARM處理器提供工作時(shí)鐘;復(fù)位電路提供復(fù)位信號(hào),當(dāng)按下復(fù)位按鍵時(shí)儀器復(fù)位;仿真電路與ARM處理器相連, 用于儀器程序的下載和調(diào)試;所述圖形化編程PC機(jī)是利用圖形化編程開發(fā)方法,通過(guò)圖形編程模塊來(lái)獲得實(shí)驗(yàn)各項(xiàng)參數(shù)設(shè)置,通過(guò)程序指令生成模塊來(lái)編輯ARM處理器的內(nèi)核,從而完成各項(xiàng)實(shí)驗(yàn),C程序生成模塊會(huì)根據(jù)圖形編程模塊傳輸?shù)木幊绦畔?,自?dòng)生成相應(yīng)的C 程序代碼;所述USB程序下載器通過(guò)USB 口與PC機(jī)連接,通過(guò)RS232串口和ARM處理器相連接,當(dāng)圖形化編程PC機(jī)的程序指令生成模塊需要進(jìn)行程序指令下載時(shí),USB程序下載器把PC機(jī)的USB通訊協(xié)議轉(zhuǎn)化為串行通訊協(xié)議進(jìn)行數(shù)據(jù)的下載。
      一種基于CorteX-M3系列微處理器的圖形化編程開發(fā)方法,基于以下硬件平臺(tái), 該硬件平臺(tái)包括有圖形化編程PC機(jī)1、USB程序下載器2、ARM實(shí)驗(yàn)板3,ARM實(shí)驗(yàn)板3包括 ARM處理器5和功能模塊;USB程序下載器2與圖形化編程PC機(jī)連接,USB程序下載器2與 ARM處理器5相連接;
      其特征在于所述圖形化編程PC機(jī)1包括圖形編程模塊7和程序指令生成模塊8 ; 圖形編程模塊7負(fù)責(zé)各個(gè)實(shí)驗(yàn)?zāi)K的圖形化編程和編程信息10的生成;程序指令生成模塊 8負(fù)責(zé)對(duì)編程信息進(jìn)行編譯,生成程序指令11,并通過(guò)USB程序下載器2下載到ARM處理器 5中完成各種功能模塊6的應(yīng)用程序的開發(fā);
      圖形編程模塊7至少包括如時(shí)鐘模塊、IO模塊、中斷模塊、串口模塊、定時(shí)器模塊、 邏輯設(shè)置和實(shí)驗(yàn)設(shè)置模塊;
      所述程序指令11的幀格式為方向幀+功能指令幀+操作數(shù)據(jù)幀+設(shè)置驗(yàn)證幀+ 結(jié)束幀;
      自我編程協(xié)議12固化在ARM實(shí)驗(yàn)板3,ARM處理器5通過(guò)自我編程協(xié)議12來(lái)解碼程序指令11中的編程信息,具體如下
      當(dāng)由方向幀確定了 IO功能模塊,那么功能幀來(lái)確定IO將要執(zhí)行的是讀功能或?qū)懝δ芑驈?fù)用功能,操作數(shù)據(jù)幀來(lái)確定IO讀寫的數(shù)據(jù),驗(yàn)證幀在此時(shí)為無(wú)效,當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止;
      當(dāng)由方向幀確定了中斷模塊,那么功能幀來(lái)確定中斷管腳及觸發(fā)方式,操作數(shù)據(jù)幀來(lái)確定中斷的優(yōu)先級(jí),
      當(dāng)由方向幀確定了定時(shí)器模塊,那么功能幀來(lái)確定定時(shí)器名稱和計(jì)數(shù)方式,操作數(shù)據(jù)幀來(lái)確定定時(shí)器的裝載值和預(yù)分頻數(shù),驗(yàn)證幀在此時(shí)為無(wú)效,當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止。
      本發(fā)明的創(chuàng)新點(diǎn)和難點(diǎn)在于提出了微處理器中的自我編程協(xié)議和程序指令,下面對(duì)自我編程協(xié)議和程序指令加以解釋說(shuō)明。如圖4、5所示,圖形化編程PC機(jī)通過(guò)圖形化編程模塊可以獲得ARM內(nèi)核及外設(shè)的各項(xiàng)功能設(shè)置,這種設(shè)置的程序信息通過(guò)程序指令生成模塊生成了程序指令,程序指令由USB程序下載器下載到ARM內(nèi)核中。程序指令是由方向幀、功能幀、數(shù)據(jù)幀、驗(yàn)證幀和結(jié)束幀組成的。其中方向幀由至少4個(gè)位的二進(jìn)制數(shù)組成,用來(lái)表示此條程序指令需要設(shè)置的具體功能模塊,至少包括時(shí)鐘模塊、IO模塊、終端模塊、串口模塊、定時(shí)器模塊等內(nèi)核模塊,因?yàn)閮?nèi)核的功能模塊數(shù)量龐大,所以至少由4位的二進(jìn)制數(shù)來(lái)表示;功能幀由至少4個(gè)位的二進(jìn)制數(shù)組成,在由方向幀確定了具體設(shè)置的功能模塊后,再由功能真來(lái)設(shè)置模塊的功能,如由方向幀確定了 IO功能模塊,那么功能幀來(lái)確定IO 將要執(zhí)行的是讀功能或?qū)懝δ芑驈?fù)用功能等,因?yàn)橛行┠K的功能比較多,因此功能幀至少由4個(gè)位的二進(jìn)制數(shù)組成;數(shù)據(jù)幀由至少1個(gè)字節(jié)的二進(jìn)制數(shù)組成,數(shù)據(jù)幀主要用來(lái)存儲(chǔ)在功能設(shè)置中可能需要的數(shù)據(jù),比如當(dāng)對(duì)定時(shí)器進(jìn)行設(shè)置時(shí)需要設(shè)置定時(shí)器的時(shí)鐘頻率和裝載值,而這些數(shù)據(jù)就是由數(shù)據(jù)幀來(lái)傳輸?shù)模捎谟行┠K需要很多的設(shè)置數(shù)據(jù),所以數(shù)據(jù)幀至少為一個(gè)字節(jié);驗(yàn)證幀由至少4位二進(jìn)制數(shù)組成,驗(yàn)證幀用在一些需要返回值的功能設(shè)置模塊中,在串口的數(shù)據(jù)傳輸模塊中,當(dāng)數(shù)據(jù)發(fā)送完成時(shí),會(huì)有一個(gè)返回值,該返回值與驗(yàn)證幀中的數(shù)值相對(duì)比,如果相等的話則認(rèn)為功能設(shè)置完成;當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止,內(nèi)核會(huì)根據(jù)自我編程程序解碼出來(lái)的程序信息運(yùn)行。
      本發(fā)明存儲(chǔ)在ARM內(nèi)核中的自我編程協(xié)議是用來(lái)解碼程序指令并自我配置內(nèi)核功能模塊。當(dāng)圖形化編程PC機(jī)將生成的程序指令下載到ARM內(nèi)核中之后,自我編程協(xié)議會(huì)按照上述的幀格式進(jìn)行自我編程,具體自我編程的過(guò)程會(huì)在具體實(shí)施方式
      中進(jìn)行詳解。
      本發(fā)明的供電系統(tǒng)由5V直流變壓器供電。輸入電壓經(jīng)過(guò)電源轉(zhuǎn)換電路轉(zhuǎn)換后,為整個(gè)系統(tǒng)供電。ARM實(shí)驗(yàn)板通過(guò)USB程序下載器與圖形化編程PC機(jī)連接,當(dāng)對(duì)圖形化編程 PC機(jī)中的微處理器的功能模塊和實(shí)驗(yàn)?zāi)K進(jìn)行圖形化編程之后,程序指令生成模塊會(huì)將圖形編程模塊輸入的編程信息編輯成程序指令,通過(guò)USB程序下載器將其下載到ARM處理器, 完成各種功能模塊的應(yīng)用程序的開發(fā);操作者還可以通過(guò)圖形化編程PC機(jī)中C程序生成模塊,將圖形編程模塊輸入的編程信息自動(dòng)編輯成C語(yǔ)言的源文件供操作者分析和使用,再對(duì)自動(dòng)生成的C文件進(jìn)行編譯之后生成執(zhí)行文件,下載到ARM處理器的內(nèi)部程序存儲(chǔ)器中, 來(lái)驗(yàn)證自動(dòng)生成的C程序是否正確。該發(fā)明通過(guò)上述簡(jiǎn)單的操作,以圖形化編程的方式完成ARM實(shí)驗(yàn)板各種功能模塊的應(yīng)用程序開發(fā),使學(xué)習(xí)者的入門門檻大大降低,可節(jié)省嵌入式系統(tǒng)開發(fā)的人力、縮短開發(fā)周期。


      圖1現(xiàn)有的ARM實(shí)驗(yàn)平臺(tái)的組成示意框圖2本發(fā)明的圖形化編程實(shí)驗(yàn)平臺(tái)的方案框圖3本發(fā)明的ARM實(shí)驗(yàn)板的方案框圖4本發(fā)明的圖形化編程PC機(jī)的各模塊框圖5本發(fā)明的圖形化編程的工作過(guò)程流程圖6本發(fā)明的程序指令示意圖7本發(fā)明的ARM內(nèi)核編程示意圖8本發(fā)明的USB程序傳輸器原理圖形化編程PC機(jī)
      1、USB程序下載器
      2、ARM 實(shí)驗(yàn)板
      3、實(shí)驗(yàn)?zāi)K
      4、ARM 處理器
      5、功能模塊
      6、圖形編輯模塊
      7、程序指令生成模塊
      8、C程序生成模塊
      9、程序信息
      10、程序指令
      11、自我編程協(xié)議具體實(shí)施方式
      現(xiàn)結(jié)合圖2-圖7對(duì)本發(fā)明做進(jìn)一步的說(shuō)明一種基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法,主要包括圖形化編程PC機(jī)、USB程序下載器和ARM實(shí)驗(yàn)板;其中圖形化編程PC機(jī)包括圖形編程模塊、程序指令生成模塊和C程序生成模塊;USB程序下載器將 USB通訊轉(zhuǎn)換成RS232串口進(jìn)行程序下載;其中ARM實(shí)驗(yàn)板包括由各項(xiàng)實(shí)驗(yàn)?zāi)K和ARM處理器外圍電路組成;實(shí)驗(yàn)?zāi)K與ARM控制器之間都采用插線式連接,實(shí)驗(yàn)時(shí)即插即用。
      參照?qǐng)D4,本實(shí)驗(yàn)平臺(tái)的圖形化編程PC機(jī)主要由圖形編程模塊、程序指令生成模塊和C程序生成模塊這三部分組成,其中的圖形編程模塊是核心模塊,主要負(fù)責(zé)人機(jī)界面編輯、內(nèi)核和各個(gè)實(shí)驗(yàn)?zāi)K的圖形化編程和編程信息的生成;程序指令生成模塊是對(duì)ARM 實(shí)驗(yàn)板進(jìn)行編程的主要模塊,主要負(fù)責(zé)對(duì)圖形編程模塊讀取的編程信息進(jìn)行編譯,生成程序指令,并通過(guò)USB程序下載器下載到ARM處理器中完成各種功能模塊的應(yīng)用程序的開發(fā); C程序生成模塊主要負(fù)責(zé)對(duì)圖形編程模塊讀取到的編程信息進(jìn)行編譯,以LM3S811的庫(kù)函數(shù)為資源,自動(dòng)生成相應(yīng)設(shè)置的C語(yǔ)言程序,以供使用者學(xué)習(xí)和應(yīng)用。在該圖形化編程方法中,圖形化編程模塊以直觀圖形的方式,把ARM內(nèi)核中的各個(gè)功能模塊和ARM實(shí)驗(yàn)板上的各個(gè)實(shí)驗(yàn)?zāi)K顯示在人機(jī)界面上,而編程者要對(duì)實(shí)驗(yàn)的某個(gè)功能進(jìn)行設(shè)置時(shí),只需對(duì)各個(gè)模塊右鍵(或雙擊)進(jìn)行設(shè)置,配置參數(shù)即可。程序指令生成模塊可對(duì)圖形化編程模塊采集到的編程信息進(jìn)行分析處理。
      參照?qǐng)D5,圖形化編程的工作過(guò)程,當(dāng)對(duì)圖形化編程中的內(nèi)核和實(shí)驗(yàn)?zāi)K進(jìn)行設(shè)置之后,程序指令生成模塊會(huì)將圖形編程模塊輸入的編程信息編輯成程序指令,通過(guò)USB程序下載器將其下載到ARM處理器,完成各種功能模塊的應(yīng)用程序的開發(fā);還可以通過(guò)圖形化編程編程中C程序生成模塊,將圖形編程模塊輸入的編程信息自動(dòng)編輯成C語(yǔ)言的源文件供操作者分析和使用,其中生成的C語(yǔ)言中的部分函數(shù)是來(lái)自于ARM微處理器廠家的標(biāo)準(zhǔn)庫(kù)函數(shù),再對(duì)自動(dòng)生成的C文件進(jìn)行編譯之后生成執(zhí)行文件,下載到ARM處理器的內(nèi)部程序存儲(chǔ)器中,來(lái)驗(yàn)證自動(dòng)生成的C程序是否正確。
      在圖形化編程PC機(jī)生成程序指令后,ARM微處理器內(nèi)核需要對(duì)程序指令進(jìn)行譯碼翻譯,再對(duì)其自身進(jìn)行配置。自我編程協(xié)議即是通過(guò)程序指令中的數(shù)據(jù)對(duì)ARM微處理器的內(nèi)核和外設(shè)進(jìn)行編程配置的一種協(xié)議。
      參考圖6,程序指令其主要包括方向幀+功能指令幀+操作數(shù)據(jù)幀+設(shè)置驗(yàn)證幀 +結(jié)束幀。通過(guò)方向幀來(lái)判斷程序指令的配置方向;功能指令幀加載著對(duì)內(nèi)核具體操作的信息;操作數(shù)據(jù)幀中包含著對(duì)某功能設(shè)置時(shí)需要的數(shù)據(jù);設(shè)置驗(yàn)證幀用來(lái)與內(nèi)核設(shè)置時(shí)的返回值進(jìn)行對(duì)比從而驗(yàn)證設(shè)置是否成功,結(jié)束幀用來(lái)表征程序指令是否結(jié)束。
      參考圖7,當(dāng)上位機(jī)通過(guò)USB下載器下載到ARM微處理器中一組程序指令的數(shù)據(jù)包后,ARM內(nèi)核讀取其中有效數(shù)據(jù)對(duì)其進(jìn)行自我編程,每種數(shù)據(jù)包有相應(yīng)的自我編程程序?qū)ζ溥M(jìn)行譯碼翻譯,然后再通過(guò)再由下一級(jí)相應(yīng)的自我編程協(xié)議進(jìn)行分析處理。
      方向幀自我變成協(xié)議通過(guò)方向幀部分把其程序指令歸類為10指令,中斷指令, 計(jì)數(shù)器指令,實(shí)驗(yàn)功能模塊指令,等相關(guān)部分。繼而確定了程序要完成功能的類別,再進(jìn)行下一步操作。
      功能指令幀通過(guò)功能指令幀可以分析出相對(duì)應(yīng)的自我編程操作的具體內(nèi)容,比如讀寫IO 口,終端觸發(fā)方式等等。比如數(shù)據(jù)的幀頭部分為00100001,通過(guò)自我編程協(xié)議分析出該數(shù)據(jù)包是IO指令的幀頭,那么程序指令數(shù)據(jù)包中接下來(lái)的數(shù)據(jù)由IO自我編程程序來(lái)譯碼編譯,再通過(guò)功能指令幀可以分析出相對(duì)應(yīng)的自我編程操作內(nèi)容,即如功能指令幀為0110 1111即是對(duì)IO的寫的操作,IO指令的自我編程協(xié)議就會(huì)調(diào)用IO的寫操作函數(shù)進(jìn)行操作
      操作數(shù)據(jù)幀該幀的數(shù)據(jù)是各項(xiàng)功能操作時(shí)需要的操作數(shù),如上例中,對(duì)IO的寫的操作的操作數(shù)即是操作數(shù)據(jù)幀中的數(shù)據(jù)。
      設(shè)置驗(yàn)證幀在對(duì)一些有返回值的功能進(jìn)行設(shè)置時(shí),會(huì)在操作數(shù)據(jù)幀后面加上設(shè)置驗(yàn)證幀,設(shè)置功能幀存儲(chǔ)的即是操作成功時(shí)會(huì)返回的數(shù)值,在自我編程操作完成后,自我編程程序會(huì)將返回值與設(shè)置驗(yàn)證幀進(jìn)行比較,如果數(shù)值一致,則操作成功,進(jìn)行下一程序指令數(shù)據(jù)包的編譯,如果兩者數(shù)據(jù)不一致則將程序指令數(shù)據(jù)包重新解碼編譯。即如在操作串口發(fā)送時(shí),如果操作成功會(huì)返回TRUE,如果返回值與設(shè)置驗(yàn)證幀進(jìn)行對(duì)比不匹配,則重新進(jìn)行自我編程,如果匹配則繼續(xù)下一級(jí)解碼。
      結(jié)束幀當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止,內(nèi)核會(huì)根據(jù)自我編程程序解碼出來(lái)的程序信息運(yùn)行。
      舉例說(shuō)明自我編程協(xié)議對(duì)程序指令的分析和對(duì)內(nèi)核的自我編程,當(dāng)ARM芯片接收到程序指令后,進(jìn)入最高級(jí)的中斷,進(jìn)行對(duì)內(nèi)核的自我編程。下例中的編碼數(shù)值只是假設(shè), 如實(shí)際應(yīng)用不同,為做講解演示。
      例如IO配置先對(duì)方向幀進(jìn)行解碼,若方向幀為0001,指向IO功能模塊(假設(shè)IO 功能模塊的方向幀為0001),那么自我編程協(xié)議即對(duì)IO功能模塊進(jìn)行初始化,即將運(yùn)行如下程序
      GPIOJnitTypeDef GPIO_InitStructure ;
      該程序即定義了一個(gè)GPIO的結(jié)構(gòu)體,之后對(duì)功能幀進(jìn)行解碼,若功能幀為 000101010010其中我們可以根據(jù)對(duì)第一個(gè)4位的二進(jìn)制數(shù)解碼,其代表的含義為對(duì)GPIOA 口進(jìn)行設(shè)置;第二個(gè)4位二進(jìn)制數(shù)解碼,其代表的含義為對(duì)PIN_5進(jìn)行設(shè)置;第三個(gè)4位二進(jìn)制數(shù)解碼,其代表的含義為設(shè)置為上來(lái)輸入,即解碼到這里將運(yùn)行如下程序
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIOInitStructure.GPIOPin = GPIO—Pin—5; GPIO_InitStructure.GPIO_Mode = GPIO—Mode—IPU; GPIO_Init(GPIOA, &GPIO—IniGtmcture);
      這里是對(duì)GPIOA中的PIN_10設(shè)置為上拉輸入,不需要設(shè)置數(shù)據(jù),因此數(shù)據(jù)幀中是無(wú)效數(shù)據(jù),自我編程協(xié)議不需要解碼,驗(yàn)證幀同理也不需要解碼,最后自我變成協(xié)議解碼讀取結(jié)束幀0101 0101(規(guī)定的結(jié)束幀數(shù)據(jù))時(shí)自我編程協(xié)議完成了該部分的設(shè)置,等待下一次程序指令的傳輸,并內(nèi)核開始運(yùn)行。如上所述,即為自我編程協(xié)議的一個(gè)簡(jiǎn)單的對(duì)內(nèi)核的自我編程。
      例如定時(shí)器配置先對(duì)方向幀進(jìn)行解碼,若方向幀為0002,指向定時(shí)器功能模塊 (假設(shè)定時(shí)器功能模塊的方向幀為000 ,那么自我編程協(xié)議即對(duì)定時(shí)器功能模塊進(jìn)行初始化,即將運(yùn)行如下程序
      TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;
      TIM_0CInitTypeDef TIM_0CInitStructure ;
      該程序即定義了一個(gè)TIM的結(jié)構(gòu)體,之后對(duì)功能幀進(jìn)行解碼,若功能幀為0001 0011 0010。其中解碼第一個(gè)4位的二進(jìn)制數(shù)為定時(shí)器名稱,其0001代表的含義為對(duì)定時(shí)器1進(jìn)行設(shè)置;第二個(gè)4位二進(jìn)制數(shù)定時(shí)器編號(hào),其0011代表的含義為對(duì)定時(shí)3進(jìn)行設(shè)置; 第三個(gè)4位二進(jìn)制數(shù)為計(jì)數(shù)方式,其0010代表的含義為向上計(jì)數(shù)方式。
      對(duì)操作幀進(jìn)行解碼,若操作幀為0001 1111 0100 0000 0001 1100 00100000。解碼前16位二進(jìn)制數(shù)為定時(shí)器的計(jì)數(shù)值,其0001 1111 0100 0000代表的含義為定時(shí)器1的裝載值為8000;后16位二進(jìn)制數(shù)為定時(shí)器的預(yù)分頻的除數(shù),其0001 1100 0010 0000代表的含義為預(yù)分頻7200。改設(shè)置不需要驗(yàn)證幀,其結(jié)束幀仍為0101 0101。解碼到該處,將運(yùn)行如下程序
      RCC APB1 PeriphClockCmd(RCC_APB 1 Periph— Μ2, ENABLE);TIM—TimeBaseStructure.TIM—Period = 8000;//計(jì)數(shù)值TIM—TimeBaseStructure.TIM—Prescaler = 7200-1; //預(yù)分頻,此值+1為分頻的除數(shù)TIM—TimeBaseStructure.TIM—ClockDivision = 0x0; //TIM—TimeBaseStructure.TIM—CounterMode = TlMCounterModeUp;//向上計(jì)數(shù)TIM_TimeBaseInit(TIM2, & Μ—rTimeBaseStmcture);/*比較通道1*/ TIMOCInitStructure.TIMOCMode = TIM—OCMode—Inactive; //輸出比較非主動(dòng)模式 TIMOCInitStructure.TIMPulse = CCR1—Val;TIMOCInitStructure.TIMOCPolarity = TIMOCPolarityHigh; Il極性為正TIM—OC1 Init(TIM2, &TIM—OCInitStructure);TIM OC1 PreloadConfig(TIM2, TIM—OCPreload—Disable);//
      例如中斷配置先對(duì)方向幀進(jìn)行解碼,若方向幀為0003,指向中斷功能模塊(假設(shè)中斷功能模塊的方向幀為0002),那么自我編程協(xié)議即對(duì)中斷功能模塊進(jìn)行初始化,即將運(yùn)行如下程序
      GPIOInitTypeDefGPIOInitStructure; EXTIInitTypeDefEXTIInitStructure; NVICJnitTypeDef NVICJnitStructure; NVIC_PriorityGroupConfig(NVIC_PriorityGroup_l);
      該程序即定義了一個(gè)EXTI的結(jié)構(gòu)體,之后對(duì)功能幀進(jìn)行解碼,若功能幀為 001010100010。其中解碼第一個(gè)4位的二進(jìn)制數(shù)為中斷映射的管腳名稱,其0010代表的含義為GPIOB為中斷10 ;第二個(gè)4位二進(jìn)制數(shù)為使能中斷管腳,其1010代表的含義為設(shè)置 GPIOB的PIN9管腳為中斷管腳;第三個(gè)4位二進(jìn)制數(shù)為中斷觸發(fā)方式,其0010代表的含義上升沿觸發(fā)。
      對(duì)操作幀進(jìn)行解碼,若操作幀為0010。其代表的含義為該中斷的優(yōu)先級(jí)為2。改設(shè)置不需要驗(yàn)證幀,其結(jié)束幀仍為01010101。解碼到該處,將運(yùn)行如下程序
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);/* PCl按鍵輸入*/GPIOInitStructure.GPIOPin = GPIO—Pin—10;GPIO—InitStructure.GPIO—Mode = GPIO_Mode_IPU; //上拉輸入GPIO_Init(GPIOB, &GPIO_[nitStmcture);/*連接IO 口到中斷線*/GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO—PinSourcel 0);/*上升降沿觸發(fā)*/EXTIInitStructure.EXTILine = EXTILinelO; EXTIInitStructure .EXTIMode = EXTIModeInterrupt; EXTIInitStructure .EXTITrigger = EXTI—Trigger—Rising; EXTIInitStructure.EXTILineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); /* EXTIlO*/NVIC—InitStructure.NVIC—IRQChannel = EXTIl 51 OIRQn; NVICInitStructure.NVICIRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
      NVIC—InitStructure.NVIC—IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);
      如上所示為自我變成的具體操作過(guò)程。
      參照?qǐng)D8,本實(shí)驗(yàn)平臺(tái)的USB程序下載器的采用USB總線的轉(zhuǎn)接芯片CH341T為核心芯片,USB接口的2腳(D-)、3腳(D+)連接芯片的8腳(UD+)、7腳(UD-) ;CH341芯片需要外部向XI引腳提供12MHz的時(shí)鐘信號(hào),晶體X5、電容C21和C22用于時(shí)鐘振蕩電路,X5 的頻率是12MHz,C21和C22是容量為15pF和30pF的高頻瓷片電容。C23和CM是高頻瓷片電容,C23容量為4700pF,用于CH341內(nèi)部電源節(jié)點(diǎn)退耦,C24容量為0. 1 μ F,用于外部電源退耦;CH341T芯片的RXD和T)(D輸出標(biāo)準(zhǔn)的RS232串行總線與ΜΑΧ232芯片連接,芯片 ΜΑΧ232的RlIN和T10UT連接到USB的T型口中的2、3腳,以供與ARM處理器進(jìn)行數(shù)據(jù)下載。
      本實(shí)驗(yàn)平臺(tái)在使用時(shí),操作人員只需將USB程序下載器與ARM實(shí)驗(yàn)板相連接,然后打開圖形化編程PC機(jī),連接實(shí)驗(yàn)平臺(tái),即可完成圖形化編程、將執(zhí)行文件下載和生成相應(yīng)的C語(yǔ)言程序等功能,且在顯示屏上有內(nèi)核配置信息的實(shí)時(shí)顯示。該實(shí)驗(yàn)平臺(tái)降低了 ARM 學(xué)習(xí)者的入學(xué)門檻,減小了編程人員的勞動(dòng)強(qiáng)度,縮短軟件開發(fā)時(shí)間。本發(fā)明簡(jiǎn)單、方便、創(chuàng)新性和實(shí)用性強(qiáng)。
      權(quán)利要求
      1.一種基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法,基于以下硬件平臺(tái),該硬件平臺(tái)包括有圖形化編程PC機(jī)(1)、USB程序下載器(2)、ARM實(shí)驗(yàn)板(3),ARM實(shí)驗(yàn)板(3) 包括ARM處理器( 和功能模塊;USB程序下載器( 與圖形化編程PC機(jī)連接,USB程序下載器(2)與ARM處理器(5)相連接;其特征在于所述圖形化編程PC機(jī)(1)包括圖形編程模塊(7)和程序指令生成模塊 (8);圖形編程模塊(7)負(fù)責(zé)各個(gè)實(shí)驗(yàn)?zāi)K的圖形化編程和編程信息(10)的生成;程序指令生成模塊(8)負(fù)責(zé)對(duì)編程信息進(jìn)行編譯,生成程序指令(11),并通過(guò)USB程序下載器(2) 下載到ARM處理器(5)中完成各種功能模塊(6)的應(yīng)用程序的開發(fā);圖形編程模塊(7)至少包括如時(shí)鐘模塊、IO模塊、中斷模塊、串口模塊、定時(shí)器模塊、邏輯設(shè)置和實(shí)驗(yàn)設(shè)置模塊;所述程序指令(11)的幀格式為方向幀+功能指令幀+操作數(shù)據(jù)幀+設(shè)置驗(yàn)證幀+結(jié)束幀;自我編程協(xié)議(1 固化在ARM實(shí)驗(yàn)板03),ARM處理器( 通過(guò)自我編程協(xié)議(12)來(lái)解碼程序指令(11)中的編程信息,具體如下當(dāng)由方向幀確定了 IO功能模塊,那么功能幀來(lái)確定IO將要執(zhí)行的是讀功能或?qū)懝δ芑驈?fù)用功能,操作數(shù)據(jù)幀來(lái)確定IO讀寫的數(shù)據(jù),驗(yàn)證幀在此時(shí)為無(wú)效,當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止;當(dāng)由方向幀確定了中斷模塊,那么功能幀來(lái)確定中斷管腳及觸發(fā)方式,操作數(shù)據(jù)幀來(lái)確定中斷的優(yōu)先級(jí),當(dāng)由方向幀確定了定時(shí)器模塊,那么功能幀來(lái)確定定時(shí)器名稱和計(jì)數(shù)方式,操作數(shù)據(jù)幀來(lái)確定定時(shí)器的裝載值和預(yù)分頻數(shù),驗(yàn)證幀在此時(shí)為無(wú)效,當(dāng)自我編程協(xié)議解碼到結(jié)束幀時(shí),自我編程程序停止。
      2.根據(jù)權(quán)利要求1所述的一種基于CorteX-M3系列微處理器的圖形化編程開發(fā)方法, 其特征在于方向幀由至少4個(gè)位的二進(jìn)制數(shù)組成,功能幀由至少4個(gè)位的二進(jìn)制數(shù)組成,數(shù)據(jù)幀由至少1個(gè)字節(jié)的二進(jìn)制數(shù)組成,驗(yàn)證幀由至少4位二進(jìn)制數(shù)組成。
      3.根據(jù)權(quán)利要求1所述的一種基于CorteX-M3系列微處理器的圖形化編程開發(fā)方法, 其特征在于所述圖形化編程PC機(jī)(1)還包括C程序生成模塊,C程序生成模塊將圖形編程模塊輸入的編程信息自動(dòng)編輯成C語(yǔ)言的源文件供操作者分析和使用,再對(duì)自動(dòng)生成的C文件進(jìn)行編譯之后生成執(zhí)行文件,下載到ARM處理器中,來(lái)驗(yàn)證自動(dòng)生成的C程序是否正確。
      全文摘要
      一種基于Cortex-M3系列微處理器的圖形化編程開發(fā)方法,主要用于ARM芯片學(xué)習(xí)和編程開發(fā)。本發(fā)明包括圖形化編程PC機(jī)(1)、USB程序下載器(2)和ARM實(shí)驗(yàn)板(3);圖形化編程PC機(jī)(1)通過(guò)圖形編程模塊(7)來(lái)獲得程序信息(10),通過(guò)程序指令生成模塊(8)生成程序執(zhí)行文件,通過(guò)USB程序下載器(2)將程序指令(11)下載到ARM處理器的內(nèi)核,ARM內(nèi)核通過(guò)自我編程協(xié)議(12)解碼程序指令(11)完成各項(xiàng)功能模塊(6)的開發(fā),C程序生成模塊(9)根據(jù)接收的程序信息(10)會(huì)自動(dòng)生成相應(yīng)的C程序代碼。該實(shí)驗(yàn)平臺(tái)集成了圖形編程環(huán)境、程序下載器和ARM實(shí)驗(yàn)板,形成一套完整的學(xué)習(xí)平臺(tái),降低了ARM學(xué)習(xí)者的入學(xué)門檻,減小了編程人員的勞動(dòng)強(qiáng)度,操作簡(jiǎn)單、實(shí)用性強(qiáng)。
      文檔編號(hào)G06F9/44GK102541568SQ20121000226
      公開日2012年7月4日 申請(qǐng)日期2012年1月5日 優(yōu)先權(quán)日2012年1月5日
      發(fā)明者于洪濤, 宋國(guó)榮, 李楠, 焦敬品, 胡躍剛, 高忠陽(yáng) 申請(qǐng)人:北京工業(yè)大學(xué)
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1