在Linux下掌握arm和操作系统(1)--stm32和arm

大家都知道,arm是卖IP,授权给芯片厂商,芯片厂商再增加外设等组成CPU/MCU/SOC生产销售。

arm的发展历程网络上太多了,我也不多说。只要我们明确目前arm主要产品是armv7,armv8架构的。其中armv7又分为armv7-A,armv7-R,armv7-M,而armv8  只有armv8-A。A系列主要面向高端应用,R系列主要面向实时类的场景,M系列是面向低端控制器场景。

而我们现在说的stm32 就是ST公司根据arm公司的cortex-M系列CPU加入了外设生产的SOC(System On Chip)。

后面我们主要使用的芯片为stm32f103c8t6,具体命名规则如下(对于程序员,我们并不是特别关心最后两位:T和6)

通俗地说:我们要使用的stm32f103c8t6的内核cortex-M3,由arm实现了CPU的计算功能,中断控制器,指令集等。ST公司加入和一些外设如:时钟树,UART控制器,SPI控制器,GPIO,I2C控制器,timer等等,并把这些控制器的地址映射到32bit处理器能寻址的4G地址空间。

cortex-M3 CPU内部寄存器

arm cortexM3 内部有R0 -R15一共16个寄存器,作为通用寄存器

除了通用寄存器,还有表示CPU内部状态和全局控制的特殊寄存器:

cortexM3 CPU地址分布:

从下图可以看出,所有的寄存器和外设都在统一的0x0000000--0xffffffff地址空间.

每一段空间ARM都事先规定了用途,每段分别有规定类型的外设. 当然,除了CPU内部的通用和特殊寄存器之外,地址空间还有

PPB 和SCS用于CPU的系统控制(低功耗,NVIC的中断控制器控制寄存器等).

ST公司根据cortexM3内核增加了一些外设.

下表是STM32F10X的外设地址映射,访问外设就是通过这些地址上的寄存器实现的。

这样想起来SOC也很简单嘛,CPU根据指令计算,在统一的4G寻址空间访问内存,读写控制外设和内部设备的寄存器,说白了CPU也就是会读写寄存器嘛.

更多的细节我们后面再说,现在我们知道了CPU通过读写寄存器控制外设就好.

 

576648661@qq.com

  • 微信号:find_xiaohei
  • 名称:找小黑 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值