Progmem

Bộ nhớ chỉ đọc lưu trong vùng nhớ Flash có cùng cách hoạt động với Arduino thông thường. Đặt chuỗi dữ liệu hay string vào vùng nhớ chỉ đọc giúp tiết kiệm bộ nhớ RAM của chương trình.

Ghi chú

Điều khác biệt nhất là chuỗi dữ liệu định nghĩa sẵn này không được không được gộp chung. Nếu bạn đặt chuỗi trong F("") và/hoặc trong PSTR("") sẽ chiếm dụng bộ nhớ cho mỗi instance của mã. Cho nên bạn cần tự quản lý những chuỗi string trùng.

Một số macro hỗ trợ có thể dễ dàng sử dụng const PROGMEM để có thể gọi từ __FlashStringHelper hàm FPSTR().

Ví dụ

String response1;
response1 += F("http:");
...
String response2;
response2 += F("http:");

using FPSTR would become…

const char HTTP[] PROGMEM = "http:";
...
{
    String response1;
    response1 += FPSTR(HTTP);
    ...
    String response2;
    response2 += FPSTR(HTTP);
}