HighTec GNU编译器 +Matlab自...

16
Date Page 1 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn Siener Aug. 28 h , 2013 HighTec GNU编译器 +Matlab动代码生成(Matlab调用GNU

Transcript of HighTec GNU编译器 +Matlab自...

Page 1: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 1 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener

Aug. 28h, 2013

HighTec GNU编译器 +Matlab自动代码生成(Matlab调用GNU)

Page 2: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 2 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

通过一个简单的例子来阐述simulink建立的模型直接

生成可写入单片机的.elf文件。

通过插件把GNU和,matlab关联起来,使用matab建

立控制模型,选择MCU型号,生成代码,

调用GNU编译器,对生成的C代码结合GNU带有的底层驱

动库,进行编译,产生可直接写入到目标板子的.elf文件

整个过程不需要手动添加代码,只需要matlab建立模型。

Matlab建模

生成C代码

GNU编译器

编译、链接,产生.elf文件

UDE/UAD

TriBoard

Matlab调用GNU编译器

GNU底层驱动bsp文件

TC1797

P3

Simulink code

LED灯

底层code

Page 3: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 3 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

需要使用到的软件:

Matlab R2013a

HighTec GNU v4.6.3.0

UDE3.0

TriBoard1797

插件embedded_coder_htc_plugin_v0_02a

解压embedded_coder_htc_plugin_v0_02a产生两个文件

mathworks_embedded_coder_rel_v0_02a和tricore_bsp_v4x,

把这两个文件存放在F:\目录下

Page 4: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 4 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

打开matlab,设置matlab的工作路径如下、运行插件。

设置工作目录为

① 运行install_hightec_embedded.m ②

运行startup.m

Page 5: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 5 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

打开example里面的T007_LED.slx文件,打开了simulink模型

Page 6: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 6 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Simulation——Model Configuration Parameters,打开了Configuration Parameters窗口

Page 7: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 7 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Solver——选择Fixed-step,选择discrete(no continuous states)

① ② ③

Page 8: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 8 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Code Generation——Browse——hightec_embedded_tricore.tlc

Page 9: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 9 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和C代码生成

Code Generation——Report——Create code generation report

Page 10: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 10 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Code Generation——HighTec Options——Tricore Board Type:TriBoard-TC1797

Tricore CPU Type:tc1797

Page 11: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 11 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Code Generation——build,编译工程。

Page 12: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 12 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Build工程后,出现了生成代码报告,表明matlab模型成功的生成了c.h代码文件。

(如果弹出浏览窗口,要找到bsp路径,浏览F:\tricore_bsp_v4x\bsp\TriBoard-TC1797)

生成的.c.h文件

Page 13: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 13 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Build工程后,不但出现了代码生成报告 ,还生成了可直接写入到单片机的.elf文件

生成的.c.h文件

Page 14: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 14 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

使用UDE把生成把T007_LED.elf直接烧写进 TC1797,运行程序,可以看到LED1、LED2、

LED3闪烁着,闪烁的变化和所建立的simulink模型控制策略一样。

Page 15: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 15 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener Matlab建模和调用GNU

Matlab直接生成和MCU型号,以及编译器GNU相关的上层策略文件(.c.h

文件),这些文件之中不包括底层寄存器,但是包括一些编译器定义的

C语言规范和定义

底层驱动在bsp文件中(插件文件中)。

这种建模生成嵌入式代码的方式,方便快捷 、更有利益开发者花更多的时

间去研究控制策略,但是需要做好的底层驱动来配合。可能会造成底层驱

动开发不够灵活,并且要去购买做好的标准的底层驱动。

Page 16: HighTec GNU编译器 +Matlab自 动代码生成(Matlab调用GNUfile.elecfans.com/web1/M00/7D/E6/o4YBAFwQslaAcMeCABS0...TriBoard Matlab调用 GNU编译器 GNU底层驱 动bsp文件

Date

Page 16 Beijing Siener Electronics Tech. Development Ltd. Http://www.siener.cn

Siener 联系我们

联系人: 刘为文

手机: 13910762622

电话(Tel): 010-85791747

E-mail: [email protected]

网 址: www.siener.cn

http: //www.pls-mc.com http://www.hightec-rt.com