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)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
存储映射(Memory Map)是一种将文件或设备的内容映射到进程的地址空间中的技术。通过存储映射,进程可以直接访问文件或设备的内容,而无需进行繁琐的读写操作。存储映射可以提高访问速度,并且可以实现多个进程之间的共享访问。 存储映射有两种主要的用途:文件内存映射和共享内存。 文件内存映射是将一个文件映射到进程的地址空间中,使得进程可以像访问内存一样访问文件的内容。通过使用mmap系统调用,可以将一个文件映射到内存中,并通过指针来访问文件的内容。这种方式可以提高文件的读写速度,并且可以方便地进行随机访问。 共享内存是一种最快的进程间通信方式,它允许多个进程共享同一块内存区域。在共享内存中,多个进程可以同时访问同一块内存,实现数据的共享。共享内存可以使用不同的接口,如Posix接口和System V接口。通过使用shm_open()和mmap()函数,可以创建和访问共享内存区域。 总结来说,存储映射是一种将文件或设备的内容映射到进程的地址空间中的技术。文件内存映射可以提高文件的读写速度,而共享内存可以实现多个进程之间的数据共享。 #### 引用[.reference_title] - *1* *2* [linux下共享内存sharedMemory(shm)和内存映射memorymap的关系](https://blog.csdn.net/jinking01/article/details/120274820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Memory Map(Linux 存储映射IO)](https://blog.csdn.net/a931040/article/details/51955693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值