Tải bản đầy đủ (.docx) (59 trang)

Triển khai hệ thống nhúng trên friendly arm và ứng dụng điều khiển thiết bị

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.26 MB, 59 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN

TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN FRIENDLY ARM
VÀ ỨNG DỤNG ĐIỀU KHIỂN THIẾT BỊ

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
2014


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
TRIỂN KHAI HỆ THỐNG NHÚNG TRÊN FRIENDLY ARM VÀ ỨNG
DỤNG ĐIỀU KHIỂN THIẾT BỊ
NGÀNH: CÔNG NGHỆ THÔNG TIN
CHUYÊN NGÀNH: CÔNG NGHỆ MÁY TÍNH

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
NGƯỜI HƯỚNG DẪN
ThS. PHẠM NGỌC HƯNG

2014

2


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

MỤC LỤC



3


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

DANH SÁCH HÌNH VẼ

4


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

DANH SÁCH BẢNG BIỂU

5


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

DANH SÁCH TỪ VIẾT TẮT
Từ viết tắt
PC

Từ đầy đủ
Personal Computer

Giải thích
Máy tính cá nhân, máy tính điện
tử


ARM

Advanced RISC Machine

Một loại cấu trúc vi xử lý 32-bit
kiểu RISC được sử dụng rộng
rãi trong các thiết kế nhúng.

GPIO

General-purpose input/output

Cổng giao tiếp vi xử lý với thế
giới bên ngoài

UDP

User Datagram Protocol

Giao thức của mạng máy tính

6


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

CHƯƠNG 1:
1.1


TỔNG QUAN VỀ ĐỀ TÀI

Lý do chọn đề tài
Bắt đầu từ thế kỉ XX, nhân loại đã chứng kiến cuộc cách mạng khoa học kĩ

thuật phát triền trên toàn thế giới. Đặc trưng và nổi bật của cuộc cách mạng này là
kĩ thuật máy tính, công nghệ thông tin và ứng dụng của tự động hóa. Trong đó, việc
sử dụng thành tựu của khoa học công nghệ thông tin vào thiết kế, chế tạo tự động
hóa đóng một vai trò quan trọng trong mọi lĩnh vực của cuộc sống.
Trong những năm gần đây, xu hướng của thế giới là phát triển mạnh công
nghệ bán dẫn. Một cấu trúc vi xử lý có thể tích hợp trên nó nhiều cổng logic có thể
ứng dụng trong nhiều lĩnh vực. Ngày nay, ngành công nghiệp chế tạo phần cứng
luôn có những đột phá không ngừng. Từ các mạch điện đơn giản đến các mạch số,
mạch tích hợp,kiến trúc mạch ngày một trở nên phức tạp hơn.
Các hệ thống nhúng được phát triển trên ARM đang được sử dụng rộng rãi cho
các nghiên cứu, ứng dụng, và đào tạo hiện nay bởi đặc tính linh hoạt cho các thiết
kế thiết bị trên ARM. Mặt khác,ARM được hỗ trợ rất nhiều các thiết bị ngoại vi tạo
điều kiện thuận lợi cho việc phát triển hệ thống nhúng, phát triển các ứng dụng điều
khiển trên ARM kết nối với các thiết bị ngoại vi.
Để có được bước đầu làm quen và nghiên cứu về công nghệ ARM từ đó có thể
nghiên cứu sâu hơn về công nghệ nên Em đã chọn đề tài nghiên cứu: “ Triển khai
hệ thống nhúng trên FriendlyArm và điều khiển thiết bị qua máy tính” làm đề
tài tốt nghiệp Đại học của mình.
1.2

Mục tiêu của đề tài
• Làm chủ hệ điều hành Linux trên KIT FriendlyArm Mini 2440.
• Ứng dụng công nghệ trên KIT FriendlyArm Mini 2440 để điều khiển
thông minh.


7


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

• Lập trình giao tiếp giữa KIT FriendlyArm Mini 2440 và máy tính qua
cổng Ethernet
• Lập trình ứng dụng nhúng điều khiển thiết bị trên Friendly Arm
• Ứng dụng bộ công cụ mã nguồn mở Qt Everywhere Linux
• Ghép nối hệ nhúng PC – FriendlyArm – Module Rơ-le điều khiển thiết
bị
1.3

Giới hạn và phạm vi của đề tài
- Tìm hiểu về lập trình nhúng trên hệ điều hành mã nguồn mở Linux.
- Tìm hiểu về lập trình giao tiếp KIT Friendly ARM Mini 2440 với PC.
- Lập trình ứng dụng điều khiển trên KIT Friendly ARM Mini 2440.

1.4

Nội dung thực hiện
- Build nhân hệ điều hành Linux trên KIT Friendly Arm Mini 2440.
- Lập trình giao tiếp giữa KIT Friendly Arm Mini 2440 và PC qua Ethernet.
- Xây dựng module dơ-le điều khiển thiết bị.
- Lập trình ứng dụng nhúng điều khiển thiết bị trên Friendly Arm Mini 2440.
- Ghép nối PC với KIT Friendly Arm Mini 2440 module Rơ-le điều khiển thiết

bị.
- Triển khai thử nghiệm và đánh giá kết quả.
1.5


Phương pháp tiếp cận
-

Cách tiếp cận : Nghiên cứu các kĩ thuật lập trình trên các nền tảng công nghệ
khác nhau như : ARM, PC,..

-

Sử dụng các phương pháp nghiên cứu:
-

Phương pháp đọc tài liệu.
Phương pháp phân tích mẫu.
Phương pháp thực nghiệm.

8


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

CHƯƠNG 2:

CƠ SỞ LÝ THUYẾT

Chương này sẽ trình bày cơ sở lý thuyết của đề tài bao gồm tổng quan về
Friendly Arm, giới thiệu phần mềm, công cụ sử dụng trong đề tài, các bước triển
khai hệ thống, truyền thông qua máy tính.
2.1


KIT Friendly Arm Mini 2440

Hình 2: KIT Friendly Arm Mini 2440
Mô tả về KIT Friendly Arm Mini 2440:
-

Kích thước: 100 x 100mm
CPU: 400 MHz Samsung S3C2440A ARM920T (max freq. 533 MHz)
RAM: 64 MB SDRAM, 32 bit Bus
Flash: 64 MB / 128 MB / 256 MB / 1GB NAND Flash and 2 MB NOR Flash

-

with BIOS
EEPROM: 1024 Byte (I2C)
Bộ nhớ mở rộng: Hỗ trợ thẻ SD-Card
Cổng nối tiếp: 01 cổng kết nối chuẩn RS232
9


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

-

Cổng giao tiếp USB: 01 cổng chuẩn A-USB, 01 cổng chuẩn B-USB
Ngõ ra âm thanh: 01 ngõ với chuẩn Jack Stereo 3.5mm
Ngõ vào âm thanh: 01
Kết nối Ethernet: 01 cổng với chuẩn dây RJ-45 10/100m (DM9000)
Hệ thời gian thực (RTC): hỗ trợ với nguồn pin đi kèm
Còi: 01 còi làm việc với chế độ PWM

Camera: cổng kết nối 20 chân (2.0mm)
Màn hình LCD: 3.5 inches hỗ trợ cảm ứng
Nút nhấn: 06 nút nhấn
LED: 04 led
Cổng với rộng: 01 cổng 40 chân, 01 cổng 34 chân, 01 cổng 10 chân (2.0mm)
Nguồn điện cung cấp: 5V (Mini2440: 0.3 A, Mini2440 + 3.5" LCD: 0.6 A)
Hệ điều hành hỗ trợ: Linux, WinCE, Android

2.1.1 Địa chỉ bộ nhớ
Bên phía tay trái là bộ nhớ NOR
Bên phía tay phải là bộ nhớ NAND

10


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

Hình 2: Địa chỉ bộ nhớ KIT Friendly Arm Mini 2440

2.1.2 Nguồn cung cấp
Cần phải cấp nguồn điện cho KIT là 5V.
Ở các chân mở rộng của KIT có cung cấp nguồn điện ra là 5V, 3.3V, 1.8V và
1.25V

2.1.3 RESET
Mạch Reset sử dụng 1 IC MAX 811 và được cung cấp chức năng reset toàn bộ
KIT ở nút RST

Hình 2: Mạch Reset KIT


2.1.4 SDRAM
Có 2 chip 32MB (HY57V561620, 4Banks x 4MBit x 16bit) trên KIT.
Địa chỉ vật lý bắt đầu từ 0x3000000

2.1.5 FLASH
Có 2 loại bộ nhớ Flash trên KIT: 2MByte Nor Flash (SST39VF1601) và
64MByteNand Flash (K9F1208).
Địa chỉ và độ rộng:
11


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

• Nor Flash: 16bit dữ liệu + 20bit Bus địa chỉ
• Nand Flash: 8bit dữ liệu / Bus địa chỉ

2.1.6 LED
Bảng 2: Chi tiết LED trên KIT Friendly Arm Mini 2440
LED GPIO Hàm khác

Tên trên sơ đồ nguyên lý

1

GPB
5

nXDACK

nLED_1


2

GPB
6

nXRED

nLED_1

3

GPB
7

nXDACK1 nLED_1

4

GPB
8

nXDRED1 nLED_1

Các Led này được thắp sáng ở mức 0 khi xuất dữ liệu từ KIT.

2.1.7 Nút nhấn
Bảng 2: Chi tiết nút nhấn trên KIT Friendly Arm Mini 2440
Nút
nhấn


GPIO

Hàm khác

Tên trên sơ đồ nguyên lý / ngắt

1

GPG0

--

2

GPG3

nSS1

3

GPG5

SPIMISO1 EINT13

4

GPG6

SPIMOSI1 EINT14


5

GPG7

SPICLK1

6

GPG11 TCLK1

EINT8
EINT11

EINT15
EINT19

Tín hiệu nhận được là 0 khi nút nhấn được bấm.

12


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

2.1.8 ADC
Có 4 kênh ADC trên KIT và được mở rộng ở cổng CON4.
AIN0 có biến trở vi chỉnh 10k kèm theo.

Hình 2:ADC trên KIT


2.1.9 Còi PWM
Còi này được nối tới GPB0.

13


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

Hình 2:Còi PWM trên KIT

2.1.10 EEPROM
IC EEPROM 24C08 (1024byte) làm việc với chế độ I2C: I2CSCL and
I2CSDA.

Hình 2:EEPROM trên KIT

2.1.11 JTAG
10 chân kết nối JTAG (2.0mm)

Hình 2:JTAG

2.1.12 Kết nối Ethernet
KIT sử dụng chip Davicom DM900 hỗ trợ kết nối Ethernet.
Mỗi board đều có địa chỉ vật lý là như nhau. Có thể chỉnh sửa lại bằng phần
mềm BSP driver code trên Linux

14


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị


2.1.13 UART
Có 3 cổng nối tiếp đó là: CON1 (UART0), CON2 (UART1), CON3(UART2).
UART0 là cổng truyền thông nối tiếp RS232 – COM0 (DB9 – Connector)

Hình 2:UART

2.1.14 USB
Có 2 cổng hỗ trợ kết nối USB theo chuẩn A và chuẩn B.
Đầu ra với chân bổ sung ở USB_EN (GPC5).

2.1.15 LCD
KIT giao tiếp với màn hình LCD qua cổng kết nối có 41 chân (0.5mm). Tất cả
các tín hiệu hình ảnh, dữ liệu và cảm biến cảm ứng đều nằm trong kết nối này.
Jumper J2 chính là nơi kết nối với màn hình LCD, hỗ trợ cả hai loại nguồn là
5V và 3.3V.

15


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

Hình 2:LCD Interface

2.1.16 Camera
KIT Friendly Arm Mini 2440 xây dựng giao tiếp Camera Cmos, kết nối tại
CON20.
Kết nối này dạng 20 chân (2.0mm).

2.1.17 Ngõ vào ra âm thanh

Bộ xử lý âm thanh UDA1341 kết nối qua I2S. Có một ngõ ra và hai ngõ vào
âm thanh.
Ngõ ra Stereo theo chuẩn Jack cắm 3.5mm
Ngõ vào âm thanh dạng microphone và nối từ cổng CON10 – chế độ môn

16


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

2.1.18 Đường BUS hệ thống
Bus hệ thống ở cổng kết nối CON5.
Dạng 40 chân (2.0mm)

2.1.19 GPIO
Giao tiếp vào ra vật lý ở cổng kết nối CON4.
Dạng 34 chân (2.0mm)
2.2

Hệ điều hành mã nguồn mở Linux
Linux® đang ở thời điểm phát triển mạnh. Tính đến năm 2013 thì Linux đã ra

đời được 22 năm, một hệ điều hành hoàn thiện với sự hỗ trợ cho một loạt các mô
hình sử dụng. Nhưng thật khó khi nghĩ rằng Linux chỉ là một hệ điều hành—nó
giống như một con tắc kè hoa thì đúng hơn. Nhân mô đun và tính linh hoạt của nó
có thể xử lý trong nhiều mô hình sử dụng (từ siêu máy tính lớn nhất đến các thiết bị
nhúng nhỏ nhất) đến mức thật khó phân loại nó vào bất cứ thứ gì khác hơn là một
công nghệ khả dụng. Trong thực tế, Linux là một nền tảng. Nó là một công nghệ
then chốt cho phép tạo ra các sản phẩm mới, mà một vài trong số các sản phẩm đó
mới chỉ được giới thiệu gần đây.


2.2.1 Linux là gì?
Nhìn bề ngoài, Linux là một hệ điều hành.Linux gồm có một nhân kernel (mã
cốt lõi quản lý các tài nguyên phần cứng và phần mềm) và một bộ sưu tập các ứng
dụng của người dùng (chẳng hạn như các thư viện, các trình quản lý cửa sổ và các
ứng dụng).

17


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

Hình 210:Linux nhìn bề ngoài
Sơ đồ trên chỉ ra các thành phần quan trọng. Tầng cuối cùng chính là một tập
hợp mã kiến trúc giúp Linux có thể hỗ trợ đa nền tảng phần cứng (ARM, PowerPC,
Tilera TILE v.v...). Tất nhiên, chức năng này được đăng ký theo giấy phép GNU, tạo
nên tính di động của Linux.
Linux theo phong cách riêng của mình trong lĩnh vực về tính di động . Hệ
thống con của trình điều khiển (là rất lớn về khả năng của nó) hỗ trợ động các mô
đun được nạp mà không ảnh hưởng đến hiệu năng, tạo nên tính mô đun (thêm vào
một nền tảng động hơn). Linux cũng bảo mật ở mức nhân kernel (trong một số lược
đồ) tạo nên một nền tảng bảo mật Trong miền hệ thống tệp bên ngoài, Linux tạo nên
một mảng lớn nhất về hỗ trợ hệ thống tệp của bất kỳ hệ điều hành nào, như là một
ví dụ, tạo nên tính linh hoạt thông qua tính mô đun thiết kế. Linux thực hiện không
chỉ các tính năng lên lịch trình tiêu chuẩn mà còn lên lịch trình thời gian thực bao
gồm các bảo đảm về độ trễ ngắt).
Cuối cùng, Linux là mở, có nghĩa là trên thực tế bất cứ ai cũng có thể xem và
cải thiện dựa vào nguồn gốc của nó. Tính mở này cũng giảm thiểu các cơ hội bị lợi
18



Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

dụng, tạo ra một nền tảng an toàn hơn. Nhiều công ty đóng góp cho Linux, bảo đảm
rằng nó sẽ tiếp tục giải quyết một loạt các mô hình sử dụng trong khi vẫn duy trì các
đặc tính cốt lõi của mình.
Bảy nguyên tắc quan trọng này chắc chắn không phải là các thuộc tính duy
nhất mà Linux cung cấp, nhưng chúng cho phép Linux dùng như một nền tảng đa
năng trên rất nhiều các mô hình sử dụng. Hơn nữa, Linux là như nhau trên các mô
hình sử dụng này - không chỉ các nguyên tắc thiết kế mà còn bản thân mã của nó
nữa. Người ta không thể nói điều này về các hệ điều hành khác (như Windows®—
máy tính để bàn, máy chủ, hoặc thiết bị nhúng—hoặc Mac OS X hoặc Apple iOS),
chúng có phân khúc dịch vụ và mô hình sử dụng khác.

2.2.2 Linux ở đâu?
Với khả năng biến đổi nhanh và mở rộng quy mô của mình, có thể tìm thấy
Linux trong tất cả các phân khúc máy tính (và thậm chí một số phân khúc vẫn chưa
được định nghĩa đầy đủ). Phần này xem xét một số các phân khúc điện toán quan
trọng, bao gồm máy tính để bàn/netbook, máy chủ, cluster, máy tính lớn
Mainframe, siêu máy tính, thiết bị cầm tay/máy tính bảng, thiết bị nhúng, ảo hóa và
các máy thử nghiệm.

2.2.3 Những đặc điểm nổi bật của Linux
-

Độ ổn định cao.
Miễn phí.
Minh bạch và tùy biến.
Phù hợp với mọi cấu hình máy.
Nhỏ gọn với chức năng chuyên biệt.


2.2.4 Hệ điều hành nhúng với Linux
a)

Các thành phần cơ bản:
• BootLoader:đóng vai trò như là BIOS trong máy tính của bạn.Vì
phần cứng và tài nguyên hạn hẹp nên nó không có nguyênBIOS như PC
mà được cài sẵn trong BIOS, NAND hoặc NOR Flash. Nó là chương
19


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

trình sẽ chạy đầu tiên khi khởi động (reset).Nó có nhiệm vụ Load ảnh
của nhân linux (kernel Linux Image) vào bộ nhớ và "pass" các thông số
khởi tạo từ bootloader tới nhân Linux trên.
• NOR flash: giống như bộ nhớ BIOS của PC.
• NAND flash: giống như ổ cứng PC. Hệ điều hành và ứng dụng được
cài lên đây.Cũng có trường hợp OS chạy từ SD card thì cũng giống như
WINDOW lite hay LINUX lite chạy trực tiếp từ CD ROM mà không cần
cài vào máy.
• Kernel Linux Image: nhân Linux của hệ thống nhúng. Nó giống như
trái tim, điiều phối toàn bộ hoạt động của hệ thống.
• Root File System: giống như thư mục chứa dữ liệu của hệ thống
Window và chưa ProgramFile các chương trình, ứng dụng của hệ thống.
b)

Quá trình khởi tạo Kernel Linux (nhân Linux) và Root File System

Quá trình khởi động trải qua 2 bước:

-

Uboot :
Được boot lần đầu tiên khi hệ thống khởi động:
+ Nạp nhân vào bộ nhớ.
+ Lấy dữ liệu Root File System từ thẻ nhớ hoặc Nand Flash.
+ Khởi tạo các thông số biến môi trường,bootag, boot cmd,Root
File System ở Partition nào, vv...Các thông số này được đưa tới nhân
khi nhân được khởi động.Đồng thời nó cũng khởi tạo các ngoại vi
chuẩn bị cho Kernel Boot như mmc,Ethernet,USB (optional).

-

Kernel Boot:
Hạt nhân Linux sau đó chạy "/ sbin / init", để mà xử lý phần còn lại của trình

tự khởi động (chẳng hạn như hiển thị màn hình splash Screen và thanh tiến
trình).Trình tự này là như nhau cho dù các thiết bị được khởi động từ Flash hay từ
20


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

thẻ SD. Sự khác biệt là hạt nhân linux được load như thế nào, và những thiết bị nào
được mount chứa Root File System.
c)
-

Những biên môi trường quan trọng


Autoload:nếu đặt là "no" (hoặc bất kỳ chuỗi bắt đầu bằng 'n'), các lệnh
rarpb, bootp or dhcp sẽ chỉ thực hiện cấu hình tra cứu từ BOOTP / DHCP
server, nhưng không cố gắng tải các image bằng cách sử dụng TFTP.

-

Autostart:nếu đặt là "yes", một image được load bằng cách sử dụng rarpb,
BOOTP, DHCP,tftp,disk, hoặc lệnh docb sẽ được tự động bắt đầu (bằng cách
gọi nội bộ lệnh bootm).

-

Baudrate: là 1 số thập phân xác định tốc độ baud của truyền thông nối tiếp
giữa uboot và dao diện command line bằng terminal của Window hay
picocom trong Linux....hoặc chương trình truyền nhận COM khác.Mặc định
là baudrate 115200.

-

Bootargs: Nội dung của biến này được truyền cho Linux Kernel như các đối
số khởi động (hay còn gọi là "Command line"). Đó là 1 chuỗi những cmd
uboot "bắt" Kernel cần phải làm khi khởi động.

-

Bootdelay: Sau khi thiết lập bao nhiêu thì uboot sẽ chờ đợi bấy nhiêu giây
trước khi nó thực hiện các nội dung của biến bootcmd. Trong thời gian đếm
ngược được xuất ra dao diện terminal,uboot có thể bị gián đoạn bằng cách
nhấn phím bất kỳ.Khi này ta không thực hiện boot 1 cách tự động (auto) nữa
mà khởi động bằng cmd line từ các command của uboot #MINI2440. Thiết

lập Bootdelay=-1 autoboot vô hiệu hóa.Bootdelay=0 là không cần delay khi
boot.

-

Bootfile: tên của file IMAGE mặc định để tải bằng TFTP.

-

Ethaddr: địa chỉ MAC Ethernet cho đầu tiên / giao diện ethernet chỉ (= eth0
trong Linux).Biến này có thể được đặt một lần (thường là do nhà sản xuất đặt
). U-Boot từ chối để xóa hay ghi đè lên biến này một lẩn khi nó đã được thiết
lập.
21


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

-

Eth1addr: địa chỉ MAC cho giao diện Ethernet thứ hai (= eth1 trong Linux).

-

Eth2addr: địa chỉ MAC cho giao diện Ethernet thứ ba (= eth2 trong Linux).

-

Initrd_high: được sử dụng để hạn chế vị trí của initrd ramdisk images. Nếu
biến này không được thiết lập, images initrd sẽ được sao chép vào các địa chỉ

cao nhất có thể trong bộ nhớ RAM, điều này bạn thường mong muốn vì nó
cho phép kích thước initrd tối đa. Nếu vì một số lý do bạn muốn chắc chắn
rằng images initrd được nạp dưới giới hạn CFG_BOOTMAPSZ, bạn có thể
thiết lập biến môi trường với giá trị "no" hoặc "off" hoặc "0". Ngoài ra cũng
có thể đặt nó vào một địa chỉ trên cùng để sử dụng (U-Boot vẫn sẽ kiểm tra
xem nó không ghi đè lên U-Boot stack và dữ liệu).

-

Ipaddr: địa chỉ IP cần thiết cho lệnh tftp.

-

Loadaddr: địa chỉ load mặc định cho lệnh như tftp hoặc loads.

-

Loads_echo: Nếu đặt là 1, tất cả các ký tự nhận được trong một Series
download (dùng lệnh loads) được lặp lại(echo lại).

-

Pram:Nếu tính năng "bảo vệ RAM" được kích hoạt trong cấu hình Board
MINI2440, biến này có thể được định nghĩa để cho phép lưu trữ vào "RAM
bảo vệ".Ví dụ vùng RAM mà không bị ghi đè bởi U-Boot. Định nghĩa biến
này để giữ số lượng kB bạn muốn dự trữ cho PRAM. Lưu ý rằng thông tin
cấu trúc của Board ban vẫn sẽ hiển thị tổng số dung lượng của RAM. Nếu
PRAM được reserved(dành riêng), một biến MT mới "mem" sẽ tự động được
xác định để giữ số lượng RAM còn lại ở dạng để mà có thể truyền được như
các thông số khởi động tới Linux.


-

Oserverip: TFTP server địa chỉ IP cần thiết cho lệnh tftp.

-

Serial #: chứa thông tin nhận dạng phần cứng như kiểu: "string" , "/" hoặc
"serial number". Biến này có thể được đặt một lần (thường là do nhà sản
xuất). U-Boot từ chối để xóa hay ghi đè lên biến này một Hass được thiết
lập.

22


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

-

Verify:Nếu thiết lập là "n" hoặc "no" vô hiệu hóa các checksum kiểm tra.

-

Dnsip: địa chỉ IP của máy chủ tên miền của bạn.

-

Gatewayip: địa chỉ IP của Gateway (Router) để sử dụng.

-


Hostname: Target hostname.

-

Netmask: Subnet Mask

-

Rootpath:đường dẫn của root filesystem trên máy chủ NFS

-

Filesize: kích thước tính theo byte( ở dạng số HEX) của file Download lần
cuối sử dụng bootp, dhcp, hay tftp command.

2.3

Qt Creator
2.3.1 Giới thệu
Qt Creator là một IDE rất được các lập trình viên ngày nay ưa chuộng sử dụng

được trên Linux và Windows. Hiện nay cộng động Qt ngày càng lớn mạnh và gia
tăng rất nhanh. Qt hỗ trợ rất mạnh trong lập trình giao diện, tương tác với Database,
Graphics…. Đặc biệt Qt còn hỗ trợ lập trình thiết bị di động với nhiều nền tảng như
Android, WinCE, Linux, Mac ….
2.3.2 Thiết kế dự án bằng Qt Creator chạy trên KIT Friendly Arm
mini2440
Giao diện Start Page (như hình dưới) cho phép:


23


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

Hình 2-11: Giao diện Startpage của Qt Creator
-

Mở Project mẫu (Choose an example)
Xem tài liệu hướng dẫn lập trình (Tutorials)
Mở project đã có (Open Project)
Tạo Project mới (Create Project).
• Bước 1.Chọn Create Project để tạo một dự án mới:

Hình 2-11: Giao diện Creat Project của Qt Creator
24


Triển khai hệ thống nhúng trên Friendly Arm và ứng dụng điều khiển thiết bị

• Bước 2. Tại Form chính thiết kế một giao diện cơ bản như sau:

Hình 2-12: Giao diện DesignUI của QtCreator
-

Kéo một TextEdit và 2 Pushbutton, một nút tên là Display, một nút tên là
Clear.
Chuột phải vào nút display, chọn Go to slot ->>chọn Clicked() -> OK
Thêm dòng lệnh sau cho sự kiện click của pushbutton display:
ui->textEdit->setText(QString("Hello World!"));

Chuột phải vào nút Clear, chọn Go to slot … ->> chọn Clicked() … ->> OK.
Thêm dòng lệnh sau cho sự kiện click của pushbutton Clear:
ui->textEdit->setText(QString(" "));

• Bước 3. Build Project
Chú ý trong cửa sổ Build Settings, chọn cấu hình biên dịch qmake cho nền
tảng Qt FriendlyArm (phiên bản tương ứng với Qt Everywhere đã cài đặt)
-

Chọn Build/Build All. Ứng dụng được build thành công, kết quả được file
thực thi (trong thư mục Project) sẽ chuyển lên KIT để chạy. Ví dụ này là file
HelloQt).

• Bước 4.Nạp file thực thi lên KIT

25


×