Lập trình hệ thống nhúng - Bùi Quốc Bảo
lượt xem 39
download
Hệ thống nhúng (Embedded system) là một thuật ngữ để chỉ một hệ thống có khả năng tự trị được nhúng vào trong một môi trường hay một hệ thống mẹ. Đó là các hệ thống tích hợp cả phần cứng và phần mềm phục vụ các bài toán chuyên dụng trong nhiều lĩnh vực công nghiệp, tự động hoá điều khiển, quan trắc và truyền tin. Đặc điểm của các hệ thống nhúng là hoạt động ổn định và có tính năng tự động hoá cao...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình hệ thống nhúng - Bùi Quốc Bảo
- L P TRÌNH H TH NG NHÚNG BÙI QU C B O What is ARM? ARM là t vi t t t c a: Advanced RISC Machine. C u trúc d a trên c u trúc RISC (Reduced Instruction Set Computer) 2 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 1
- RISC Architecture C u trúc RISC ñư c ñưa ra nh m m c ñích: ð t t c ñ x lý cao b ng cách: Gi m s lu ng l nh Có t p thanh ghi l n X lý theo d ng load-store Các mã l nh có ñ dài b ng nhau 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 hơn 3 BM K Thu t ði n T - ðH Bách Khoa TP.HCM The ARM Processor ðư c thi t k cho các ng d ng nhúng, là CPU cho các h th ng system-on-chip H tr t p l nh 16 bit và 32 bit C u trúc không thu n túy là RISC. Vi x lý ARM ñư c bán dư i d ng 1 lõi IP (intellectual property core) 4 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 2
- Main features of ARM Processor - T c ñ th p, kho ng vài trăm Mhz. Tuy nhiên 1 s dòng ARM m i có th ch y v i t c ñ kho ng 2Ghz - T p l nh 32 bit, h tr t p l nh Thumb và Thumb2 (16 bit). - Ch có 1 không gian b nh - Công su t th p 5 BM K Thu t ði n T - ðH Bách Khoa TP.HCM ARM Processor families 6 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 3
- 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 các ng d ng nhúng. Giá r ðáp ng interrupt nhanh (low interrupt latency). Ch h tr t p l nh Thumb-2 7 BM K Thu t ði n T - ðH Bách Khoa TP.HCM C u trúc Von Neumann Code và data ch a trong cùng không gian ñ a ch . •Ch có 1 bus giao ti p b nh . •T n d ng ñư c không gian nh . •Chương trình có th thi t k m m d o hơn. •Data có th b chép ñè lên chương trình. •B bottle neck trong quá trình truy n data và d li u 8 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 4
- C u trúc Harvard Dùng 2 bus riêng ñ truy c p code và data Code và data có th n m chung trong 1 không gian nh Truy c p code và data cùng lúc Cho phép ñ dài code và data khác nhau Code không b ghi ñè b i data Ph n c ng CPU ph c t p hơn 9 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Pipeline C u trúc pipeline cho phép m t l nh ñư c th c thi trong lúc n p và gi i mã các l nh khác. V i c u trúc này, m t l nh có th ñư c th c thi trong 1 chu kỳ clock 10 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 5
- ARM Cortex M3 block diagram 11 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Memory endian ARMv7-M cho phép ch n endian mode cho các tác v truy c p data. Các mã l nh luôn d ng little endian Các l nh load và store vào không gian ñi u khi n h th ng (system control space) luôn d ng little endian 12 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 6
- Processor operating mode Handle mode: Khi CPU ch y 1 chương trình x lý exception (ví d : trình ph c v ng t). Thread mode: Khi ch y m t chương trình bình thư ng. 13 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Privileged access level Trong ch ñ truy c p ưu tiên (Privileged access level), CPU ñư c truy c p toàn b tài nguyên h th ng. Sau khi reset, CPU s ñi vào tr ng thái này. 14 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 7
- User access level Trong tr ng thái này, CPU không ñư c truy c p vào 1 s tài nguyên h th ng (VD: thanh ghi c u hình). S d ng ch y 1 chương trình dư i s ñi u khi n c a 1 h ñi u hành. 15 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Mode transition 16 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 8
- 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 m t 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. 17 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 18 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 9
- Stack Pointer Register Thanh ghi R13 ñư c s d ng như là thanh ghi stack pointer cho tác v ñang tích c c. Bit [1:0] luôn luôn b ng 00 SP_main: Là thanh ghi SP m c ñ nh, s d ng trong handle mode ho c trong thread mode khi chương trình ho c OS ch y ch ñ Privileged level. SP_Process: ðư c s d ng trong thread mode 19 BM K Thu t ði n T - ðH Bách Khoa TP.HCM PUSH {R0} ; R13=R13-4, then Memory[R13] = R0 POP {R0} ; R0 = Memory[R13], then R13 = R13 + 4 20 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 10
- 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. 21 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 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 1 BX LR ; Return 22 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 11
- Program Counter Register Thanh ghi R15 ñư c dùng như Program Counter. Bit th p nh t ph i ñư c set lên 1 khi 1 l nh r nhánh ñư c th c thi ñ ch ra mode ñang ch y là Thumb mode 23 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Program Status Registers ESPR và ISPR là thanh ghi ch ñ c. Ta truy c p PSR b ng l nh MSR: MRS r0, APSR ; Read Flag state into R0 MRS r0, IPSR ; Read Exception/Interrupt state MRS r0, EPSR ; Read Execution state MSR APSR, r0 ; Write Flag state 24 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 12
- Combined Program Status Registers MRS r0, PSR ; Read the combined program status word MSR PSR, r0 ; Write combined program state word 25 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 26 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 13
- Mask register Dùng ñ c m các exception: 27 BM K Thu t ði n T - ðH Bách Khoa TP.HCM MRS r0, BASEPRI ; Read BASEPRI register into R0 MRS r0, PRIMASK ; Read PRIMASK register into R0 MRS r0, FAULTMASK ; Read FAULTMASK register ;into R0 MSR BASEPRI, r0 ; Write R0 into BASEPRI register MSR PRIMASK, r0 ; Write R0 into PRIMASK register MSR FAULTMASK, r0 ; Write R0 into FAULTMASK ;register 28 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 14
- Thanh ghi ñi u khi n (CONTROL) 29 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Bit CONTROL[1] Luôn b ng 0 handle mode Trong thread mode, nó có th b ng 0 hay 1 Ch có th ghi khi CPU Thread mode và privileged state 30 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 15
- Bit CONTROL[0] Ch có th ghi khi CPU privileged state MRS r0, CONTROL ; Read CONTROL ;register into R0 MSR CONTROL, r0 ; Write R0 into ;CONTROL register 31 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Exception 32 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 16
- Exception 33 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Exception 34 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 17
- Vector table 35 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Vector table 36 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 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 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD IntDefaultHandler ; SVCall Handler DCD IntDefaultHandler ; Debug Monitor Handler DCD 0 ; Reserved DCD IntDefaultHandler ; PendSV Handler DCD SysTickHandler ; SysTick Handler 37 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Vector table IntDefaultHandler B IntDefaultHandler 38 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 19
- 39 BM K Thu t ði n T - ðH Bách Khoa TP.HCM Exception with CONTROL[1]=0 40 BM K Thu t ði n T - ðH Bách Khoa TP.HCM 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Giáo trình thực hành Lập trình hệ thống - Nguyễn Hứa Duy Khang vs Trần Hữu Danh
39 p | 1511 | 624
-
Giáo trình Hệ thống nhúng
28 p | 1294 | 414
-
Giáo trình Lập trình hệ thống máy tính - Phạm Hùng Kim Khánh
130 p | 649 | 215
-
Lập trình hệ thống nhúng
14 p | 309 | 58
-
Bài giảng Lập trình hệ thống nhúng sử dụng vi điều khiển MSP430 - TS. Lê Mạnh Hải
120 p | 312 | 53
-
Giáo trình Hệ thống nhúng: Phần 2
43 p | 118 | 29
-
Bài giảng Lập trình hệ thống nhúng - Bùi Quốc Bảo
34 p | 167 | 24
-
Đề tài Lập Trình Hệ Thống
6 p | 238 | 21
-
Lập trình hệ thống nhúng: delay sử dụng vòng lặp lệnh
11 p | 134 | 19
-
Bài giảng hệ thống nhúng - ĐH Kỹ Thuật Công Nghiệp
0 p | 135 | 18
-
Bài giảng Hệ thống nhúng: Phần 1 - Đậu Trọng Hiển
109 p | 62 | 16
-
Lập trình hệ thống nhúng: Top-down design
12 p | 133 | 15
-
Giáo trình Kiến trúc máy tính và quản lý hệ thống máy tính: Phần 1
104 p | 73 | 13
-
Bài giảng Lập trình hệ nhúng: Chương 7 - Phạm Ngọc Hưng
13 p | 81 | 10
-
Kỹ thuật điện tử và lập trình C: Phần 2
256 p | 12 | 9
-
Bài giảng Hợp ngữ và lập trình hệ thống: Chương 1 - Phạm Công Hòa
95 p | 99 | 6
-
Lập trình hệ thống mạng (Nguyễn Hữu Thể) - Mạng máy tính
17 p | 101 | 6
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn