欄目搜索
 
 
 
 

陕西快乐十分手机版竖:構建RTW下的嵌入式系統開發環境

更新日期:2008-01-14  作者:  來源:光學精密機械網(www.uvcfk.com)收集整理

陕西快乐十分即时开奖 www.uvcfk.com

來源:單片機嵌入式系統應用 作者:朱建武 韓樹人 周賢娟 劉生華

一般單片機應用系統的產品開發采用的是自下而上的過程,即根據應用的需求,選擇相應的從器件進行系統的硬件設計、制作、調試到軟件功能實現函數。在系統設計過程中,開發人員首先必須對特定硬件有較深入的了解,再總結出可以使用的方案。這種開發流程最大的弊端是,軟件設計過程對硬件的依賴性很強,軟件設計受到特定硬件平臺的限制,而利用MATLAB/SIMULINK/RTW,可以完成一種基于模型的自上而下的開發流程。這種開發流程先搭建好整個系統的模型,可以直接設計算法,并且在SIMULINK中完成仿真過程。當仿真結構達到設計要求時,再通過RTW自動生成C代碼,由嵌入式交叉編譯工具生成在目標機上運行的應用程序,可縮短產品的研發周期,降低產品的研發成本。


1 MATLAB/RTW代碼生成原理
RTW(Real_Time Workshop)是MathWorks公司提供的代碼自動生成工具,它可以使SIMULINK模型自動生成面向不同目標的代碼。MATLAB7.O能生成ANSIC、ISO C和GNU源代碼,它還提供了一個開放的接口,供第三方或者用戶自己制定其他語言代碼的自動生成。通過MATLAB/RTW可生成在PC、ARM、DSP等設備上運行的代碼,以及在Windows、Unix、Linux、VxWorks等系統上的可執行文件。
RTW的代碼生成過程如圖l所示。



由圖1可知,用戶建立了SIMULINK模型,MAT LAB/RTW將該模型生成一個rtw文件,提供給目標語言編譯器TLC,系統再通過指定的目標編譯工具將各個??楸嘁?、鏈接成該模型的C源程序。如果選擇了編譯下載功能,則RTW再調用make函數將源程序編譯成能在目標機上運行的可執行文件,用戶可將此文件移植到目標機上運行。


2 SIMU LlNK模型的代碼生成和在ARM上的移植
利用MATLAB/RTW功能在ARM上進行程序開發的方案有多種。最直接的方案就是選用RTW支持的軟硬件系統,在生成代碼和應用程序時,不需要用戶對編譯環境作任何更改,就能實現代碼的生成和下載。其次,可以先在ARM系統上移植嵌入式操作系統,由RTW生成應用程序??楹?,通過FTP遠程下載該???。這種方案在RTW生成代碼時,要安裝能生成目標系統的交叉編譯工具。第3種方案是更改RTW的目標編譯方案,加入硬件驅動,RTW生成目標C源代碼后由專用的ARM開發下載工具ADS編譯和下載程序。這里介紹第3種方案。
RTW的代碼生成過程分為4個步驟:①分析模型并對模型描述文件進行編譯;②由TLC從模型中生成代碼;③生成自定義的聯編文件(makefile);④生成可執行程序。
模型分析過程中,首先計算對應的仿真和??椴問?、采樣時間以及工作向量的大小,確定模型中各??櫚鬧蔥寫渦?。模型分析結束時形成模型的中間描述文件model.rtw,再由TLC生成C源代碼。此階段根據model.rtw,編譯和執行目標文件中的命令,生成C源代碼。第三階段是生成自定義的聯編文件model.mk,指導聯編程序從源代碼、主程序、庫文件或用戶自定義??榻斜嘁牒土唇?。最后由交叉編譯工具生成可以在目標機上運行的可執行文件。


代碼生成過程中,與目標系統相關的文件有system.tle、system.tmf和system_main.c等,這3個文件存在于matlab7/rtw/c文件夾中。每一種目標機都有1個system.tle、1個system_main.c和若干個system.tmf。創建自定義的目標編譯環境,需要創建以上3個文件。以LPC2200.tmf和LPC2200_main.c三個文件。為了簡化建立過程,在matlab7/rtw/c中先建立LPC2200文件夾,將通用實時目標grt中的grt.tlc、grt_lcc.tmf和grt_main.c復制到該文件夾中,并改名為LPC2200.tlc、LPC2200.tmf和LPC2200_main.c。修改LPC2200.tlc中指定的模板聯編文件:



修改LPC2200.tmf中目標編譯器參數和C源代碼包含的文件等:




在LPC2200_main.c中添加目標啟動函數,包含文件和接口驅動程序。這樣就構建了自定義目標的開發環境。在MATLAB/RTW的目標編譯器參數中多了1個LPC2200.tlc,如圖2所示。



選擇LPC2200目標后,在RTW主界面的Template makefile參數中出現了LPC2200.tmf,如圖3所示。



參數設置好,單擊Build按鈕,RTW就能自動生成適合在LPC2200上運行的C源代碼。將所生成的源代碼添加到ADS工程中,編譯下載后,就完成了SIMULINK模型到LPC2200上的移植。


結語


本文介紹的方法,已在ARM和51單片機上實現了相應的應用系統。通過快速生成代碼原型,降低了設計者手工編寫代碼的復雜度,加快了設計進程。對于一種固定的目標硬件系統,只要一次設計好編譯環境,就可以實現SIMULINK模型到ARM上的移植,即半實物仿真。本設計中, 不足之處在于沒有在目標機ARM系統上加載操作系統,因而每次更改模型時,必須重新下載所有的代碼,不適用于遠程程序下載。

 etyjtykjuy