littlebot
Published on 2025-04-08 / 1 Visits
0

【源码】基于C语言的EZ PD PMG1 MCU固件升级示例

项目简介

本项目基于C语言,利用EZ - PD™ PMG1 MCU实现基本的设备固件升级(DFU),即“引导加载”。项目包含引导加载程序(Bootloader app)和闪烁LED的应用程序(Blinky app)。引导加载程序能处理图像下载、验证和升级,验证通过后启动应用程序;Blinky app以5Hz频率持续闪烁LED,按下用户按钮时将控制权交给引导加载程序。目前仅支持I2C和USB_CDC进行DFU传输。

项目的主要特性和功能

  1. 固件升级功能:基于DFU中间件库的基本引导加载程序,可从主机下载应用程序并安装到设备闪存,完成固件升级。
  2. 双应用程序设计:包含引导加载程序和Blinky应用程序,可通过用户按钮事件动态切换。
  3. 多传输方式支持:支持I2C和USB_CDC两种DFU传输方式,可按需选择。
  4. 资源管理:明确引导加载程序和应用程序使用的资源,如I2C、USB、GPIO等,并合理规划内存布局。

安装使用步骤

环境准备

  1. 安装ModusToolbox™ software v2.3或更高版本(已在v2.3上测试)。
  2. 设置环境变量CY_SUPPORTED_KITS的值为"PMG1",以在ModusToolbox™软件下启用对PMG1部件和BSP的支持。
  3. 确保Board Support Package (BSP)的最低版本为1.2.0。

创建项目

可通过以下方式创建并打开项目: - Eclipse IDE for ModusToolbox™ software:点击“New Application”,在相关对话框选择支持套件和示例,按需修改应用名称和存储路径,点击“Create”完成创建。 - 命令行界面 (CLI):使用“project - creator - cli”工具,按要求输入参数创建项目,如project - creator - cli --board - id PMG1 - CY7110 --app - id mtb - example - pmg1 - hello - world --user - app - name MyHelloWorld --target - dir "C:/mtb_projects"。 - 第三方IDE:使用独立的Project Creator工具,或先按CLI方式创建应用并导入库,再用make <ide>命令导出到支持的IDE。

操作步骤

  1. 用USB线通过KitProg3 USB连接器将开发板连接到PC,用USB Type - C线将USBPD端口连接到USB - C电源适配器或PC。
  2. 将电源选择跳线(J5)的跳线短路器置于位置2 - 3以启用编程。
  3. 构建并将引导加载程序编程到开发板:
    • Eclipse IDE for ModusToolbox™ software:在Project Explorer中选择引导加载程序项目,在“Quick Panel”中点击“ Program (KitProg3_MiniProg4)”。
    • CLI:在终端执行make program命令,可手动指定目标板、工具链和传输方式,如make program TARGET = CY7110 TOOLCHAIN = GCC_ARM TRANSPORT_OPT = I2C
  4. 编程完成后,将电源选择跳线(J5)的位置更改为1 - 2,通过USBPD端口为套件供电,注意在电缆连接到电源时不要更改跳线位置。
  5. 引导加载程序自动启动并开始闪烁LED,确认套件LED以大约1Hz的频率闪烁。
  6. 生成可升级的应用程序映像:
    • Eclipse IDE for ModusToolbox™ software:在Project Explorer中选择blinky项目,在“Quick Panel”中点击“ Build (KitProg3_MiniProg4)”。
    • CLI:在终端执行make build命令,可手动指定目标板和工具链,如make build TARGET = CY7110 TOOLCHAIN = GCC_ARM
  7. 使用DFU Host工具进行设备固件升级:
    • 打开DFU Host tool,使用配置的传输方式连接到设备。
    • 选择生成的blinky_crc.cyacd2文件。
    • 根据引导加载程序中配置的传输方式(TRANSPORT_OPT)选择合适的端口,若为I2C,选择400kHz速度,设置地址为16,然后点击“Program”。
    • 观察进度条上的图像下载进度状态,等待下载完成。

切换程序

在应用程序运行时按下用户按钮可切换到引导加载程序,在引导加载程序运行时按下用户按钮可切换到应用程序,但只有当内存中有有效应用程序时,引导加载程序才会响应切换请求。同时,需确保App0和App1项目使用相同的工具链进行构建。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】