在Linux下掌握arm和操作系统(1)--stm32和arm
发布日期:2021-06-29 02:35:32 浏览次数:2 分类:技术文章

本文共 950 字,大约阅读时间需要 3 分钟。

大家都知道,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
  • 名称:找小黑 

转载地址:https://blog.csdn.net/yyyyyyyyyywwwwwwwwww/article/details/85718894 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:在Linux下掌握arm和操作系统(3)--点亮LED
下一篇:在Linux下掌握arm和操作系统(0)--开篇闲聊

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月01日 23时29分21秒