beary 发表于 2015-11-3 09:29:22

关于M3核寄存器的疑惑,新人求拍砖

M3核的R0~R15还有xPSR和手册上的GPIO,UART那些32位的寄存器的联系是什么呀?   R0到R15每一个都是32位的寄存器,是说这些寄存器都是被那些GPIO32位之类的复用的吗? R0到R7是线程权限时复用,随机选用,8~12是内核级的时候使用,13,14,15是特殊用处,这样理解对吗?

feiting94 发表于 2015-11-3 11:22:58

这两个不是同一个东西,
R0-R15是MCU运行时用到的寄存器,而UART那是外设寄存器,每个都有具体的地址
写汇编语句时,MCU不知道你写的UART寄存器是哪个,它只认地址,你往某个外设寄存器地址写数据,其实就是在修改外设寄存器,也就是修改外设参数,而stm32库已经帮你把地址都写好了,所以就直接用。
R0-R15是汇编时你只能使用的寄存器,所有C语言转换为汇编后,都只能用这几个寄存器进行移位,赋值等操作,比如你把某个外设寄存器地址给R1,然后修改R1的值,就实现对这个外设寄存器的修改

creep 发表于 2015-11-3 10:04:31

外设有自己的寄存器,和内核通用寄存器不是一码事,内核寄存器是设计内核时固定的比如由ARM公司设定,外设寄存器由芯片厂家自己设定的,寄存器的地址,多少具体都不太一样。

二货520 发表于 2015-11-3 10:54:19

:o:o:o:o我也不懂

759611 发表于 2015-11-3 13:29:34

似乎懂一点了
页: [1]
查看完整版本: 关于M3核寄存器的疑惑,新人求拍砖