这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 板卡试用 » [FRDM-MCXA156测评]linux下cmake+gcc+pyocd开发环

共2条 1/1 1 跳转至

[FRDM-MCXA156测评]linux下cmake+gcc+pyocd开发环境搭建

菜鸟
2025-02-07 00:43:00     打赏

谢谢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的基本移植流程,敬请期待。


专家
2025-02-07 21:02:48     打赏
2楼

感谢分享


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]