S32K3xx学习笔记_MemMap

S32K3xx学习笔记_MemMap

1、简介

该芯片包含放置在32位连续内存空间中的各种存储器和内存映射外设,本文主要介绍一些存储器和外设位置。

有关芯片内存映射的详细信息,请参阅档附带的内存映射文件。如下如所示:

在这里插入图片描述

2、缩略词

CTI:Cross trigger interface交叉触发接口

DTCM:Data tightly coupled memory数据紧耦合内存

D-cache:Data cache数据缓存

DWT:Debug watchpoint and trace Debug调试

ETM:Embedded trace macrocell 嵌入式跟踪宏单元

FPB:Flash patch and breakpointsFlash补丁和断点

ITCM:Instruction tightly coupled memory指令紧耦合内存

I-cache:Instruction cache指令缓存

ITM:Instrumentation trace macrocells仪器跟踪宏单元

PPB:Private peripheral bus专用外围总线

SCS:System control space系统控制空间

SRAM:Static random access memory静态随机存取内存

TPIU:Trace port interface unit跟踪端口接口单元

3、SRAM内存映射

3.1、RAM

S32K3x4产品系列共有512kb RAM,分区如下:

  • ITCMs (64 KB)
  • D0TCMs (64 KB)
  • D1TCMs (64 KB)
  • PRAMC_0 (160 KB)
  • PRAMC_1 (160 KB)

3.2、PRAMC

PRAMC_0控制前160KB的RAM,功能如下:

  • 32KB内存支持Standby模式下的数据保存
  • 128KB内存仅在Run模式下可用

PRAMC_1控制第二个160KB的RAM,功能如下:

  • 32KB内存仅在Run模式下可用
  • 128KB内存仅在Run模式下可用

除了ITCMs 、DTCMs 、SRAM之外,RAM的一个特定部分与ARM Cortex-M7内部缓存相关联,该芯片为每个 Cortex-M7内核提供8KB的I-cache RAM和8KB的D-cache RAM。

S32Kxx的cache方案中的cache属性是为给定地址范围和内核定义的,而不是根据物理RAM或闪存块定义的

4、S32K3xx不同类型内存的访问

Cortex-M7内核可以按顺序访问这些内存:

  • ITCM
  • DTCM
  • I-cache
  • D-cache

ITCM和DTCM可以通过32位的AHBS接口访问,以引导的ITCM中的指令,例如,不同的Cortex-M7内核、eDMA等,EMAC是另一个可以访问DTCM的主机。

访问超出在芯片上可用的RAM的SRAM,终止总线周期,在这个芯片中使用的请求总线主存储器类型中的一个适当的响应后面跟着错误。

5、TCM作为系统内存

在多核设备上,所有使能的核和非核主机都可以使用被禁用核的TCM。为了允许使用禁用核心的ITCM和DTCM作为系统内存,必须由启用的CPU核心执行以下步骤:

  • 对Cortex-M7_0,对MC_ME的PRTN2_COFB1_CLKEN[REQ62]字段写1。对Cortex-M7_1,对MC_ME的PRTN2_COFB1_CLKEN[REQ63]字段写1。以开启Cortex-M7核心的TCM控制器时钟
  • 对Cortex-M7_0,对DCMRWF4[CM7_0_CPUWAIT]字段写1,对Cortex-M7_1,对DCMRWF4[CM7_1_CPUWAIT]字段写1。可以将核心操作配置为Wait模式
  • 对于Cortex-M7_0,将1写入MC_ME的PRTN0_CORE0_PCONF[CCE]字段;对于Cortex-M7_1,将1写入PRTN0_CORE1_PCONF[CCE]字段。启用Cortex-M7内核的时钟
描述PRTN2_COFB1_CLKEN[R EQ62+n]DCMRWF4[CM7_n_CP UWAIT]PRTN0_COREn_PCON F[CCECM7_n modeCM7_n_T CM backdoor enabled
配置-01RUNYes
011WAITNo
111WAITYes
--0DisabledNo

6、TCM操作时的注意事项

在进行读访问之前,必须先对TCM (ITCM和DTCM)和系统RAM进行初始化通过64bit的写入。系统RAM可以使用eDMA和CPU核心进行初始化。ITCM初始化只能由内核使用直接访问或后门访问来执行。DTCM也可以通过使用core的直接和后门访问或eDMA执行32位写操作来初始化。这些写操作是在芯片上电复位后设置初始ECC码字所必需的

每个Cortex-M7核心都配备了一个32 KB的ITCM和64 KB的DTCM,具有零等待状态访问。在同步操作中,检查核的TCM被添加到主核中。

7、AIPS-Lite外设桥内存映射

可以通过crossbar交叉开关矩阵从端口访问外设内存映射。下表显示了与外设地址空间相关的三个外设桥区域。

地址范围范围描述
4000_0000h–401F_FFFFh该2048KB的区域(AIPS_Lite_0)划分为128个空间,每个空间大小为16 KB,有32个平台上的空间和96个平台外的空间。AIPS_Lite为32个平台空间生成唯一的模块启用码。
4020_0000h–403F_FFFFh该2048KB的区域(AIPS_Lite_1)划分为128个空间,每个空间大小为16 KB,有32个平台上的空间和96个平台外的空间。AIPS_Lite为32个平台空间生成唯一的模块启用码。
4040_0000h–405F_FFFFh该2048KB的区域(AIPS_Lite_2)划分为128个空间,每个空间大小为16 KB,有32个平台上的空间和96个平台外的空间。AIPS_Lite为32个平台空间生成唯一的模块启用码。
  • 通过MC_CGM寄存器中的时钟脉冲控制字段禁用功能的模块禁用相关的AIPS_Lite插槽。
  • 访问未实现或禁用的外设桥地址范围内的任何地址将导致传输错误终止。

8、内存操作

在特殊情况下,必须在后续操作发生之前完成对外设的写入过程。这种情况的包括一下三种:

  • 退出中断服务程序
  • 更改模式
  • 配置功能

在上述这些情况下,必须执行先写后读顺序来实现所需的内存顺序操作。

下表提供了这个序列。

  1. 写入相关的外围寄存器。
  2. 读寄存器,验证写进程。
  3. 继续执行后续操作。

9、专用外围总线(PPB)内存映射

PPB是已定义的Arm总线体系结构的一部分,提供对特定本地处理器模块的访问。您只能通过核心访问这些模块,而不能通过其他系统管理员访问。

开始地址结束地址大小(KB)模块/单元
E000_0000E000_0FFF4ITM
E000_1000E000_1FFF4DWT
E000_2000E000_2FFF4FPB
E000_3000E000_DFFF44-
E000_E000E000_EFFF4SCS
E000_F000E003_FFFF196Reserved
E004_0000E004_0FFF4TPIU
E004_1000E004_1FFF4ETM
E004_2000E004_2FFF4CTI
E004_3000E004_3FFF4-
E004_4000E004_4FFF4-
E004_5000E004_5FFF4-
E004_6000E007_FFFF232-
E008_0000E008_0FFF4MCM
E008_1000E008_1FFF4-
E008_2000E008_2FFF4-
E008_3000E00F_EFFF496-
E00F_F000E00F_FFFF4Cortex-M7 PPB ROM table
E000_0000E00F_FFFF1024
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值