Cấu trúc bộ nhớ

Một phần của tài liệu Kiến trúc cơ bản của STM32 ARM Cortex m3 (Trang 49 - 50)

Bên cạnh hệ thống bus nội ña dạng STM32 còn cung cấp 4Gbytes không gian bộ nhớ liên tục dành cho lập trình.Vì STM32 là là nhân vi ñiều khiển dựa trên nền tảng Cortex nên phải tuân theo chuẩn phân vùng bộ nhớ của Cortex.Bộ

nhớ ñược bắt ñầu từ ñịa chỉ 0x00000000 .On-chip SRAM bắt ñầu từ ñịa chỉ

0x20000000 và tất cả SRAM nội ñều ñược bố trí ở ñiểm bắt ñầu vùng bit band. Vùng nhớ thiết bị ngoại vi ñược ánh xạ từ ñịa chỉ 0x40000000 và ở vùng bit band. Các thanh ghi ñiều khiển của nhân Cortex ñược ánh xạ từ ñịa chỉ

0xE0000000.

Vùng nhớ dành cho flash ñược chia nhỏ thành 3 vùng. Vùng thứ nhất gọi là User Flash bắt ñầu từ ñịa chỉ 0x00000000. Kế tiếp là System Memory hay còn gọi là vùng nhớ lớn. Vùng này có ñộ lớn 4Kbytes thông thường sẽ ñược nhà sản xuất cài ñặt bootloader. Cuối cùng là vùng nhớ nhỏ bắt ñầu từ ñịa chỉ

0x1FFFFF80 chứa thông tin cấu hình dành cho STM32. Bootloader thường

Để kích hoạt bootloader của STM32 người dùng phải thiết lập các chân BOOT0 và BOOT1 ở mức ñiện áp thấp và cao tương ứng. Khi ñó sau khi STM32 ñược khởi ñộng, chương trình sẽ ñặt bootloader vào ñịa chỉ

0x00000000 và thực thi nó thay thi thực thi chương trình của người dùng ở

User Flash. Để giao tiếp với bootloader, ST cung cấp một chương trình chạy ở

PC, chương trình này có khả năng ghi, xóa vùng nhớ ở User Flash. Ngoài ra chúng ta có thể cấu hình các chân bootpins ñể ánh xạ SRAM nội vào ñịa chỉ

0x00000000, cho phép tải xuống và thực thi chương trình ngay tại SRAM.

Điều này làm tăng tốc ñộ tải chương trình và hạn chế số lần ghi vào Flash.

Một phần của tài liệu Kiến trúc cơ bản của STM32 ARM Cortex m3 (Trang 49 - 50)