Lập trình nhúng ARM Linux course 1

117 1.2K 4
Lập trình nhúng ARM Linux course 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

Lập trình nhúng ARM linux course 1 Bài 1. Giới thiệu lập trình nhúng Arm Linux Bài 2. Biên dịch, cài đặt hệ điều hành nhúng Linux Bài 3. Môi trường lập trình nhúng Arm Linux Bài 4. Lập trình vào ra GPIO cơ bản Bài 5. Lập trình vào ra nâng cao Bài 6. Các kỹ thuật lập trình nâng cao Bài 7. Lập trình Qt cơ bản Bài 8. Lập trình Qt nâng cao

1 Khóa học LẬP TRÌNH NHÚNG ARM-LINUX GV: Phạm Ngọc Hưng, Phạm Văn Thuận Bộ môn Kỹ thuật Máy tính Viện CNTT&TT- ĐH BKHN email: hungpn@soict.hut.edu.vn Website: https://sites.google.com/site/embedded247/ Lập trình nhúng ARM-Linux Mục tiêu khóa học  Sau khi kết thúc khóa học n{y, học viên có thể • Nắm được kiến trúc một hệ thống nhúng nền tảng ARM + hệ điều h{nh nhúng Linux. • Tùy biến, biên dịch, c{i đặt hệ điều h{nh nhúng Linux trên KIT FriendlyArm 2440. • Lập trình giao tiếp v{o ra GPIO cơ bản trên hệ nhúng Arm- Linux (giao tiếp gpio) • Lập trình giao tiếp c|c chuẩn v{o ra RS232, USB, ADC • Sử dụng driver, v{ cơ chế viết driver trên hệ nhúng Linux. • Nắm được c|c kỹ thuật lập trình giao tiếp giữa c|c tiến trình trên linux, kỹ thuật lập trình đa luồng, lập trình socket • Lập trình giao diện đồ họa Qt trên Linux • B{i tập, Case Study. 2 2 Lập trình nhúng ARM-Linux Nội dung khóa học Bài 1. Giới thiệu lập trình nhúng Arm Linux Bài 2. Biên dịch, c{i đặt hệ điều hành nhúng Linux Bài 3. Môi trường lập trình nhúng Arm Linux Bài 4. Lập trình vào ra GPIO cơ bản Bài 5. Lập trình vào ra nâng cao Bài 6. C|c kỹ thuật lập trình nâng cao Bài 7. Lập trình Qt cơ bản Bài 8. Lập trình Qt n}ng cao 3 Lập trình nhúng ARM-Linux Nội dung khóa học  CASE STUDY • Lập trình ứng dụng Qt giao tiếp rs232 • Lập trình usb device driver (giao tiếp usb giữa KIT micro2440 và Keil Arm7 Board) • Lập trình mạng Qt 4 3 Lập trình nhúng ARM-Linux Tài liệu tham khảo  Tài liệu tham khảo chính: • Micro2440 User Manual • S3C2440 MicroController User’s Manual • Beginning Linux Programming • Advanced Linux Programming • Linux Device Driver • C++ GUI programming with QT • Website: https://sites.google.com/site/embedded247/ 5 Lập trình nhúng ARM-Linux Bài số 1 Giới thiệu Lập trình nhúng Arm Linux 6 4 Lập trình nhúng ARM-Linux Mục tiêu bài học số 1  Sau khi kết thúc b{i học n{y, học viên có thể • Nắm được tổng quan về lập trình nhúng • Trình b{y tổng quan về kiến trúc ARM, c|c dòng vi xử lý ARM • Trình b{y được cấu trúc phần cứng v{ c|c chức năng của hệ nhúng KIT FriendlyArm micro2440 7 Lập trình nhúng ARM-Linux Nội dung bài học 1.1. Giới thiệu về lập trình nhúng 1.2. Tổng quan về kiến trúc ARM 1.3. Giới thiệu KIT FriendlyArm micro2440 1.3. Môi trường ph|t triển ứng dụng trên KIT FriendlyArm 8 5 Lập trình nhúng ARM-Linux 1.1. Giới thiệu lập trình nhúng  Lập trình ứng dụng trên hệ nhúng phụ thuộc vào nền tảng (platform) phần cứng, phần mềm của hệ nhúng đó.  Hệ nhúng không có hệ điều hành: • Thường sử dụng c|c vi điều khiển hiệu năng tương đối thấp (8051, ATMega, PIC, ARM7, …) • Lập trình bằng C, ASM • Môi trường, công cụ lập trình tùy theo từng dòng vi điều khiển (CodeVision, AVR Studio, Keil…) • Phù hợp c|c ứng dụng điều khiển v{o/ra cơ bản, c|c giao tiếp ngoại vi cơ bản. 9 Lập trình nhúng ARM-Linux Giới thiệu lập trình nhúng  Hệ nhúng có hệ điều hành: • Dựa trên c|c vi điều khiển, vi xử lý (CPU) có hiệu năng cao (Ví dụ: AVR 32, ARM 9, ARM 11, …) • Nhiều nền tảng hệ điều h{nh nhúng : uCLinux, Embedded Linux, Windows CE, … • Môi trường, công cụ lập trình tùy thuộc nền tảng hệ điều h{nh: C/C++, QT SDK (Nokia), .Net Compact FrameWork (Microsoft), … • Ứng dụng nhiều b{i to|n phức tạp: GPS Tracking/Navigator, Xử lý ảnh, ứng dụng Client/Server, … 10 6 Lập trình nhúng ARM-Linux Giới thiệu lập trình nhúng  Các thiết bị di động thông minh: • Xu hướng công nghệ hiện nay • Nhiều nền tảng: iOS, Android, Windows Phone, Symbian OS/Maemo, • Môi trường, công cụ: iOS: Xcode + iOS SDK (ngôn ngữ Object-C) Android: C, Java + Android SDK, Eclipse/Netbean Windows Phone: SDK + Visual Studio (C#) • C|c ứng dụng phong phú: Google Play Store, Apple Store, Windows Market Place, … 11 Lập trình nhúng ARM-Linux Giới thiệu lập trình nhúng  Khóa học n{y hướng tới: • Lập trình hệ nhúng nền tảng ARM + Linux • Minh họa trên KIT FriendlyArm micro 2440 • Lập trình C/C++, lập trình giao diện đồ họa QT  Lý do: • ARM ? > 90% thị phần thiết bị nhúng, l{ dòng vi xử lý hiệu năng cao. • Embedded Linux ? M~ nguồn mở, khả năng can thiệp, hiểu s}u hệ thống. Nhiều OS kh|c (iOS, Android) dựa trên Linux kernel 12 7 Lập trình nhúng ARM-Linux  ARM: • Advanced RISC Machine • Acorn RISC Machine  ARM l{ kiến trúc tập lệnh RISC 32 bit (Instruction Set Architecture – ISA) ph|t triển bởi Arm Holdings (1983).  Phổ biến nhất trong c|c kiến trúc tập lệnh 32 bit.  Được sử dụng rộng r~i trong c|c hệ thống nhúng: mobile phones, PDAs, tablets, digital media, music players, calculators, routers, …  98% of 1 billion mobile phones (in 2005); 13 1.2. Giới thiệu kiến trúc ARM Lập trình nhúng ARM-Linux Kiến trúc ARM  Kế thừa các đặc điểm của kiến trúc tập lệnh RISC • Số lượng thanh ghi lớn v{ có kích thước bằng nhau (32bit) • Kiến trúc tập lệnh RISC, độ d{i từ lệnh 32 bit, khuôn dạng lệnh 3 địa chỉ to|n hạng. • Chế độ địa chỉ đơn giản (ít chế độ địa chỉ hơn kiến trúc CISC)  Phát triển các đặc trưng mới của ARM • C|c lệnh có kết hợp với lệnh dịch hoặc c|c lệnh logic • Chế độ địa chỉ tự động tăng-giảm để tối ưu hóa c|c vòng lặp • Nạp v{ lưu (load/store) nhiều lệnh cùng lúc cho phép n}ng cao thông lượng 14 8 Lập trình nhúng ARM-Linux Architecture Family ARMv1 ARM1 ARMv2 ARM2 , ARM3 ARMv3 ARM6, ARM7 ARMv4 StrongARM , ARM7TDMI, ARM9TDMI ARMv5 ARM7EJ , ARM9E, ARM10E, XScale ARMv6 ARM11 , ARM Cortex-M ARMv7 ARM Cortex -A, ARM Cortex-M, ARM Cortex -R ARMv8 Support 64-bit data and addressing 15 Các dòng ARM Lập trình nhúng ARM-Linux Các dòng ARM (tiếp) Kiến trúc các dòng ARM 16 9 Lập trình nhúng ARM-Linux  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 c|c ứng dụng viết bằng Java  SIMD, NEON: công nghệ n}ng cao hiệu năng cho c|c ứng dụng Video/Audio  TrustZone: công nghệ n}ng cao tính bảo mật 17 Một số công nghệ trong ARM Lập trình nhúng ARM-Linux So sánh các dòng ARM Phân nhóm theo hiệu năng và tính hữu dụng 18 10 Lập trình nhúng ARM-Linux Kiến trúc ARM và lịch sử phát triển  ARM được rất nhiều h~ng ph|t triển v{ sản xuất, ở Việt Nam phổ biến chip ARM của c|c h~ng • ATMEL: AT91SAM7, AT91SAM9… • NXP: LPC2138, LPC2148, LPC2300… • TI (Texas Instrument): TMS470, TMS570… • SAMSUNG: S3C2440 • … 19 Lập trình nhúng ARM-Linux  Đặc điểm của chip (microprocessor) S3C2440 • Core: ARM920T core , 16 Kbytes Data Cache, 16 Kbytes Instruction cache Xung nhịp 400MHz (thường dùng), 533 MHz (max) • Memories Giao diện bus AMBA (Advanced Microcontroller Bus Architecture) 4 KByte SRAM nội 20 Kiến trúc vi điều khiển S3C2440 [...]... sẵn BIOS firmware) Lập trình nhúng ARM- Linux 30 15 1. 3 Giới thiệu KIT nhúng micro2440 Lập trình nhúng ARM- Linux 31 Giới thiệu KIT nhúng micro2440 Lập trình nhúng ARM- Linux 32 16 Giới thiệu KIT nhúng micro2440 Lập trình nhúng ARM- Linux 33 Giới thiệu KIT nhúng micro2440  Thông số kỹ thuật Lập trình nhúng ARM- Linux 34 17 Giới thiệu KIT nhúng micro2440 Lập trình nhúng ARM- Linux 35 1. 4 Môi trường phát... (porting) xuống KIT Lập trình nhúng ARM- Linux 62 31 Biên dịch nhân Linux Demo Lập trình nhúng ARM- Linux 63 Thảo luận Lập trình nhúng ARM- Linux 64 32 Bài số 3 Môi trường Lập trình nhúng Arm Linux Lập trình nhúng ARM- Linux 65 Mục tiêu bài học số 3  Sau khi kết thúc b{i học n{y, sinh viên có thể • Trình b{y c|c th{nh phần... C/C++) Lập trình nhúng ARM- Linux 37 Môi trường phát triển ứng dụng Môi trường phát triển ứng dụng theo nhóm Lập trình nhúng ARM- Linux 38 19 Thảo luận Lập trình nhúng ARM- Linux 39 Bài số 2 Biên dịch, cài đặt Hệ điều hành nhúng Linux Lập trình nhúng ARM- Linux 40 20 Mục tiêu bài học số 2  Sau khi kết thúc b{i học n{y, học viên có thể • Nắm được tổng quan về hệ điều h{nh nhúng Linux (Embedded Linux OS)... system • Biết c|ch nạp hệ điều h{nh nhúng Linux xuống KIT FriendlyArm Micro2440 • Biết c|ch tùy biến, biên dịch nh}n hệ điều h{nh Lập trình nhúng ARM- Linux 41 Nội dung bài học 2 .1 Tổng quan về hệ điều h{nh nhúng Linux 2.2 Quy trình c{i đặt hệ điều h{nh nhúng Linux 2.3 Biên dịch nh}n hệ điều h{nh nhúng Linux Lập trình nhúng ARM- Linux 42 21 2 .1 Tổng quan Embedded Linux OS  Hệ điều h{nh (OS) ? • Hệ điều... hình lập trình hệ thống nhúng  C|c th{nh phần cần thiết để ph|t triển ứng dụng nhúng trên Linux Lập trình nhúng ARM- Linux 68 34 Mô hình lập trình hệ thống nhúng • Host: hệ thống chứa môi trường phát triển •Target: hệ nhúng cần phát triển ứng dụng Lập trình nhúng ARM- Linux 69 Môi trường lập trình KIT micro 2440 • M|y host c{i hệ điều h{nh Linux (Ubuntu) • Trình biên dịch chéo Cross toolchains (arm- linux- gcc... bootloader v{ kernel, c|c th{nh phần kh|c phải riêng biệt v{ tương thích với từng hệ thống Lập trình nhúng ARM- Linux 53 Quá trình boot hệ thống Linux trên PC Lập trình nhúng ARM- Linux 54 27 Quá trình boot hệ thống Linux nhúng Lập trình nhúng ARM- Linux 55 Quá trình boot hệ thống Linux nhúng  Boot loader: chương trình mồi, thực hiện kiểm tra phần cứng hệ thống v{ nạp nh}n (kernel) của hệ điều h{nh  Kernel:... (portability) Lập trình nhúng ARM- Linux 44 22 Sơ đồ phân cấp hệ thống Lập trình nhúng ARM- Linux 45 Kiến trúc hệ điều hành Unix Lập trình nhúng ARM- Linux 46 23 Kiến trúc hệ điều hành nhúng  Hệ điều h{nh nhúng (embedded os) ? • L{ hệ điều h{nh c{i đặt cho c|c hệ thống nhúng (embedded system) • Được thiết kế: compact, efficient, reliable Lập trình nhúng ARM- Linux 47 Kiến trúc hệ điều hành nhúng  Đặc trưng... dụng nhúng trên Linux • Biết c|ch c{i đặt c|c công cụ, môi trường ph|t triển • Trình b{y được cấu trúc một chương trình cơ bản, viết v{ biên dịch chương trình C đầu tiên “Hello” chạy trên KIT micro2440 Lập trình nhúng ARM- Linux 66 33 Nội dung bài học 3 .1 Môi trường ph|t triển ứng dụng nhúng Linux 3.2 C{i đặt môi trường ph|t triển 3.3 Lập trình ứng dụng HelloWorld Lập trình nhúng ARM- Linux 67 3 .1 Môi... nguồn chương trình C (dùng gedit, eclipse) • gFTP: truyền nhận file HostKIT qua giao thức TFTP • Telnet: kết nối KIT qua Ethernet (sử dụng cross cable) Lập trình nhúng ARM- Linux 70 35 3.2 Cài đặt môi trường phát triển  Cấu hình mạng LAN (host + KIT) qua c|p chéo v{ sử dụng IP cùng dải: • Linux host: 19 2 .16 8 .1. 30 • Linux target: 19 2 .16 8 .1. 230 (default) Lập trình nhúng ARM- Linux 71 Cài đặt trình biên... (QoS) Lập trình nhúng ARM- Linux 49 Hệ điều hành thời gian thực Lập trình nhúng ARM- Linux 50 25 Cấu trúc nhân hệ điều hành Lập trình nhúng ARM- Linux 51 Hệ thống file trong Linux  Một số thư mục quan trọng • • • • • • • /home: thư mục người dùng /dev: chứa c|c file thiết bị /bin: chứa c|c file thực thi của hệ thống /etc: chứa c|c file cấu hình /var: chứa c|c file log /opt: chứa c|c gói chương trình . Bài 4. Lập trình vào ra GPIO cơ bản Bài 5. Lập trình vào ra nâng cao Bài 6. C|c kỹ thuật lập trình nâng cao Bài 7. Lập trình Qt cơ bản Bài 8. Lập trình Qt n}ng cao 3 Lập trình nhúng ARM-Linux. Lập trình nhúng ARM-Linux Giới thiệu lập trình nhúng  Khóa học n{y hướng tới: • Lập trình hệ nhúng nền tảng ARM + Linux • Minh họa trên KIT FriendlyArm micro 2440 • Lập trình C/C++, lập. 16 Lập trình nhúng ARM-Linux 1.3. Giới thiệu KIT nhúng micro2440 31 Lập trình nhúng ARM-Linux Giới thiệu KIT nhúng micro2440 32 17 Lập trình nhúng ARM-Linux 33 Giới thiệu KIT nhúng

Ngày đăng: 29/07/2014, 10:09

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan