CH32V208GBU6通过程序写片上Flash的问题

昨天大致刷程序写了几次,然后读出来发现是能读写成功的,现在发现一旦芯片擦除Flash整个芯片就死机了,我怀疑是不是把程序区擦除掉了。


下面是擦除程序

#define PAGE_WRITE_START_ADDR  ((uint32_t)0x08008000) /* Start from 32K */

FLASH_Unlock();

FLASH_ClearFlag(FLASH_FLAG_BSY | FLASH_FLAG_EOP |FLASH_FLAG_WRPRTERR);

FLASH_ErasePage(PAGE_WRITE_START_ADDR);


我发现了几个可能出现问题的点,但是没有教程实在难弄,

1. 编译的时候,如下提示,64K的RAN, FLash 448K也好大,工程设置CH32V20x_D8W,实际硬件是CH32V208GBU6

make -j16 all 

Memory region         Used Size  Region Size  %age Used

           FLASH:       69196 B       448 KB     15.08%

             RAM:        9060 B        64 KB     13.82%

   text    data     bss     dec     hex filename

  68560    632   8428  77620  12f34RF_PHY.elf

2.烧录的时候芯片内存分配选的是RAM32K + ROM160KB


我是不是应该在MounRiver里面做分区啊

烧录的时候,将芯片的RAM配置为64K,需要大于LD文件的分配大小。

擦除的时候注意不要擦除到应用代码就可以了。



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