Cortex M3 CORE
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的更多相关文章
- ARM 架构、ARM7、ARM9、STM32、Cortex M3 M4 、51、AVR 之间有什么区别和联系?(转载自知乎)
ARM架构: 由英国ARM公司设计的一系列32位的RISC微处理器架构总称,现有ARMv1~ARMv8种类. ARM7: 一类采用ARMv3或ARMv4架构的,使用冯诺依曼结构的内核. ...
- ARM Cortex M3系列GPIO口介绍(工作方式探讨)
一.Cortex M3的GPIO口特性 在介绍GPIO口功能前,有必要先说明一下M3的结构框图,这样能够更好理解总线结构和GPIO所处的位置. Cortex M3结构框图 从图中可以看出 ...
- ARM Cortex M3(V7-M架构)硬件启动程序 一
Cortex-m3启动代码分析笔记 启动代码文件名是STM32F10X.S,它的作用先总结下,然后再分析. 启动代码作用一般是: 1)堆和栈的初始化: 2)中断向量表定义: 3)地址重映射及中断向量表 ...
- STM32学习之路入门篇之指令集及cortex——m3的存储系统
STM32学习之路入门篇之指令集及cortex——m3的存储系统 一.汇编语言基础 一).汇编语言:基本语法 1.汇编指令最典型的书写模式: 标号 操作码 操作数1, 操作数2,... ...
- 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 ...
- 【ARM-Linux开发】ARM7 ARM9 ARM Cortex M3 M4 有什么区别
ARM7 ARM9 ARM Cortex M3 M4 区别 arm7 arm9 可以类比386和奔腾, 不同代,arm9相比arm7指令集和性能都有所增强,arm7和arm9都有带mmu和无mmu的版 ...
- 【freertos】002-posix模拟器设计与cortex m3异常处理
目录 前言 posix 标准接口层设计 模拟器的系统心跳 模拟器的task底层实质 模拟器的任务切换原理 cortex M3/M4异常处理 双堆栈指针 双操作模式 栈帧 EXC_RETURN 前言 如 ...
- ARM Cortex M3(V7-M架构)硬件启动程序 二
解析 STM32 的启动过程 解析STM32的启动过程 当前的嵌入式应用程序开发过程里,并且C语言成为了绝大部分场合的最佳选择.如此一来main函数似乎成为了理所当然的起点——因为C程序往往从main ...
- stm32和cortex M3学习内核简单总结
1.stm32综述 2.寄存器组 3.操作模式和特权级别 4.存储器映射 5.中断和异常 6.其他 Stm32综述 这可以说是我第一款认真学习的单片机了,学完这个就要开启我通往arm9的大门了,接下来 ...
- CORTEX -M3 : Registers in depth
http://www.zembedded.com/cortex-m3-registers-in-depth/ Thanks for the overwhelm response you show in ...
随机推荐
- storeToRefs()的作用和使用
store 是一个用 reactive 包装的对象,这意味着不需要在 getters 后面写 .value,就像 setup 中的 props 一样,如果你写了,我们也不能解构它: <scrip ...
- 华企盾DSC服务器配置无法创建数据库
测试连接的数据库用户没有创建数据库的权限,应该打开数据库控制台,把对应用户的权限都勾上
- 使用cgroup控制内存
关键文件 memory.limit_in_bytes memory.soft_limit_in_bytes memory.memsw.limit_in_bytes tasks cgroup.procs ...
- 解密Prompt系列22. LLM Agent之RAG的反思:放弃了压缩还是智能么?
已经唠了三章的RAG,是时候回头反思一下,当前的RAG是解决幻觉的终点么?我给不出直接的答案,不过感觉当前把RAG当作传统搜索框架在大模型时代下的改良,这个思路的天花板高度有限~ 反思来源于对RAG下 ...
- 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子
大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...
- 现代 CMake 模块化项目管理指南
现代 CMake 模块化项目管理指南 参考小彭老师的视频教程整理笔记,学习同时方便快速查阅,视频链接如下 [公开课]现代 CMake 模块化项目管理指南[C/C++] 对应课程 PPT 和源码见 ht ...
- .net Core实战简单文件服务器
首先新建一个ASP.NET Core 项目,选中空的模板,如下图所示 在NuGet包中添加Microsoft.AspNetCore.StaticFiles 添加好以后我们在Startup.cs中添加对 ...
- 为什么程序猿DD热衷于内容输出与分享?
一.热衷于内容输出与分享 我是程序猿DD,大家知道我热衷于内容输出与分享.比如我一直有在产出博客或维护开源项目,是因为平时不沉迷游戏或追剧,空下来就喜欢整理整理最近碰到的问题,那么写写博客正好是一种比 ...
- 云图说|ModelArts开发环境,让AI开发、探索、教学更简单
摘要:ModelArts开发环境,以云原生的资源使用和开发工具链的集成,目标为不同类型AI开发.探索.教学用户. 本文分享自华为云社区<[云图说]| 第280期 ModelArts开发环境,让A ...
- 云小课|云数据库RDS实例连接失败了?送你7大妙招轻松应对
摘要:自从购买了RDS实例,连接失败的问题就伴随着我,真是太难了.不要害怕,不要着急,跟着小云妹,读了本篇云小课,让你风里雨里,实例连接自此畅通无阻! 顺着以下几个方面进行排查,问题就可以迎刃而解~ ...