STM32单片机汇编资料学习(1)

目录

摘要



本节主要记录自己学习STM32汇编语言的过程。。



ARM Cortex-M3处理器基于最细腻的32位ARMV7架构,支持Thumb-2指令



1.Cortex-M3内核架构



在这里插入图片描述

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


2.Cortex-M3指令系统的开发



在这里插入图片描述

在这里插入图片描述
总结:Cortex‐M3 只使用 Thumb‐2 指令集。这是个了不起的突破,因为它允许 32 位指令和 16 位指令
水乳交融,代码密度与处理性能两手抓,两手都硬。而且虽然它很强大,却依然易于使用



3.Cortex-M3简介



在这里插入图片描述



4.Cortex-M3寄存器组



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

1.寄存器特性

在这里插入图片描述

2.特殊功能寄存器特性

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

3.具体学习

CM3 拥有通用寄存器 R0‐R15 以及一些特殊功能寄存器。 R0‐R12 是最“通用目的” 的, 但是绝大多数的 16 位指令只能使用 R0‐R7(低组寄存器),而 32 位的 Thumb‐2
指令则可以访问所有通用寄存器。 特殊功能寄存器有预定义的功能, 而且必须通过专用的指
令来访问

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
寄存器的 PUSH 和 POP 操作永远都是 4 字节对齐的——也就是说他们的地址必须是
0x4,0x8,0xc,……。这样一来,R13 的最低两位被硬线连接到 0,并且总是读出 0(Read As Zero)。

这里可以对比:8086cpu的push和pop指令

在这里插入图片描述



5.Cortex-M3操作模式和特权级别



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



6.Cortex-M3中断



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



7.Cortex-M3的存储器



总体来说, Cortex‐M3 支持 4GB 存储空间,如图 所示地被划分成若干区域。

在这里插入图片描述



8.Cortex-M3的总线接口



Cortex‐M3 内部有若干个总线接口,以使 CM3 能同时取址和访内(访问内存),它们是:

  • 指令存储区总线(两条)
  • 系统总线
  • 私有外设总线

有两条代码存储区总线负责对代码存储区的访问,分别是 I‐Code 总线和 D‐Code 总线。前者用
于取指,后者用于查表等操作,它们按最佳执行速度进行优化。
系统总线用于访问内存和外设,覆盖的区域包括 SRAM,片上外设,片外 RAM,片外扩展设备,
以及系统级存储区的部分空间。私有外设总线负责一部分私有外设的访问,主要就是访问调试组件。它们也在系统级存储区。



9.存储器保护单元(MPU)



Cortex‐M3 有一个可选的存储器保护单元。配上它之后,就可以对特权级访问和用户级访问分
别施加不同的访问限制。当检测到犯规(violated)时, MPU 就会产生一个 fault 异常,可以由 fault
异常的服务例程来分析该错误,并且在可能时改正它。
MPU 有很多玩法。最常见的就是由操作系统使用 MPU,以使特权级代码的数据,包括操作系
统本身的数据不被其它用户程序弄坏。 MPU 在保护内存时是按区管理的(“区”的原文是 region,以
后不再中译此名词——译注)。它可以把某些内存 region 设置成只读,从而避免了那里的内容意外被
更改;还可以在多任务系统中把不同任务之间的数据区隔离。一句话,它会使嵌入式系统变得更加
健壮,更加可靠.

  • 18
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魔城烟雨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值