基于S32K的MBD开发环境搭建
目录
1. 概念简介
1.1 toolbox的下载
www.nxp.com/mctoolbox (最下面)
注册登录后,可以下载到:
MBDToolboxS32KReleaseV2.0.0.zip
和
Motor Control Development Toolbox for S32K v1.0.0.zip
1.2 MCD toolbox描述
即:MBD电机控制工具箱
MCD工具箱是一个综合的工具箱集合。它包含了能加速NXP MCUs通过MBD方式来进行应用开发的开发速度的一些工具插件。即是“基于模型的设计(MBD)”开发环境的matlab/simulink的插件。
使用其,可以缩短项目周期。MCD工具箱包含了:
- simulink集成的-----嵌入式目标支持的NXP MCUs直接原型设计和PIL开发流程。
- 外设设备接口块和驱动程序
- 目标优化的数学和运动控制算法在目标MCU上有效执行
- 精确到Bit级的仿真结果
MCD工具箱,产生启动MCU和运行APP code所需的所有代码。同时支持多个编译器的构建。
特性:
- 内建的支持,通过RAppID bootloader程序程序,直接下载代码到目标MCU。
- 适用于电机控制之外的应用
- 免费许可
- 内建支持---NXP freeMaster工具
1.3 MBD toolbox描述
NXP基于模型的设计工具箱提供了集成的开发环境和工具链,用于自动配置和生成所有必需的软件 (包括初始化例程和设备驱动程序),以便在NXP MCU上执行复杂应用(例如:电机控制算法、通信协议CAN、SPI、 I2C、UART和基于传感器的应用)。
该工具箱包括NXP MCU的集成Simulink®嵌入式目标、外设设备模块和驱动程序、数学和电机控制库套件以及精确到位的仿真结果,提供面向软件和处理器在环(SIL和PIL)仿真的内部支持,支持快速原型设计、对在Matlab环境下开发的算法验证真实目标。
S32的MBD工具箱主要包含三部分(三种simulink 库):
- Ø S32K14X blocks
- Ø S32K14X 汽车数学(automotive math)和电机控制(motor control)
- Ø S32K14X示例
1.4 MCD工具箱和MBD工具箱的关系
MBD toolbox是开发中具体使用的库及示例
MCD toolbox是方便开发的一些插件集合,看名字和电机控制关系更大
1.5 在线调试工具FreeMaster
一款实时的调试、监控、数据可视化的界面工具。
可参阅网络分析文章:
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)支持通过以太网远程通信控制(免费版本不支持该功能)。
2. MBD开发环境搭建
对应文档:Model_Based_Design_Toolbox_Quick_Start.pdf
共5步:
- 点击下载的exe开始安装
- 安装freeMaster
- 注册并安装许可证
- 设置目标编译器
- 为MBD toolbox设置matlab路径
2.1 安装setup.exe
点击上面下载的MBD toolbox中的setup.exe安装S32K的MBD开发工具包。
2.2 安装freeMaster
安装好MBD toolbox后,再windows的 “开始---->程序----->Model based...----->安装----->***”
安装下面两部分:
- FreeMASTER Installer 程序安装
- FreeMASTER SCI Driver Install 这个SCI驱动安装
2.3 注册并安装许可证
虽然免费,但仍需要安装许可证的,不然编译时,会提示未安装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路径(请选择实际的安装路径)
2.4 设置目标编译器
MBD toolbox的目标编译器的使用,是需要配置的。用下面的脚本命令去安装这些环境变量。确保<COMPILER_STRING>_TOOL这个系统环境变量被调用到, 它对应于开发上所安装的具体编译器。该环境变量被定义的值如下所示:
例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,以便让系统环境变量生效。
2.5 为MBD toolbox设置matlab路径
为了让matlab识别到MBD toolbox,需要设置toolbox的具体PATH到matlab的环境变量。这是通过将MATLAB命令行中,将当前目录导航到MBD 的‘D:\MBDToolbox\mbdtbx_S32K’安装目录并运行mbd_s32k_path.m脚本完成的。(基本大概需要运行1~2分钟,提示成功)
3. MBD开发示例
3.1 认识S32 MBD库
三个层次:
- Ø On-chip 模块及外设示例库
- Ø 模型、验证和确认 库
- Ø 应用层 示例库
simulink的库已经可以所引导S32库了,如下图:
新建空白工程,从上述库导入即可。
3.2 开发板设置
3.3 Hello world示例
编译后,生成了test_uart_mbd_rtw文件夹,其中包含了如下所有文件。其中.elf(下一节有对elf的简介),可以用来调试。
3.4 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文件
4. 附:文档
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
只研究过两天,后续没机会参与模型开发,可惜可惜!