基於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

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

 

只研究過兩天,後續沒機會參與模型開發,可惜可惜!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章