Обнаружил, что с некоторого момента WCH внесли изменения в код
инициализации CH579, в частности - шаманят с недокументированными
регистрами флеша (R8_CFG_FLASH и R32_MISC_CTRL). Может оно как-то
связано. void SystemInit(void)
{
uint8_t flash_cfg;
flash_cfg = R8_CFG_FLASH & RB_CFG_FLASH_X;
if(flash_cfg >= 8 && flash_cfg <= 13)
{
flash_cfg = 2 + (flash_cfg - 8);
if(flash_cfg >= 6)
{
flash_cfg = 6;
}
flash_cfg = (R8_CFG_FLASH & (~ RB_CFG_FLASH_X)) | flash_cfg;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R8_CFG_FLASH = flash_cfg;
R8_SAFE_ACCESS_SIG = 0;
}
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG1;
R8_SAFE_ACCESS_SIG = SAFE_ACCESS_SIG2;
R16_CLK_SYS_CFG = (2<<6)|0x08;// 32M -> Fsys
*((PUINT16V)0x40001048) |= 4;
R8_SAFE_ACCESS_SIG = 0;
mDelayuS(10);
/* 开启电压监控 */
PowerMonitor( ENABLE );
}
https://github.com/SoCXin/CH579/blob/master/src/EVT/EXAM/SRC/StdPeriphDriver/CH57x_clk.c