STM32WB SRAM2
SRAM2存储:
1、挂接总线及地址大小
2、地址镜像
3、RDP(read protection)等级
4、不同等级下的访问状态
5、声明位于SRAM2区中的数据
1)在icf文件中定义region
每个芯片开发商都会针对每款芯片来编写一个.icf文件就是传说中的链接文件。对于基本的应用,这个.icf文件足以满足你的工程需要。但有时也会需要改动,比如当你的项目要添加外部RAM时就要修改一下icf。
给MEM1、MEM2、MAPPING_TABLE添加了region区,定义region区大小位置。
2)在.sct文件中声明SRAM2区地址以及可用大小(除开安全区的大小)
分散加载文件是一个文本文件,通过编写一个分散加载文件来指定ARM连接器在生成映像文件时如何分配RO,RW,ZI等数据的存放地址
这里定义了地址位于0X20030000大小为0X2800(10K)的存储区,标记为RW_RAM_SHARED
定义了三个段:MAPPING_TABLE、MB_MEM1、MB_MEM2,这三个段共享从地址0X20030000处开始大小为0X2800(10K)的数据存储区
3)使用#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安全区起始地址为SRAM2a Base address + [SBRSA x 0x0400] = 0X20030000 + 10 * 1024 = 0X20032800;安全区范围0X20032800-0X20038000
所以CPU1、CPU2可共享的SRAM2a大小为10K,CPU2专用SRAM2a区大小为32-10=22K
SRAM2b安全区起始地址为SRAM2b Base address + [SNBRSA x 0x0400] = 0X20038000 + 20 * 1024 = 0X2003D000;安全区范围0X2003D000-0X2003FFFF
所以CPU1、CPU2可共享的SRAM2b大小为20K,CPU2专用SRAM2b区大小为32-20=12K
由此可以看出SBRSA、SNBRSA设置的值就是CPU1、CPU2共享的SRAM大小,剩余的数据存储区为CPU2专用SRAM区
STM32WB SRAM2的更多相关文章
- STM32WB 信息块之OTP
1.OTP Area范围:0x1FFF 7000 - 0x1FFF 73FF 大小1 K 2.OTP描述 1 KB (128 double words) OTP (one-time programma ...
- STM32WB RTC
实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器.RTC 提供一个带可编程闹钟中断的日历时钟以及一个具有中断功能的周期性可编程唤醒标志.RTC 还包含用于管理所有低功耗模式的自动唤醒单元.两 ...
- STM32WB AHB总线、APB总线与外设
方框图: 如图所示: 1)APB1外设 2)APB2外设 3)AHB1外设 4)AHB2外设 5)AHB3外设 6)AHB4外设(ABH共享总线外设) 内存映射关系图:
- STM32WB 振荡器与时钟
一.振荡器类型与配置 1.振荡器类型:LSE.LSI1.LSI2.MSI.HSI.HSI48.HSE 2.MX中的振荡器配置 3.代码配置样例 RCC_OscInitStruct.Oscillator ...
- STM32WB HSE校准
通过改变RCC_HSECR寄存器中的HSETUNE[5:0]位域的值来校准HSE的输出频率 1.将HSE时钟配置为MCO模式输出到PA8引脚 HAL_RCC_MCOConfig(RCC_MCO1, R ...
- stm32WB 笔记
1.HAL Debug functions(调试功能) 可以在不同模式下使能或者失能调试器 This section provides functions allowing to:• Enable/D ...
- 【STM32H7教程】第3章 STM32H7整体把控
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第3章 STM32H7整体把控 初学STM32H7一 ...
- stm32cube使用
1.使用stm32cube生成CAN代码注意事项: a.需要手动配置CAN过滤器 { CAN_FilterConfTypeDef sFilterConfig; uint32_t filterID = ...
- stm32f4xx系统总线架构
最近有人在STMCU社区网站咨询如下问题: 由于实验需要,要用到STM32F407的两个DMA并用定时器触发,在使用过程中发现DMA1无法把GPIO的IDR上的数据传输到内存,调试过程中出现DMA1的 ...
随机推荐
- Python中类的继承代码实例
Python中类的继承代码实例 这篇文章主要介绍了Python中类的继承代码实例,本文直接给出代码及运行效果,需要的朋友可以参考下 相对于C 的继承编写,Python更简洁,而且效率也是很高的,下面编 ...
- 在DELPHI中动态创建控件以及控件的事件
在DELPHI中我们经常要动态的创建控件以及控件的事件.例如,我们可能想根据程序需要动态的创建一些Tshape组件来创建某个图形,并使得在鼠标移动上去之后可以完成某些操作.这一般需要需要三步: 生成一 ...
- React Native中Touchable组件的使用
截图如下: /** * Sample React Native App * https://github.com/facebook/react-native * @flow */ import Rea ...
- 为lumen添加session支持
为lumen添加session支持,同时配置全局函数csrf_token可用 首先laravel和lumen框架的版本要一致,我这里版本都是5.4 1.复制laravel框架config目录下的ses ...
- pixi小游戏开发(vue+typescript)
一直以来都觉得typescript是以后前端发展的趋势,一些大厂的前端项目都已经在用ts来替代js了. 正好最近刚开始准备用pixi写个小游戏,因为刚开工没多久,于是今天就将之前的功能用ts去实现了一 ...
- Day03:文本数据IO操作 / 异常处理
文本数据IO操作 Reader和Writer 字符流原理 Reader是字符输入流的父类 Writer是字符输出流的父类. 字符流是以字符(char)为单位读写数据的.一次处理一个unicode. ...
- eNSP路由器输出 '#' 无法启动的一种解决方法
试过网上的改virtulboxIP.关防火墙.改兼容性等方法,都不成功.后来发现通过改变选择路由器的型号可以启动. 如果对路由器没有特殊需求,可以选择型号数字较小的试一下(最低可以选择Router).
- 安装aodh
在控制节点上执行 #!/bin/bash MYSQL_ROOT_PASSWD='m4r!adbOP' GNOCCHI_PASSWD='gnocchi1234!' CEILOMETER_PASSWD=' ...
- Y2K Accounting Bug POJ2586
Description Accounting for Computer Machinists (ACM) has sufferred from the Y2K bug and lost some vi ...
- [转帖]postgres 创建新用户并授权-- 非常好的
postgres 创建新用户并授权 https://blog.csdn.net/XuHang666/article/details/81506297 原作者总结的挺好的 可以用来学习一下. grant ...