一般单片机应用系统的产品开发采用的是自下而上的过程,即根据应用的需求,选择相应的从器件进行系统的硬件设计、制作、调试到软件功能实现函数。在系统设计过程中,开发人员首先必须对特定硬件有较深入的了解,再总结出可以使用的方案。这种开发流程最大的弊端是,软件设计过程对硬件的依赖性很强,软件设计受到特定硬件平台的限制,而利用MATLAB/SIMULINK/RTW,可以完成一种基于模型的自上而下的开发流程。这种开发流程先搭建好整个系统的模型,可以直接设计算法,并且在SIMULINK中完成仿真过程。当仿真结构达到设计要求时,再通过 RTW自动生成C代码,由嵌入式交叉编译工具生成在目标机上运行的应用程序,可缩短产品的研发周期,降低产品的研发成本。
1 MATLAB/RTW代码生成原理
RTW(Real_TimeWorkshop)是MathWorks公司提供的代码自动生成工具,它可以使SIMULINK模型自动生成面向不同目标的代码。MATLAB7.O能生成ANSIC、ISOC和GNU源代码,它还提供了一个开放的接口,供第三方或者用户自己制定其他语言代码的自动生成。通过MATLAB/RTW可生成在PC、ARM、DSP等设备上运行的代码,以及在Windows、Unix、Linux、VxWorks等系统上的可执行文件。
RTW的代码生成过程如图l所示。

由图1可知,用户建立了SIMULINK模型,MATLAB/RTW将该模型生成一个rtw文件,提供给目标语言编译器TLC,系统再通过指定的目标编译工具将各个模块编译、链接成该模型的C源程序。如果选择了编译下载功能,则 RTW再调用make函数将源程序编译成能在目标机上运行的可执行文件,用户可将此文件移植到目标机上运行。
