前言
适用芯片:
- CH579/ch578/ch577
- CH573/CH571
在CH579/CH578/CH577 上
跳转到bootloader
应用中跳转到bootlaoder
//下面代码放到main 函数开始的地方
//示例程序是 通过读取两次PA5 都为低电平才会跳转
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_PU);
if(!GPIOA_ReadPortPin(GPIO_Pin_5)) {
DelayMs(2);
if(!GPIOA_ReadPortPin(GPIO_Pin_5)) {
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
EnterCodeUpgrade();
}
}
GPIOA_ModeCfg(GPIO_Pin_5, GPIO_ModeIN_Floating);
在CH573/CH571
void EnterCodeUpgrade (void) {
FLASH_ROM_LOCK(0);
FLASH_ROM_ERASE( 0, 4096 );
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R16_INT32K_TUNE = 0xFFFF;
R8_RST_WDOG_CTRL |= RB_SOFTWARE_RESET;
R8_SAFE_ACCESS_SIG = 0;
while(1);
}