Arduino PROGMEM静态存储区的使用介绍

Arduino PROGMEM静态存储区的使用介绍

关键字PROGMEM

由于程序存储区SRAM 内存是分开的,于是就有了像328P 有 32K 的 FLASH 程序存储区 和 2K 的 SRAM 动态内存,当然还有 ROM,PROGMEM将数据存储在闪存(程序)存储器而不是动态内存SRAM中。

  • promem关键字是一个变量修饰符,它应该只用于pgmspace.h中定义的数据类型。它告诉编译器“将这些信息放入闪存中”,而不是通常的SRAM中。
  • PROGMEMpgmspace.h库的一部分。它自动包含在IDE的新版版本中。如果你使用的IDE版本低于1.0(2011),程序代码的的顶部需要添加包含引入这个头文件库,像这样:#include <avr/pgmspace.h>
  • 虽然promem可以用于单个变量,但只有在需要存储更大的数据块的情况下才值得这样做,这通常是最简单的数组(或其他c++数据结构)。
  • 使用promem也是分两个步骤过程。在将数据存入闪存之后,它需要特殊的方法(函数),也定义在pgmspace.h库中,从程序内存中读取数据到SRAM中,

猜你喜欢

转载自blog.csdn.net/weixin_42880082/article/details/125477522