购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.8 在Model Composer导入C/C++代码作为定制模块

本节将介绍在Model Composer模块中导入C/C++代码作为定制模块的方法。

4.8.1 建立C/C++代码

在本书给出的设计实例的路径下,建立名字为“simple.h”的文件,即

simple.h文件的内容如代码清单4-9所示。

代码清单4-9 simple.h文件

(1)在该段代码中,“#pragma XMC INPORT in1,in2”用于将in1和in2显式声明为输入端口;“#pragma XMC OUTPORT sum,diff”用于将sum和diff显式声明为输出端口。它们的声明格式为

(2)“template <int ROW,int COL>”代码用于定义模板变量ROW和COL,告诉编译器这是一个功能模板。输入和输出数组的真实维度in1[ROW][COL]、in2[ROW][COL]、sum[ROW][COL]和diff[ROW][COL]在仿真的时候由输入到模块的输入信号确定。

(3)代码清单4-9实现两个数组的相加和相减。

4.8.2 将代码导入Model Composer

本节将前面建立的代码导入Model Composer模块中,主要步骤包括:

(1) 将MATLAB工具定位到E:\fpga_dsp_example\model_composer路径下。

(2) 在MATLAB工具的控制台中输入 “xmcCreateLibrary(′userlib′,{′matrix_add_sub′},′simple.h′,{},{},′unlock′)” 命令。

其中:

① userlib为读者指定的Model Composer库的名字。

② matrix_add_sub为在源文件/头文件中所定义的将要导入Model Composer模块的函数名字。

③ simple.h为包含函数声明或者定义的头文件的名字(.h)。

④ 第一个“{}”内的内容为可选的源文件的名字(可选)。

⑤ 第二个“{}”内的内容为源文件的路径(可选)。

(3)输入命令后,自动弹出“Library:userlib-Simulink sponsored use”对话框,如图4.62所示。在该对话框中,生成了一个名字为“matrix_add_sub”的模块符号。

图4.62 “Library:userlib-Simulink sponsored use”对话框

(4)生成一个空白的设计界面,利用matrix_add_sub模块符号,构建一个验证模型,如图4.63所示。

图4.63 基于matrix_add_sub模块构建模型验证系统

:读者可以定位到本书配套资源的\fpga_dsp_example\model_composer路径下,打开名字为 “matrix_add_sub.slx” 的文件。

思考与练习4-10 :打开matrix_add_sub.slx文件,查看输入数组的数据类型,以及输入数组的数据维数与前面所建立的C/C++代码之间的关系。

4.8.3 将定制库添加到库浏览器中

本节将介绍如何将定制的库添加到库浏览器中,主要步骤包括:

(1)在本书提供资料的下面路径中,新建一个名字为“slblock.m”的脚本文件,即

slblock.m文件的内容如代码清单4-10所示。

代码清单4-10 slblock.m文件

(2)为了在库浏览器下使能定制库可用,必须打开EnableLBRepository参数。当使用xmcCreateLibrary将一个模块导入新的库中并且处于打开状态时,读者需要在MATLAB工具的控制台界面下输入下面的命令:

(3)在图4.62中,保存定制库到本书提供资料的下面路径下:

(4)在MATLAB工具的控制台界面中输入下面的命令:

(5)在MATLAB工具的控制台界面中输入下面的命令,将包含定制库的路径添加到搜索路径中:

(6)再次进入“Simulink Library Brower”界面,按【F5】按键,刷新库浏览器,刷新过程结束后,可以在库浏览器界面中看到读者的定制库userlib,如图4.64所示。

图4.64 将用户的定制库添加到Simulink库浏览器后的界面 j8qoB0WfR4wvkphsVjEc2v4Wl2LXagnKSvT6YuMEMz3YJfl/0g32bCGNXt1F5BqS

点击中间区域
呼出菜单
上一章
目录
下一章
×