先前给CH32V003的bootflash烧过程序,现在想把这部分程序通过wchlinke擦除,以备之后用来存储用户数据,请问应该如何操作可以擦除掉bootflash
热门产品 :
CH641: PD及无线充电专用MCU
先前给CH32V003的bootflash烧过程序,现在想把这部分程序通过wchlinke擦除,以备之后用来存储用户数据,请问应该如何操作可以擦除掉bootflash
您好,
CH32V003芯片允许用户擦除BOOT区域的代码,您可以参考EVT中USART_IAP文件夹下的CH32V003_IAP使用说明进行操作。
demo中的usart_iap看起来是用来下载更新用户代码flash的,并不能擦除bootflash,我通过在用户代码中使用以下代码擦除了boot flash区域,但是会出现ide直接下载可以正常运行用户程序,但是掉电后不能运行。(现象是用户代码刷了gpio_toggle,直接ide下载可以闪灯,但是重新上电后不能闪灯)请问该如何解决。
volatile uint32_t boot_flash_base = 0x1FFFF000; FLASH_Unlock_Fast(); for (int sum = 0; sum < 30; sum++) { FLASH_ErasePage_Fast(boot_flash_base); boot_flash_base += 64; } FLASH_Lock_Fast();
您好,
您将BOOT区擦除的目的是什么,存储数据还是更大的用户代码空间呢?如果是希望有更大的用户代码空间,建议您参考EVT中Boot Flash作为用户区的例程来使用。