1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình hệ thống nhúng bùi quốc bảo

22 493 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 3Cấu trúc ñơn giản, cho phép dễ dàng thay ñổi ñể có tần số hoạt ñộng cao hơn The ARM Processor ðược thiết kế cho các ứng dụng nhúng, là CPU ch

Trang 1

BÙI QUỐC BẢO

 Cấu trúc dựa trên cấu trúc RISC

(Reduced Instruction Set Computer)

Trang 2

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 3

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

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)

Trang 3

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 5

Main features of ARM Processor

Mhz Tuy nhiên 1 số dòng ARM

mới có thể chạy với tốc ñộ

Trang 4

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 7

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

Trang 5

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 9

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

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

Trang 6

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 11

ARM Cortex M3 block diagram

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

Trang 7

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 13

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.

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.

Trang 8

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 15

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.

Mode transition

Trang 9

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 17

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.

Trang 10

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 19

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

Trang 11

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 21

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.

main ; Main program

Trang 12

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 23

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

Program Status Registers

MRS r0, APSR ; Read Flag state into R0

ESPR và ISPR là thanh ghi chỉ ñọc Ta truy cập PSR bằng lệnh MSR:

Trang 13

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 25

Combined Program Status Registers

MRS r0, PSR ; Read the combined program status word

MSR PSR, r0 ; Write combined program state word

Trang 14

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 27

Mask register

Dùng ñể cấm các exception:

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

Trang 15

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 29

Thanh ghi ñiều khiển (CONTROL)

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

Trang 16

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 31

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

Exception

Trang 17

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 33

Exception

Exception

Trang 18

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 35

Vector table

Vector table

Trang 19

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 37

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

Vector table

IntDefaultHandler

B IntDefaultHandler

Trang 20

Exception with CONTROL[1]=0

Trang 21

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 41

Exception with CONTROL[1]=1

Reset sequence

Trang 22

BM Kỹ Thuật ðiện Tử - ðH Bách Khoa TP.HCM 43

Reset sequence

Ngày đăng: 04/12/2015, 14:15

TỪ KHÓA LIÊN QUAN

w