intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Lập trình hệ thống nhúng - Bùi Quốc Bảo

Chia sẻ: Nguyen Lan | Ngày: | Loại File: PDF | Số trang:22

241
lượt xem
38
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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...

Chủ đề:
Lưu

Nội dung Text: Lập trình hệ thống nhúng - Bùi Quốc Bảo

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2