基于S32K的MBD开发环境搭建

目录

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. 附:文档


 

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步:

 

  1. 点击下载的exe开始安装
  2. 安装freeMaster
  3. 注册并安装许可证
  4. 设置目标编译器
  5. 为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

基于S32K的MBD开发环境搭建_第1张图片

2. 进入download log后,点击License Keys

3.  进一步生成时,需要填写Locating the HOST ID, DISK ID,得到该ID的方法是,matlab命令行中:输入mbd_s32k_hostid, 然后回车,得到该ID。【方法2:DOS命令行方式获取,见MCD文档】

基于S32K的MBD开发环境搭建_第2张图片

 

4. 结果填入对应位置,并填写name,应是随意的,目前自己生成时,填的NXP ID号,用途之一是,matlab会显示最后的修改人是“此name”。

5. 点击save all保存生成的license.data到D:\MBDToolbox\mbdtbx_S32K\lic路径(请选择实际的安装路径)

 

2.4 设置目标编译器

MBD toolbox的目标编译器的使用,是需要配置的。用下面的脚本命令去安装这些环境变量。确保_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库

基于S32K的MBD开发环境搭建_第3张图片

三个层次:

  • Ø On-chip 模块及外设示例库
  • Ø 模型、验证和确认 库
  • Ø 应用层 示例库

simulink的库已经可以所引导S32库了,如下图:

基于S32K的MBD开发环境搭建_第4张图片

 

新建空白工程,从上述库导入即可。

 

3.2 开发板设置

 

3.3 Hello world示例

基于S32K的MBD开发环境搭建_第5张图片

 

编译后,生成了test_uart_mbd_rtw文件夹,其中包含了如下所有文件。其中.elf(下一节有对elf的简介),可以用来调试。

基于S32K的MBD开发环境搭建_第6张图片

 

基于S32K的MBD开发环境搭建_第7张图片

 

 

 

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

 

只研究过两天,后续没机会参与模型开发,可惜可惜!

 

你可能感兴趣的:(生活)