谢谢eepw给予这个开发板的试用机会,板子实物开箱如图:



肉眼可见板子做工优良,板子底部四脚都有橡皮圈,所以在桌子上声音拖动、放置等声音很轻柔没那么刺耳,笔者见过很多厂商的开发板似乎只要它家会注意这么多细节。
先说说板子概况:开发板基于NXP MCXA156VLL MCU,此MCU基于Arm Cortex-M33® 96MHz,flash高达1MB的闪存,sram高达128KB,一个带phy的usb全速控制器,两个LPSPI控制器,四个LPI2c,五个LPUART,一个I3C控制器,一个FlexIO,一个flexcan,两个flexpwm,5个32位timer等等。再看看板载情况:一个P3T1755DPJI3C/I²C 温度传感器,一个can phy,一个基于LPC55S69做的daplink(默认是cmsis dap固件,可以刷成jlink lite好像,但笔者没试过,CMSIS DAP用着挺好的),一个USB TYPEC口连接到MCU的usb,另一个usb typec连接到板载的daplink调试器,其它没什么了,MCU针脚大部分通过PMOD/mikroBUS等接口引出。
题外话:做daplink调试器的MCU比MCXA156自身强大得多嘿嘿。
测评第一步需要搭建下linux开发环境,一来:笔者一直是在linux系统下开发;二来笔者试用这个开发板最终目的是初步移植nuttx RTOS到MCXA156平台上。nuttx在非*nix系统下开发非常不方便,可以说甚至不支持吧。开发环境主要解决toolchain、工程源码组织和调试烧录。toolchain比较简单,安装arm-none-eabi-gcc即可,工程源码笔者想基于cmake做(剧透一下,其实nxp官方的mcuxsdk也是用cmake组织的),调试烧录用pyocd吧。
MCXA156 pack的下载安装
想用pyocd调试烧录MCXA156一个前提需要安装对应的pack包,我们看看nxp官方是不是已经上传到keil官网了
$ pyocd pack find mcxa156 Part Vendor Pack Version Installed --------------------------------------------------------------- MCXA156VLL NXP NXP.MCXA156_DFP 19.0.0 False MCXA156VMP NXP NXP.MCXA156_DFP 19.0.0 False MCXA156VPJ NXP NXP.MCXA156_DFP 19.0.0 False
Nice,说明可以直接pyocd命令安装MCXA156的pack,不用去官网单独下载pack了
$ pyocd pack install MCXA156VLL Downloading packs (press Control-C to cancel): NXP.MCXA156_DFP.19.0.0 Downloading descriptors (001/001)
看看安装成功与否:
$ pyocd list -t ... mcxa156 NXP MCXA156 MCXA156 pack mcxa156vll NXP MCXA156VLL MCXA156 pack mcxa156vmp NXP MCXA156VMP MCXA156 pack mcxa156vpj NXP MCXA156VPJ MCXA156 pack ...
可以看到已经支持MCXA156了
mcuxsdk下载
可从https://github.com/nxp-mcuxpresso/mcux-sdk下载release版或者自己west sync,但是如果没有看源码历史提交的需求,下载release包挺合适的,这个仓库包含了所有nxp mcu的code,所以非常的大。
点灯大师来了
验证开发环境搭建是否成功点灯最简单也最有效,mcuxsdk下其实做好了,代码在mcuxsdk/examples/frdmmcxa156/driver_examples/gpio/led_output
板子出厂默认应该也是一个点灯程序,咱们要验证pyocd能否成功烧录,最好自己改下源码,比如笔者修改gpio_led_output.c如下:
--- gpio_led_output.c
+++ gpio_led_output.c
@@ -69,6 +69,7 @@
     BOARD_InitDebugConsole();
     /* Print a note to terminal. */
+    PRINTF("\r\n Hello MCXA156\r\n");
     PRINTF("\r\n GPIO Driver example\r\n");
     PRINTF("\r\n The LED is blinking.\r\n");编译
$ export ARMGCC_DIR=/usr cd mcuxsdk/examples/frdmmcxa156/driver_examples/gpio/led_output/armgcc $ cmake -DCMAKE_TOOLCHAIN_FILE="../../../../../../core/tools/cmake_toolchain_files/armgcc.cmake" -DCMAKE_BUILD_TYPE=release -B build $ cmake --build build ... [100%] Linking C executable mcuxsdk/examples/frdmmcxa156/driver_examples/gpio/led_output/armgcc/release/gpio_led_output.elf Memory region Used Size Region Size %age Used m_interrupts: 420 B 512 B 82.03% m_text: 8676 B 1048064 B 0.83% m_data: 3728 B 120 KB 3.03% m_sramx0: 0 B 8 KB 0.00% [100%] Built target gpio_led_output.elf
release/gpio_led_output.elf就是我们要烧录的固件
烧录
pyocd load -e sector -t mcxa156vll release/gpio_led_output.elf
镜像烧录完毕后,板子会被自动reset,然后minicom下就能看到如下打印了:
Hello MCXA156 GPIO Driver example The LED is blinking.
同时板载LED开始有规律的闪烁。开发环境搭建成功。下一篇将会讲述一个nuttx RTOS的基本移植流程,敬请期待。

 
					
				
 
			
			
			
						
			 
					
				 我要赚赏金
 我要赚赏金 STM32
STM32 MCU
MCU 通讯及无线技术
通讯及无线技术 物联网技术
物联网技术 电子DIY
电子DIY 板卡试用
板卡试用 基础知识
基础知识 软件与操作系统
软件与操作系统 我爱生活
我爱生活 小e食堂
小e食堂

