C28x内核为哈佛结构,程序储存和数据储存分开,使用32位数据地址和22位程序地址。这样总地址可以达到:在数据空间中存储4G个字(1个字= 16位),在程序空间中存储4M个字。C28x的程序和数据空间被统一映射到同一片内存块,即统一编址。

编址范围:数据地址——0x0000 0000~0xFFFF FFFF,程序地址——0x0000 0000~0x003F FFFF。

下图显示了片上地址在程序空间和数据空间中的分配情况:

上面内存图分成了三个片区:

①片上程序、数据存储区;

②保留区;

③CPU中断向量。

请注意,这是CPU中断向量,不要和外设中断向量混淆。
程序空间中的64个地址留给32个CPU中断向量表使用。通过设置VMAP位可将CPU向量映射到程序空间的顶部或底部。CPU中断向量表的定义请参考规格书上的内容,每个向量表存放的是中断服务函数的入口地址。
VMAP=0,CPU中断向量存放在程序空间的顶部(0x0000 0000~0x0000 003F);VMAP=1,CPU中断向量存放在程序空间的底部(0x003F FFC0~0x003F FFFF)。
这里顺便说一下外部中断向量(PIE),外部中断向量存放在专门的PIE向量表中,但该该储区也可用作程序存储区。

具体的存储分配细节如下表所示:

下面对各个片上存储区进行介绍。

存储类型:

从电子学的角度来看,C28x的存储器就分为三种:RAM、FLASH和ROM。RAM:随机存储器,程序运行过程中,可读可写,存放指令运行过程中产生或使用的数据,掉电消失;FLASH:俗称闪存,用来存放用户程序(指令),需要烧录,掉电不消失;MCU运行时,从FLASH中读取用户指令,部分指定的FLASH区域可以被用户程序改写;ROM:只读存储器,运行过程中只读不写,存放一些特殊用途的指令、数据或向量,一般出厂时厂家已经在上面已经烧录好了内容,部分区域也可由用户自行烧录,掉电不消失。

从存储用途和逻辑上来看,存储类型分类则相对复杂些,下表展示了这些存储类型:

在C28x系列芯片中,能直接访问内存的子系统有:CPU、CLA和DMA。

①专用RAM(Mx和Dx RAM)

CPU子系统具有四个专用的支持ECC的RAM块:M0,M1,D0和D1。M0 / M1存储区是与CPU紧密耦合的小型非安全块(即只有CPU才能访问它们)。 D0 / D1存储区是安全块,具有访问保护功能(CPU写入/读取保护)。

②本地共享RAM(LSx RAM)

各个子系统专用的RAM块,只能由CPU和CLA访问,称为本地共享RAM(LSx RAM)。

所有LSx RAM块均具有奇偶校验。这些存储区是安全存储区,具有访问保护(CPU写入/提取)功能。默认情况下,这些内存只能由CPU访问,用户可以通过配置LSxMSEL寄存器中的MSEL_LSx位字段,选择与CLA共享这些内存。

③全局共享RAM(GSx RAM)

CPU和DMA均可访问的RAM块称为全局共享RAM(GSx RAM)。CPU和DMA都具有对这些存储区的完全读写访问权限。所有GSx RAM块均具有奇偶校验。GSx RAM具有访问保护功能(CPU写入/ CPU提取/ DMA写入)。

④CPU/CLA消息RAM(CPU/CLA MSGRAM)

这些RAM块可用于在CPU和CLA之间共享数据。CLA有“CLA to CPU MSGRAM”的读写权限,CPU有“CPU to CLA MSGRAM”的读写权限。CPU和CLA对两个MSGRAM都有读取访问权限。该RAM块具有奇偶校验。

TI的C28x系列芯片的存储结构(1)——总括相关推荐

  1. TI的C28x系列芯片的存储结构(2)——CLA的RAM

    CLA有自己的程序和数据总线,它的RAM存储区分三种:程序RAM(program RAM).数据RAM(data RAM)和信号RAM(message RAM). ①program RAM CLA的程 ...

  2. Ti的C28x系列的DSP使用经验,如何整合DSP中运行的函数。

    我从事Ti的C28x系列的DSP的开发时间不长,短短一年,使用过两种架构的DSP,主要针对资源管理有一些自己的心得. 在工程文件的分布上,本人认为需要DSP运行的的代码应该放在一个.C文件中管理,这样 ...

  3. sql server 索引阐述系列二 索引存储结构

    "流光容易把人抛,红了樱桃,绿了芭蕉" 转眼又年中了,感叹生命的有限,知识的无限.在后续讨论索引之前,先来了解下索引和表数据的内部结构,这一节将介绍页的存储,页分配单元类型,区的存 ...

  4. MIFARE系列5《存储结构》

    Mifare S50把1K字节的容量分为16个扇区(Sector0-Sector15).每一个扇区包括4个数据块(Block0-Block3).我们也将16个扇区的64个块按绝对地址编号为0~63.每 ...

  5. Ti的DM368系列芯片的所有PDF资料汇总

    http://www.ti.com/sc/docs/psheets/man_dsp.htm

  6. Ti的C28x系列的DSP(28069)使用经验,I2C与EEPROM(AT24C256C)

    本人正式使用I2C的经历只有一次,使用EEPROM是为了实现DSP的RAM中的变量断电后仍不会丢失的目的.这可能不是一个恰当的比喻.下面我来详细描述EEPROM的过程. 项目中使用的EEPROM的型号 ...

  7. Ti的C28x系列的DSP(28069)(28377)使用经验,ADC经验

    笔者使用过的项目中,使用的ADC都是DSP的片内ADC,使用片内ADC的好处是,转换速度快,节约成本,这是相比片外ADC的优势. DSP_28069的ADC精度是12位,DSP_28377D的ADC精 ...

  8. 从C语言的角度重构数据结构系列(三)- 顺序存储结构和链式存储结构之顺序表

    前言 在学习具体的数据结构和算法之前,每一位初学者都要掌握一个技能,即善于运用时间复杂度和空间复杂度来衡量一个算法的运行效率. 在这里给自己打个广告,需要的小伙伴请自行订阅. python快速学习实战 ...

  9. 05_ClickHouse、MergeTree系列引擎概述与存储结构、建表模板、建表语句、MergeTree设置、建表示例、数据存储、数据片段(data part)

    2.MergeTree系列引擎概述与存储结构 2.1.建表模板 2.2.建表语句 2.3.MergeTree设置 2.4.建表示例 2.5.数据存储 2.6.数据片段(data part) 2.Mer ...

最新文章

  1. nyoj3533D dungeon
  2. 《编程匠艺》读书笔记之七
  3. 瞎说一波3种基本背包问题【希望巨巨们指出错误】
  4. JS对象 字符串分割 split() 方法将字符串分割为字符串数组,并返回此数组。 语法: stringObject.split(separator,limit)...
  5. 竞价推广经验分享 账户的搭建方法
  6. 12个免费的 Twitter Bootstrap 后台模板
  7. oracle的音标,oracle的意思在线翻译,解释oracle中文英文含义,短语词组,音标读音,词源【澳典网ODict.Net】...
  8. YIT-CTF—社工类
  9. 《钻哥带您了解产品原型》(Yanlz+Unity+XR+需求分析+核心思路+产品核心+生产流程+制作核心+销售核心+立钻哥哥+==)
  10. Python入门笔记(第五期——序列的应用2)
  11. unity3d 关于如何画扇形
  12. @Value 读取 map
  13. 【LeetCode】55. 跳跃游戏 (JavaScript)
  14. GNSS-INS组合导航:KF-GINS(一)
  15. java基础练习总结2
  16. Xilinx MIG IP核使用
  17. 第十三周项目一(4)——验证平衡二叉树相关算法
  18. 华为云数据库PostgreSQL 大揭秘
  19. 如何在Minitab Workspace中使用头脑风暴工具?
  20. vue项目中使用到的 git 指令 (github)

热门文章

  1. 区块链快速入门(八)——以太坊
  2. 删除windows搜索框中的搜索记录
  3. 探索式测试--第八章(软件测试的未来)--读书笔记
  4. 软件测试基础知识(大全)
  5. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别
  6. Windows环境下Redis安装操作步骤
  7. iOS 获取 WKWebView 里面图片
  8. jbpm 历史查询笔记
  9. java Swing中JTextField自动补全功能例子
  10. 【图文详解】HBase 的数据模型与架构原理详解