Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 22 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
22
Dung lượng
421,22 KB
Nội dung
LẬP TRÌNH HỆ THỐNG NHÚNG BÙI QUỐC BẢO What is ARM? ARM từ viết tắt của: Advanced RISC Machine Cấu trúc dựa cấu trúc RISC (Reduced Instruction Set Computer) BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM RISC Architecture Cấu trúc RISC ñược ñưa nhằm mục ñích: ðạt tốc ñộ xử lý cao cách: Giảm số luợng lệnh Có tập ghi lớn Xử lý theo dạng load-store Các mã lệnh có ñộ dài Sử dụng cấu trúc pipelines Cấu trúc ñơn giản, cho phép dễ dàng thay ñổi ñể có tần số hoạt ñộng cao BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM The ARM Processor ðược thiết kế cho ứng dụng nhúng, CPU cho hệ thống system-on-chip Hỗ trợ tập lệnh 16 bit 32 bit Cấu trúc không túy RISC Vi xử lý ARM ñược bán dạng lõi IP (intellectual property core) BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM Main features of ARM Processor - - Tốc ñộ thấp, khoảng vài trăm Mhz Tuy nhiên số dòng ARM chạy với tốc ñộ khoảng 2Ghz Tập lệnh 32 bit, hỗ trợ tập lệnh Thumb Thumb2 (16 bit) Chỉ có không gian nhớ Công suất thấp BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM ARM Processor families BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM ARM-cortex M3 Là vi ñiều khiển 32 bit Cấu trúc Havard Công suất thấp Chuyên dùng cho ứng dụng nhúng Giá rẻ ðáp ứng interrupt nhanh (low interrupt latency) Chỉ hỗ trợ tập lệnh Thumb-2 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM Cấu trúc Von Neumann Code data chứa không gian ñịa •Chỉ có bus giao tiếp nhớ •Tận dụng ñược không gian nhớ •Chương trình thiết kế mềm dẻo •Data bị chép ñè lên chương trình •Bị bottle neck trình truyền data liệu BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM Cấu trúc Harvard Dùng bus riêng ñể truy cập code data Code data nằm chung không gian nhớ Truy cập code data lúc Cho phép ñộ dài code data khác Code không bị ghi ñè data Phần cứng CPU phức tạp BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM Pipeline Cấu trúc pipeline cho phép lệnh ñược thực thi lúc nạp giải mã lệnh khác Với cấu trúc này, lệnh ñược thực thi chu kỳ clock BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 10 ARM Cortex M3 block diagram BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 11 Memory endian ARMv7-M cho phép chọn endian mode cho tác vụ truy cập data Các mã lệnh dạng little endian Các lệnh load store vào không gian ñiều khiển hệ thống (system control space) dạng little endian BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 12 Processor operating mode Handle mode: Khi CPU chạy chương trình xử lý exception (ví dụ: trình phục vụ ngắt) Thread mode: Khi chạy chương trình bình thường BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 13 Privileged access level Trong chế ñộ truy cập ưu tiên (Privileged access level), CPU ñược truy cập toàn tài nguyên hệ thống Sau reset, CPU ñi vào trạng thái BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 14 User access level Trong trạng thái này, CPU không ñược truy cập vào số tài nguyên hệ thống (VD: ghi cấu hình) Sử dụng chạy chương trình ñiều khiển hệ ñiều hành BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 15 Mode transition BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 16 Chương trình với hệ ñiều hành Hệ ñiều hành chạy chế ñộ thread mode với privileged access level Khi exception (VD: ngắt timer) xảy ra, hệ ñiều hành ñi vào chế ñộ handle mode Các tác vụ ñược thực thi thread mode với user access level BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 17 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 18 Stack Pointer Register Thanh ghi R13 ñược sử dụng ghi stack pointer cho tác vụ ñang tích cực Bit [1:0] luôn 00 SP_main: Là ghi SP mặc ñịnh, sử dụng handle mode thread mode chương trình OS chạy chế ñộ Privileged level SP_Process: ðược sử dụng thread mode BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 19 PUSH {R0} ; R13=R13-4, then Memory[R13] = R0 POP {R0} ; R0 = Memory[R13], then R13 = R13 + BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 20 10 Link Register Thanh ghi R14 chứa ñịa quay lệnh BL (Branch and Link) hay BLX (Branch and Link with Exchange) ñược thực thi Có thể ñược sử dụng lệnh quay từ trình phục vụ ngoại lệ Bit thấp luôn BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 21 main ; Main program … BL function1 ; Call function1 using Branch with Link ; instruction ; PC = function1 and ; LR = the next instruction in main … function1 … ; Program code for function BX LR ; Return BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 22 11 Program Counter Register Thanh ghi R15 ñược dùng Program Counter Bit thấp phải ñược set lên lệnh rẽ nhánh ñược thực thi ñể mode ñang chạy Thumb mode BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 23 Program Status Registers ESPR ISPR ghi ñọc Ta truy cập PSR lệnh MSR: MRS MRS MRS MSR r0, APSR ; Read Flag state into R0 r0, IPSR ; Read Exception/Interrupt state r0, EPSR ; Read Execution state APSR, r0 ; Write Flag state BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 24 12 Combined Program Status Registers MRS MSR r0, PSR PSR, r0 ; Read the combined program status word ; Write combined program state word BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 25 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 26 13 Mask register Dùng ñể cấm exception: BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM MRS MRS MRS MSR MSR MSR 27 r0, BASEPRI ; Read BASEPRI register into R0 r0, PRIMASK ; Read PRIMASK register into R0 r0, FAULTMASK ; Read FAULTMASK register ;into R0 BASEPRI, r0 ; Write R0 into BASEPRI register PRIMASK, r0 ; Write R0 into PRIMASK register FAULTMASK, r0 ; Write R0 into FAULTMASK ;register BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 28 14 Thanh ghi ñiều khiển (CONTROL) BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 29 Bit CONTROL[1] Luôn handle mode Trong thread mode, hay Chỉ ghi CPU Thread mode privileged state BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 30 15 Bit CONTROL[0] Chỉ ghi CPU privileged state MRS MSR r0, CONTROL ; Read CONTROL ;register into R0 CONTROL, r0 ; Write R0 into ;CONTROL register BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 31 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 32 Exception 16 Exception BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 33 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 34 Exception 17 Vector table BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 35 Vector table BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 36 18 Vector table EXPORT Vectors Vectors DCD StackMem + Stack ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NmiSR ; NMI Handler DCD FaultISR ; Hard Fault Handler DCD IntDefaultHandler ; MPU Fault Handler DCD IntDefaultHandler ; Bus Fault Handler DCD IntDefaultHandler ; Usage Fault Handler DCD ; Reserved DCD ; Reserved DCD ; Reserved DCD ; Reserved DCD IntDefaultHandler ; SVCall Handler DCD IntDefaultHandler ; Debug Monitor Handler DCD ; Reserved DCD IntDefaultHandler ; PendSV Handler DCD SysTickHandler ; SysTick Handler BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 37 Vector table IntDefaultHandler B IntDefaultHandler BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 38 19 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 39 Exception with CONTROL[1]=0 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 40 20 Exception with CONTROL[1]=1 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 41 Reset sequence BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 42 21 Reset sequence BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 43 22 [...]...Link Register Thanh ghi R14 chứa ñịa chỉ quay về khi lệnh BL (Branch and Link) hay BLX (Branch and Link with Exchange) ñược thực thi Có thể ñược sử dụng trong các lệnh quay về từ trình phục vụ ngoại lệ Bit thấp nhất luôn luôn bằng 0 BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 21 main ; Main program … BL function1 ; Call function1 using Branch with Link ; instruction ; PC = function1 ... khiển hệ thống (system control space) dạng little endian BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 12 Processor operating mode Handle mode: Khi CPU chạy chương trình xử lý exception (ví dụ: trình. .. Trong trạng thái này, CPU không ñược truy cập vào số tài nguyên hệ thống (VD: ghi cấu hình) Sử dụng chạy chương trình ñiều khiển hệ ñiều hành BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 15 Mode... - ðH Bách Khoa TP.HCM 16 Chương trình với hệ ñiều hành Hệ ñiều hành chạy chế ñộ thread mode với privileged access level Khi exception (VD: ngắt timer) xảy ra, hệ ñiều hành ñi vào chế ñộ handle