Lập Trình Flash Với Stm32, Tài Liệu Học Lập Trình Flash Với As2

      22

Flash là gì và biện pháp lập trình flash trên STM32, tổ chức bộ nhớ lưu trữ STM32 flash, biện pháp đọc,ghi, xóa bộ lưu trữ Flash và lý do nó rất đặc biệt trong lập trình. Đó là các kiến thức họ sẽ học trong bài xích hôm nay.

Bạn đang xem: Lập trình flash với stm32, tài liệu học lập trình flash với as2

Bài 20 trong Serie học tập STM32 trường đoản cú A tới Z


Flash là gì?

Bộ ghi nhớ flash là một loại bộ nhớ máy tính kiểu bộ nhớ năng lượng điện tĩnh (non-volative memory), rất có thể bị xóa với lập trình lại (reprogrammed).

Về mặt kỹ thuật thì bộ nhớ flash hoàn toàn có thể được sử dụng như một loại EEPROM mà ở kia nó hoàn toàn có thể được đọc/ghi bằng điện và không mất dữ liệu khi xong xuôi cung cấp điện. Có 2 kiểu bộ lưu trữ flash bao gồm đã được tạo ra là NAND với NOR được cấu thành trường đoản cú các cổng logic.

Bộ ghi nhớ flash được cấu thành trường đoản cú các phần tử (cell) ghi nhớ riêng rẽ với các đặc tính phía bên trong giống giống như những cổng logic tương ứng đã tạo thành nó; vày đó, ta hoàn toàn có thể thực hiện thao tác đọc/ ghi, tàng trữ dữ liệu theo từng thành phần (cell) nhớ một.

Tại sao chúng ta phải thực hiện Flash, EEPROM

Bộ lưu giữ flash ngoài việc để lưu chương trình mà lập trình sẵn viên nạp vào, còn tồn tại một công dụng khác đó là lưu trữ dữ liệu quan tiền trọng, không bị mất đi mỗi khi reset hoặc tắt điện.

Lấy ví dụ: Chiêc ổn định nhà bạn, khi chúng ta set 27 độ và tắt điện ổn định đi. Thì khi mở lên bọn chúng vẫn sẽ chạy ở ánh sáng 27 độ. Điều kia nghĩa là setting của người sử dụng đã được lưu lại, cùng chúng sẽ được lưu làm việc Flash hoặc EEPROM. ( ROM sẽ không thể đọc, ghi nhiểu lần)

Khác biệt thân flash cùng EEPROM

Bộ nhớ flash kiểu cổng NAND có thể được ghi cùng đọc theo từng khối (block) hoặc trang (page) nhớ, còn bộ nhớ lưu trữ flash kiểu cổng NOR thì rất có thể được hiểu hoặc ghi một cách tự do theo từng tự (word) hoặc byte ghi nhớ của máy.

Thông thường bộ lưu trữ Flash bên trên vi tinh chỉnh sẽ có phong cách thiết kế kiểu NAND vậy nên bọn họ phải gọi ghi theo từng khối với page.

EEPROM sẽ tiến hành đọc ghi theo tự byte và word kiểu như NOR flash.

Vậy cần hãy để ý phần này khi lập trình cùng với Flash trên vi điều khiển và tinh chỉnh nhé.

Tổ chức bộ nhớ lưu trữ flash trên STM32f103c8t6

Bộ ghi nhớ STM32 Flash được tổ chức như là 1 khối thiết yếu (main block) lên đến 64 Kb (hoặc 128 Kb) chia thành 128 pages, từng page 1 Kbytes (medium-density devices) với 1 khối tin tức (information block). Bước đầu từ địa chỉ cửa hàng 0x0800 0000, bộ nhớ lưu trữ chương trình sẽ tiến hành lưu ngơi nghỉ đây.

Xem thêm: Iso Image - Windows 10 (1511

*

Đọc, ghi, xóa dữ liệu trên flash

STM32 gồm một bộ nhớ NAND Flash được nhúng sẵn trong vi điều khiển. Toàn bộ mô tả về bài toán lập trình sẽ được mô tả vào mục 3.3.3 Embedded flash memory của reference manual stm32 

Để đọc đúng đắn dữ liệu từ bộ nhớ lưu trữ Flash, con số các tâm lý chờ/độ trễ (LATENCY) yêu cầu được lập trình sẵn trong thanh ghi FLASH_ACR (Flash access control register) đúng với khoảng điện áp cung cấp của thiết bị với tần số clock của CPU (HCLK).

Lưu ý: nếu bạn không setting đúng sẽ dẫn tới trường hợp, lúc nâng xung nhịp của khối hệ thống lên cao sẽ không còn đọc được flash.

Trong tủ sách STM32_HAL_Flash. Phần setting này đã được lập trình đúng nên các bạn cũng có thể yên tâm áp dụng nhé

Chi tiết sẽ tiến hành mô tả vào bảng sau:

*

Thao tác xóa cùng ghi trên STM32 Flash phải thực hiện theo page (trang) hoặc xóa tổng thể chip (mass erase).

Ngoài ra họ cần khóa và unlock vùng ghi nhớ để bảo đảm an toàn dữ liệu cất trong đó.

Lập trình STM32 Flash gọi ghi dữ liệu trên STM32

Đầu tiên bọn họ sẽ quan niệm page bắt đầu và kết thúc

*

Ghi dữ liệu vào Flash

Mở khóa STM32 FlashTạo đổi mới struct nhằm xóaChọn dạng hình xóa theo PageĐịa chỉ ban đầu xóaSố lượng page đề nghị xoáSau đó gọi câu lệnh xóa và truyền vào struct xóaTiếp tới chúng ta có thể ghi tài liệu vào bởi lện program, vì chưng là ghi kiểu word (32 bit = 4byte). Vậy buộc phải để ghi ô nhớ ngay lập tức sau đó, họ sẽ cộng thêm 4 byte mang đến start page nhé.

*

Đọc dữ liệu từ STM32 Flash

Đọc dữ liệu ra họ chỉ cần truy xuất theo showroom kiểu 32bit.

*

Cuối cùng, trước while (1) thử ghi dữ liệu vào cùng đọc ra nhé.

Lưu ý: Flash sẽ bắt buộc 1 khoảng thời gian xóa cùng ghi vậy nên họ không buộc phải xóa cùng ghi thường xuyên như biến, hãy giữ flash khi có một sự khiếu nại gì này mà thôi.

*

Kết quả

Nạp và nhấn Debug. Bên dưới tab Memory họ copy add start page. Dìm Run và xem kết quả.

*

Kết

Lập trình STM32 Flash siêu quan trọng, các ứng dụng phần nhiều đều cần áp dụng flash để tàng trữ dữ liệu. Xây dựng với Flash cũng tương đối đơn giản và dễ dàng và đễ dàng. Mặc dù nhiên chúng ta không cần xóa với ghi flash vô số lần trong 1 thời gian ngắn, rất có thể làm sai tài liệu nhận được.

Nếu cảm thấy bài viết này bổ ích hãy chia sẻ với bằng hữu nhé. Đừng quên ra nhập hội mọi anh em Nghiện lập trình nhé!!

tăng like fanpage