1、前言
STM32CubeIDE 的工程联调功能太好用了,特别是调试 BOOT 和 APP 的场景下,可以让大家清楚的看到程序是如何一步一步的从 BOOT 跳转到 APP 的,强烈的视觉冲击,让人眼前一亮,拨云见日,让 bug 无处遁形。
2、准备
刚好手上有一块 STM32H563 的 NUCLEO 板,那我们就基于该开发板来一步一步展现 IAP 工程联调的美妙吧。首先通过 STM32CubeMX 准备 IAP 的 BOOT 和 APP 的示例工程。
2.1. 制作 BOOT 工程
BOOT 工程我们准备了常规的 LED 点灯程序,我们使能了 ICACHE,配置了外部按键中断(并使能中断),以及板子上的三个 LED 灯(GPIO output)。
2.2. 制作 APP 工程
APP 工程的基本配置与 BOOT 工程完全一样,可以直接导入 BOOT 工程的STM32CubeMX 的配置,故在此不重复展示。
3、调试配置
准备好工程后,接下来我们就可以配置 BOOT 工程的调试选项了。在 BOOT 工程的调试选项中,新增 APP 工程的调试配置。
4、小结
这里我列举出可能会出错的地方,方便大家顺利实验。
- 在准备好 BOOT 和 APP 的工程后,需要先通过 STM32CubeIDE 将 APP 的程序下载到开发板上。
- 本文档中的演示示例,BOOT 工程在跳转到 APP 代码之前,需要失能 ICACHE,因为在 APP 工程中,ICACHE 的初始化函数如果判断到 ICACHE 是激活的话,会直接进入到错误处理函数,造成 APP 代码无法往后执行。
阅读全文
551