Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
2,11 MB
Nội dung
3.3 Vi điều khiển họ ARM • Kiến trúc tổng quan lõi vi xử lý ARM • Kiến trúc vi điều khiển lõi ARM920T (S3C2440) • Lập trình ứng dụng hệ điều hành Linux nhúng Kiến trúc tổng quan lõi vi xử lý ARM • ARM dòng vi xử lý 32 bit thiết kế theo kiến trúc tập lệnh RISC (Reduced Instruction Set Computer) • ARM viết tắt • Advanced RISC Machine • Acorn RISC Machine • ARM kiến trúc sử dụng rộng rãi hệ thống nhúng: Mobile phones, PDAs, thiết bị điện tử gia dụng… Kiến trúc tổng quan vi xử lý lõi ARM • Kế thừa đặc điểm kiến trúc tập lệnh RISC • Số lượng ghi lớn có kích thước giống • Tập lệnh load/store, không cho phép thao tác xử lý liệu trực tiếp nhớ • Chế độ địa đơn giản (ít chế độ địa kiến trúc CISC) • Phát triển đặc trưng ARM • Các lệnh có kết hợp với lệnh dịch lệnh logic • Chế độ địa tự động tăng-giảm để tối ưu hóa vòng lặp • Nạp lưu (load/store) nhiều lệnh lúc cho phép nâng cao thông lượng Kiến trúc tổng quan lõi vi xử lý ARM Kiến trúc dòng ARM Công nghệ đặc trưng • Thumb Instruction Set: tập lệnh 16 bit cho phép tăng mật độ lệnh • Jazelle: công nghệ cho phép tăng tốc ứng dụng viết Java • SIMD, NEON: công nghệ nâng cao hiệu cho ứng dụng Video/Audio • TrustZone: công nghệ nâng cao tính bảo mật So sánh hiệu dòng ARM Phân nhóm theo hiệu tính hữu dụng Kiến trúc tổng quan vi xử lý lõi ARM • ARM nhiều hãng phát triển sản xuất, Việt Nam phổ biến chip ARM hãng • • • • • ATMEL: AT91SAM7, AT91SAM9… NXP: LPC2138, LPC2148, LPC2300… TI (Texas Instrument): TMS470, TMS570… SAMSUNG: S3C2440 … Kiến trúc vi điều khiển S3C2440 • Đặc điểm chip S3C2440 • Core: • ARM920T core , 16 Kbytes Data Cache, 16 Kbytes Instruction cache • Xung nhịp tối đa: 400 MHz • Memories • Giao diện bus AMBA (Advanced Micro controller Bus Architecture) • KByte SRAM nội Lõi vi xử lý ARM920T Kiến trúc vi điều khiển S3C2440 • Đặc điểm chip S3C2440 (tiếp) • Ngoại vi (Peripherals) • USB Host/Device • 10/100 Mbps Ethernet MAC Controller • SPI, I2C… • 32 bit Timer/Counter • USARTs • Multimedia Card Interface • ADC 10 bit kênh • Giao tiếp cảm biến ảnh (Image Sensor) • Điều khiển LCD • Điều khiển AC97 audio codec 10 Xây dựng chương trình Hello World Bước 1: viết code chương trình Bước 2: dịch chương trình -Cách 1: dùng lệnh make -Cách 2: dùng lệnh tường minh arm-linux-gcc –o OutputFile Source.c Bước 3: dùng tftp download chương trình xuống KIT tftp –l localfile –r remotefile –g ServerIP Bước 4: chạy chương trình KIT 31 Lập trình giao tiếp cổng COM • Khởi tạo: Khai báo thư viện • Bước 1: Mở cổng • Bước 2: Thiết lập tham số • Bước 3: Đọc, ghi cổng • Bước 4: Đóng cổng 32 Khai báo thư viện • #include • #include • #include • #include // UNIX standard function • #include // File control definitions • #include // Error number definitions • #include // POSIX terminal control • #include // time calls 33 Bước 1: Mở cổng • Sử dụng lệnh mở file int fd = open ("/dev/ttyUSB0", O_RDWR); • Fd >0 mở file thành công • Fd[...]... trúc vi điều khiển S3C2440 • Đặc điểm của chip S3C2440(tiếp) • Hệ thống • 4 kênh DMA (Direct Memory Access) • Boot hệ thống từ NOR Flash, NAND Flash, SDCard, Ethernet • Bộ điều khiển ngắt nâng cao AIC(Advanced Interrupt Controller) • Vào ra • 130 chân vào ra lập trình được 11 12 Tập thanh ghi và chế độ hoạt động R0->R12: thanh ghi công dụng chung R 13: Stack Pointer R14: Link Register R15: Program... được ánh xạ vào vùng nhớ chọn bởi nGCS0 • Vùng nhớ cho SDRAM bắt đầu tại địa chỉ 0x30000000 và kết thúc ở địa chỉ 0x34000000 19 Giới thiệu KIT nhúng mini2440 20 Giới thiệu KIT nhúng mini2440 21 Giới thiệu KIT nhúng mini2440 • Thông số kỹ thuật 22 Giới thiệu KIT nhúng mini2440 23 Môi trường phát triển ứng dụng • Phần mềm • • • • 24 Hệ điều hành Linux Cross toolchains (gcc 4 .3. 2) TFTP (client/server)... tiếp cổng COM • Lập trình ứng dụng đồ họa 29 Cài đặt môi trường phát triển • Môi trường phát triển • Hệ điều hành Linux (Ubuntu 9.04) • Trình biên dịch chéo: ARM Linux GCC 4 .3. 2 • Phần mềm hỗ trợ • TFTP Server client/server • GFTP Server • Cấu hình mạng sử dụng • Linux host: 192.168.1 .30 • Linux target: 192.168.1. 230 30 Xây dựng chương trình Hello World Bước 1: vi t code chương trình Bước 2: dịch chương... dụng chung R 13: Stack Pointer R14: Link Register R15: Program Counter CPSR: Current Program Status Register SPSR_SVC: Saved Program Status Register 13 Thanh ghi trạng thái chương trình Các cờ kết quả hoạt động của ALU Điều khiển cho phép/cấm ngắt Thiết lập chế độ hoạt động 14 Mode bits 15 Tập lệnh của S3C2440 • Tập lệnh ARM chia thành các nhóm lệnh • • • • • Lệnh rẽ nhánh (Branch) Lệnh xử lý... chỉ 32 bit • Địa chỉ bắt đầu: 0x00000000 • Địa chỉ kết thúc: 0x40000000 • Chia thành nhiều bank nhớ, mỗi bank 128 MB, tổng không gian bộ nhớ 1GB • 6 bank nhớ cho ROM, SRAM • 2 bank nhớ cho ROM, SRAM, SDRAM, … • Hỗ trợ cả hai kiểu lưu trữ: little endian, big endian 17 18 Bản đồ bộ nhớ Hỗ trợ hai chế độ khởi động chính • Với chế độ khởi động từ Nand Flash, 4 Kbytes BootSram được ánh xạ vào vùng nhớ chọn... tường minh arm-linux-gcc –o OutputFile Source.c Bước 3: dùng tftp download chương trình xuống dưới KIT tftp –l localfile –r remotefile –g ServerIP Bước 4: chạy chương trình trên KIT 31 Lập trình giao tiếp cổng COM • Khởi tạo: Khai báo thư vi n • Bước 1: Mở cổng • Bước 2: Thiết lập tham số • Bước 3: Đọc, ghi cổng • Bước 4: Đóng cổng 32 Khai báo thư vi n • #include • #include • #include... theo nhóm Quy trình phát triển ứng dụng • Chạy ứng dụng ở chế độ Stand-alone • Biên dịch chương trình • Nạp chương trình lên SDRAM và chạy trực tiếp (sử dụng SuperVivi, USB push) • Chạy ứng dụng trên nền hệ điều hành • Biên dịch chương trình • Chạy chương trình trên nền hệ điều hành Linux nhúng • Trên KIT cài TFTP client • Trên máy phát triển, cài TFTP server • Trên KIT dùng lệnh TFTP để download chương... #include // Error number definitions • #include // POSIX terminal control • #include // time calls 33 Bước 1: Mở cổng • Sử dụng lệnh mở file int fd = open ("/dev/ttyUSB0", O_RDWR); • Fd >0 nếu mở file thành công • Fd ... controller Bus Architecture) • KByte SRAM nội Lõi vi xử lý ARM920T Kiến trúc vi điều khiển S3C2440 • Đặc điểm chip S3C2440 (tiếp) • Ngoại vi (Peripherals) • USB Host/Device • 10/100 Mbps Ethernet MAC... Interface • ADC 10 bit kênh • Giao tiếp cảm biến ảnh (Image Sensor) • Điều khiển LCD • Điều khiển AC97 audio codec 10 Kiến trúc vi điều khiển S3C2440 • Đặc điểm chip S3C2440(tiếp) • Hệ thống • kênh DMA... Register R15: Program Counter CPSR: Current Program Status Register SPSR_SVC: Saved Program Status Register 13 Thanh ghi trạng thái chương trình Các cờ kết hoạt động ALU Điều khiển cho phép/cấm