Phân vùng lại bộ nhớ trong LPC2300 và boot ROM

Một phần của tài liệu TỔNG QUAN VI XỬ LÝ LPC2300 HƯỚNG DẪN SỬ DỤNG BOARD MCB 2300 (Trang 26 - 30)

I.4.5.1 Nguyên lý và những chế độ hoạt động.

Mỗi vùng nhớ trong LPC2300 có một vị trí cố định trong bản đồ bộ nhớ. Phần lớn mỗi không gian bộ nhớ vẫn luôn cố định vĩnh viễn trong cùng một vị trí, và loại bỏ sự cần thiết phải có các phần của mã được thiết kế để chạy trong phạm vi địa chỉ khác nhau.

Bảng vector ngắt của ARM7 được phân vùng từ 0x000 0000 đến 0x0000 001C, vì thế, một phần chia của Boot ROM và SRAM cần được phân vùng lại để có thể hoạt động trong những chế độ khác nhau. Việc phân vùng lại vector ngắt liên quan chặt chẽ đến Bộ Điều khiển Phân vùng nhớ.

Bảng 4 Địa chỉ ô nhớ ngoại lệ của ARM

Địa chỉ Trường hợp ngoại lệ

0x0000 0000 Reset.

0x0000 0004 Undefined Instruction.

0x0000 0008 Software Interrupt.

0x0000 000C Prefetch Abort (instruction fetch memory fault).

0x0000 0010 Data Abort (data access memory fault).

0x0000 0014 Reserved.

0x0000 0018 IRQ.

0x0000 001C FIQ.

Bảng 5 Những chế độ hoạt động của bộ nhớ trong LPC2300

Chế độ Hoạt động Cách sử dụng. Boot Loader mode Hardware activation by any Reset

The Boot Loader alwaysexecutes after any reset. The Boot ROM interrupt vectors are mapped to the bottom of memory to allow handling exceptions and using interrupts during the Boot Loading process. A sector of the Flash memory(the Boot Flash) is available to hold part of the Boot Code. User Flash mode Software activation by boot code

Activated by the Boot Loader when a valid User Program Signature is recognized in memory and Boot Loader operation is not forced. Interrupt vectors are not re-mapped and are found in the bottom of the Flash memory. User RAM mode Software activation by user program

Activated by a User Program as desired. Interrupt vectors are re-mapped to the bottom of the Static RAM

User External Memory mode Software activation by user code

Activated by a User Program as desired. Interrupt vectors are re-mapped to external memory bank 0

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 20

I.4.5.2 Phân vùng lại bộ nhớ.

Boot ROM được phân vùng trên cùng của bộ nhớ, một chương trình dù chiếm nhiều hay ít bộ nhớ đều không ảnh hưởng đến vị trí của Boot ROM hoặc không thay đổi phân vùng của véc tơ ngắt Boot ROM.

Phân vùng bộ nhớ được cấp phát lại cho phép thực hiện quá trình ngắt ở những chế độ khác nhau, áp dụng cho vùng vectơ ngắt (32 bytes) và cả 32 bytes mở rộng. Mã điều khiển việc phân vùng được cất giữ ở địa chỉ từ 0x0000 0000 và 0x0000 003F. Chương trình trong bộ nhớ Flash được có điểu khiển FIQ lưu ở 0x0000 001C. Vectơ chứa trong SRAM, bộ nhớ ngoài và Boot ROM phải chứa địa chỉ đến điều khiển ngắt thật sự một cách trực tiếp hay gián tiếp hông qua một câu lệnh khác.

Có ba lý do cấu hình này đã được lựa chọn:

1. Để cung cấp cho các xử lý FIQ trong bộ nhớ Flash lợi thế là không phải mất một ranh giới bộ nhớ gây ra bởi ánh xạ lại vào tài khoản.

2. Giảm thiểu sự cần thiết phải cho SRAM và khởi động vector ROM để giải quyết với bất kỳ giới hạn giữa không gian mã.

3. Để cung cấp không gian lưu trữ các hằng số vượt ra ngoài phạm vi của những câu lệnh chuyển ngữ cảnh.

Phân vùng lại bộ nhớ bao gồm cả boot ROM và vector interrupt, tiếp tục xuất hiện trong bộ nhớ góc thêm vào các địa chỉ phân vùng lại bộ nhớ

I.4.5.3 Điều khiển phân vùng bộ nhớ

Điều khiển phân vùng bộ nhớ thay đổi phân vùng của những vector ngắt xuất hiện ở địa chỉ 0x0000 0000. Mã chương trình sẽ được phép chạy ở những vùng nhớ khác và điều khiển những ngắt.

I.4.5.3.1 Thanh ghi điều khiển phân vùng bộ nhớ (MEMMAP – 0xE01FC040)

Khi một điều khiển ngoại lệ cần thiết, vi xử lý sẽ nạp câu lệnh điền khiển địa chỉ của ngoại lệ căn cứ vào bảng 4 trang 20. Thanh ghi MEMMAP xác định địa chỉ nguồn của dữ liệu sẽ nạp vào bảng này.

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 21

Bảng 6 Thanh ghi điều khiển phân vùng bộ nhớ

Name Description Access Reset

value

Address

MEMMAP Memory mapping control. Selects whether the

ARM interrupt vectors are read from the Boot ROM, User Flash, or RAM.

R/W 0x00 0xE01F C040

Bảng 7 Thanh ghi điều khiển phân vùng bộ nhớ - mô tả bit địa chỉ 0xE01F C040

Bit Symbol Value Description Reset

value

1:0 MAP 00 Boot Loader Mode. Interrupt vectors are re-mapped to Boot

ROM.

00 01 User Flash Mode. Interrupt vectors are not re-mapped and

reside in Flash.

10 User RAM Mode. Interrupt vectors are re-mapped to Static RAM.

11 User External Memory Mode (available on LPC2377/78 and

LPC2388 only).

Warning: Improper setting of this value may result in incorrect operation of the device.

7:2 - - Reserved, user software should not write ones to reserved bits.

The value read from a reserved bit is not defined.

NA

I.4.5.3.2 Ghi chú sử dụng điều khiển phân vùng bộ nhớ.

Điều khiển phân vùng bộ nhớ chỉ đơn giản là lựa chọn một trong số ba nguồn có sẵn dữ liệu (mỗi nguồn có 64 byte) cần thiết để xử lý các trường hợp ngoại lệ ARM (interrupts).

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 22

KHOA HỌC & KỸ THUẬT MÁY TÍNH

Đồ án Thiết Kế Luận Lý – GVHD : Nguyễn Quốc Tuấn

Thực hiện : Nguyễn Thanh Bi – Đỗ Minh Chiến Trang 23

Một phần của tài liệu TỔNG QUAN VI XỬ LÝ LPC2300 HƯỚNG DẪN SỬ DỤNG BOARD MCB 2300 (Trang 26 - 30)