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 ...
随机推荐
- vue3.3新特性defineOptions
当我们使用选项式api时候,可以轻松创建与setup()选项同级别的选项. 但是,用了
- buuctf 加固题 babypython WriteUp
原题wp参考链接:https://www.cnblogs.com/karsa/p/13529769.html 这是CISCN2021 总决赛的题,解题思路是软链接zip 读取文件,然后伪造admin的 ...
- 2023-08-26:请用go语言编写。开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A、B、C、D四个球队,且每个村民只会喜欢其中的一支球队, 但是说
2023-08-26:请用go语言编写.开心一下的智力题: 有一个村庄,一共250人, 每一个村民要么一定说谎,要么只说真话, 村里有A.B.C.D四个球队,且每个村民只会喜欢其中的一支球队, 但是说 ...
- 2021-01-04:mysql里的innodb引擎的数据结构,你有看过吗?
福哥答案2021-01-04: 面试官刚开始问我看过mysql源码没,然后问了这个问题.回答B+树,过不了面试官那关. 答案来自<MySQL技术内幕 InnoDB存储引擎 第2版>第四章, ...
- rasa train nlu详解:1.1-train_nlu()函数
本文使用<使用ResponseSelector实现校园招聘FAQ机器人>中的例子,主要详解介绍train_nlu()函数中变量的具体值. 一.rasa/model_training.p ...
- 中秋节,华为云AI送上超级大月亮制作教程,体验赢开发者键鼠套装
摘要:一键"Run in ModelArts",无需考虑计算资源.环境的搭建,简单运行代码,即可拥有你的超级大月亮,打造专属于你的梦幻中秋月夜. 本文分享自华为云社区<中秋节 ...
- 解读8大场景下Kunpeng BoostKit 使能套件的最佳能力和实践
摘要:本次鲲鹏 BoostKit 训练营为开发者介绍如何基于鲲鹏 BoostKit 使能套件实现应用性能的加速,并重点剖析性能优化技术和关键能力. 本文分享自华为云社区<[云驻共创]" ...
- 华为云AOM 2.0版本发布
摘要:AOM作为华为云面向租户的统一运维门户,将在7月1日重磅发布2.0版本. 本文分享自华为云社区<华为云AOM发布2.0版本,3大特性亮相>,作者:华为云PaaS小助手. 6月16日华 ...
- 想从单体架构演进到分布式架构,SBA 会是一个不错的选择
摘要:SBA 可以看成是单体架构和微服务架构之间的一个折中方案,它也是按照业务领域进行服务划分,但服务划分的粒度相比微服务要更粗.从单体架构演进到 SBA,会比直接演进到微服务架构更加容易. 本文分享 ...
- 电商流量分析怎么做?试试这款数据工具 DataLeap!
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 作为成熟的电商模式,货架场景可以让商家以更低的门槛入驻,让消费者完成更高销量的购买和复购. 在这一场景下,运营人员 ...