Cortex CM3 内核架构

  • CM3内核主要包含几个部分:取指(Fetch)\指令译码(Decoder/DEC)\执行(EXEC)\ALU
  • 内存取数通过load & store指令,就是通过一个LSU(Load & Store Unit)单元
  • Status - 状态上报
  • 内核和外部进行交互都是通过中断进行的,CPU通常不会一直查询外部的设备,降低CPU效率,通常都是设备发起中断给CPU,CPU进行响应中断
  • PMU模块是可选的
  • 接口 - AHB总线接口和PPB接口,两个总线的命令会进行一定的转换

内核 - 寄存器

  • 内置13个通用寄存器
  • MSP(master stack point)和PSP(processor stack point) - 用于防止内存踩踏
  • 连接寄存器,存储子程序指针,cpu收到中断之后,可以执行中断处理程序,读到stack point,之后可以执行程序;如果子程序的指针存储在CPU外部的RAM中,访问需要时间,中断处理程序执行比较慢
  • 程序计数寄存器 - 计算机执行指令完成后,下一条指令的取址通过程序计数寄存器存储
  • 程序状态字寄存器组(PSRs)

指令预取

  • 指令预取,指令取回来之后会放到指令的缓冲区(32*3 FIFIO),第一个指令存储在FIFO的第一个存储单元,下一个指令会存在下一个FIFO单元
  • Thumb 16bit - 一个cycle会取两个指令,数据总线是32bit的,所以一个cycle可以取两个指令
  • Thumb2 - 一个cycle取一个指令
  • 取值\解码\执行的指令依次进行存储,取指才能连续
  • 如果遇到中断或者分支预测(if-else)的时候,流水会被打断,FIFO就会被清除掉

流水技术

  • 非流水的操作,一个指令执行完成之后才会执行下一个指令

Interface

  • AHB_Lite主要包含Icode(指令接口)\Dcode(数据接口)\System Bus(系统总线命令)

Cortex M3 CORE的更多相关文章

  1. ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)

    ARM架构:  由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7:       一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...

  2. ARM Cortex M3系列GPIO口介绍(工作方式探讨)

    一.Cortex M3的GPIO口特性    在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图     从图中可以看出 ...

  3. ARM Cortex M3(V7-M架构)硬件启动程序 一

    Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ...

  4. STM32学习之路入门篇之指令集及cortex——m3的存储系统

    STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码        操作数1, 操作数2,... ...

  5. Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors

    Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...

  6. 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别

    ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版 ...

  7. 【freertos】002-posix模拟器设计与cortex m3异常处理

    目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如 ...

  8. ARM Cortex M3(V7-M架构)硬件启动程序 二

    解析 STM32 的启动过程 解析STM32的启动过程 当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main ...

  9. stm32和cortex M3学习内核简单总结

    1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来 ...

  10. CORTEX -M3 : Registers in depth

    http://www.zembedded.com/cortex-m3-registers-in-depth/ Thanks for the overwhelm response you show in ...

随机推荐

  1. storeToRefs()的作用和使用

    store 是一个用 reactive 包装的对象,这意味着不需要在 getters 后面写 .value,就像 setup 中的 props 一样,如果你写了,我们也不能解构它: <scrip ...

  2. 华企盾DSC服务器配置无法创建数据库

    测试连接的数据库用户没有创建数据库的权限,应该打开数据库控制台,把对应用户的权限都勾上

  3. 使用cgroup控制内存

    关键文件 memory.limit_in_bytes memory.soft_limit_in_bytes memory.memsw.limit_in_bytes tasks cgroup.procs ...

  4. 解密Prompt系列22. LLM Agent之RAG的反思:放弃了压缩还是智能么?

    已经唠了三章的RAG,是时候回头反思一下,当前的RAG是解决幻觉的终点么?我给不出直接的答案,不过感觉当前把RAG当作传统搜索框架在大模型时代下的改良,这个思路的天花板高度有限~ 反思来源于对RAG下 ...

  5. 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子

    大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...

  6. 现代 CMake 模块化项目管理指南

    现代 CMake 模块化项目管理指南 参考小彭老师的视频教程整理笔记,学习同时方便快速查阅,视频链接如下 [公开课]现代 CMake 模块化项目管理指南[C/C++] 对应课程 PPT 和源码见 ht ...

  7. .net Core实战简单文件服务器

    首先新建一个ASP.NET Core 项目,选中空的模板,如下图所示 在NuGet包中添加Microsoft.AspNetCore.StaticFiles 添加好以后我们在Startup.cs中添加对 ...

  8. 为什么程序猿DD热衷于内容输出与分享?

    一.热衷于内容输出与分享 我是程序猿DD,大家知道我热衷于内容输出与分享.比如我一直有在产出博客或维护开源项目,是因为平时不沉迷游戏或追剧,空下来就喜欢整理整理最近碰到的问题,那么写写博客正好是一种比 ...

  9. 云图说|ModelArts开发环境,让AI开发、探索、教学更简单

    摘要:ModelArts开发环境,以云原生的资源使用和开发工具链的集成,目标为不同类型AI开发.探索.教学用户. 本文分享自华为云社区<[云图说]| 第280期 ModelArts开发环境,让A ...

  10. 云小课|云数据库RDS实例连接失败了?送你7大妙招轻松应对

    摘要:自从购买了RDS实例,连接失败的问题就伴随着我,真是太难了.不要害怕,不要着急,跟着小云妹,读了本篇云小课,让你风里雨里,实例连接自此畅通无阻! 顺着以下几个方面进行排查,问题就可以迎刃而解~ ...