关于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]);

 

最后可通过编译器查看分配空间是否合理,如下,分配合理。

 

 

  

posted @ 2023-08-16 10:48  ZaiLi  阅读(85)  评论(0编辑  收藏  举报