Title Image

Blog Logo

Core 6. Memory Map & Memory Mapped Registers

🌱 Core 6. Memory Map & Memory Mapped Registers

   Ở bài này chúng ta sẽ cùng tìm hiểu về Memory Mapped Registers - Các thanh ghi ánh xạ bộ nhớ của ARM Cortex Mx, và bản đồ bộ nhớ - Memory Map của Vi điều khiển STM32.

    👉 Memory Mapped & Non - Memory Mapped Registers

    Như ở bài Core 3 chúng ta đã cùng tìm hiểu về Core Registers, có thể thấy các Core Registers đều không có địa chỉ, chúng được gọi là những Thanh ghi Non – Memory Mapped. Chúng đều nằm trong Core bộ xử lý và không có bất kỳ địa chỉ nào để truy cập chúng từ chương trình ‘C’. Muốn truy cập đến chúng, bắt buộc phải dùng tập lệnh ASM – Assembly. 
    Chẳng hạn: MOV R0, 1H

    Ngược lại với Non - Memory Mapped Registers, các Memory Mapped Register - Thanh ghi ánh xạ bộ nhớ là một phần của Memory - Bản đồ bộ nhớ. Mỗi thanh ghi này đều có địa chỉ. Bằng cách sử dụng địa chỉ này, ta có thể đọc hoặc ghi dữ liệu vào thanh ghi này bằng chương trình ‘C’. Sử dụng địa chỉ dereferencing của chúng.

Core

    Memory Mapped Registers chia làm 2 loại:

  • Các thanh ghi liên quan đến ngoại vi bộ xử lý (NVIC – Quản lý vector ngắt, MPU – Bảo vệ bộ nhớ, SCB – Điều khiển hệ thống, DEBUG – Bộ gỡ lỗi,…)
  • Các thanh ghi liên quan ngoại vi của vi điều khiển (GPIO, RTC, I2C, TIMER, CAN, USB,…)

    👉 Memory Map

    Memory Map giải thích ánh xạ của các thanh ghi ngoại vi và bộ nhớ khác nhau trong phạm vi vùng nhớ có thể định địa chỉ của bộ xử lý.
    Trong bộ xử lý, vùng nhớ có thể định địa chỉ (Memory Mapped), phụ thuộc vào kích thước của bus địa chỉ.
    Ánh xạ của các vùng nhớ khác nhau trong vùng nhớ có thể định địa chỉ được gọi là Memory Map.

Core

    Có 2 loại bộ nhớ: Bộ nhớ chương trình – Code MemoryBộ nhớ dữ liệu – Data Memory.

  • Bộ nhớ chương trình là nơi lưu trữ tạm thời các lệnh của chương trình
  • Bộ nhớ dữ liệu là nơi lưu trữ dữ liệu tạm thời của chương trình

    Có một bus kết nối giữa bộ xử lý với các bộ nhớ và thiết bị ngoại vi khác nhau: Kênh địa chỉ 32 bit và kênh dữ liệu 32 bit. 

    Bộ xử lý 32 bits của Vi điều khiển STM32 có thể tạo ra 4 GB giá trị vị trí bộ nhớ khác nhau, từ 0 đến 0xFFFF.

Core

  • Vùng nhớ Code - 0.5GB: Có thể là bộ nhớ flash, EEPROM, ROM, OTP, … dùng để lưu code và các lệnh của chương trình.
  • Vùng nhớ SRAM - 512MB: Chủ yếu sử dụng để kết nối SRAM trên chip, dùng để lưu trữ dữ liệu tạm thời khi run-time.
  • Vùng nhớ Peripheral - 512MB: Sử dụng cho các thiết bị ngoại vi trên chip – của vi điều khiển.
  • Vùng nhớ External RAM - 1GB: Kết nối các RAM ngoài chẳng hạn SDRAM.
  • Vùng nhớ Private Peripheral Bus - 512MB: Vùng Bus ngoại vi riêng tư: Các thanh ghi ngoại vi của bộ xử lý: như NVIC, Systick, ...

>>>= Follow ngay =<<<

Để theo dõi những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

                                        

Đăng nhận xét

0 Nhận xét