-
片机的 Flash 和 RAM 是两种关键的内存类型,分别用于存储程序代码和运行时数据。
-
Flash 存储器
用途:用于存储程序代码(如固件)和常量数据(如查找表、字符串等)。
特点:非易失性:断电后数据不会丢失。
读取速度快,但写入速度较慢。
通常支持多次擦写(如 10,000 到 100,000 次,具体取决于芯片)。
大小:通常从几 KB 到几 MB 不等。
eg:STM32F103C8T6 有 64 KB Flash,ESP32 有 4 MB Flash。
-
RAM 存储器
用途:用于存储运行时数据,如变量、堆栈、动态分配的内存等。
特点:易失性:断电后数据会丢失。
读写速度快。
容量通常比 Flash 小。
大小:
通常从几百字节到几百 KB 不等。
例如:STM32F103C8T6 有 20 KB RAM,ESP32 有 520 KB RAM。
-
实际应用中的注意事项
Flash 空间优化:1、减少不必要的代码和常量数据。
2、使用压缩算法存储数据(如存储图像、字体等)。
RAM 空间优化:
1、尽量减少全局变量和静态变量的使用。
2、使用动态内存分配时注意内存碎片问题。
3、优化堆栈大小,避免溢出。
在开发时,可以通过编译器的 map 文件查看 Flash 和 RAM 的使用情况,确保资源充足