STM32WB SRAM2
SRAM2存储:
1、挂接总线及地址大小
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。2、地址镜像
3、RDP(read protection)等级
4、不同等级下的访问状态
5、声明位于SRAM2区中的数据
1)在.sct文件中声明SRAM2区地址以及可用大小(除开安全区的大小)
这里定义了地址位于0X20030000大小为0X2800(10K)的存储区,标记为RW_RAM_SHARED
定义了三个段:MAPPING_TABLE、MB_MEM1、MB_MEM2,这三个段共享从地址0X20030000处开始大小为0X2800(10K)的数据存储区
2)使用#define PLACE_IN_SECTION( __x__ ) __attribute__((section (__x__)))来放置数据在哪一段
PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t MB_MEM2_var[2]; //MB_MEM2_var放在MB_MEM2段
PLACE_IN_SECTION("MAPPING_TABLE") ALIGN(4) static uint8_t MAPPING_TABLE_var[2]; //MAPPING_TABLE_var放在MAPPING_TABLE段
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static uint8_t MB_MEM1_var[2]; //MB_MEM1_var放在MB_MEM1段
地址如下:
可以看到地址从0X20030000处开始
如果定义的数据超过.sct文件中定义的大小,就会报错:
PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static uint8_t MB_MEM1_var1[20000];
XXXXX.axf: Error: L6220E: Execution region RW_RAM_SHARED size (22880 bytes) exceeds limit (10240 bytes). Region contains 4 bytes of padding and 0 bytes of veneers (total 4 bytes of linker generated content).
Finished: 0 information, 0 warning and 1 error messages.
提示超过RW_RAM_SHARED定义的大小限制10K(10240bytes)
6、SRAM2安全区大小
SRAM2分为SRAM2a与SRAM2b两块,每块32KB大小
SRAM2a安全区:
SRAM2b安全区:
通过设置FLASH_SRRVR寄存器可以设置安全区大小,位于安全区内的存储空间只能由CPU2读写访问
通过在线仿真可以看到,SBRSA设置为0X0A,SNBRSA设置为0X14
即SRAM2a安全区为32-10=22K,SRAM2b安全区为32-20=12K
