Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Lập trình nhúng ARM Linux course 1
PREMIUM
Số trang
117
Kích thước
3.5 MB
Định dạng
PDF
Lượt xem
1671

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

Nội dung xem thử

Mô tả chi tiết

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: [email protected]

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

11

Lập trình nhúng ARM-Linux

Lõi vi xử lý ARM920T

21

Lập trình nhúng ARM-Linux

Ngoại vi S3C2440

22

Tải ngay đi em, còn do dự, trời tối mất!