原作者:逗蓝
来源:CSDN
原文:https://blog.csdn.net/qq_36192043/article/details/81078932
版权声明:本文为博主原创文章,转载请附上博文链接!
STM32学习篇1笔记心得:
===============嵌入式和stm32========
1、什么叫嵌入式?
所有的控制类设备都可以称之为嵌入式,pc桌面除外.
2、嵌入式的特点
硬件:
体积小、集成效率高
面向特定的应用
功耗低
软件:
嵌入式的软件和硬件相互结合的
软件代码要求高效率和可靠性(撸棒性、健壮性)
软件系统要具有实时性
3、主流的嵌入式架构(ARM)
ARM---(Advanced RISC Machine)
arm是英国的arm公司,不生产芯片也不设计芯片
主要设计高效的内核
ARM以前的架构:arm7 arm9 arm11
ARM现在的架构:Cortex - A R M
Cortex-A系列 开放式的操作系统 linux
应用:智能手机、智能取票机、语言机器人等
(A8 A9 A53(gec6818) A72(gec3399) A77)
Cortex-R系列 面向于实时应用系统
应用:汽车制动系统、动力传输系统等
Cortex-M系列 面向有确定性的微型控制
应用:无人机、手环、平衡车等(M0 M3 M4 M7)
4、MCU容量分类
小容量产品是指闪存存储器nandflash容量在16K 至32K 字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
中容量产品是指闪存存储器容量在64K 至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。
1、STM32是“意法半导体”生产的基于“ARM公司Cortex-M3内核”的32位高性能MCU。
ST----意法半导体,即SOC厂商(芯片制造商)。ARM----IP厂商,负责芯片内核设计的公司
M-----Microelectronics的缩写,指微控制器。微处理器通常指计算机CPU。
32------指它是一个32位的微控制器。
注意:51单片机是5V工作电压而STM32是3.3V工作电压。
STM32芯片结构
2、STM32和ARM7的关系
ARM7和STM32的内核都是由ARM公司设计的。ARM7内核采用的是冯诺依曼结构(也就是计算机CPU采用的结构)而STM32采用的是哈佛结构。STM32是ARM公司设计出来取代ARM7的,所以它的性能优于ARM7。
Cortex-M3系列属于ARMv7架构,ARMv7架构的不同内核有不同的应用场合:1、"M系列"对微控制器。2、“R系列”针对嵌入式实时操作系统他。3、“A系列”面向尖端的基于虚拟内存的操作系统和用户应用。传统的ARM7采用ARMv4T架构。
以前很多人的嵌入式学习路线:51单片机~ARM7~ARM9~ARM11
现在很多人的嵌入式学习路线:51单片机~Cortex-M系列~Cortex-R系列~Cortex-A系列
3、Cortex-M3内核系列
4、粗略选型
通过产品所需芯片的引脚数量和flash容量来粗略确定所需芯片。
5、关于STM32微处理器的命名规则
在这里我们以STM32F103C8T6为例来说明:
6、STM32微处理器内部结构
STM32内部集成JTAG/SW调试功能,32k到512k的flash.以及I2C,USB,CAN,数模转化的功能
7、STM32是否可以跑Linux
首先介绍虚拟内存管理单元,即MMU。操作系统分为两种:Windows、MacOS、Linux、Android这些操作系统带MMU才能跑;而FreeRTOS、ucOS、等不需要MMU。
ARM公司的Cortex-M3系列不带MMU故不能运行Linux。而Cortex-A系列如ARM9、ARM11带MMU,可以跑Linux。
8、STM32应用场景
智能手环、微型四轴、扫地机器人、工业自动化控制等