Memory Map

主要介绍AM64x的MSRAM和DDR的内存分布:
在这里插入图片描述

MSRAM:总共2MB,被分成8个banks,每个256KB。
首先了解一下,两种Domain:
在这里插入图片描述

In TI documentation, the MCU Domain may be referred to as “M4FSS Island”, “MCU Island”, “MCU Channel”, or “MCU Subsystem”.

微控制器单元域(MCU域)是一个“chip-in-a-chip”的概念,它使用独立的时钟源和复位操作。这使得MCU域可以连续工作,而不受设备其余部分的状态影响,包括设备其余部分处于复位或下电状态的时间。MCU Island集成了通信外设,如SPI, I2C和UART,这些外设预计用于安全关键通信,因此如果主SoC出现故障,MCU Island可以将此信息通信到系统的其余部分。隔离MCU Arm Cortex-M4F Microcontroller Subsystem,有助于提供抗干扰(FFI)。
在这里插入图片描述

在TRM中,MAIN Domain Memory Map中提到MSRAM:
在这里插入图片描述

MSRAM

当应用程序使用到所有的R5F cores,也使用到Linux,那么他将严格按照为各自核保留的内存区域进行使用。
在这里插入图片描述
如果应用程序只使用一个核心,那么它可以使用为其他核心保留的内存区域。例如,运行在R5F0_0上的EtherCAT示例使用了除SBL和DMSC保留的库之外的所有内存区域。
在这里插入图片描述
可以看到,MSRAM的初始512 KB是预留给SBL使用的。这是一个组合引导加载程序映像,其中包含系统控制器固件(SYSFW),将被加载到DMSC Cortex M3和SYSFW板配置数据。当在链接器中为应用程序保留内存时。CMD文件,用户不应该触摸这个保留区域。如果重叠,SBL可能会在引导过程中加载核心映像时覆盖自身。在SBL中有检查,因此如果段地址落在这个保留内存中,它将抛出一个错误。
虽然这个内存是保留的,但如果应用程序映像有一个NO-LOAD部分,那么将它放在保留内存中仍然是可以的。但是应该注意应用程序运行在哪个核心中。如果应用程序运行在SBL所运行的内核以外的内核(通常是R5F0-0内核)中,应用程序可能会在SBL停止之前启动,并在内存访问上导致竞争条件,并可能导致SBL崩溃。.这在多核映像场景中可能会出现问题。因此,如果应用程序运行在非自核上,请确保仅将MSRAM中非sl保留的部分分配给应用程序。如果这是不可能的,在应用程序和SBL中作出必要的安排,等待SBL结束,然后开始执行应用程序。

此外,在DMSC在运行时使用的最后128 KB内存中,如果发生安全切换,最初的80 KB将被释放。最后的48 KB仍将由DMSC使用。
在不使用SBL的情况下,引导完全在使用SPL和UBoot的linux流程中进行,请参考相应的linux SDK文档来了解SRAM内存的使用情况。

在SDK中同样给出了SRAM memory Layout during R5 SPL bootloader stage,和上边的图一样,SPL IMAGE占据了6个bank:
在这里插入图片描述

DDR (with Linux)

下图显示了DDR的内存布局细节。如果项目中同时使用Linux和RTOS操作系统,RTOS应用只能使用预留给CPU的内存段。
在这里插入图片描述

DDR(without Linux)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis分布式缓存

文章目录一、 概述1. 单节点Redis存在的问题2. 单节点Redis问题针对解决方案二、Redis持久化1. RDB持久化2.RDB异步持久化原理介绍3. AOF持久化4. ROB和AOF对比三、Redis主从架构1. 搭建主从架构2. 主从数据同步原理四、Redis哨兵1. 哨兵的作用和原理2.搭建哨兵集群3. RedisTem…

Linux 操作系统原理 — RSS 多队列网卡

目录 文章目录目录RSS 多队列网卡RSS 技术实现原理RSS FilterRSS HASH硬中断信号绑定ethtool 操作指令RSS 多队列网卡 在以往,一张 NIC 只具有一个 Rx Queue,对应一个 CPU Core 来进行收包处理。在多核时代,为了充分利用 Multi-CPU Cores&am…

如何使用pandas提取含有指定字符串

这里写自定义目录标题name age state point0 Alice 24 NY 641 Bob 42 CA 922 Charlie 18 CA 70name age state point0 Alice 24 NY 642 Charlie 18 CA 700 False1 True2 TrueName: state, dtype: boolname age state point1 Bob 42 CA 922 Charlie 18 CA 700 True1 False2 True…

tmall.service.settleadjustment.modify( 修改结算调整单 )

¥开放平台免费API必须用户授权 提供给服务商在对结算有异议时,发起结算调整单。 通过说明调整单ID,调整费用值,调整原因进行结算调整单修改。 公共参数 请求地址: 公共请求参数: 公共响应参数: 请求参数 响应参数 点击获取key和…

MyBatisPlus-DML编程控制

MyBatisPlus-DML编程控制4,DML编程控制4.1 id生成策略控制知识点1:TableId4.1.1 环境构建4.1.2 代码演示AUTO策略步骤1:设置生成策略为AUTO步骤2:删除测试数据并修改自增值步骤3:运行新增方法INPUT策略步骤1:设置生成策略为INPUT步骤2:添加数据手动设置I…

【hello Linux】Linux权限管理

目录 1.shell命令以及运行原理 2. Linux权限的概念 3. Linux权限管理 3.1 文件访问者的分类 3.2 文件类型 3.3 访问权限 3.4 访问权限的表示方法 4. 访问权限的相关设置 4.1 chmod命令:修改权限 4.2 chown命令:修改文件的拥有者 4.3 chgrp 命令&#xff…

idea中的项目上传gitee

1.把gitee插件安装找重启idea 2.打开gitee网站从设置->私有令牌 获取token信息完成登录 复制到idea中点击log in 点击ok 3.把项目转为git管理 4.上传到gitee 5.去刷新gitee仓库此时就会发现多了一个我们的项目 以下是拷贝新项目到idea操作 http://t.csdn.cn/ycnSX

【Ansys】什么软件模块是DS,它和workbench、mechanical的区别在哪里?

一、DesignSpace和workbench 早期的Workbench称之为DesignSpace,更偏向于建模。 现在DS是license的一种,而分析的模块在11中称之为Simulation(Design Simulation),在12中改名为Mechanical。 所以,你可以…

IFPUG功能点度量4:度量事务功能

一、基本概念 1、事务功能 事务功能是处理数据功能的基本过程。 每个事务功能都是一个基本过程。 事务功能由多个逻辑处理来完成。 事务功能包含三种类型:EI、EO、EQ 2、基本过程 一个基本过程是由一个逻辑处理或者多个逻辑处理来完成的。 如何识别&#xf…

【备考技巧】系统集成(案例分析题)并不难

案例分析考题分析: 正常情况下四道题,计算题20分左右,剩余三道分析题每题15-20分左右。 ☆案例分析题: 从整体管理、范围管理、质量管理、人力资源管理、合同管理&采购管理、配置管理、风险管理、进度管理、成本管理中出简答题…

Jvm学习笔记(二)GC

GC 垃圾收集(GC)起源于Lisp,远比Java的历史更久,它主要思考了三件事情: 哪些内存需要回收?什么时候回收?如何回收? 本章就根据这三个点进行分析。 哪些内存需要回收? 在java堆中存放着无数的…

Mac浏览器无法上网但可以用微信等

可以使用微信QQ等,但是浏览器无法上网,Mac浏览器无法上网怎么办,Mac浏览器无法上网但可以用微信等(百度了一下,没有找到原因是为什么,只找到了解决方法,记录一下) 1.首先我们打开Ma…

Centos安装docker以及通过docker部署Mysql,照做就行!

1.安装docker 1.1给虚拟机联网(反斜杠带表该语句没写完) yum install -y yum-utils \device-mapper-persistent-data \lvm2 --skip-broken 1.2更新本地文件镜像 # 设置docker镜像源 yum-config-manager \--add-repo \https://mirrors.aliyun.com/doc…

【Python_Selenium学习笔记(四)】基于Selenium模块实现键盘操作

基于Selenium模块实现键盘操作 前言 在 Selenium 模块中,提供了一个 Keys 类,来处理键盘操作; 在 Selenium 模块中,使用 send_keys() 方法,来模拟键盘输入, 此篇文章主要介绍如何使用 Keys 类 和 send_ke…

vue请求本地JSON文件(注意路径 否则会404)

npm i axios // main.jsimport axios from "axios";Vue.prototype.$axios axios; //全局注册,使用方法为:this.$axios...vue/cli 2 json文件存放目录为 根目录下static/json/aaa.json // 使用getVideoData() {this.$axios.create({baseURL: "&quo…

springboot 部署k8s(二)

系列文章目录 目录 系列文章目录 前言 操作步骤 1.springboot.yaml文件 2.查看deployment 3.查看service服务 4.验证服务 总结 前言 springboot 部署到k8s 上。里面涉及了deployment, Service, NodePort. 操作步骤 1.springboot.yaml文件 apiVersion: apps/v1 kind: …

codeblocks20.3配置wxWidget3.2.2.1

codeblocks20.3 # 英文版自带gcc810,不汉化 wxWidget3.2.2.1 github下载源码 win11专业版 1.下载wxWidget3.2.2.1 源码 2.下载后解压到一个目录中,不要含中文和空格。我放在:d:\wxWidget3.2.2.1 3.打开终端cd build/msw 4.编译wxWidgets 为 …

本行卡转账基本流程说明

1、业务大致流程 2、基本业务描述 大概流程说明:(牵涉到调用硬件、不便多说) 用户插卡后、选择转账交易、依次输入转入账户卡号和转账金额后,用户确定转账信息;转账交易发送前:需要根据插卡账户信息和转账…

Java基础(四)数组

1. 数组的概述 1.1 为什么需要数组 需求分析1: 需要统计某公司50个员工的工资情况,例如计算平均工资、找到最高工资等。用之前知识,首先需要声明50个变量来分别记录每位员工的工资,这样会很麻烦。因此我们可以将所有的数据全部存…

TCP报文 Flood攻击原理与防御方式

TCP交互过程中包含SYN、SYN-ACK、ACK、FIN和RST报文,这几类报文也可能会被攻击者利用,海量的攻击报文会导致被攻击目标系统资源耗尽、网络拥塞,无法正常提供服务。接下来我们介绍几种常见的Flood攻击的原理和防御方式。 SYN Flood攻击与防御…