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

直播视频网站怎么免费制作网站平台

直播视频网站,怎么免费制作网站平台,专门做图的网站,网页设计基础填空题及答案STM32H7的MPU学习记录 什么是MPU#xff1f;MPU的三种内存类型内存映射MPU保护区域以及优先级 MPU的寄存器XN位AP位TEX、C、B、S位SRD 位SIZE 位CTRL 寄存器的各个位 示例总结 什么是MPU#xff1f; MPU#xff08;Memory Protection Unit#xff0c;内存保护单元#xf… STM32H7的MPU学习记录 什么是MPUMPU的三种内存类型内存映射MPU保护区域以及优先级 MPU的寄存器XN位AP位TEX、C、B、S位SRD 位SIZE 位CTRL 寄存器的各个位 示例总结 什么是MPU MPUMemory Protection Unit内存保护单元早在 STM32F1 和 F4 芯片上面也是有这个功能的但是基本用不上。但是到了 H7 就得用上了因为要设置 Cache。 MPU 可以将 memory map 内存映射区分为多个具有一定访问规则的区域通过这些规则可以实现 如下功能 ◆ 防止不受信任的应用程序访问受保护的内存区域。 ◆ 防止用户应用程序破坏操作系统使用的数据。 ◆ 通过阻止任务访问其它任务的数据区。 ◆ 允许将内存区域定义为只读以便保护重要数据。 ◆ 检测意外的内存访问。 简单的说就是内存保护、外设保护和代码访问保护。 MPU的三种内存类型 MPU 可以配置的三种内存类型如下 ◆ Normal memory CPU 以最高效的方式加载和存储字节、半字和字对于这种内存区CPU 的加载或存储不一定要按照程序列出的顺序执行。 ◆ Device memory 对于这种类型的内存区加载和存储要严格按照次序进行这样是为了确保寄存器按照正确顺序设置。 ◆ Strongly ordered memory 程序完全按照代码顺序执行CPU 需要等待当前的加载/存储指令执行完毕后才执行下一条指令。这样会导致性能下降。 内存映射 内存映射就是 32 位的 CM7 内核整体可以寻址的 0 到 2^32 -1 共计 4GB 的寻址空间。通过这些地址可以访问 RAM、Flash、外设等。下面是内存映射的轮廓图IC 厂家使用时再做细分添加相应的硬件功能。 MPU保护区域以及优先级 MPU 可以配置保护 16 个内存区域这 16 个内存域是独立配置的每个区域最小要求 256 字节每个区域还可以配置为 8 个子区域。由于子区域一般都相同大小这样每个子区域的大小就是 32 字节正好跟 Cache 的 Cache Line 大小一样。 MPU 可以配置的 16 个内存区的序号范围是 0 到 15还有默认区 default region也叫作背景区序号-1。由于这些内存区可以嵌套和重叠所以这些区域在嵌套或者重叠的时候有个优先级的问题。序号15 的优先级最高以此递减序号-1即背景区的优先级最低。这些优先级是固定的 下面通过一个具体的实例帮助大家理解。如下所示共有 7 个区背景区和序号 0-5 的区。内存区 4 跟内存区 0 和 1 有重叠部分那么重叠部分将按照内存区 4 的配置规则执行内存区 5 被完全包含在内存区3 里面那么这部分内存区将按照内存区 5 的配置规则执行。 MPU的寄存器 这里重点讲解寄存器MPU_RASR 和控制寄存器此寄存器的定义如下 XN位 XN0 表示使能指令提取即这块内存区可以执行程序代码XN1 表示禁止指令提取即这块内存 区禁止执行程序代码。 对应的 HAL 库 MPU 参数如下 #define MPU_INSTRUCTION_ACCESS_ENABLE ((uint8_t)0x00) #define MPU_INSTRUCTION_ACCESS_DISABLE ((uint8_t)0x01)AP位 AP 的具体定义如下 #define MPU_REGION_NO_ACCESS ((uint8_t)0x00) #define MPU_REGION_PRIV_RW ((uint8_t)0x01) #define MPU_REGION_PRIV_RW_URO ((uint8_t)0x02) #define MPU_REGION_FULL_ACCESS ((uint8_t)0x03) #define MPU_REGION_PRIV_RO ((uint8_t)0x05) #define MPU_REGION_PRIV_RO_URO ((uint8_t)0x06)TEX、C、B、S位 TEXCB 和 S 的定义如下这仅关注 TEX 0b000 和 0b001其它的 TEX 配置基本用不到。 TEX 用于配置 Cache 策略支持如下四种情况需要配合 C 和 B 位的配置才能实现。 TEX 对应的 HAL 库 MPU 参数给了三个实际应用中仅用到前两个 MPU_TEX_LEVEL0 和MPU_TEX_LEVEL1 #define MPU_TEX_LEVEL0 ((uint8_t)0x00) #define MPU_TEX_LEVEL1 ((uint8_t)0x01) #define MPU_TEX_LEVEL2 ((uint8_t)0x02)C 位对应的 HAL 库 MPU 参数如下用于使能或者禁止 Cache。 #define MPU_ACCESS_CACHEABLE ((uint8_t)0x01) #define MPU_ACCESS_NOT_CACHEABLE ((uint8_t)0x00)B 位对应的 HAL 库 MPU 参数如下用于配合 C 位实现 Cache 模式下是否使用缓冲。 #define MPU_ACCESS_BUFFERABLE ((uint8_t)0x01) #define MPU_ACCESS_NOT_BUFFERABLE ((uint8_t)0x00)S 位对应的 HAL 库 MPU 参数如下用于解决多总线或者多核访问的共享问题。 #define MPU_ACCESS_SHAREABLE ((uint8_t)0x01) #define MPU_ACCESS_NOT_SHAREABLE ((uint8_t)0x00)SRD 位 这个位用于控制内存区的子区域使用的是 bit[15:8]共计 8 个 bit一个 bit 控制一个子区域0 表示使能此子区域1 表示禁止此子区域。 一般情况基本不使用子区域的禁止功能所以配置 HAL 库的 SubRegionDisable 参数时直接取 值 0x00 即可表示 8 个子区域均使能。 SIZE 位 SIZE 位使用的是 bit[5:1]共计 5 个 bit可以表示 2^5 32 种大小。 对应的 HAL 库给出了可以配置的 28 个参数。 #define MPU_REGION_SIZE_32B ((uint8_t)0x04) #define MPU_REGION_SIZE_64B ((uint8_t)0x05) #define MPU_REGION_SIZE_128B ((uint8_t)0x06) #define MPU_REGION_SIZE_256B ((uint8_t)0x07) #define MPU_REGION_SIZE_512B ((uint8_t)0x08) #define MPU_REGION_SIZE_1KB ((uint8_t)0x09) #define MPU_REGION_SIZE_2KB ((uint8_t)0x0A) #define MPU_REGION_SIZE_4KB ((uint8_t)0x0B) #define MPU_REGION_SIZE_8KB ((uint8_t)0x0C) #define MPU_REGION_SIZE_16KB ((uint8_t)0x0D) #define MPU_REGION_SIZE_32KB ((uint8_t)0x0E) #define MPU_REGION_SIZE_64KB ((uint8_t)0x0F) #define MPU_REGION_SIZE_128KB ((uint8_t)0x10) #define MPU_REGION_SIZE_256KB ((uint8_t)0x11) #define MPU_REGION_SIZE_512KB ((uint8_t)0x12) #define MPU_REGION_SIZE_1MB ((uint8_t)0x13) #define MPU_REGION_SIZE_2MB ((uint8_t)0x14) #define MPU_REGION_SIZE_4MB ((uint8_t)0x15) #define MPU_REGION_SIZE_8MB ((uint8_t)0x16) #define MPU_REGION_SIZE_16MB ((uint8_t)0x17) #define MPU_REGION_SIZE_32MB ((uint8_t)0x18) #define MPU_REGION_SIZE_64MB ((uint8_t)0x19) #define MPU_REGION_SIZE_128MB ((uint8_t)0x1A) #define MPU_REGION_SIZE_256MB ((uint8_t)0x1B) #define MPU_REGION_SIZE_512MB ((uint8_t)0x1C) #define MPU_REGION_SIZE_1GB ((uint8_t)0x1D) #define MPU_REGION_SIZE_2GB ((uint8_t)0x1E) #define MPU_REGION_SIZE_4GB ((uint8_t)0x1F)CTRL 寄存器的各个位 示例 static void MPU_Config( void ) {MPU_Region_InitTypeDef MPU_InitStruct;/* 禁止 MPU */HAL_MPU_Disable();/* 配置 AXI SRAM 的 MPU 属性为 Write back, Read allocateWrite allocate */MPU_InitStruct.Enable MPU_REGION_ENABLE;MPU_InitStruct.BaseAddress 0x24000000;MPU_InitStruct.Size MPU_REGION_SIZE_512KB;MPU_InitStruct.AccessPermission MPU_REGION_FULL_ACCESS;MPU_InitStruct.IsBufferable MPU_ACCESS_BUFFERABLE;MPU_InitStruct.IsCacheable MPU_ACCESS_CACHEABLE;MPU_InitStruct.IsShareable MPU_ACCESS_NOT_SHAREABLE;MPU_InitStruct.Number MPU_REGION_NUMBER0;MPU_InitStruct.TypeExtField MPU_TEX_LEVEL1;MPU_InitStruct.SubRegionDisable 0x00;MPU_InitStruct.DisableExec MPU_INSTRUCTION_ACCESS_ENABLE;HAL_MPU_ConfigRegion(MPU_InitStruct);/* 配置 FMC 扩展 IO 的 MPU 属性为 Device 或者 Strongly Ordered */MPU_InitStruct.Enable MPU_REGION_ENABLE;MPU_InitStruct.BaseAddress 0x60000000;MPU_InitStruct.Size ARM_MPU_REGION_SIZE_64KB;MPU_InitStruct.AccessPermission MPU_REGION_FULL_ACCESS;MPU_InitStruct.IsBufferable MPU_ACCESS_BUFFERABLE;MPU_InitStruct.IsCacheable MPU_ACCESS_NOT_CACHEABLE;MPU_InitStruct.IsShareable MPU_ACCESS_NOT_SHAREABLE;MPU_InitStruct.Number MPU_REGION_NUMBER1;MPU_InitStruct.TypeExtField MPU_TEX_LEVEL0;MPU_InitStruct.SubRegionDisable 0x00;MPU_InitStruct.DisableExec MPU_INSTRUCTION_ACCESS_ENABLE;HAL_MPU_ConfigRegion(MPU_InitStruct);/*使能 MPU */HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT); }总结 本文章对MPU基本功能和寄存器进行了概述并放入了一个示例仅供个人学习用。
http://www.w-s-a.com/news/11912/

相关文章:

  • 网站域名主机空间区别广告设计专业前景
  • 新手做啥网站好dedecms网站的源码如何安装
  • 哪些网站是用iframe免费网站域名查询
  • 自己开的网站 可以做代销吗百度查找相似图片
  • 网站建设设计作业网站备案渝
  • 中国重庆网站建设福州短视频seo获客
  • 遵义官网网站建设网站移动端开发公司
  • 宜春网站推广优化电子商务网站建设收益举例
  • 游戏网站开发实验报告装修平台哪家好
  • 外贸自己建网站小红门网站建设
  • 中国著名的做网站渗透设计规范网站
  • 公司网站备案多少钱推特最新消息今天
  • 网站关键词设置代码seo搜索优化 指数
  • 做网站卖东西送上门做暧暧xoxo网站
  • 网站网站设计公司网站维护运营好做吗
  • 照片做成视频的软件seo两个域名一个网站有影响吗
  • 制作动画的网站河南省住房城乡建设门户网站
  • 网站推广原则做网站的那个语言好
  • 潍坊网站建设怎样商品网站建设设计思路
  • 建网站公司是如何赚钱南昌营销网站公司哪家好
  • 淘宝客网站管理质量好网站建设费用
  • 网站建设教程搭建青岛中企动力做网站怎么样
  • wordpress最底部网站优化怎么弄
  • 二手市场网站建设的目的长沙ui设计公司
  • 微信公众号做留言网站wordpress详情页选择模板
  • php网站开发面向对象教程如何做分享赚钱的网站
  • 山东网站建设最便宜常州网站建站公司
  • 网站地图 seo中国建设招标网是私人网站吗
  • 高中作文网站全网营销有哪些平台
  • 网站构建建设制作平台上海搬家公司收费价目表