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

目录

文章目录

  • 目录
  • 摘要
  • 1.Cortex-M3内核架构
    • ![在这里插入图片描述](https://img-blog.csdn.net/20181009223510343?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeGlhb3dlaW1hc2hpeGlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ![在这里插入图片描述](https://img-blog.csdn.net/20181009223623972?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeGlhb3dlaW1hc2hpeGlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) ![在这里插入图片描述](https://img-blog.csdn.net/2018100922380950?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2xpeGlhb3dlaW1hc2hpeGlhbw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
  • 2.Cortex-M3指令系统的开发
  • 3.Cortex-M3简介
  • 4.Cortex-M3寄存器组
    • 1.寄存器特性
    • 2.特殊功能寄存器特性
    • 3.具体学习
  • 5.Cortex-M3操作模式和特权级别
  • 6.Cortex-M3中断
  • 7.Cortex-M3的存储器
  • 8.Cortex-M3的总线接口
  • 9.存储器保护单元(MPU)

摘要



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



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



1.Cortex-M3内核架构



STM32单片机汇编资料学习(1)_第1张图片

STM32单片机汇编资料学习(1)_第2张图片
STM32单片机汇编资料学习(1)_第3张图片
STM32单片机汇编资料学习(1)_第4张图片


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



STM32单片机汇编资料学习(1)_第5张图片

STM32单片机汇编资料学习(1)_第6张图片
总结:Cortex‐M3 只使用 Thumb‐2 指令集。这是个了不起的突破,因为它允许 32 位指令和 16 位指令
水乳交融,代码密度与处理性能两手抓,两手都硬。而且虽然它很强大,却依然易于使用



3.Cortex-M3简介



STM32单片机汇编资料学习(1)_第7张图片



4.Cortex-M3寄存器组



STM32单片机汇编资料学习(1)_第8张图片
在这里插入图片描述
STM32单片机汇编资料学习(1)_第9张图片

1.寄存器特性

STM32单片机汇编资料学习(1)_第10张图片

2.特殊功能寄存器特性

STM32单片机汇编资料学习(1)_第11张图片
STM32单片机汇编资料学习(1)_第12张图片

3.具体学习

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

STM32单片机汇编资料学习(1)_第13张图片

STM32单片机汇编资料学习(1)_第14张图片

STM32单片机汇编资料学习(1)_第15张图片

STM32单片机汇编资料学习(1)_第16张图片

STM32单片机汇编资料学习(1)_第17张图片
寄存器的 PUSH 和 POP 操作永远都是 4 字节对齐的——也就是说他们的地址必须是
0x4,0x8,0xc,……。这样一来,R13 的最低两位被硬线连接到 0,并且总是读出 0(Read As Zero)。

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

在这里插入图片描述



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



STM32单片机汇编资料学习(1)_第18张图片
STM32单片机汇编资料学习(1)_第19张图片



6.Cortex-M3中断



STM32单片机汇编资料学习(1)_第20张图片
STM32单片机汇编资料学习(1)_第21张图片



7.Cortex-M3的存储器



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

STM32单片机汇编资料学习(1)_第22张图片



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 设置成只读,从而避免了那里的内容意外被
更改;还可以在多任务系统中把不同任务之间的数据区隔离。一句话,它会使嵌入式系统变得更加
健壮,更加可靠.

你可能感兴趣的:(汇编语言学习)