目錄
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
只研究過兩天,後續沒機會參與模型開發,可惜可惜!