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的更多相关文章

  1. STM32WB 信息块之OTP

    1.OTP Area范围:0x1FFF 7000 - 0x1FFF 73FF 大小1 K 2.OTP描述 1 KB (128 double words) OTP (one-time programma ...

  2. STM32WB RTC

    实时时钟 (RTC) 是一个独立的 BCD 定时器/计数器.RTC 提供一个带可编程闹钟中断的日历时钟以及一个具有中断功能的周期性可编程唤醒标志.RTC 还包含用于管理所有低功耗模式的自动唤醒单元.两 ...

  3. STM32WB AHB总线、APB总线与外设

    方框图: 如图所示: 1)APB1外设 2)APB2外设 3)AHB1外设 4)AHB2外设 5)AHB3外设 6)AHB4外设(ABH共享总线外设) 内存映射关系图:

  4. STM32WB 振荡器与时钟

    一.振荡器类型与配置 1.振荡器类型:LSE.LSI1.LSI2.MSI.HSI.HSI48.HSE 2.MX中的振荡器配置 3.代码配置样例 RCC_OscInitStruct.Oscillator ...

  5. STM32WB HSE校准

    通过改变RCC_HSECR寄存器中的HSETUNE[5:0]位域的值来校准HSE的输出频率 1.将HSE时钟配置为MCO模式输出到PA8引脚 HAL_RCC_MCOConfig(RCC_MCO1, R ...

  6. stm32WB 笔记

    1.HAL Debug functions(调试功能) 可以在不同模式下使能或者失能调试器 This section provides functions allowing to:• Enable/D ...

  7. 【STM32H7教程】第3章 STM32H7整体把控

    完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第3章   STM32H7整体把控 初学STM32H7一 ...

  8. stm32cube使用

    1.使用stm32cube生成CAN代码注意事项: a.需要手动配置CAN过滤器 { CAN_FilterConfTypeDef sFilterConfig; uint32_t filterID = ...

  9. stm32f4xx系统总线架构

    最近有人在STMCU社区网站咨询如下问题: 由于实验需要,要用到STM32F407的两个DMA并用定时器触发,在使用过程中发现DMA1无法把GPIO的IDR上的数据传输到内存,调试过程中出现DMA1的 ...

随机推荐

  1. Canal——增量同步MySQL数据到ElasticSearch

    1.准备 1.1.组件 JDK:1.8版本及以上: ElasticSearch:6.x版本,目前貌似不支持7.x版本:       Kibana:6.x版本:     Canal.deployer:1 ...

  2. Spring-Kafka —— 消费后不提交offset情况的分析总结

    最近在使用kafka,过程中遇到了一些疑问,在查阅了一些资料和相关blog之后,关于手动提交offset的问题,做一下总结和记录. 消费端手动提交offset代码如下: /** * 这是手动提交的消费 ...

  3. js-dialog

    依赖 jquery.js dialog.js dialog-plus.js ui-dialog.css 实例 <!DOCTYPE html> <html> <head&g ...

  4. uni-app 实现热更新

    前端打包 app 即把写好的静态资源文件套壳打包成 app ,而热更新即下载并替换 app 内部的静态资源文件,实现 app 的版本升级. 在uni-app 中,我们是如何实现热更新的呢?下面来看代码 ...

  5. python3使用tkinter之Menu坑

    添加菜单之后,下拉菜单的第一行是一条虚线,点击会在窗口的左上角独立显示下拉菜单,如下图所示: 去掉的方法是:创建文件菜单的时候,添加 tearoff=0参数 tearoff 有 0 和 1 两个值,分 ...

  6. Unity Shader的形式

    (1)表面着色器 表面着色器是Unity自身的一种着色器代码类型.它需要的代码量很少,Unity在背后做了很多工作,但渲染的代价比较大.但Unity在背后仍旧把表面着色器转换成对应的顶点/片元着色器. ...

  7. 欢迎关注微信公众号codefans一起交流技术

  8. 图文详解 : 什么是版本控制?Eclipse配置SVN和IDEA配置GIT教程

    前言 虽然在工作中, VCS已然配置妥当, 我们敲好的业务只需要Commit&push提交就好, 但是不妨碍我们了解什么是版本控制, 为什么要使用这类工具? ps.最近项目里的小伙伴想在自己家 ...

  9. 【Web网站服务器开发】apache和tomcat 阿帕奇和汤姆猫

    经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总 ...

  10. 【机器学习】ICA 原理以及相关概率论,信息论知识简介

    看完了sparse coding,开始看ICA模型,本来ng的教程上面就只有一个简短的介绍,怎奈自己有强迫症,爱钻牛角尖,于是乎就搜索了一些ICA的介绍文章(都是从百度文库中搜来的),看完之后感觉这个 ...