0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

应用分享| HPM6000系列片上SRAM揭秘

先楫半导体HPMicro 2022-09-19 11:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

72cd000e-35f6-11ed-9ade-dac502259ad0.jpg

本期开发笔记由费神编写主要会为大家介绍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,总结如下:

72f63a8c-35f6-11ed-9ade-dac502259ad0.pngHPM6000系列片上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块地址映射区域。7309fce8-35f6-11ed-9ade-dac502259ad0.pngHPM6700系列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.1HPM6700系列

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的首地址。7347acdc-35f6-11ed-9ade-dac502259ad0.png

2.1.2HPM6300系列

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.2AXI总线SRAM


HPM6000系列高性能MCU支持通用的片上SRAM,称为AXI SRAM,可以用来存放数据或者代码。

736aa188-35f6-11ed-9ade-dac502259ad0.pngHPM6700系列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.3AHB总线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作为数据的缓冲区。73a1dba8-35f6-11ed-9ade-dac502259ad0.pngHPM6700系列AHB SRAM和APB SRAM示意图

2.4APB总线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,可以用来保存一定的备份数据。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    147

    文章

    18640

    浏览量

    387780
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    低功耗异步SRAM系列的应用优点

    在各类电子设备与嵌入式系统中,存储器的性能与功耗表现直接影响着整体设计的稳定与效率。低功耗SRAM,特别是异步SRAM系列,凭借其出色的能效比与高可靠性,正成为越来越多工业控制、通信设备及便携终端中的关键部件。
    的头像 发表于 11-25 15:42 179次阅读
    低功耗异步<b class='flag-5'>SRAM</b><b class='flag-5'>系列</b>的应用优点

    如何利用Verilog HDL在FPGA实现SRAM的读写测试

    本篇将详细介绍如何利用Verilog HDL在FPGA实现SRAM的读写测试。SRAM是一种非易失性存储器,具有高速读取和写入的特点。在FPGA中实现SRAM读写测试,包括设计
    的头像 发表于 10-22 17:21 3982次阅读
    如何利用Verilog HDL在FPGA<b class='flag-5'>上</b>实现<b class='flag-5'>SRAM</b>的读写测试

    HPM monitor studio 只能在 hpm芯片+hpm_sdk 的组合下才能用吗?

    使用 hpm6200evk开发板,但未使用hpm_sdk。 然后编译的固件elf无法在hpm monitor studio解析成功。所以说必须要使用hpm_sdk 才可以使用
    发表于 08-28 09:36

    hpm6364内部flash使用时的openocd配置问题.

    /yasuoHPM6000xilieMCUFlashshiyongzhinanyiruheshiyongpianneiFlash120231101151455.pdf)中提到使用内部flash时openocd 的脚本文件应改为如下: flash bank
    发表于 07-12 19:48

    重磅更新 | HPM_SDK v1.10.0 发布

    版本更新概况[New]增加HPM5E00系列MCU以及HPM5E00EVK支持增加flash_xip_hybrid构建,在该模式下AXI_SRAM被用作FLASH前256KB的缓存,位
    的头像 发表于 07-02 15:07 1126次阅读
    重磅更新 | <b class='flag-5'>HPM</b>_SDK v1.10.0 发布

    支持HPM6P00/HPM5E00系列!HPMicro Manufacturing Tool v0.6.0发布

    HPM6P00、HPM5E00系列SoC的烧写及其它操作,新增HPM6E00、HPM5E00固件;新增verify-checksum及que
    的头像 发表于 06-04 08:28 1198次阅读
    支持<b class='flag-5'>HPM</b>6P00/<b class='flag-5'>HPM</b>5E00<b class='flag-5'>系列</b>!HPMicro Manufacturing Tool v0.6.0发布

    【强势新】HPM5E00:EtherCAT运动控制MCU,先楫半导体再拓工业总线产品新版图

    。该系列是继HPM6E00后的又一重磅布局,标志着先楫在EtherCAT工业通信领域的持续发力与技术深化。 HPM5E00系列 在延续HPM
    发表于 05-07 14:07 979次阅读
    【强势<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT运动控制MCU,先楫半导体再拓工业总线产品新版图

    MCUFlash

        MCUFlash是微控制器内部集成的非易失性存储器,主要用于存储程序代码、常量数据及系统配置信息。其核心特性与功能如下: 一、定义与类型‌ Flash采用浮栅晶体管技术
    的头像 发表于 05-06 14:26 874次阅读

    【强势新】HPM5E00:EtherCAT运动控制MCU,先楫半导体再拓工业总线产品新版图

    HPM6E00后的又一重磅布局,标志着先楫在EtherCAT工业通信领域的持续发力与技术深化。HPM5E00系列在延续HPM6E00高算力基因的基础
    的头像 发表于 05-06 11:09 985次阅读
    【强势<b class='flag-5'>上</b>新】<b class='flag-5'>HPM</b>5E00:EtherCAT运动控制MCU,先楫半导体再拓工业总线产品新版图

    浅谈MCURAM

    MCURAM是微控制单元(MCU)中集成于芯片内部的随机存取存储器,主要用于程序运行时的数据存储与高速读写操作。以下是其核心要点: 一、定义与分类 ‌RAM是MCU内部存储单元
    的头像 发表于 04-30 14:47 1004次阅读

    重磅更新 | 先楫半导体HPM_SDK v1.9.0 发布

    版本更新概况[New]增加HPM6P00系列MCU以及hpm6p00evk支持[New]增加了开发板已知问题说明[Update]将全系列开发板VCore电压调节至1.275V,
    的头像 发表于 04-02 08:31 841次阅读
    重磅更新 | 先楫半导体<b class='flag-5'>HPM</b>_SDK v1.9.0 发布

    hpm_apps v1.8.0上线:HPM6200四轴伺服驱控方案重磅发布!

    hpm_apps v1.8.0上线:HPM6200四轴伺服驱控方案重磅发布!
    的头像 发表于 02-12 08:04 1239次阅读
    <b class='flag-5'>hpm</b>_apps v1.8.0上线:<b class='flag-5'>HPM</b>6200四轴伺服驱控方案重磅发布!

    开发者分享 | 适用于HPM的RustSBI实现

    HPMicro的MCU一直以高性能著称,之前也一直有想在HPM的MCU运行Linux的想法。直到看见Linux6.10中支持了RISC-V架构在S-mode中运行nommu内核*,才下定决心开始在HPM6360
    的头像 发表于 02-08 13:44 1093次阅读
    开发者分享 | 适用于<b class='flag-5'>HPM</b>的RustSBI实现

    基于HPM_SDK_ENV开发应用程序的升级处理

    基于HPM_SDK_ENV开发应用程序的方式HPM_SDK_ENV是先楫半导体MCU的Windows集成开发环境,其包含HPM_SDK,工具链,依赖工具(cmake,ninja,openocd等
    的头像 发表于 02-08 13:38 1456次阅读
    基于<b class='flag-5'>HPM</b>_SDK_ENV开发应用程序的升级处理

    新 | HPM6E80高压伺服EtherCAT驱动器方案

    求远电子基于先楫半导体HPM6E80推出的HPM6E00_EtherCAT_MDR高压伺服EtherCAT从站驱动器方案,提供完善的软硬件参考,可极大的降低产品开发难度,缩短产品上市时间
    的头像 发表于 02-08 13:38 980次阅读
    <b class='flag-5'>上</b>新 | <b class='flag-5'>HPM</b>6E80高压伺服EtherCAT驱动器方案