C6678-缓存和内存

全局内存映射

在这里插入图片描述

扩展内存控制器(XMC)-MPAX内存保护与地址扩展

在这里插入图片描述
每个C66x核心都具有相同大小的L1和L2缓存,并且可配置为普通内存使用。
每个核心也都有独立的MPAX(隶属于XMC),主要功能如下:
a) 将32bit逻辑地址映射到36bit物理地址上
b) 提供内存保护功能
c) 支持16个可配置映射段如下。

在这里插入图片描述
注意:复位后Segment0映射起始地址为00000H,但内部CGEM配置空间不可映射,因此实际上只映射了4MB共享内存。
应用实例:
这是一个单镜像的多核应用实例,每个核心共享代码段,因此代码段物理地址相同,数据段通过MPAX分别映射到不同的物理地址空间,但实际上对于每个核心的应用程序而言,所访问数据段的逻辑地址相同。

在这里插入图片描述

MPAX的段寄存器,分别对应16个段。

在这里插入图片描述

在这里插入图片描述
映射逻辑地址/物理地址的第12位均为0,也就是说映射最小单位为4KB。

使用例程

本例程采用单镜像加载,Core0映射4MB的共享空间,进行映射确认;Core3和Core4分别映射1MB的共享空间到0x0_0c000000和0x0_0c100000的物理内存,分别向各自的共享内存起始地址写100个数据。
通过Core0观察0x0c000000和0x0c100000分别可见其他2个核心写入的不同数据。
程序代码:《c6678内存映射示例工程下载》

部分应用程序代码:

/* CSL Header file */
#include <ti/csl/csl_pscAux.h>
#include <ti/csl/csl_xmcAux.h>
#include <c6x.h>

#define MPAX_SEG_1M_Size 0x13
#define MPAX_SEG_4M_Size 0x13+2
/****************************************************
 * 注意:逻辑地址:logicAddr只保留高20bit,
 * 物理地址:phyAddr,只保留高24bit。
 */
void mpax_map(Uint32 segment,Uint32 logicAddr,Uint32 phyAddr,Uint32 segSize)
{
    CSL_XMC_XMPAXH mpaxh;
    CSL_XMC_XMPAXL mpaxl;
    mpaxh.segSize = segSize;
    mpaxh.bAddr = logicAddr; //逻辑地址
    mpaxl.ux = 1;
    mpaxl.uw = 1;
    mpaxl.ur = 1;
    mpaxl.sx = 1;
    mpaxl.sw = 1;
    mpaxl.sr = 1;
    mpaxl.rAddr = phyAddr;//物理地址
    CSL_XMC_setXMPAXH (segment, &mpaxh);
    CSL_XMC_setXMPAXL (segment, &mpaxl);
}
int main(void)
{
    Uint32  Core_ID;
    Uint32 *test;
    psc_init();
    Uint32 i;
    // Get the Current Core ID
    Core_ID = DNUM; // c6x.h
    if (Core_ID == 0)
    {
        mpax_map(0, 0x0c000, 0x00c000, MPAX_SEG_4M_Size);
    }
    if (Core_ID == 3)
    {
        mpax_map(0,0x0c000,0x00c000,MPAX_SEG_1M_Size);
        test = (Uint32 *)0x0c000000;
        for (i=0;i<100;i++)
            *test++ = 0xA0A0A0A0;
    }
    if (Core_ID == 4)
    {
        mpax_map(0,0x0c000,0x00c100,MPAX_SEG_1M_Size);
        test = (Uint32 *)0x0c000000;
        for (i=0;i<100;i++)
            *test++ = 0x11111111;
    }
    while(1);
}

缓存

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值