项目简介
本项目基于C语言,利用EZ - PD™ PMG1 MCU实现基本的设备固件升级(DFU),即“引导加载”。项目包含引导加载程序(Bootloader app)和闪烁LED的应用程序(Blinky app)。引导加载程序能处理图像下载、验证和升级,验证通过后启动应用程序;Blinky app以5Hz频率持续闪烁LED,按下用户按钮时将控制权交给引导加载程序。目前仅支持I2C和USB_CDC进行DFU传输。
项目的主要特性和功能
- 固件升级功能:基于DFU中间件库的基本引导加载程序,可从主机下载应用程序并安装到设备闪存,完成固件升级。
- 双应用程序设计:包含引导加载程序和Blinky应用程序,可通过用户按钮事件动态切换。
- 多传输方式支持:支持I2C和USB_CDC两种DFU传输方式,可按需选择。
- 资源管理:明确引导加载程序和应用程序使用的资源,如I2C、USB、GPIO等,并合理规划内存布局。
安装使用步骤
环境准备
- 安装ModusToolbox™ software v2.3或更高版本(已在v2.3上测试)。
- 设置环境变量CY_SUPPORTED_KITS的值为"PMG1",以在ModusToolbox™软件下启用对PMG1部件和BSP的支持。
- 确保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。
操作步骤
- 用USB线通过KitProg3 USB连接器将开发板连接到PC,用USB Type - C线将USBPD端口连接到USB - C电源适配器或PC。
- 将电源选择跳线(J5)的跳线短路器置于位置2 - 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
。
- Eclipse IDE for ModusToolbox™ software:在Project Explorer中选择引导加载程序项目,在“Quick Panel”中点击“
- 编程完成后,将电源选择跳线(J5)的位置更改为1 - 2,通过USBPD端口为套件供电,注意在电缆连接到电源时不要更改跳线位置。
- 引导加载程序自动启动并开始闪烁LED,确认套件LED以大约1Hz的频率闪烁。
- 生成可升级的应用程序映像:
- Eclipse IDE for ModusToolbox™ software:在Project Explorer中选择blinky项目,在“Quick Panel”中点击“
Build (KitProg3_MiniProg4)”。 - CLI:在终端执行
make build
命令,可手动指定目标板和工具链,如make build TARGET = CY7110 TOOLCHAIN = GCC_ARM
。
- Eclipse IDE for ModusToolbox™ software:在Project Explorer中选择blinky项目,在“Quick Panel”中点击“
- 使用DFU Host工具进行设备固件升级:
- 打开DFU Host tool,使用配置的传输方式连接到设备。
- 选择生成的blinky_crc.cyacd2文件。
- 根据引导加载程序中配置的传输方式(
TRANSPORT_OPT
)选择合适的端口,若为I2C,选择400kHz速度,设置地址为16,然后点击“Program”。 - 观察进度条上的图像下载进度状态,等待下载完成。
切换程序
在应用程序运行时按下用户按钮可切换到引导加载程序,在引导加载程序运行时按下用户按钮可切换到应用程序,但只有当内存中有有效应用程序时,引导加载程序才会响应切换请求。同时,需确保App0和App1项目使用相同的工具链进行构建。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】