您的当前位置:首页正文

Matlab嵌入式系统的代码生成

来源:九壹网
龙源期刊网 http://www.qikan.com.cn

Matlab嵌入式系统的代码生成

作者:于丹,孙艳,代玉银

来源:《电脑知识与技术》2010年第16期

摘要:嵌入式系统是计算机技术,通信技术,半导体技术,微电子技术,语音图象数据传输技术,甚至传感器等先进技术和具体应用对象相结合后的更新换代产品。Matlab作为美国 MathWorks公司开发的用于概念设计,算法开发,建模仿真,实时实现的理想的集成环境。其强项就是其强大的矩阵计算以及仿真能力。该文简要介绍了Matlab嵌入式系统的代码生成。 关键词:Matlab;嵌入式系统;驱动程序

中图分类号:TP311 文献标识码:A文章编号:1009-3044(2010)16-4576-02

The Matlab Code of Born YU Dan, SUN yan, DAI Yu-yin

(Basic Course Department of Aviation University of Air Force, Changchun 130022, China) Abstract: The built-in system is the product of renewal changes generation that combined with calculator technique, correspondence technique, semi-conductor technique, micro-electronics

technique, speech portrait data delivers technique, spreadfeeling machine and so on. The Matlab is the ideal integrated environment that was developed by the American MathWorks company which was used forthe concept design the development of calculate way set up mimicry true the realization Of solid hour. Its strong item is the matrix calculation and the ability of imitating true.This text synopsis introduced the two ways to born codes about Real-Time Workshop(RTW) and Stateflow Coder of the Matlab built-in system.

Key words: Matlab; built-in system; code of born 1 概述

Matlab是英文MATrix LABoratory(矩阵实验室)的缩写,它是由美国MathWorks公司推出的用于数值计算和图形处理计算系统环境,专门以矩阵的形式处理数据。除了具备卓越的数值计算能力外,它还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能,是国际公认的和Mathematica、Maple并列的三大数学软件之一,其强项就是其强大的矩阵计算以及仿真能力。

龙源期刊网 http://www.qikan.com.cn

2 Matlab代码生成 2.1 代码生成工具

在Matlab 产品族中,自动化的代码生成工具主要有 Real-Time Workshop(RTW)和 Stateflow Coder,这两种代码生成工具可以直接将 Simulink 的模型框图和 Stateflow 状态图转换成高效优化的程序代码。利用 RTW 生成的代码简洁、可靠、易读。目前 RTW 支持生成标准的 C 语言代码,并且具备生成其他语言代码的能力。整个代码的生成、编译以及相应的目标下载过程都是自动完成的,用户需要做得仅仅使用鼠标点击几个按钮即可。 MathWorks 公司针对不同的实时或非实时操作系统平台,开发了相应的目标选项,配合不同的软硬件系统,可以完成快速控制原型(Rapid Control Prototype)开发、硬件在回路的实时仿真( Hardware-in-Loop )、产品代码生成等工作。

2.2 Real-Time Workshop代码生成 2.2.1 Real-Time Workshop工作过程 Real-Time Workshop在Simulink中建模: 1) 离散系统; 2) 连续系统;

3) 异步系统(事件驱动)。 用Real-Time Workshop生成代码: 1) 生成标准C代码;

2) 生成针对目标的makefile。 编译成为目标平台可执行代码:

使用makefile生成的代码在目标平台上运行应用程序: 1) 参数调节; 2) 信号监测。

2.2.2 Real-Time Workshop的用途

龙源期刊网 http://www.qikan.com.cn

Real-Time Workshop 是一个功能强大,应用面极广的产品。其应用方向可归结为这么三种类型: 快速原型: 1) 支持代码监视; 2) 支持在线调参; 3) 快速原型目标。 嵌入式系统设计:

1) 针对运行速度和存储空间占用进行优化; 2) 适用于产品开发;

3) 仍然可以监视并进行参数调整。 快速仿真: 1) 自动进行仿真; 2) 参数的批量装载。

2.2.3 Real-Time Workshop实现途径

Real-Time Workshop可用来做系统实现工具,提供了从Simulink 系统级设计到硬件实现的直接途径。这大大加快了设计的步伐,降低了成本。 2.3 Stateflow Coder——从Stateflow状态图中生成代码 2.3.1 Stateflow Coder代码生成

Stateflow Coder是一个单独提供的与Stateflow结合使用的工具,可以生成嵌入式整型,浮点型,或生成用于单机的固定点C代码。使用Stateflow和Stateflow Coder,用户可以生成Simulink模型中的Stateflow部分特有的代码,也可以生成易于插入到已有程序中的子程序代码。并且这些生成的代码可读性强并带有完整的注释。

Stateflow Coder 允许用户把自定义的 C 代码结合到 Stateflow 状态图中以提高 Simulink 和 Stateflow 的仿真能力。也允许用户定义并包括自定义的整体变量,这些变量可以被 Stateflow 生成代码和用户自定义的代码所共享。

龙源期刊网 http://www.qikan.com.cn

由 Stateflow Coder 生成的代码可以整合到由 Real-Time Worshop 生成的代码中。用于快速控制原型、硬件在回路仿真、嵌入式应用当中。 2.3.2 Stateflow Coder代码生成特点

Stateflow Coder可以直接从Simulink模型的Stateflow部分生成定制化的C代码。它有以下特点:

1) 支持所有的 Stateflow 语法; 2) 支持所有的 Stateflow 语法; 3) 支持所有的 Stateflow 语法; 4) 用户的注释传递到生成的代码中; 5) 与外部的 C 代码结合使用;

6) 为最小的脚本和最快的运行生成高度优化的代码; 7) 使用 bitset 选项来减少内存的需求;

8) 生成多实例兼容的代码,使用户在不同的情况下无须复制代码就实现功能; 9) 可以指定在生成代码中内嵌图形函数最大限度提高代码效率; 10) 图形函数中的不必要的初始化部分被删除; 11) 优化简单的 if 语句和 for 循环的使用。

参考文献:

[1] 探矽工作室.嵌入式系统开发圣经[M].中国铁道出版社,2002.

[2] [美]巴耳(Barr.M). C/C++嵌入式系统编程[M].于志宏,译.北京:中国电力出版社,2001. [3] 齐星刚,赵刚,李原.在Matlab/Simulink平台上DSP代码的自动生成[J].中国测试技术,2005,31(1).

龙源期刊网 http://www.qikan.com.cn

因篇幅问题不能全部显示,请点此查看更多更全内容

Top