CH32V208写Flash问题

写Flash时发现,除了前128K,后面写不了,卡住了。

代码:

uint8_t FLASH_backup()

{

    uint32_t i;

    uint32_t src, dest;


    __disable_irq();


    src = (uint32_t)0x08000000;

    dest = (uint32_t)0x08038000;

#if 1

    //#define FLASH_TOTAL_PAGE    (224*4)

    for(i=0;i

    {

        PRINTF("2 SourcePage %d 0x%08X\r\n", i, src);

        PRINTF("2 ErasePage %d 0x%08X\r\n", i, dest);

        FLASH_ROM_ERASE(dest, 256);

        PRINTF("2 ProgramPage %d 0x%08X\r\n", i, dest);

        FLASH_ROM_WRITE(dest, (uint32_t *)src, 256);


        src += 0x100;

        dest += 0x100;

    }

#else

    PRINTF("3 SourcePage %d 0x%08X\r\n", i, src);

    PRINTF("3 ErasePage %d 0x%08X\r\n", i, dest);

    FLASH_ROM_ERASE(dest, 224 * 1024);

    PRINTF("3 ProgramPage %d 0x%08X\r\n", i, dest);

    FLASH_ROM_WRITE(dest, (uint32_t *)src, 224 * 1024);

    PRINTF("3 ProgramPage end\r\n");

#endif

    __enable_irq();


    return 0;

}

#endif


Flash配置:128k+64k

下载配置:image.png


您好,根据你的配置,128K后面区域为非零等待区域,若要在非零等待区域使用快速编程方式,需要将快速编程的几个函数放在零等待区域。可以在非零等待区域使用标准编程即2字节编程方式进行编程。


只有登录才能回复,可以选择微信账号登录