ISP CMPA
单片机:LPC55S28
开发板:LPC55S28-EVK
按照用户手册,我的应用程序中有以下代码进入 ISP 模式,但它所做的只是重置系统并从我的应用程序开始。CMPA/CFPA 中的任何配置是否会影响进入 ISP 模式的能力。当前未配置 CMPA/CFPA(全为零)。在跳转到引导加载程序 (runBootloader) 之前,我的应用程序中是否需要设置任何内容。
...
#include "fsl_iap.h"
...
int main()
{
...
// 仅 ISP 模式和 USB(LPC55 用户手册第 9.3.4 节:runBootloader API)
uint32_t arg = 0xEB110000;
运行引导程序(&arg);
而 (1) {}
}
//////////////////////////////////////////////// ////////////
我在 fsl_iap.h/c 中添加了 RunBootloader 声明/定义:
void RunBootloader(void *arg)
{
BOOTLOADER_API_TREE_POINTER->runBootloader(arg);
}
//////////////////////////////////////////////// ///////////
fsl_iap 已经有以下定义:
#define BOOTLOADER_API_TREE_POINTER ((bootloader_tree_t *)0x130010f0U)
typedef struct BootloaderTree
{
void (*runBootloader)(void *arg); /*!< 启动引导加载程序执行的函数。*/
standard_version_t bootloader_version; /*!< 引导加载程序版本号。*/
const char *版权所有;/*!<版权字符串。*/
const uint32_t *保留;/*!< 不要使用。*/
flash_driver_interface_t flashDriver;
} bootloader_tree_t;
更多回帖