☰
嵌入式系统(二)个人学习
2026/10/27 2:03:09 网站建设 项目流程

一. 嵌入式的存储系统

1.用来记忆:

程序,数据,设备状态

2.作用:

(1)存储程序代码

(2)存储运行时的数据:全局,局部,栈,堆

(3)数据持久化:W25Q64(flash)--文件系统--

3.分类:

dram动态,sram静态

RAM

DRAMSRAM
速度慢快
成本较低较高
集成程度较高较低

Flash

(掉电不易失,但是有读写寿命)

Nor flashNAND flash
是否支持随机访问支持不支持
能否运行代码可以不可以

flash怎么操作:先擦除为(1),再写入

4.STM32F407 内存的划分

ARAM 192KB

FLASH 512KB

SRAM1 + SRAM2 = 112KB + 16KB 用作栈,堆,全局变量,局部变量

CCM RAM:

64KB 与CPU直连,一般放高频访问数据,一般放算法

对CCM RAM访问:__attribute__((section(".ccmram")))

5.变量放在哪里:

物理地址

.text 代码段flash

.rodata 只读数据flash

.data 初始化数据flash--->SRAM

.bss 未初始化(或为0)不存flash,在代码编译完,会在SRAM里清零一片空间给他

.stack 栈SRAM

.heap 堆SRAM

6.嵌入式存储体系和运行逻辑

Cache 高速缓存 voltaile 防止编译器优化(防止把频繁使用的变量放到缓存中,让CPU直接在内存中拿这个变量)

7.寄存器:

是由锁存器和触发器构成的小型存储设备,保存0/1 bit位,能够暂存bit数据的硬件

1位寄存器 -----1bit

32位寄存器 ----32bit

外设的功能体现是通过配置寄存器来完成的,功能越复杂,寄存器越多

8.存储器映射:

片内存储器(SRAM,Flash),片上外设(寄存器),外部设备同一分配到一连续的32位存储空间,让cpu通过访问内存地址的方式直接操作外设寄存器,无需访问内存,访问外设

寄存 -----地址 ↓

给寄存器的地址起别名——寄存器映射

9.板子的划分

stm32————32根地址线,有4g空间

4G空间划分为8块:

块0 代码----flash 起始位置:0x08000000,中断向量表

块1 数据----SRAM 起始位置:0x20000000

块2 寄存器(外设)起始位置:0x40000000,片内外设的寄存器依次放入

块7 内核

二.嵌入式时钟系统

1.时钟系统是什么:

有规律的方波信号

2.作用

CPU:指令同步(保证一些运算器运算)

外设:时钟是外设工作的前提

数据传输:控制传输开关(应答信号)

定时与计数:频率计数

。。。

3.时钟源

“材质”:

1.电路----RC震荡电路(快,但是有漂移现象误差大)

2.晶振----压电感应(慢,但是信号有规律)

不可以一个时钟源同时链接外设与cpu,所以提出↓

“多时钟源+按需分配”解决功耗问题

内部(电路)

HSE快速 4~26MHZ(一般为)------学习的板子为8MHZ ---放大倍频--- cpu稳定工作168MHZ

LSE慢速 32.768KHZ

外部(晶振)

HSI快速 16MHZ

LSI慢速 32KHZ

PLL:锁相环 倍频器

时钟树:(如上图所示)

位带操作:(寄存器开发)位运算

GPIO寄存器 检测输入输出

(我们有GPIOA,GPIOB,GPIOC,GPIOD,GPIOE,16个引脚,GPIOA_Pin_0~GPIOA_Pin_15)

GPIOx_MODER(端口模式寄存器)

是一个32位的寄存器,一bit一个触发器,两两组合

位带操作即配置01,位运算

GPIO 端口输出类型寄存器 (GPIOx_OTYPER)

一个控制一个

位运算

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询