当前位置: 首页 > news >正文

深圳网站建设制作哪家便宜自媒体平台大全

深圳网站建设制作哪家便宜,自媒体平台大全,云库做供应链的网站,酒店管理专业文章目录 5.3 芯片内核5.3.1 ICache5.3.2 DCache5.3.3 FlexRAM 5.4 存储器映射5.4.1 存储器功能划分5.4.1.1 存储器 Block0 内部区域功能划分5.4.1.2 储存器 Block1 内部区域功能划分5.4.1.3 储存器 Block2 内部区域功能划分 5.5 寄存器映射5.5.1 GPIO1的输出数据寄存器 5.3 芯…

文章目录

  • 5.3 芯片内核
    • 5.3.1 ICache
    • 5.3.2 DCache
    • 5.3.3 FlexRAM
  • 5.4 存储器映射
    • 5.4.1 存储器功能划分
      • 5.4.1.1 存储器 Block0 内部区域功能划分
      • 5.4.1.2 储存器 Block1 内部区域功能划分
      • 5.4.1.3 储存器 Block2 内部区域功能划分
  • 5.5 寄存器映射
    • 5.5.1 GPIO1的输出数据寄存器

5.3 芯片内核

RT1052 采用的是 Cortex-M7 内核,内核即 CPU,由 ARM 公司设计。
在这里插入图片描述

  • 芯片内核和外设之间通过各种总线连接
  • 内核通过 TCM 总线访问芯片内部的 SRAM 存储器,从中加载代码指令执行
  • 内核通过 AHBP 总线跟芯片上的 GPIO、UART 等外设进行交互
  • 另外内核还可以通过 AXIM 总线接口连接芯片外部的存储器,扩展存储空间。

该芯片并没有像传统的 MCU 一样集成内部 FLASH 存储器,因此该芯片必须依靠一个外部 FLASH 长期保存程序代码。

  • 在芯片上电后,它可以直接执行在外部 FLASH 中的代码

5.3.1 ICache

Instruction Cache 指令缓存,i.MX RT 系列芯片中其大小为32KB,内核访问该存储器有着极高的速度。

  • 作用是缓存要执行的指令
  • 内核根据代码的运行情况,预先从其它存储器(如外部 Flash,外部 SDRAM 等)加载可能会被执行的代码存储至 ICache
  • 据官方统计,ICache 指令缓存的命中率能达到 98% 以上,这就是为什么 i.MX RT 系列芯片代码存储在外部的 FLASH,运行速度依然这么快。

5.3.2 DCache

Data Cache 数据缓存,在 i.MX RT 系列芯片中其大小为 32KB,它与 ICache 的功能类似,起到缓存的作用,区别只是 ICache 专用于存储指令,DCache 专用于存储数据。

5.3.3 FlexRAM

灵活RAM。在 i.MX RT 系列芯片中其大小为 512KB,可以把它理解成传统MCU 的内部 SRAM 存储器。

  • 它附加了可划分功能区域的配置,分别可以把这内部 SRAM分为专用于存储指令的 ITCM,专用于存储数据的 DTCM 以及通用功能的 OCRAM。

内核使用不同的总线访问这些不同的存储器,因而访问速度有差异:
在这里插入图片描述
ICache 和 DCache 是内核自动使用,用户无法访问的。而 ITCM、DTCM 及 OCRAM 是用户可根据具体地址进行访问,开发程序时应根据它们的特性加以利用。

5.4 存储器映射

SRAM、片上外设及外部存储器,这些功能部件共同排列在一个4GB 的地址空间内。

  • 存储器本身不具有地址信息,它的地址是由芯片厂商或用户分配,给存储器分配地址的过程就称为存储器映射

Cortex-M7 存储器映射:
在这里插入图片描述

5.4.1 存储器功能划分

在这 4GB 的地址空间中,ARM 已经粗线条的平均分成了 8 个块,,每个块也都规定了用途
在这里插入图片描述大部分块的大小都有 512MB 以上,显然这是非常大的。在这 8 个 Block 里面,有这 3 个块非常重要

  • Block0 主要用于存储程序代码,一般采用 FLASH 存储器
  • Block1 主要用于运行时的内存,一般采用 SRAM 存储器,
  • Block2 用来设计成片上的外设,内核通过相应的地址访问片上外设。

5.4.1.1 存储器 Block0 内部区域功能划分

根据 ARM 内核的设计,Block0 主要用于存储程序代码,在 i.MX RT1052 芯片内部又把这部分划分了几个类型。
在这里插入图片描述ITCM 是 Instruction Tightly-Coupled Memory 的缩写,译为指令紧耦合内存。所谓紧耦合是指该内存与内核连接紧密,有非常高的访问速度。

  • 该内存专用于缓存指令。
  • 希望有着极高执行速度的代码,可以要求内核上电后把相应的代码从外部 FLASH 加载至 ITCM

ROMCP,这是一小段 ROM 空间,用于存储芯片启动时的加载代码,即 bootloader,bootloader 负责把指令从外部存储器加载至 ITCM。

SEMC 及 FlexSPI 是 RT1052 可用于控制外部并行及串行 NorFlash 的两个外设,此处把它们映射到此代码空间,是为了支持 XIP 功能(即指令直接在 NorFlash 上运行,不需要加载到内部的 ITCM)。

5.4.1.2 储存器 Block1 内部区域功能划分

Block1 用于设计片内的 SRAM,也就是芯片运行时的内存,在 i.MX RT1052 芯片内部把这部分划分了两种 RAM 类型
在这里插入图片描述第一种类型为 DTCM,是 Data Tightly-Coupled Memory 的缩写,译为数据紧耦合内存,它跟 ITCM类似,有着极高的访问速度,不过它是专门用来存储程序数据的,即代码中变量的存储位置。
第二种类型为 OCRAM,它是 On-chip RAM 的缩写,即片上内存,可以完全把它理解为传统 MCU的内部 SRAM,它没有像 ITCM 和 DTCM 的专用限制,可用于存储指令和数据(通用目的)。

  • ITCM、DTCM 及 OCRAM 地址范围均分配了 512KB,但这并不是说这三种存储器都有 512KB 大小。
  • 实际上这三种存储器共享内部 FlexRAM 的空间,而这个内部 FlexRAM 空间在 RT1052 芯片中为 512KB,在 RT1060 芯片中为 1MB。
  • 这三种存储器的空间是可以动态调整的。T1052 中,默认 ITCM 和 DTCM 各占 128KB,OCRAM占 256KB。
  • 一共有 16 种配置方式,具体可参考《Using the i.MX RT FlexRAM》文档。

5.4.1.3 储存器 Block2 内部区域功能划分

Block2 用于设计片内的外设,在 RT1052 芯片中,它的外设使用 4 条总线与内核进行连接:
AIPS 是 ARM IP Bus 的缩写,它一边与内核 AHB 总线连接,另一边与片上的各种外设连接

  • AIPS1~4 即连接了各种各样的外设,此处每条总线划分的地址范围各为 1MB,内核根据地址可以访问相应总线下的外设

在这里插入图片描述最右一栏是挂载在 AIPS-2 总线上的外设名称。
阴影处为例,它表示一个名为 GPIO1 的外设的内存地址分配情况

  • GPIO1 外设下又包含了 RT1052 芯片中 32 个相关的引脚
  • 被分配的内存地址为 0x401B8000~0x401BBFFF
  • 通过访问这些地址就可以控制这 32 个引脚了

5.5 寄存器映射

在上述存储器 Block2 这块区域,设计的是片上外设。

  • 在相应的地址空间内它们以四个字节为一个单元,共 32bit
  • 每一个单元对应不同的功能,当我们控制这些单元时就可以驱动外设工作

我们可以找到每个单元的起始地址,然后通过 C 语言指针的操作方式来访问这些单元。

  • 以功能为名给这个内存单元取一个别名,这个别名对应的内存区就是我们经常说的寄存器。
  • 给已经分配好地址的有特定功能的内存单元取别名的过程就叫寄存器映射。

5.5.1 GPIO1的输出数据寄存器

GPIO1 端口的输出数据寄存器 DR 的地址是 0x401B 8000。

  • DR 寄存器是 32bit,对应着 32 个外部 IO

C语言访问:

// GPIO1 端口全部输出 高电平
*(unsigned int*)(0x401B8000) = 0xFFFFFFFF;
  • 0x401B 8000 在我们看来是 GPIO1 端口数据输出寄存器 DR 的地址,但是在编译器看来,这只是一个普通的变量,是一个立即数
  • 要想让编译器也认为是指针,我们得进行强制类型转换,把它转换成指针,即 (unsigned int *)0x401B 8000
  • 再对这个指针进行 * 操作

寄存器访问:

// GPIO1 端口全部输出 高电平
#define GPIO1_DR (unsigned int*)(0x401B8000)
*GPIOF_DR = 0xFFFFFFFF;

为了方便操作,我们干脆把指针操作“*”也定义到寄存器别名里面

// GPIO1 端口全部输出 高电平
#define GPIO1_DR *(unsigned int*)(0x401B8000)
GPIOF_DR = 0xFFFFFFFF;
http://www.hkea.cn/news/662164/

相关文章:

  • 本地网站建设seo推广的方法
  • 东莞好的网站建设效果seo和sem分别是什么
  • 最新版wordpress背景手机网络优化软件
  • 丛台企业做网站推广免费建一级域名网站
  • 集宁网站建设免费网站推广网站破解版
  • 网站建设域名的购买有域名和服务器怎么建网站
  • 深圳有什么网站长沙百度seo
  • 台州企业网站模板建站怎么在百度上做公司网页
  • 烟台网站建设联系企汇互联专业网站维护收费标准
  • 网络客户服务平台搜索优化推广公司
  • 建设网站技术方案线上教育培训机构十大排名
  • 沈阳人流seo优化师就业前景
  • 开发区网站制作公司seo关键词有话要多少钱
  • 网站被篡改处理app拉新平台
  • 在线房屋设计网站seo推广平台服务
  • 电子政务门户网站建设代码短链接生成网址
  • 崔各庄地区网站建设百度非企渠道开户
  • 怎么用自己的电脑做网站服务器产品推广平台排行榜
  • 中国做的比较好的电商网站有哪些哈市今日头条最新
  • 微信怎么做网站推广百度网站优化培训
  • 网站开发支持多个币种电子技术培训机构
  • 移动网站设计与制作怎么找关键词
  • 国内移动端网站做的最好的厦门人才网597人才网
  • 建网站收费吗aso关键词覆盖优化
  • 西安的网站设计与制作首页微信视频号怎么推广引流
  • 顺义公司建站多少钱pc端百度
  • wordpress收费资源下载关键词优化的策略
  • 广州做网站建设的公司网站公司
  • 做网络平台的网站有哪些广州网站维护
  • 网页 代码怎么做网站东莞市民最新疫情