本期开发笔记由费神编写主要会为大家介绍hpm6000系列的各类片上sram并结合segger embedded studio的linker文件介绍,提供了如何使用这些sram的建议,赶快来了解吧~
简介
在hpm6000系列微控制器上,集成了大容量的sram,可供用户存放代码,数据等,满足各类应用的需要。其中片上sram有多种分类,包括risc-v cpu的指令和数据本地存储器ilm,dlm,通用内存axi sram,ahb sram等,还包括ahb sram,apb sram等。这些sram的最高访问频率不同,数据保持的条件也不同,恰当地使用他们,可以极大的提升用户应用的效率。
片上sram介绍
hpm6000系列高性能mcu均集成了大容量片上sram,总结如下:
hpm6000系列片上sram总结2.1 risc-v cpu的本地存储器ilm和dlm
hpm6000系列高性能微控制器的risc-v cpu都包含有指令和本地存储器,分别称为ilm(instruction local memory,指令本地存储器)和dlm(data local memory,数据本地存储器)。如下图所示,risc-v cpu的ilm和dlm各自对应了内存映射表(memory map)中的2块地址映射区域。hpm6700系列ilm/dlm示意图ilm的映射有:
ilm,以hpm6700系列为例,容量256 kb,地址范围为0x00000000 ~ 0x0003ffff。该地址区域只有risc-v cpu可以通过自身的ilm接口访问,risc-v cpu从ilm取指时,可以实现零等待周期,即ilm的访问时钟频率,与risc-v cpu主频一致,并且risc-v cpu的一级高速指令缓存i-cache-l1对ilm无效。cpux_ilm_slv,以hpm6700系列的cpu0 ilm为例,容量256 kb,地址范围为0x01000000 ~ 0x0103ffff。该地址区域也称为ilm0镜像,该地址区域可以供总线上所有的主设备访问,如dma等,包括risc-v cpu自身,也可以通过cpux_ilm_slv访问ilm。如图所示,cpux_ilm_slv是axi系统总线的从接口,其访问时钟频率与总线时钟频率一致。risc-v cpu访问cpux_ilm_slv时,一级高速指令缓存i-cache-l1是有效的。
dlm的映射有:dlm,以hpm6700系列为例,容量256 kb,地址范围为0x00080000 ~ 0x000bffff。该地址区域只有risc-v cpu可以通过自身的dlm接口访问,risc-v cpu从dlm读写数据时,可以实现零等待周期,即dlm的访问时钟频率,与risc-v cpu主频一致,并且risc-v cpu的一级高速指令缓存d-cache-l1对dlm无效。cpux_dlm_slv,以hpm6700系列的cpu0 dlm为例,容量256 kb,地址范围为0x01040000 ~ 0x0107ffff。该地址区域也称为ilm0镜像,该地址区域可以供总线上所有的主设备访问,如dma等,包括risc-v cpu自身,也可以通过cpux_dlm_slv访问ilm。如图所示,cpux_dlm_slv是axi系统总线的从接口,其访问时钟频率于总线时钟频率一致。risc-v cpu访问cpux_dm_slv时,一级高速指令缓存d-cache-l1是有效的。
2.1.1 hpm6700系列hpm6700系列微控制器上,指令/数据本地存储器的2块地址映射xlm和cpux_xlm_slv虽然地址不同,但访问的是同一块物理内存,risc-v cpu可以通过xlm访问自身的指令/数据本地存储器,而其他总线主设备,比如dma,需要通过cpux_xlm_slv来访问cpux的指令/数据本地存储器。注意,risc-v cpu本身,也可以通过cpux_xlm_slv访问自己的指令/数据本地存储器。
hpm6700系列支持双核risc-v cpu,cpu从xlm地址映射总是访问到自身指令/数据本地存储器,而从cpux_xlm_slv可以访问到自身或者另一个cpu的指令/数据本地存储器。
以hpm6700系列risc-v cpu0为例,从0x00000000和0x01000000读取到的,是cpu0指令本地存储器ilm0的首地址。从0x01180000读到的,是cpu1指令本地存储器ilm1的首地址。
以risc-v cpu1为例,从0x00000000和0x01180000读取到的,是cpu1指令本地存储器ilm1的首地址。从0x01000000读到的,是cpu0指令本地存储器ilm0的首地址。
2.1.2 hpm6300系列hpm6300系列为单核risc-v cpu,risc-v cpu和其他总线主设备都可以通过xlm地址映射访问cpu的指令/数据本地存储器,其中risc-v cpu仍然可以通过自身的xlm接口对xlm实现零等待周期访问,即xlm的读写时钟频率与cpu的时钟同频。而其他总线主设备,需要以axi系统总线的时钟频率访问xlm。
同时,xlm的镜像,cpux_xlm_slv映射仍然有效,包括risc-v cpu在内的所有总线主设备,访问cpux_xlm_slv与访问xlm效果相同,访问的是同一块物理内存。注意risc-v cpu通过cpux_xlm_slv访问自身的xlm时,会和其他总线主设备一样,读写时钟频率与axi系统总线时钟频率一致,不再支持零周期等待,但是cpu的高速一级缓存会生效。
比如,risc-v cpu和dma,从0x00000000读取到的,是cpu0指令本地存储器ilm0的首地址。从0x01000000读取到的,也是cpu0指令本地存储器ilm0的首地址。注意risc-v cpu从0x01000000取值后,如果高速缓存打开,其数据会被存入缓存。
2.2 axi总线sram
hpm6000系列高性能mcu支持通用的片上sram,称为axi sram,可以用来存放数据或者代码。
hpm6700系列axi sram示意图上图以hpm6700系列mcu为例,展示了axi sram在系统中的位置。顾名思义,axi sram连接到axi系统总线的从接口,它的读写时钟频率就是axi系统总线的时钟频率。所有的axi系统总线主设备都可以访问axi sram。
注意:系统内存映射表上,axi sram的地址映射与risc-v cpu的ilm/dlm镜像映射cpux_xlm_slv在地址上是连续的。因此可以把axi sram和risc-v cpu的本地存储器当作一块联系的大内存使用。详情请参考后文的sram使用建议。
2.3 ahb总线sram
hpm6000系列高性能mcu包含挂载在外设总线ahb的片上sram,称为ahb sram,如下图所示,ahb sram连接到ahb外设总线的从设备接口。
ahb sram的读写时钟频率为ahb外设总线的时钟频率。注意,包括risc-v cpu在内的总线主设备需要通过axi系统总线,来访问ahb外设总线下的各个外设寄存器。而外设总线ahb上的主设备,比如hdma,可以直接通过ahb总线访问外设寄存器,以及ahb sram。因此ahb sram比其他类型的片上sram更适合用作寄存器和sram之间的数据搬运。基于同样的理由,hdma也比xdma更适合用作ahb sram和寄存器之间的数据搬运。
因此,当使用hdma用作通讯接口,如uart,spi的数据收发时,推荐使用ahb sram作为数据的缓冲区。hpm6700系列ahb sram和apb sram示意图
2.4 apb总线sram
hpm6000系列高性能mcu的部分型号支持apb sram。上图以hpm6700系列mcu为例,展示了apb sram在系统中的位置。
apb sram位于电源管理域,由vpmc引脚供电。当mcu处于低功耗模式时,有可能通过关闭系统电源域的电源,使得vdd_soc掉电。此时,apb sram可以作为片上的备份sram,保存必要的数据。
注意,对于不支持apb sram的型号,可以使用电源管理域通用寄存器pgpr,保存一定的备份数据。
在电池模式(vbat only mode)下,vpmc也掉电,hpm6000系列mcu仅vbat保持供电。此时,电池备份域通用寄存器bgpr,可以用来保存一定的备份数据。
西井科技发布沪上首张社区综合减灾数字地图
乘科技发展大势 构建区域半导体产业生态——张家港高新区招商推介会深圳成功召开
Littelfuse新推出具有较低断态电压的80A离散型双向瞬态抑制二极管,用于保护低压电源总线
高精度多轴直线电机模组运动平台在工业自动化中的应用
开启石墨烯时代 工匠精神不可少
应用分享| HPM6000系列片上SRAM揭秘
物联网小工具为孩子的成长带来了哪些好处
T2-1-X65+射频变压器参数介绍
光端机在智能家居中发挥巨大作用
盘点深耕物联网赛道的主要玩家
什么是通信电缆及用途_电缆接续和改接的区别
介绍一种超灵敏霍尔效应锁存器
平安好医生借助互联网与人工智能实现“弥补家庭医生缺口”
巧用像片底片作散热器绝缘片
基于加密货币的多维币安项目介绍
TFT屏幕
瑞盟MS51xx系列芯片高精准应用于机器视觉行业
SemperNOR闪存正式推出,为用户提供最好的安全性和可靠性
YB2411高输入电压DCDC降压芯片-YUCAN
千寻位置的时空智能技术为智慧出行间接赋能