您的位置 首页 被动

根据单片机的快速代码生成办法

摘要:基于模型设计是国外流行的一种先进的嵌入式系统开发方式,该方式主要利用开发工具Simulink以及Matlab的 RTW(Real—TimeWorkshop)工具箱的代码生成功能,采

摘要:根据模型规划是国外盛行的一种先进的嵌入式体系开发办法,该办法首要使用开发东西Simulink以及Matlab的 RTW(Real—TimeWorkshop)东西箱的代码生成功用,选用IAR作为中心东西,将RTW生成的C言语代码转为为在单片机 MSP430F2252中能够运转的HEX文件,最终经过Protues软件来验证代码的正确性。该办法无需规划者通晓各种编程言语,只需了解规划规范与完成原理,极大地降低了嵌入式体系开发难度,缩短了开发周期,而且能够确保代码的高效性、可靠性。

关键词:根据模型的规划;快速代码生成;Real—Time Workshop;MSP430F2252;Protues

跟着软硬件技能的不断发展,体系的开发周期显得越来越重要,但开发的时刻与体系安全性之间又有必定的抵触。假设仍旧选用传统的编写代码的办法,明显企业将会失掉许多的时机。文中介绍一种根据模型的快速代码生成的办法,能够满意这种高性能和快节奏研制的需求。MATLAB集成了各类使用领域的专用库函数和模块,用于数值核算、体系建模的软件包。

Simulink东西能够对分体系或单个仿真模型进行规划。RTW(Real—Time Workshop)是MATLAB供给的主动化代码生成东西,将Simulink模型框图转化为规范的C言语代码。学会使用 MATLAB/Simulink创立仿真模型,使用MATLABRTW东西,经过这种办法在IAR环境中对Simulink模型进行集成和调用,然后辅佐在科研及工程实践中精确、通用快速的树立散布交互仿真体系结构下的嵌入式体系仿真模型。该办法首要使用Matlab的RTW(Real- TimeWorkshop)东西箱的代码生成功用。本文介绍一种根据MATLAB/RTW完成实时仿真与嵌入式体系开发的办法,办法触及以下的开发环境:

Microsoft Windows 7;

MATLAB VersionR2010b;

IAR430V5.3;

Proteus7.8。

1 嵌入式开发技能的根本流程

该办法首要使用Matlab的RTW(Real—TimeWorkshop)东西箱的代码生成功用。选用IAR作为中心东西,将RTW生成的C言语代码转为为在单片机中能够运转的HEX文件,最终经过Proteus软件来验证代码的正确性,根本流程如图1所示。

a.jpg

2 树立了Simulink模型并生成了RTW代码

到此模型代码生成的前期作业现已预备结束,保存好模型,取名为Key_test。下一步便是翻开Real—Time Work—shop选项中的Build按钮,之后Matlab将主动生成模型代码。在Matlab的指令窗口中显现如下内容:

### Connecting to IAR Embedded Workhench…

### Writing source file key_led_430_data.e

### Writing source file key_led_430_main.c

到此,模型的代码也成功生成。

b.jpg

3 RTW生成代码

3.1 RTW生成代码的原理

RTW能够直接从Simulink模型生成代码而且主动树立能够在不同环境下运转的程序,这些环境包括实时体系和单机仿真。RTW为用户体系规划到简略完成供给了简易的接口,它的代码生成器彻底结构化,可敞开可扩展。此外,RTW还为用户供给了TLC(方针言语编译器)以扩大自身的功用,使得生成的实时代码能够在不同的环境下运转,这首要是经过生成方针板硬件的硬件驱动程序完成的。

RTW供给了两种完成办法:一般形式和外部形式。一般形式下,RTW生成模型的实时源程序和可执行程序,直接在方针机的实时操作体系上运转,可是不供给实时监控和实时参数修正的功用。

RTW答应自界说结构,它既能够在自界说环境下作业,也能够在现已存在的环境下作业。结构(Build)进程有make_rtw文件操控。首要,make_rtw文件编译simulink的模块框图,生成exmodel.rtw文件,然后make_rtw发动TLC发生代码,接着,make_rtw文件调用模块make文件grt_default.tmf生成exmodel.mk文件。最终,假如方针主机与Hos宏界说相匹配,就调用make文件从源程序生成可执行程序。

此外,make是一个功用函数,它能够修正和衔接生成码,而且生成可执行程序。RTW调用make树立实时可执行程序,make文件由模板make文件生成,生成的make文件的姓名是exmodel.mk,经过修正make文件能够对结构进程进行定制。RTW将exmodel. mk传递给make功用函数,make直接担任编译模型源程序和链接。

MATLAB自身会为用户供给一些适用于各类方针硬件的方针文件,可是在实践使用的进程中往往会遭到用户需求的约束,因而,主张挑选grt_tlc作为体系方针文件,可是grt_tlc生成的代码是运转于DOS下的,短少一些与方针硬件相匹配的中断向量表和存储器装备等文件。

3.2 RTW生成代码

RTW生成的代码都源于模板,下面这个比如中所挑选的模板是War.tlc。下面介绍该算法所触及的函数与数据结构。

用RTW主动生成的代码包括如下函数:

1)Main,包括在war_main.c文件中,是算法的首要函数,由它调用其他的函数。

2)rt_OneStep,包括于war_main.c文件中,是算法的最首要结构,由Main调用,一起也调用Matlab_Test_step函数用以完成了模型的详细操作要求。

3)Matlab_Test_initialize,包括在Matlab. Test.c文件中,由Main函数来调用,用来初始化模型。

4)Matlab_Test_step,包括在Matlab_Test.c中,由rt_OneStep调用,在该函数中描绘详细模型的输入与输出的联系。

用RTW主动生成的代码包括如下数据的结构:

①Matlab_Test_Y,用以存储输出信号的量值。

②用Matlab_Test_U,用以存储输入信号的量值。

4 选用IAR将RTW生成的C言语转为HEX文件

翻开IAR,树立一个空工程,并参加生成的代码,生成IAR工程,单击右键,在菜单中挑选Options,在对话框中的General Options目录下的Target子页面中挑选芯片类型MS P430F2252,在Linnker目录下的Output子页面中,将输出文件名界说为Key_board.hex,并在Output项中挑选 intel-extended,再单击东西栏按钮,编译工程(图3),窗口下部的信息显现编译成功。

c.jpg

5 试验仿真成果

翻开Proteus软件,新建一个工程文件,挑选MSP430F2252,正确地衔接根本电路;衔接好的电路图如图4所示。

d.jpg

点击Debug菜单后,挑选Use Remote Debug Monitor的选项。然后,双击MSP430F2252器材,之后弹出来器材修正对话框,最终在Program File选项中挑选IAR所生成的HEX文件,进行仿真试验。

6 定论

试验成果证明,根据Matlab环境下生成的代码的可靠性很高。经过Proteus的仿真成果能够看出来,由Matlab生成的代码相同具有正确性。节省了许多深重的作业和时刻,具有很大的实践指导意义。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ziliao/beidong/293001.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部