AURIX TC3XX内存映射分析

news2024/11/20 15:31:40

TC3XX内存映射Features

AURIX TC3xx系列设备的内存映射中包含的各个部分。这些内存部分在设备上有各自的用途和特性。以下是这些部分的一些概念解释:

  1. Program Flash Interface (PFI)Program Flash Memory (PF) 是用来存储程序代码的闪存。即使在断电时,存储在闪存中的数据也不会丢失。

  2. Data Memory Unit (DMU) 包含了多种类型的数据存储区:

    • Data Flash Memory for CPU EEPROM (DF0)Data Flash Memory for HSM EEPROM (DF1) 是用来模拟EEPROM的闪存。这种闪存可以被反复地擦写,适合存储需要频繁更新的数据。
    • User Configuration Blocks (DF0)Configuration Sector (DF0) 可能用于存储系统配置信息。
  3. CPU0和CPU1 以及 CPU2至CPU5 都有一些用于高速数据存取的本地存储,包括:

    • Program Scratch-Pad SRAM (PSPR)Data Scratch-Pad SRAM (DSPR) 是SRAM类型的内存,用于存储程序代码和数据。
    • Program Cache (P-Cache)Data Cache (D-Cache) 是CPU的高速缓存,用于加速对常用数据和程序的访问。
    • Local Memory Unit (DLMU) 可能是一个本地数据存储区。
  4. Local Memory Unit (LMU) 包括 LMU SRAM (CPU DLMU or LMU LMURAM)DAM SRAM (DAMRAM),这些可能是用于高速数据存取的本地内存。

  5. Boot ROM (BROM) 是存储启动代码的只读存储器。当设备上电或复位时,CPU会从这里开始执行代码。

此外,这个设备还有一些内部总线,包括 System Peripheral Bus (SPB)Shared Resource Interconnect (SRI)Back Bone Bus (BBB)。这些总线用于在设备内部的各个部分之间传输数据。

2.3 功能描述


总线特定地址映射描述了不同总线主设备对芯片内存储器和模块访问的反应方式,以及相应总线的有效或无效地址范围。
例如,控制寄存器、SRAM块或模块内的闪存块/扇区的详细地址映射在相关模块章节中描述。

注意:除了这里描述的系统地址映射之外,每个TriCore还具有通过C000_0000H对其PSPR进行TriCore IP内部访问以及通过D000_0000H对其DSPR进行内部访问。这种对本地高速缓存SRAM的附加/私有视图在CPU章节中描述。

 表23定义了地址映射表(表24和表40)中使用的首字母缩略词和其他术语。

 2.3.1 段


本节总结了各段的内容。
段0和2
这些内存段是保留的。
段1和3-7
这些内存段允许访问CPU程序和数据高速缓存SRAM(PSPR,DSPR),程序和数据缓存SRAM(PCACHE,DCACHE)以及与程序和数据缓存相关的标记SRAM(PTAG SRAM1)和DTAG SRAM1)。
如果支持DCACHE,则只有在禁用数据缓存时才能访问DCACHE和DTAG SRAM1)。
只有在禁用相关程序缓存时才能访问PCACHE和PTAG SRAMs1)。
这些段的属性(缓存/非缓存)可以为每个CPU的数据和程序侧单独部分配置2)(请参阅CPU章节:物理内存属性寄存器,PMAx)。
段8
此内存段允许对PFlash和BROM进行缓存访问。
段9
此内存段允许对LMU和EMEM进行缓存访问。
段10
此内存段允许对PFlash、DFlash和BROM进行非缓存访问。

 段11
此内存段允许对LMU和EMEM进行非缓存访问。
段12
此内存段是保留的。
段13
此内存段是保留的。
段14
此内存段是保留的。
段15
低128 MByte是SPB地址空间,高128 MByte是SRI地址空间。

 2.3.2 On Chip Bus System的地址映射


所有总线主控代理都可以在相同地址访问相同的外设和存储器。系统地址映射对所有CPU可见且有效,这意味着所有外设和资源都可以从所有TriCore CPU和其他芯片上的总线主控代理访问。
多个总线主控代理并行访问一个从属代理会按顺序执行。此外,SRI、SPB和BBB支持来自CPU的原子读修改写序列。

2.3.2.1 段0到14


表24显示了段0到14的地址映射。



1. 写入访问类型:对Flash资源的写入访问由DMU模块处理(Flash命令序列,请参阅DMU章节获取详细信息)。

 表24

1)如果发生SPB访问0000 0000H,则SPB BCU会生成总线错误。
2)只有在映射到地址空间时(PCACHE / DCACHE禁用。有关详细信息,请参见CPU章节,寄存器SMACON),才能访问PCACHE / DCACHE SRAM(以及相应的TAG SRAM)。
3)TAG SRAM不适用于作为通用SRAM使用,并且只能使用单个数据访问,并且只能使用64位对齐地址进行访问。 TAG SRAM在地址映射中的映射可以用作内存测试的附加选项。
4)TRAM不应用作通用SRAM,并且只有在启用OCDS时才能访问。
5)主机命令序列解释器
6)HSM命令序列解释器
7)有关CPU本地视图到段C和段D的信息,请参见章节“CPU,本地和全局寻址”。

表格25 TC39x备用地址映射,用于段8 PFLASH的SOTA

表格26 TC39x备用地址映射,用于段10 PFLASH的SOTA表格27 TC39x备用地址映射,用于段10擦除计数器和寄存器的SOTA

2.3.2.2 段15


表40显示了从SRI和SPB总线主机(总线主机代理在芯片总线系统章节中有描述)所看到的段´F´的地址映射。它描述了模块到段F的映射。模块地址范围的详细信息可以在模块章节的寄存器概述中找到。

表40(略)
图16概述了模块地址范围的地址映射:
• 绝对寻址范围
- 如果在段´F´的前16 Kbyte中寻址模块,则CPU可以使用绝对寻址模式访问该模块。
• 其他
- 如果在段´F´的前16 Kbyte之上寻址模块,则CPU可以使用基址+偏移量访问该模块。

2.3.3 内存访问


以下表格列出了支持的内存类型和访问大小1):

表41。 标准读写存储器(C变量)

1)TRAM不得用作通用SRAM,只有在启用OCDS时才能访问。 

表42 标准只读存储器(C常量)

 1)FLASH存储器应通过命令序列进行编程和擦除。

表43  非标准存储器

 1)标签SRAM不应用作通用SRAM,只能通过32位数据访问和64位对齐地址进行访问。将标签SRAM映射到地址映射中可用作内存测试的附加选项。标签SRAM的大小低于24位,因此32位写入或读取的8个最高有效位无关紧要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1017437.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【学习笔记】Java 一对一培训(3.1)Spring Boot介绍和基础

【学习笔记】Java 一对一培训(3.1)Spring Boot介绍和基础 关键词:Java、Spring Boot、Idea、数据库、一对一、培训、教学本文主要内容含Spring Boot相关的基础介绍、快速入门、Maven介绍、代码结构介绍、打包运行、配置介绍等计划1小时完成&…

TOTP算法实现

TOTP算法实现 1 什么是双因子认证(2FA)2 TOTP原理2.1 HOTP原理2.2 TOTP 3 实现参考文章 最近发现github天天给我发通知要启用双因子认证(2FA),受不了了只能想办法启用了。看到它支持采用基于TOTP算法的应用的认证方式&…

彻底搞懂线程池原理以及创建方式

1. 为什么要使用线程池 在实际使用中,线程是很占用系统资源的,如果对线程管理不善很容易导致系统问题。因此,在大多数并发框架中都会使用线程池来管理线程,使用线程池管理线程主要有如下好处: 降低资源消耗。通过复用…

Python机器学习实战-建立Gradient Boosting模型预测肾脏疾病(附源码和实现效果)

实现功能 建立Gradient Boosting模型预测肾脏疾病 实现代码 import pandas as pd import warnings warnings.filterwarnings("ignore") pd.set_option(display.max_columns, 26)#读取数据 df pd.read_csv("E:\数据杂坛\datasets\kidney_disease.csv") …

vMAP——论文解析

vMAP: Vectorised Object Mapping for Neural Field SLAM vMAP 是一个物体级稠密图 neural SLAM,每一个物体都用一个 mlp 来表征,而不需要 3D 先验。当 RGB-D 相机在没有任何先验信息的情况下时,vMAP 会即时检测物体 instance,并将…

在Ubuntu 18.04上支持C++17的std::filesystem的方法

在Ubuntu 18.04上通过命令sudo apt install gcc g安装的gcc/g版本为7.5,此版本并不直接支持filesystem,如下图所示: Ubuntu 18.04上的g 7.5支持experimental的filesystem,即std::experimental::filesystem,若想使Ubuntu 18.04支持…

购物系统设计与实现

目 录 1 绪 论 1 1.1 本课题研究的背景和意义 1 1.1.1 本课题研究的背景 1 1.1.2 本课题研究的意义 2 1.1.3 本课题的发展现状及前景 2 1.2 系统的实现任务 7 2 系统概述及实现技术介绍 8 2.1 网上商城简介 8 2.2 相关实现技术介绍 10 2.2.1 JSP语言及其特点 10 2.2.2 Dreamwe…

快速学会搭建微信小程序的基础架构

(创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 基础架构 构建界面 引入 uni-ui 组件库 组件自动引入 配置TS类型 状态管理 持久化 数据交互 请…

Unity中Shader特性PerRendererData

文章目录 前言一、优化前是对使用了相同材质球的不同物体间shader分别设置,比较消耗性能二、使用[PerRendererData]标签,可以在脚本中使用SetPropertyBlock()对使用同一材质球的不同物体进行修改其Shader属性 前言 Unity中Shader特性PerRendererData 一…

Python学习 -- 常用数据交换格式(CSV、XML、JSON)

数据交换格式是在不同系统之间交换数据时使用的一种标准化格式。在Python中,我们常用的数据交换格式有CSV、XML和JSON。本篇技术博客将介绍这三种数据交换格式的详细使用方法,并提供具体的代码案例,帮助初学者快速掌握这些格式的使用。 CSV&…

第二章 进程与线程 六、线程的实现方式和多线程模型

目录 一、线程的实现方式 1、用户级线程 2、内核级线程 二、多线程模型 注意: 1、一对一模型 (1)定义: (2)优点: (3)缺点: 2、多对一模型 (1&…

Linkerd的部署与入门--service mesh初步体验

Linkerd2初探 部署环境Linkerd简介安装Linkerd客户端在k8s上安装Linkerd控制平面(服务端)实验:数据平面代理注入demo应用安装viz插件(可视化面板)部署grafana 其他 部署环境 k8s环境: KIND 模拟kubernetes 1.21.1 kub…

【python】使用Reddit API爬取数据

这篇文章介绍如何使用reddit api获数据,文档地址如下:https://www.reddit.com/dev/api/ 首先需要创建应用,页面如下:https://www.reddit.com/prefs/apps 这里name随意填写,reditect uri随意写一个网址 如图所示,创建好应用以后,可以得到CLIENT_ID和SECRET_KEY: 编写代…

线性回归网络

李沐大神的《动手学深度学习》,是我入门机器学习的首课,因此在这里记录一下学习的过程。 线性回归的从零开始实现 线性回归是理解机器学习的基础,它经常用来表示输入和输出之间的关系。   线性回归基于几个简单的假设: 首先&am…

【计算机视觉】Vision and Language Pre-Trained Models算法介绍合集(一)

文章目录 一、ALIGN二、Contrastive Language-Image Pre-training(CLIP)三、Learning Cross-Modality Encoder Representations from Transformers(LXMERT)四、BLIP: Bootstrapping Language-Image Pre-training五、Vision-and-La…

Json-Jackson和FastJson

狂神: 测试Jackson 纯Java解决日期格式化 设置ObjectMapper FastJson: 知乎:Jackson使用指南 1、常见配置 方式一:yml配置 spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的…

机器学习 day35(决策树)

决策树 上图的数据集是一个特征值X采用分类值,即只取几个离散值,同时也是一个二元分类任务,即标签Y只有两个值 上图为之前数据集对应的决策树,最顶层的节点称为根节点,椭圆形节点称为决策节点,矩形节点称…

ffplay源码解析-FrameQueue队列

帧队列架构位置 结构体源码 FrameQueue结构体 /* 这是一个循环队列,windex是指其中的首元素,rindex是指其中的尾部元素. */ typedef struct FrameQueue {Frame queue[FRAME_QUEUE_SIZE]; // FRAME_QUEUE_SIZE 最大size, 数字太大时会占用大量的…

DPDK环境搭建

(1)虚拟环境:VMware Workstation 16 Pro 网上随便下载一个也行 (2)操作系统:ubuntu-22.04-beta-desktop-amd64.iso 下载地址:oldubuntu-releases-releases-22.04安装包下载_开源镜像站-阿里云…

Thymeleaf语法详解

目录 一、Thymeleaf介绍 (1)依赖 (2)视图 (3)控制层 二、变量输出 三、操作字符串 四、操作时间 五、条件判断 六、遍历集合 (1)迭代遍历 (2)将遍…