当前位置: 首页 > news >正文

【单片机基础知识】基础知识(CortexM系列、STM32系统框架、存储器映射、寄存器映射)

1. CortexM系列介绍

ARM官方资料:

📎Arm Cortex-M4 Processor Datasheet.pdf📎Arm-Cortex-M7-Processor-Datasheet.pdf📎Arm Cortex-M Comparison Table_v3.pdf📎Arm Cortex-M3 Processor Datasheet.pdf

课程资料:

📎Cortex-M系列介绍(课堂总结).pdf📎体系结构(ARM架构版本)与其对应的ARM处理器内核.pdf📎Cortex-M系列介绍.pptx

1.1. ARM公司:

1.2. Cortex内核分类及特征

Thumb/Thumb-2——16/32位指令集

这里的中断资料是这个架构所支持的,具体由芯片公司设计

2. STM32系统框架

2.1. Cortex-M内核&芯片:

2.2. F1系统架构:

参考资料:

📎Cortex-M3权威指南.pdf

📎STM32F10xxx Cortex-M3编程手册.pdf

📎STM32F10xxx参考手册(中文).pdf

📎STM32F10xxx闪存编程参考手册(中文).pdf

📎STM32F103x8B数据手册(中文).pdf

📎STM32F103x8B数据手册(英文).pdf(系统框图在英文版中)

📎STM32F103xx固件函数库用户手册.pdf

2.2.1. 非互联型(4个主动单元):

C8T6举例

2.2.2. 互联型(5个主动单元、3个被动单元):添加了网口(ETH)、USB等主动单元

2.3. F4系统架构:

参考资料:

📎Cortex-M4 Devices Generic User Guide.pdf📎ST MCU 最新选型手册_201408.pdf📎STM32F3与F4系列Cortex M4内核编程手册.pdf📎STM32F4_高性能_DSC.pdf📎STM32F4xx英文参考手册.pdf📎STM32F4xx中文参考手册.pdf📎Cortex M3权威指南(中文).pdf📎Cortex M3与M4权威指南.pdf

小圆圈代表相连

2.4. F7系统架构:

2.5. H7系统架构:

参考资料:📎STM32H7开发指南-HAL库版本_V1.0.pdf

📎Cortex M3权威指南(中文).pdf📎Cortex M7 Generic User Guide.pdf📎Cortex M7 Technical Reference Manual.pdf📎Level 1 cache on STM32F7 Series.pdf📎ST MCU 最新选型手册_201903.pdf📎STM32 MPU说明.pdf📎STM32F7 Cache Oveview.pdf📎STM32F7 MPU Cache浅析.pdf📎STM32F7和H7的差异.pdf📎STM32F7中文参考手册.pdf📎STM32H7xx参考手册(V3中文版).pdf📎STM32H7xx参考手册.pdf📎STM32H7编程手册.pdf📎STM32H743勘误手册.pdf

2.5.1. 主从设备互联关系:主从设备的访问关系

3. STM32的寻址范围:2^32 == 0x0 ~ 0xFFFFFFFF

根据地址访问到的一次是8bit(1字节)

4. 存储器映射(熟悉):

4.1. STM32存储器功能划分——F1为例:

STM32的地址空间共4GB(即有2^32个地址),需要将地址和内存映射起来。

ST将这些地址划分成块,根据不同芯片中内存大小,映射长度也不同。

一般只侧重于前三个块。

4.1.1. Block0(FLASH)功能划分:

512MB

4.1.2. Block1(SRAM)功能划分:片内内存

512MB

4.1.3. Block2(外设)功能划分:

512MB

4.1.4. 其他块:用到再学习

4.2. STM32存储器功能划分——H7为例:

这里是H750举例

外设与F1不同

4.2.1. Block0

4.2.2. Block1

4.2.3. Block2

4.3. 可以在芯片手册找到(存储器)地址映射图:

4.3.1. 低级芯片:F1

4.3.2. 高级芯片:H7

📎STM32H7xx参考手册(V3中文版).pdf

5. 寄存器映射(熟悉):

5.1. 基础知识补充:寄存器是单片机内部一种特殊的内存,可控制单片机功能

5.2. STM32寄存器分类(了解):

内核寄存器、外设寄存器

5.3. 寄存器映射:(寄存器是特殊的存储器),给寄存器地址命名的过程,就叫寄存器映射

5.4. 寄存器描述解读——F1为例:

偏移量:针对当前外设基地址

基地址:

寄存器地址 = 偏移量 + 基地址

复位值:这个寄存器复位时的值

位表:(bit)位名,该位状态/读写情况

位功能描述:该位的作用

5.5. 寄存器映射举例:

5.6. 寄存器地址计算

  • 地址怎么找
  • 寄存器映射方法

示例:(F1)

5.7. 寄存器映射实现——HAL库(在stm32xxxxxe.h):(F1举例)

6. 对3. 4. 5.总结

http://www.lryc.cn/news/500148.html

相关文章:

  • yolov5导出命令
  • RabbitMQ的常用术语介绍
  • Docker魔法:用docker run -p轻松开通容器服务大门
  • 【后端面试总结】Redis过期删除策略
  • 数字图像处理(15):图像平移
  • 高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?
  • JAVA子类的无参构造器中第一行的super
  • mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法
  • Unity教程(十九)战斗系统 受击反馈
  • lanqiaoOJ 3744:小蓝的智慧拼图购物 ← pair+优先队列
  • Spring Boot教程之二十一:文件处理
  • 【Linux】Linux的基本常识+指令
  • Rocky Linux 9.3系统搭建Slurm环境【笔记】
  • 原生微信小程序使用原子化tailwindcss
  • 《掌握Nmap:全面解析网络扫描与安全检测的终极指南》
  • k8s-Informer概要解析(2)
  • UE5基本数据类型
  • Next.js 系统性教学:中间件与国际化功能深入剖析
  • 鸿蒙HarmonyOS元服务应用开发实战完全指导
  • CT中的2D、MPR、VR渲染、高级临床功能
  • 利用docker-compose来搭建flink集群
  • 力扣打卡10:K个一组翻转链表
  • 深度学习详解
  • 鸿蒙分享(一):添加模块,修改app名称图标
  • 【Redis】not support: redis
  • 【集群划分】含分布式光伏的配电网集群电压控制【33节点】
  • 嵌入式蓝桥杯学习5 定时中断实现按键
  • 【Java】类似王者荣耀游戏
  • C++<基本>:union是没有构造函数和析构函数的
  • SQL中IN和NOT操作符的用法