IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> MCU_DESIGN_01 Cortex-M3内核了解 -> 正文阅读

[嵌入式]MCU_DESIGN_01 Cortex-M3内核了解

1.M3整体架构

整体的架构刚接触时并不明白各个模块的作用,但是主要的4个部分以及一些测试点

  • core——内核包括寄存器、累加单元、对指令的取指、译码、执行等
  • NVIC——向量中断控制
  • MPU——保护单元(黑客的目标)
  • Bus matrix——哈佛结构,指令和数据分离
  • test points——一些测试点

一开始了解一下就好,慢慢去熟悉;

在这里插入图片描述

2.内核寄存器(19组)

  • 通用寄存器R0 - R12,共13个
    在这里插入图片描述

R0 - R7的寄存器:32位Thumb-2指令与16位Thumb指令均可访问

R8 - R12的寄存器:32位Thumb-2指令可访问
在这里插入图片描述
R13:MSP、PSP(栈)同一时间只能使用其中一个

R14:连接寄存器,存储子程序指针

R15:程序计数寄存器

程序状态字寄存器组xPSR:可分为3个寄存器进行访问,包括应用程序APSR、中断号IPSR、执行EPSR

中断屏蔽寄存器组:
PRIMASK ,单一比特位,置位后,除NMI与硬fault外,其他中断都不响应;

FAULTMASK ,单一比特位,置位后,除NMI外,其他中断都不响应;

BASEPRI,共有9位,中断号小于等于该寄存器设置值的中断都不响应;

控制寄存器CONTROL:
Control[0] 0决定特权级线程模式;1用户级线程模式;

Control[1] 0主堆栈;1进程堆栈;

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

3.内核流水技术

如下图,如果不采用流水的话,那么只能等到N中的execute执行完毕后才进行N+1中的fetch,此时如果后面排了很多指令的话那么将会浪费很多时间。
在这里插入图片描述

4.内核接口

  • AHB-Lite

它主要分为3个部分:

①指令接口Icode (0x00000000~0x1FFFFFFF)

②数据接口Dcode (0x00000000~0x1FFFFFFF)

③系统总线System bus (0x20000000~0xDFFFFFFF)

  • PPB(0xE0040000~0xE00FFFFF)

内部的debug以及寄存器的访问

5.NVIC

向量中断控制器,简称NVIC;NVIC共支持1至240外部中断输入(IRQs)+1不可屏蔽中断(NMI);NVIC的访问起始地址是0xE000E000;所有NVIC的中断控制/状态寄存器都只能在特权级下访问;软件触发中断寄存器可以在用户级下访问以产生软件中断;所有的中断控制/状态寄存器均可按字/半字/字节的方式访问

5.1 中断使能与清除

  • 每个中断对应一个Enable和Clear寄存器
  • 1~240分别映射到8对32 bits寄存器
  • Enable和Clear按照写1清方式完成使能和清除

5.2 中断Pending

在当前中断执行时,有更高优先级的中断触发,那么当前中断则会被挂起,通过pending存入寄存器中,等更高级的优先级完成后,继续刚才的中断;

6.中断机制

  • 中断响应

①入栈,把8个寄存器的值压入Dcode

②取向量,从向量表中找出对应的入口地址Icode

③更新相关的寄存器,如:
SP:在入栈中会把堆栈指针(PSP或MSP)更新到新的位置
LR:LR的用法将被重新解释
PC:PC将指向服务例程的入口地址
PSR:IPSR位段(地处PSR的最低部分)会被更新为新响应的异常编号
NVIC:新响应异常的悬起位将被清除,同时其活动位将被置位

  • 中断退出

①退出指令

②出栈,先前压入栈中的寄存器恢复

③更新NVIC寄存器,活动位硬件清零

  • 咬尾中断

和ARM7对比,减少了不必要的出栈和入栈,节省了时间
在这里插入图片描述

  • 中断延迟

①定义:从检测到某中断请求,到执行了其服务例程的第一条指令时间

②理想条件:12个处理器时钟周期

③增加延迟的因素(如果延迟太长则需要排除下面的一些因素):

多周期指令(除法、LDRD,STRD)
总线拥塞
多中断请求,优先级仲裁
中断嵌套
中断屏蔽

  • 中断异常(Fault)处理

经过相应的一些寄存器上报到core进行处理:

入栈异常:总线fault状态寄存器(BFSR,0xE000_ED29 bit4 : STKERR)

出栈异常:总线fault状态寄存器(BFSR,0xE000_ED29 bit3 : UNSTKERR)

取向量异常:硬fault状态寄存器(HFSR,0xE000_ED2C bit1 : VECTTBL)

响应异常:用法Fault状态寄存器(UFSR,0xE000_ED2A bit2 : INVPC or bit1 : INVSTATE)

7.内存映射

Cortex-m3是一个32位处理器,其地址总线、数据总线都是32位的,故可在4G的地址范围上资源寻址。Cortex-m3内核把4G空间划定了基本的框架,定义不同的使用用途:

0x0000 0000 ----0x1FFF FFFF (512MB) 该区域为code区(flash区),供指令总线与数据总线取指取数使用;可以执行指令;

0x2000 0000 ----0x3FFF FFFF (512MB) 该区域为片上SRAM区,芯片制造商可在此布设RAM,可以将代码复制到此处运行,该区域也是可以执行指令code的;低1MB空间可位寻址,通过位带别名可扩展为32Mb的位寻址。

0x4000 0000 ----0x5FFF FFFF (512MB)该区域为"片上外设"区 ,主要为片上外设的相关寄存器,即特殊功能寄存器区,同理低1MB也可位寻址;该区域不可执行代码;

0x6000 0000 ----0x9FFF FFFF(1G)该区域为片外RAM区,该区域可执行代码;

0xA000 0000 ----0xDFFF FFFF(1G)该区域为片外外设区,该区域不可执行代码;

0xE000 0000 ----0xFFFF FFFF(1G)该区域为系统区,该区域不可执行代码;

该系统区又分为两部分:

内部私有外设区0xE000 0000 ----0xE003 FFFF(256KB)主要有NVIC,FPB,DWT,ITM等

外部私有外设区0xE004 0000 ----0xE00F FFFF(512+256=768KB)有ROM表,ETM,TPIU等
在这里插入图片描述

8.bit banding

我们都知道一个地址对应8bit,那么地址0x20000000对应8bit;当我想操作0x20000000的第[0]位时,我直接可以用公式来计算出其对应的地址;公式:word_addr = bit_base + (byte_offset x 32)+ (bit_number x 4)

而以前是怎么做的呢?以前需要将0x20000000存到寄存器中做or的操作再取出,操作很麻烦;
在这里插入图片描述

参考:
1.https://www.cnblogs.com/nevel/p/6354585.html
2.移知MCU前端设计相应课程

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-06-01 15:23:19  更:2022-06-01 15:23:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:41:25-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码