请选择 进入手机版 | 继续访问电脑版
查看: 664|回复: 1

[分享] 基于SPSDK开发的烧写工具

[复制链接]

该用户从未签到

701

主题

6360

帖子

0

超级版主

Rank: 8Rank: 8

积分
24087
最后登录
2025-5-15
发表于 2024-12-26 17:40:51 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2024-12-26 18:52 编辑

基于SPSDK开发的烧写工具
摘要
本文档介绍了一款基于Secure Provisioning SDK(SPSDK)开发的烧写工具脚本。该脚本能够在MCU进入ISP模式后,直接将镜像文件烧写到Flash中。适用于希望避免安装和使用图形用户界面(GUI)操作的客户,具有简单实用的特点。此工具支持大部分NXP MCU新产品,包括MCX系列、LPC55xx、I.MX RT等。具体详情请参阅SPSDK官方网站。

SPSDK简介
SPSDK是基于Python开发的一个可靠且易于使用的软件开发工具包(SDK),专为NXP MCU产品设计。它为客户从设计到生产部署提供了坚实的基础,实现了设备连接、配置、数据下载上传以及安全相关操作等功能。本文仅使用了其中的设备连接和固件下载功能。


1. 安装SPSDK
在开始使用SPSDK进行开发之前,需要按照以下步骤完成安装:
1.1 安装Python
  • 版本要求:需要Python 3.9及以上版本。
  • 安装方法:访问Python官网下载并安装最新版Python。
1.2 创建Python虚拟环境
python -m venv venv
激活虚拟环境:venv\Scripts\activate/activate
更新PyPI至最新版本:python -m pip install--upgrade pip  
1.3 安装SPSDK
pip install spsdk
确认安装成功:SPSDK --help
如果安装成功,则会出现如下帮助助手。
Picture1.png


2. 使用SPSDK API实现烧写固件
当MCU进入ISP模式后,上位机通过SPSDK API与BOOT ROM进行交互。本文以USB接口为例,并选择MCXN947作为硬件平台。
2.1 导入必要的模块
  1. from spsdk.mboot.interfaces.usb import MbootUSBInterface
  2. from spsdk.mboot.mcuboot import McuBoot
复制代码
  • MbootUSBInterface:用于与通过 USB 接口连接的设备通信。
  • McuBoot:提供对 MCU Bootloader 的高级操作,如擦除、烧写flash等。

2.2 定义发送镜像文件的函数
  1. def send_firmware_to_device(data: bytes):
复制代码
参数data:用于接收发送到MCU的镜像文件。在函数内部主要实现连接设备,擦除flash,和烧写镜像文件三部分内容。

发送连接设备命令:
  1. interfaces = MbootUSBInterface.scan()
复制代码

发送擦除Flash命令:
  1.   mboot.flash_erase_all()
复制代码

发送烧写镜像文件命令:
  1. response = mboot.write_memory(address, data)
复制代码

2.3 调用函数发送更新命令
  1. if __name__ == "__main__":
  2.     with open("led_blinky.bin", "rb") as f:
  3.         firmware = f.read()
  4.     send_firmware_to_device(firmware)
复制代码


3. 测试
3.1 进入ISP-USB模式
  • 硬件准备:本文使用FRDM-MCXN947开发板进行测试。按住ISP按键然后重启开发板以进入ISP-USB模式。
3.2 准备工作
  • 将编写的脚本和镜像文件led_blinky.bin放置在同一路径下。
3.3 执行脚本
运行编写完成的Python脚本,若成功烧写固件,可以看到开发板上的LED灯闪烁,表明程序已开始运行。
Picture2.png


4. 总结
本文简要介绍了如何快速上手使用SPSDK进行固件烧写。SPSDK包含丰富的API和功能,能够实现与NXP产品的连接、配置、烧写及安全设置等操作。用户可以根据自身需求在此基础上进一步扩展开发。如有任何疑问或遇到问题,欢迎联系NXP技术支持团队获取帮助。


5. 致谢
感谢恩智浦工程师Marek提供的宝贵帮助和支持。


附录


基于SPSDK开发的烧写工具.pdf

225.49 KB, 下载次数: 4, 下载积分: 威望 1

update_firmware.zip

605 Bytes, 下载次数: 1, 下载积分: 威望 1

回复

使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 287 天

    连续签到: 10 天

    [LV.8]以坛为家I

    12

    主题

    938

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2025-5-15
    发表于 2024-12-26 19:20:16 | 显示全部楼层
    学习了
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-5-15 21:16 , Processed in 0.119511 second(s), 20 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表