flash

Lưu các biến CHỈ ĐỌC với PROGMEM

Trong bài Tiết kiệm RAM trong Arduino?, chúng ta đã biết cách lưu chuỗi hằng vào bộ nhớ FLASH thay cho việc lưu hết bọn chúng vào RAM. Như vậy, một hằng chuỗi có thể được lưu vào bộ nhớ FLASH thay vì lưu vào RAM. Vậy, câu hỏi đặt ra là, những biến hằng khác (hằng số, hẳng mảng, hẳng số thực) có thể được lưu vào FLASH thay vì vào RAM hay không?

Trong thực tế, các biến hằng (trừ hằng chuỗi) hầu hết chỉ tốn vài chục byte để lưu trữ nên RAM, nên chúng ta cũng chưa gặp vấn đề gì trong việc lưu trữ hằng số hay hằng mảng cả. Nhưng thỉnh thoảng, có những lúc, ta phải tìm cách lưu trữ chúng ở một nơi khác, ví dụ Bài 12: Phát nhạc bằng Arduino với một cái loa hoặc buzzer.

Chần chừ gì nữa, biết muốn phám khá khả năng của Arduino - hay không?

lên
3 thành viên đã đánh giá bài viết này hữu ích.

Tiết kiệm RAM trong Arduino?

Như đã nói ở bài trước Cách lưu trữ các biến số, mảng, chuỗi trong Arduino, chúng ta đã biết rằng các loại biến trong Arduino được lưu ở những vùng nhớ khác nhau trong RAM, và khi hết RAM thì chương trình của bạn sẽ die một cách bất ngờ - vì lỗi không nằm trong code.

Vì vậy, hôm nay, chúng ta sẽ tìm cách giải quyết vấn đề "làm thế nào để giảm thiểu việc sử dụng RAM trong một sketch Arduino?".

lên
6 thành viên đã đánh giá bài viết này hữu ích.

Cách lưu trữ các biến số, mảng, chuỗi trong Arduino

Bạn có bao giờ tự hỏi những biến số, biến chuỗi hay biến mảng của mình được lâu ở đâu trên Arduino chưa? Trước kia, mình từng nghĩ rằng, nó được lưu ở vùng nhớ flash, nơi lưu trữ code mà chúng ta tải lên. Nhưng không, bình thường nó được lưu ở RAM!

Vậy RAM (viết tắt từ Random Access Memory) là gì? Nó là chữ viết tắt của một loại bộ nhớ chính của máy tính (Arduino cũng có thể xem là một máy tính). Như vậy nếu hết RAM, chương trình của bạn sẽ crash (hư – đỗ vỡ,…) một cách bất ngờ mà bạn không tài nào debug được (nếu bạn chưa đọc về bài này – hoặc những nội dung tương đương).

Vậy, thiết nghĩ, chúng ta cần nắm rõ hơn bản chất của vấn đề này. Nó thật thú vị phải không nào?

lên
13 thành viên đã đánh giá bài viết này hữu ích.
Đăng kí nhận RSS - flash