关于CH32V系列MCU FLASH地址的分配
在MRS开发环境下,针对CH32V系列MCU FLASH分配,具体方法如下:
比如开辟一段空间,存放数组等数据,首先在ld文件中修改FLASH分配,如下图:
.consumer_flash1 : { . = ALIGN(4); }AT>FLASH1 .consumer_flash2 : { . = ALIGN(4); }AT>FLASH2
其次,在程序中使用分配好的FLASH1和FLASH2,如下图,将两个数组分别放到FLASH1区域和FLASH2区域。然后打印查看对应的地址和数据,发现没有问题,说明操作成功。
const uint8_t __attribute__((section(".consumer_flash1"))) user_data1[20] = {4,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0x0}; const uint8_t __attribute__((section(".consumer_flash2"))) user_data2[20] = {5,2,3,4,5,6,7,8,9,0xa,0xb,0xc,0xd,0xe,0x0}; printf("%x\r\n", user_data1); printf("%d\r\n", user_data1[0]); printf("%x\r\n", user_data2); printf("%d\r\n", user_data2[0]);
最后可通过编译器查看分配空间是否合理,如下,分配合理。