嵌入式C语言开发

这是我的第一篇对ARM有有疑问并展开调查的文档总结,以备之后查阅。

首先的疑惑是发现之前的源码中都是在对寄存器做操作,所以对寄存器的地址是怎么被确定的就很疑惑。
搜索引擎关键词:嵌入式 寄存器 基地址 使用
参考《嵌入式15——HAL 库中寄存器地址名称映射分析》(https://zhuanlan.zhihu.com/p/91331682),

可以看到这个地址是跟字长、总线相关的。
然后参考《嵌入式C语言开发—存储器与寄存器》(https://blog.csdn.net/weixin_30439067/article/details/98448978),可以到有关的内容是在ARM的存储器映射相关的,
然后参考《内存或寄存器定义和赋值》(https://blog.csdn.net/tianya58198/article/details/7176043),说了一下以下的写法:

#define rDISRC0     (*(volatile unsigned *)0x4b000000) //DMA 0 Initial source
rDISRC0 = 0x38000000  //将0x38000000数据赋值给rDISRC0

当然还有ARM 寄存器基本概念,参考《嵌入式-ARM寄存器基本概念》(https://wenku.baidu.com/view/0092ddd1d5d8d15abe23482fb4daa58da0111cb0.html),注意区分ARM自身寄存器(37个)和各家公司芯片中自己实现的外设寄存器。

《嵌入式-ARM寄存器基本概念》(http://news.eeworld.com.cn/mcu/2012/0703/article_9308.html)

无论是学习哪一种处理器,首先需要明确的就是这种处理器的寄存器以及工作模式。
ARM有37个寄存器,其中31个通用寄存器,6个状态寄存器。
这里尤其要注意区别的是ARM自身寄存器和它的一些外设的寄存器的区别。
ARM自身是统一架构的,也就意味着37个寄存器无论在哪个公司的芯片里面都会出现。但是各家公司会对ARM进行外设的扩展,所以就出现了好多外设寄存器,一定要与这37个寄存器区别开来!!!

还有嵌入式驱动开发的理解:《嵌入式驱动开发是不是相当于寄存器编程?》(https://www.zhihu.com/question/467749782)

总结,
以及接触到的这些芯片(8051、stm32)、操作系统、架构(rsiv)、
esp32 、arm cortex m4、ARM 11、linux、Windows
片内资源,片指的是啥?

区分芯片、CPU、MCU、ARM产品线、操作系统内核、架构。

参考:
《嵌入式linux-ARM体系结构及接口技术,ARM产品线》(https://www.pianshen.com/article/4634155382/)

《ARM架构—— Cortex-M3与Cortex-M4特点概述》(https://blog.csdn.net/weixin_42092278/article/details/102884186)

处理器和微控制器差别
微控制器包含处理器,处理器只是其中一小部分,具体包含存储器、时钟生成、分配逻辑、系统总线以及外设(I/O接口单元、通信接口、定时器、ADC、DAC等等),如图1-1所示:
微控制架构

即使处理器相同,但是不同芯片厂商根据不同的应用场景选择不同的特性模块就能设计出不同特性的微控制器。
Cortex-M3与Cortex-M4处理器均使用32位架构,寄存器组中的内部寄存器、数据通路以及总线接口都是32位。Cortex-M处理器使用的指令集架构(ISA)为Thumb ISA,基于Thumb-2技术并同时支持16位和32位指令。

还有重磅级的arm开发者网址(https://developer.arm.com/ip-products/system-ip),
还有arm cortex-M系列处理器对比表:
在这里插入图片描述
在这里插入图片描述
For more information, contact your Arm account manager today or explore the processors in more detail here: developer.arm.com/ip-products/processors/cortex-m。快捷链接

还有IP的概念:(https://developer.arm.com/ip-products/system-ip)

The Foundation for Building Better Systems
Arm System IP enables system designers to configure and build performant, power efficient SoCs whilst further differentiating by combining Arm processors with their own IP elements via industry standard AMBA interfaces. Arm interconnects, debug and trace components and controllers are scalable across many different applications, from tiny IoT devices to large enterprise SoCs.
在这里插入图片描述

以及STM32,STM32就是采用ARM cortex-M4处理器的微控制器,
ST即STMicroelectronics,意法半导体,
可查看意法半导体网站中stm32的产品主页(https://www.st.com/zh/microcontrollers-microprocessors/stm32-32-bit-arm-cortex-mcus.html)

Guess you like

Origin blog.csdn.net/skhhongtu/article/details/122331864