目录
1. 概念简介
1.1 toolbox的下载
1.2 MCD toolbox描述
1.3 MBD toolbox描述
1.4 MCD工具箱和MBD工具箱的关系
1.5 在线调试工具FreeMaster
2. MBD开发环境搭建
2.1 安装setup.exe
2.2 安装freeMaster
2.3 注册并安装许可证
2.4 设置目标编译器
2.5 为MBD toolbox设置matlab路径
3. MBD开发示例
3.1 认识S32 MBD库
3.2 开发板设置
3.3 Hello world示例
3.4 elf文件简介
4. 附:文档
www.nxp.com/mctoolbox (最下面)
注册登录后,可以下载到:
MBDToolboxS32KReleaseV2.0.0.zip
和
Motor Control Development Toolbox for S32K v1.0.0.zip
即:MBD电机控制工具箱
MCD工具箱是一个综合的工具箱集合。它包含了能加速NXP MCUs通过MBD方式来进行应用开发的开发速度的一些工具插件。即是“基于模型的设计(MBD)”开发环境的matlab/simulink的插件。
使用其,可以缩短项目周期。MCD工具箱包含了:
MCD工具箱,产生启动MCU和运行APP code所需的所有代码。同时支持多个编译器的构建。
特性:
NXP基于模型的设计工具箱提供了集成的开发环境和工具链,用于自动配置和生成所有必需的软件 (包括初始化例程和设备驱动程序),以便在NXP MCU上执行复杂应用(例如:电机控制算法、通信协议CAN、SPI、 I2C、UART和基于传感器的应用)。
该工具箱包括NXP MCU的集成Simulink®嵌入式目标、外设设备模块和驱动程序、数学和电机控制库套件以及精确到位的仿真结果,提供面向软件和处理器在环(SIL和PIL)仿真的内部支持,支持快速原型设计、对在Matlab环境下开发的算法验证真实目标。
S32的MBD工具箱主要包含三部分(三种simulink 库):
MBD toolbox是开发中具体使用的库及示例
MCD toolbox是方便开发的一些插件集合,看名字和电机控制关系更大
一款实时的调试、监控、数据可视化的界面工具。
可参阅网络分析文章:
http://bbs.elecfans.com/jishu_470451_1_1.html
FreeMaster作为图像化的在线调试工具,具有友好的界面和实用的性能,不仅支持简单的串口SCI调试,而且最新版更是开始支持BDM(HC08/HCS08/HC12/HCS12/HCS12x)、JTAG(针对56F800系列DSC)、USB、CAN、Ethernet等在线调试(CAN和Ethernet需要在付费版本里才有,不过前几种已经够用了)。
MCD工具包安装后,会有freeMaster的文件夹,安装见下面开发环境搭建章节。
开发者选项中,会出现freeMaster2.0运行程序和user manual
FreeMaster的一些特点:
(1)图形化调试环境;
(2)支持RS232通信接口和其他如BDM、JTAG、CAN接口等等;
(3)实时跟踪嵌入式C中的变量;
(4)虚拟话的示波器窗口实时显示跟踪变量(其跟踪速率受你选用的通信接口的波特率所限);
(5)通过目标板上的记录区(Recorder)快速读取数据;
(6)内置支持标准数据类型(包括整型,浮点,位等);
(7)支持Active X 接口支持VBScript和JScript;
(8)支持Matlab仿真接口;
(9)支持通过以太网远程通信控制(免费版本不支持该功能)。
对应文档:Model_Based_Design_Toolbox_Quick_Start.pdf
共5步:
点击上面下载的MBD toolbox中的setup.exe安装S32K的MBD开发工具包。
安装好MBD toolbox后,再windows的 “开始---->程序----->Model based...----->安装----->***”
安装下面两部分:
虽然免费,但仍需要安装许可证的,不然编译时,会提示未安装license。
www.nxp.com/mctoolbox
产生key的的步骤:(此部分MCD的help目录下的license安装说明的更好些)
1. 进入下载页面,点击download log
2. 进入download log后,点击License Keys
3. 进一步生成时,需要填写Locating the HOST ID, DISK ID,得到该ID的方法是,matlab命令行中:输入mbd_s32k_hostid, 然后回车,得到该ID。【方法2:DOS命令行方式获取,见MCD文档】
4. 结果填入对应位置,并填写name,应是随意的,目前自己生成时,填的NXP ID号,用途之一是,matlab会显示最后的修改人是“此name”。
5. 点击save all保存生成的license.data到D:\MBDToolbox\mbdtbx_S32K\lic路径(请选择实际的安装路径)
MBD toolbox的目标编译器的使用,是需要配置的。用下面的脚本命令去安装这些环境变量。确保
例1:
GCC_S32K_TOOL = C:/NXP/S32DS_ARM_v1.3/Cross_Tools/gcc-arm-none-eabi-4_9
例2:
IAR_TOOL = C:/Program Files (x86)/IAR Systems/Embedded Workbench 7.3
例3:
GHS_TOOL = C:/ghs/multi517
具体盘符,根据自己的实际值填写。 配置后重启matlab,以便让系统环境变量生效。
为了让matlab识别到MBD toolbox,需要设置toolbox的具体PATH到matlab的环境变量。这是通过将MATLAB命令行中,将当前目录导航到MBD 的‘D:\MBDToolbox\mbdtbx_S32K’安装目录并运行mbd_s32k_path.m脚本完成的。(基本大概需要运行1~2分钟,提示成功)
三个层次:
simulink的库已经可以所引导S32库了,如下图:
新建空白工程,从上述库导入即可。
编译后,生成了test_uart_mbd_rtw文件夹,其中包含了如下所有文件。其中.elf(下一节有对elf的简介),可以用来调试。
(本小节摘自网络,时间久远,不在备注,若有异议,请联系移除)
文件的内容:
1. BIN文件是 raw binary 文件,这种文件只包含机器码。
2. ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。
因此ELF文件的体积比对应的BIN文件要大。
文件的执行:(linux为例)
1. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行;
FILE *fp = fopen("vmlinux.bin", "rb");
fread(VMLINUX_START, 1, VMLINUX_SIZE, fp);
((void (*)(void))VMLINUX_START)();
2. 执行ELF程序则需要一个ELF Loader。
现在知道了吧,uboot和Linux kernel启动的时候是没有ELF Loader的
所以烧在flash上的文件只能是raw binary格式的,即镜像文件image
文件的转换:
1. 通过gcc编译出来的是elf文件
2. 通过objcpy可以把elf文件转换为bin文件
S32 MBD用户手册,介绍了每个模块,详细,共5.8M, 190页:
D:\NXP\mbd\MBDT-User-Manual-for-S32K.pdf
License的安装:
D:\NXP\mbd\MBDT-License-Installation.pdf
D:\MCToolbox\mctbx_S32K\help\Motor_Control_Toolbox_License_Installation.pdf
入门安装文档,本文基于此文档:
D:\NXP\mbd\MBDT-Quick-Start.pdf
只研究过两天,后续没机会参与模型开发,可惜可惜!