亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Matlab的STM32軟件快速開發(fā)方法

        2011-06-25 02:45:32余新栓
        關鍵詞:微控制器代碼嵌入式

        余新栓

        (陜西理工學院 電氣工程系,漢中 723000)

        余新栓(講師),主要研究領域為嵌入式系統(tǒng)應用、計算機測量與控制。

        引 言

        在嵌入式應用軟件設計中,開發(fā)人員應該運用現(xiàn)代軟件工程思想和先進的軟件開發(fā)方法,快速完成軟件的開發(fā)和維護工作[1]。STM32系列微控制器是一款基于ARM Cortex-M3內(nèi)核的高性能、低成本、低功耗的嵌入式應用產(chǎn)品。目前,編寫STM32應用程序主要有兩種方式。大部分學習使用STM32的用戶都從固件庫函數(shù)開始,通過使用ST公司提供的固件庫中的庫函數(shù)來配置CPU,建立工程后調(diào)用片內(nèi)資源的各種功能。另外一些用戶不使用或很少使用庫,通過直接操作寄存器的方式使用STM32。上述方法需要花費一定的精力熟悉固件庫,或者要求熟悉眾多的寄存器結構及其定義,程序開發(fā)效率較低。

        Matlab是由美國Mathworks公司發(fā)布的主要面對科學計算、可視化以及交互式程序設計的計算環(huán)境,在很大程度上擺脫了傳統(tǒng)非交互式程序設計語言(如C語言)的編輯模式,代表了當今國際科學計算軟件的先進水平。利用工具箱擴展 Matlab環(huán)境,可以解決應用領域內(nèi)特定類型的問題[2]。本文介紹針對嵌入式ARM Cortex-M3內(nèi)核STM32微控制器的目標模塊庫,并通過實例說明基于Matlab建模的STM32軟件快速開發(fā)方法。

        1 RapidSTM32blockset技術特性

        RapidSTM32是一種針對STM32系列微控制器開發(fā)的Simulink目標模塊庫和設備驅(qū)動程序的工具套件。RapidSTM32在高性能的圖形編程語言、STM32微控制器應用之間架起了一座橋梁。該模塊庫利用MathWorks公司的Real-Time Workshop嵌入式編碼器的代碼生成能力,直接自動產(chǎn)生程序代碼,實現(xiàn)了數(shù)字IO、USART、PWM、ADC的等功能程序和工程的自動生成。其主要目標是幫助用戶(尤其是嵌入式系統(tǒng)初學者)實現(xiàn)諸如實時事件驅(qū)動、卡爾曼濾波等復雜的系統(tǒng)算法應用程序,而不需要了解底層的設備配置或調(diào)試。借助該模塊庫,用戶能夠利用可視化的交互式程序設計環(huán)境,不用手工編寫C或匯編語言代碼,就可以將在Matlab/Simulink下的建模算法翻譯轉(zhuǎn)換為基于STM32微控制器的嵌入式系統(tǒng)程序。

        2 STM32軟件快速開發(fā)方法

        2.1 STM32軟件開發(fā)環(huán)境

        為保證軟件的統(tǒng)一性、一致性、可操作性和版本的連續(xù)性,并能夠在最小環(huán)境下開發(fā)成功,需要合理配置相關軟件。經(jīng)實驗驗證,在Microsoft Windows XP SP2下使用RapidSTM32系統(tǒng)最低軟件配置如下:

        ◆ Matlab 2009a(version 7.8)

        ◆ Simulink 2009(version 7.3)

        ◆ Real-Time Workshop 2009(version 7.3)

        ◆ Real-Time Workshop Embedded Coder 2009 (version 5.3)

        ◆ RealView MDK for ARM(version 4.0)

        ◆ Microsoft.Net Framework(version 3.5)

        配置完成后,在RapidSTM32開發(fā)模塊官方網(wǎng)站http://www.aimagin.com下載 RapidSTM32blockset,解壓后在Matlab 2009下打開并安裝RapidSTM32blockset即可。

        2.2 STM32軟件快速開發(fā)過程

        利用RapidSTM32,基于Matlab的STM32軟件快速開發(fā)過程包括建模、代碼生成、工程編譯、運行調(diào)試等環(huán)節(jié),如圖1所示[3]。這里重點介紹根據(jù)建模與代碼生成方法。

        圖1 基于MATLAB的STM32軟件開發(fā)過程

        2.2.1 建模與仿真

        按照上面方法成功安裝了目標庫后,打開系統(tǒng)仿真工具箱Simulink,在庫瀏覽器中就會看到針對嵌入式ARM Cortex-M3STM32微控制器的目標模塊庫RapidSTM32 blockse。在Matlab 2009下為STM32軟件建立一個mdl文件。其中一個系統(tǒng)仿真模型中可以有一個或多個圖模塊。為了仿真STM32嵌入式軟件系統(tǒng),首先需要加入系統(tǒng)時鐘設置和相應的STM32功能模塊模型。然后根據(jù)硬件目標板和系統(tǒng)工作環(huán)境的情況為STM32的功能模塊模型合理設置參數(shù),比如DAC模塊的引腳安排、輸出數(shù)據(jù)來源等。對應于實際系統(tǒng),在Simulink環(huán)境中用多個子模塊建立嵌入式系統(tǒng)軟件模型。

        2.2.2 生成代碼

        根據(jù)算法在Matlab/Simulink中建模并完成系統(tǒng)仿真后,選擇RealView MDK作為生成語言的種類,用Build model命令將所建立的模型轉(zhuǎn)換成MDK C代碼,會產(chǎn)生用于建立工程的多個.C文件和.h文件。選擇Keil μVision4作為目標嵌入式系統(tǒng)的軟件編譯環(huán)境。

        用RealView MDK編譯環(huán)境構建工程,把模型生成的嵌入式系統(tǒng)軟件C語言代碼在KeilμVision4環(huán)境下編譯通過,下載到目標嵌入式系統(tǒng)的STM32中運行,觀察代碼運行情況,并與手工代碼運行情況進行對比。對生成的軟件程序完成工程進行編譯,編譯結果下載到目標系統(tǒng)中執(zhí)行,可以滿足系統(tǒng)功能要求。

        3 應用實例

        實際工程中經(jīng)常需要產(chǎn)生滿足一定要求的信號波形。下面的實例說明如何通過模型化設計方法,利用Rapid-STM32模塊庫自動生成C語言代碼,快速實現(xiàn)控制STM32的DAC模塊的應用方法。本設計實例中,讓STM32的DAC產(chǎn)生y(t)=1.0*sin(w*t)+2函數(shù)波形。

        3.1 利用Matlab生成波形數(shù)據(jù)

        首先編寫產(chǎn)生上述數(shù)學函數(shù)波形的運算式并運行。在Matlab命令窗口運行下面的運算式:

        運行后得到繪制波形的各個參數(shù),刪除掉說明信息文字后將計算波形數(shù)據(jù)整理成如下數(shù)組表達形式:[2.0000 2.0314 2.0628 2.0941 2.1253 2.1564 2.1874 2.2181 2.2487 2.2790 ……]。

        3.2 利用Matlab Simulink設計程序模型[4]

        在Simulink Library Browser窗口里,選擇File/New/Model命令,打開模塊設計窗口,新建一個模型并保存為sin_boxing.mdl。打開 Matlab/Simulink窗口,從Simulink中選擇示波器加入到sin_boxing模塊設計窗口,從Rapid-STM32庫中分別選擇Device Configuration下的系統(tǒng)時鐘設置與On-chip peripherals下的任意函數(shù)發(fā)生器模塊加入sin_boxing模塊設計窗口工作區(qū),最后將各元件連接。

        選擇 Simulation/Configuration Parameters命令,在Configuration Parameters窗口的Real-Time Workshop項目設置中,將Target selection選項中選擇System target file為rapidstm32.tlc,Language選項設置為C。在 Real-Time Workshop/rapidstm32/options項目設置中將輸出文件交叉編譯工具選擇為RealView MDK。

        接下來設置各模塊參數(shù),完成系統(tǒng)時鐘設置和DAC參數(shù)設置。設置DAC Mode為Arbitrary DAC1,將上面步驟中生成的數(shù)據(jù)復制到DAC數(shù)據(jù)欄,根據(jù)信號頻率將采樣時間設置為0.000 1s。所有參數(shù)設置完畢后,連續(xù)運行兩次Update Diagram命令兩次后保存。參數(shù)設置完成后構建的STM32嵌入式系統(tǒng)模型如圖2所示。

        圖2 完成參數(shù)設置的STM32DAC仿真模型

        3.3 利用模型仿真生成應用程序

        運行模型后,可以觀察到如圖3所示的輸出波形,說明模型正確。在Matlab文件路徑窗口確定生成代碼輸出路徑后,在 Tool菜單下單擊 Real-Time Workshop/Build model命令開始自動生成MDK工程文件及代碼,命令窗口中開始輸出各種代碼文件生成信息,直至輸出如下信息形式,表示代碼文件生成過程結束。

        圖3 軟件模型仿真輸出波形

        按照前面確定的代碼文件輸出路徑,就可以發(fā)現(xiàn)自動生成的各種文件,如圖4所示。在MDK將生成的文件編譯成可執(zhí)行文件下載到STM32目標板即可順利執(zhí)行。

        圖4 生成的部分文件

        4 結 論

        ① 針對STM32微控制器目標系統(tǒng)的軟件開發(fā),利用專用模塊庫建立嵌入式系統(tǒng)軟件仿真模型,實現(xiàn)系統(tǒng)軟件代碼自動生成。與手工編寫代碼的開發(fā)周期相比,大大縮短了STM32系統(tǒng)軟件的開發(fā)周期,節(jié)約了時間成本,加快了開發(fā)進度。

        ② 使用具有可視化、交互式程序設計環(huán)境,把圖形化的算法與模型設計方法應用于ARM Cortex-M3內(nèi)核的STM32系列微控制器嵌入式軟件開發(fā),降低了STM32系列微控制器程序設計難度,降低了軟件工程師的勞動強度。

        [1]劉玉良,李剛,康凱.基于MATLAB的嵌入式系統(tǒng)軟件開發(fā)[J].天津大學學報,2008,41(5).

        [2]http://www.mathworks.com/matlabcentral/newsreader/view_thread/255878.

        [3]http://www.aimagin.com/.

        [4]Stephen J Chapman.MATLAB編程影印版[M].2版.北京:科學出版社,2003.

        猜你喜歡
        微控制器代碼嵌入式
        創(chuàng)世代碼
        動漫星空(2018年11期)2018-10-26 02:24:02
        創(chuàng)世代碼
        動漫星空(2018年2期)2018-10-26 02:11:00
        創(chuàng)世代碼
        動漫星空(2018年9期)2018-10-26 01:16:48
        創(chuàng)世代碼
        動漫星空(2018年5期)2018-10-26 01:15:02
        搭建基于Qt的嵌入式開發(fā)平臺
        物聯(lián)網(wǎng)技術在微控制器實驗教學中的應用
        電子制作(2017年14期)2017-12-18 07:07:58
        嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
        Atmel針對新一代物聯(lián)網(wǎng)應用發(fā)布全新32位微控制器
        Altera加入嵌入式視覺聯(lián)盟
        最新STM32設計工具增加對混合信號微控制器的支持
        无遮挡18禁啪啪羞羞漫画| 青青草免费在线视频导航| 国产精品自拍午夜伦理福利| 人妻av中文字幕久久| 精品国产aⅴ无码一区二区| 久久精品国产亚洲婷婷| 久久综合九色综合久久久| 69国产成人精品午夜福中文| 亚洲精品午睡沙发系列| 亚洲VA中文字幕欧美VA丝袜 | 日本午夜a级理论片在线播放| 亚洲国产精品久久精品| 四川老熟妇乱子xx性bbw| 久久中国国产Av秘 入口| 国产一区二区在线中文字幕| 在线中文字幕乱码英文字幕正常 | 国产精品人成在线观看| 亚洲一区二区久久青草| 亚洲国产综合一区二区| 深夜放纵内射少妇| 午夜精品久久久久久中宇| 亚洲国产高清美女在线观看 | 亚洲无码性爱视频在线观看| 亚洲av少妇一区二区在线观看| 人妻精品久久久久中文字幕| 亚洲中文字幕无码永久在线| 无码视频一区=区| 亚洲中文字幕剧情类别| 少妇无码av无码一区| 四虎成人精品无码永久在线| 女同另类一区二区三区| 国产乱人精品视频av麻豆网站| 亚洲av日韩av在线观看| 久久精品这里只有精品| 一区二区三区蜜桃在线视频| 精品一区二区在线观看免费视频| 国产av麻豆mag剧集| 午夜亚洲AV成人无码国产| 伊人狼人大香线蕉手机视频| 伊甸园亚洲av久久精品| 久久精品国产99国产精2020丨|