You are on page 1of 113

Mn hc

Lp trnh h nhng
GV: Phm Vn Thun B mn K thut My tnh Vin CNTT&TT- H BKHN email: thuanpv@soict.hut.edu.vn Website:http://soict.hut.edu.vn/~thuanpv
1

Mc tiu mn hc
Sau khi kt thc mn hc ny, sinh vin c th
Lp trnh vo ra cn bn v nng cao trn Linux Trnh by c c ch lp trnh driver cho thit b trn Linux Lp trnh giao din ha s dng nn tng QT trn Linux Lp trnh truyn thng qua Ethernet,USB 3G Nm bt cc cng ngh mi: cng ngh nh v GPS, nh v qun tnh, cng ngh mng cm bin khng dy, lp trnh iPhone, Android

Lp trnh h nhng

Ni dung kha hc
Chng 1. Ci t,ty bin h iu hnh nhng Linux Chng 2. Lp trnh vo ra cn bn trn Linux Chng 3. Lp trnh vo ra nng cao trn Linux Chng 4. Cc k thut lp trnh nng cao Chng 5. Lp trnh device driver trn Linux Chng 6. Lp trnh giao din ha trn Linux s dng nn tng QT Chng 7. Lp trnh mng trn nn nhng Semimar: cng ngh nh v GPS, nh v qun tnh, mng cm bin khng dy, lp trnh iPhone, android

Lp trnh h nhng

Chng 1: Ci t, ty bin HH Linux


Gii thiu cc thnh phn c bn ca h iu hnh nhng Linux Ci t h iu hnh nhng Linux trn KIT micro2440 Cu hnh, ty chnh, bin dch nhn h iu hnh nhng Linux

Lp trnh h nhng

Chng 2: Lp trnh vo ra cn bn
Xy dng mi trng lp trnh Lp trnh giao tip led n, nt nhn

Lp trnh h nhng

Chng 3: Lp trnh vo ra nng cao


Lp trnh giao tip cng COM theo chun RS232 Lp trnh giao tip cng USB Lp trnh ghp ni ADC

Lp trnh h nhng

Chng 4: Cc k thut lp trnh nng cao

Gii thiu c ch a tin trnh, a lung v giao tip gia cc tin trnh, cc lung Lp trnh x l a tin trnh Lp trnh x l a lung X l xung t d liu

Lp trnh h nhng

Chng 5: Lp trnh Driver trn Linux


Gii thiu c ch qun l driver trn Linux, cc thnh phn c bn ca Driver Lp trnh to Driver iu khin Led 7 thanh

Lp trnh h nhng

Chng 6: Lp trnh giao din QT


Gii thiu v nn tng QT Lp trnh giao din vi cc iu khin c bn trn QT Lp trnh x l ha, m thanh trn QT

Lp trnh h nhng

Chng 7: Lp trnh mng trn nn nhng

Th vin lp trnh mng trn QT Lp trnh gi nhn d liu qua mng Ethernet Ci t, kt ni KIT micro2440 vi USB 3G Lp trnh gi, nhn tin nhn qua mng 3G Lp trnh truyn hnh nh qua mng 3G

Lp trnh h nhng

10

Semimar
Gii thiu cng ngh nh v da trn GPS Gii thiu cng ngh nh v qun tnh Gii thiu cng ngh mng cm bin khng dy Gii thiu lp trnh iPhone Gii thiu lp trnh Android

Lp trnh h nhng

11

Ti liu tham kho


Ti liu tham kho chnh:
Micro2440 User Manual S3C2440 Datasheet Beginning Linux Programming Advanced Linux Programming Linux Device Driver C++ GUI programming with QT

Lp trnh h nhng

12

Chng 1
1.1. Tng quan h iu hnh nhng Linux 1.2. Ci t h iu hnh nhng Linux 1.3. Ty bin v bin dch nhn h iu hnh nhng Linux

Lp trnh h nhng

13

1.1. Tng quan h iu hnh nhng Linux


Kin trc h iu hnh nhng Linux Kin trc nhn h iu hnh Qu trnh khi ng h iu hnh nhng Linux

Lp trnh h nhng

14

Kin trc h iu hnh Linux

Lp trnh h nhng

15

Cu trc nhn h iu hnh

16

Lp trnh h nhng

Embedded Linux
H tr rt nhiu kin trc (c 32 bit v 64 bit)
X86, ARM, PowerPC, MIPS, SuperH, AVR32,

Khng h tr cc vi iu khin hiu nng thp H tr c kin trc c v khng c khi qun l b nh (MMU) Cc h thng c th dng chung toolchains, bootloader v kernel, cc thnh phn khc phi ring bit v tng thch vi tng h thng

17

Lp trnh h nhng

Qu trnh boot h thng Linux trn PC

Lp trnh h nhng

18

Qu trnh boot h thng Linux nhng

Lp trnh h nhng

19

Qu trnh boot h thng Linux nhng


Boot loader: chng trnh mi, thc hin kim tra phn cng h thng v np nhn (kernel) ca h iu hnh Kernel: nhn h iu hnh, cha cc thnh phn c bn nht Root file system: h thng file, cha cc modules b sung v cc phn mm ng dng

Lp trnh h nhng

20

1.2. Ci t h iu hnh nhng Linux


Bc 1: Ci t bootloader (VD: U-Boot, Supervivi) Bc 2: Ci t kernel Bc 3: Ci t h thng file (root file system)

Lp trnh h nhng

21

Gii thiu KIT Micro2440

Lp trnh h nhng

22

Gii thiu KIT Micro2440

Lp trnh h nhng

23

Gii thiu KIT Micro2440

Lp trnh h nhng

24

Gii thiu KIT Micro2440


Thng s k thut

Lp trnh h nhng

25

Gii thiu KIT Micro2440

Lp trnh h nhng

26

Gii thiu KIT nhng micro2440

27

Lp trnh h nhng

Ci t trn mi trng Windows


Cng c
Phn mm HyperTerminal: kt ni vi KIT micro2440 qua cng COM Phn mm DNW: kt ni vi KIT micro2440 qua cng USB

Cch thc
Phn mm HyperTerminal truyn cc lnh iu khin Phn mm DNW trao i file
28

Lp trnh h nhng

Ci t trn mi trng Linux


Cng c:
Phn mm minicom: kt ni vi KIT micro2440 qua cng COM Phn mm usbpush: kt ni vi KIT micro2440 qua cng USB

Cch thc
Phn mm minicom truyn cc lnh iu khin Phn mm usbpush trao i file

Lp trnh h nhng

29

1.3. Ty bin, bin dch nhn Linux


Khi no cn bin dch li nhn?
Khi nng cp h thng ln cc phin bn mi hn Khi v li h thng

Trnh t qu trnh bin dch nhn


Download nhn ti a ch: kernel.org Bin dch nhn theo cc bc:
Make menuconfig: chn cc thit lp ph hp cho thit b (C th chn cc file config sn c ca cc nh sn xut v ghi vo file .config) Make zImage: to nh cho nhn. nh ny c th np xung KIT.
Lp trnh h nhng
30

Tho lun

31

Lp trnh h nhng

Chng 2. Lp trnh vo ra cn bn
2.1. Ci t mi trng pht trin 2.2. C bn v lp trnh Linux 2.3. C ch lp trnh giao tip thit b 2.4. Lp trnh iu khin led 2.5. Lp trnh ghp ni nt bm

Lp trnh h nhng

32

2.1. Ci t mi trng pht trin


M hnh lp trnh Mi trng pht trin ng dng Ci t mi trng

Lp trnh h nhng

33

M hnh lp trnh h thng nhng

Host: h thng cha mi trng pht trin Target: h nhng cn pht trin ng dng
34

Lp trnh h nhng

Mi trng pht trin ng dng


Phn mm
H iu hnh Linux Cross toolchains (gcc 4.4.3): bin dch, GDB: cng c debug gFTP: truyn nhn file Host<->KIT qua giao thc TFTP Telnet: kt ni KIT qua Ethernet (s dng cross cable)

35

Lp trnh h nhng

3.2. Ci t mi trng pht trin


Mi trng pht trin
H iu hnh Linux (Ubuntu 9.04 hoc mi hn) Trnh bin dch cho: ARM Linux GCC 4.4.3

Phn mm h tr
gFTP

Cu hnh mng s dng


Linux host: 192.168.1.30 Linux target: 192.168.1.230

Lp trnh h nhng

36

Ci t trnh bin dch cho


Bc 1: Gii nn arm-linux-gcc-4.4.3.tar.gz tar zxvf arm-linux-gcc-4.4.3.tar.gz Bc 2: Cp nht bin mi trng PATH
Thm ng dn ti th mc bin ca arm-linuxgcc-4.4.3 (Cp nht bin mi trng PATH trong file .bashrc)

Bc 3: Kim tra trnh bin dch


M c s console, g lnh: arm-linux-gcc -version Thng bo v phin bn ca arm-linux-gcc hin ra => qu trnh ci t thnh cng 37
Lp trnh h nhng

Kim tra trnh bin dch cho

Lp trnh h nhng

38

Ci t phn mm gFTP
Bc 1: Ci t phn mm gFTP
G lnh: apt-get install gftp

Bc 2: Kim tra kt ni gia Host v Target


M phn mm gFTP: Applications->Internet>gFTP Thit lp cc tham s
a ch IP ca KIT: 192.168.1.230 Username: root Password: ktmt (c th i bng lnh passwd)

M kt ni
Lp trnh h nhng
39

Kt ni s dng gFTP

Lp trnh h nhng

40

2.2. C bn v lp trnh Linux


Cu trc chng trnh n gin Cch thc bin dch chng trnh Np file thc thi xung KIT v chy ng dng

Lp trnh h nhng

41

Cu trc chng trnh


Tun th cu trc chng trnh ANSII C

Lp trnh h nhng

42

Chng trnh HelloWorld

Lp trnh h nhng

43

Cch thc bin dch chng trnh


Cch 1: S dng lnh ca cross compiler VD: arm-linux-gcc g o Hello Hello.c Kt qu: bin dch ra mt file thc thi c tn l Hello t mt file m ngun l Hello.c, file ny c h tr kh nng debug Cch 2: To v s dng Makefile make l mt tool cho php qun l qu trnh bin dch, lin kt ca mt d n vi nhiu file m ngun. To Makefile lu cc lnh bin dch theo nh dng ca Makefile S dng lnh make chy Makefile v bin dch chng trnh Cch 3: S dng automake v autoconf To makefile t ng
Lp trnh h nhng
44

Cu trc Makefile
Makefile cu thnh t cc target, variables v comments Target c cu trc nh sau:

target: dependencies [tab] system command


target: make target Dependencies: cc thnh phn ph thuc (file m ngun, cc file object) System command: cc cu lnh (lnh bin dch, lnh linux)
Lp trnh h nhng
45

VD 1: Makefile n gin
CC=arm-linux-gcc all: Hello.c $(CC) g o Hello Hello.c clear: rm Hello
Bin dch chng trnh: make all Xa file sinh ra trc : make clear

Lp trnh h nhng

46

VD 2: Makefile lin kt
CC=arm-linux-gcc OUTPUT=Hello all:Hello.o display.o $(CC) -o $(OUTPUT) Hello.o display.o Hello.o:Hello.c $(CC) -c Hello.c display.o:display.c $(CC) -c display.c
47

Lp trnh h nhng

Np file thc thi xung KIT


Bc 1: s dng phn mm gFTP chuyn file Hello ( c bin dch trc ) xung KIT, v d xung th mc: /ktmt/bin Bc 2: telnet xung KIT, chuyn ti th mc /dks/bin, thc thi chng trnh
G lnh: ./Hello Nu chng trnh cha c quyn thc thi, thc hin cp quyn: chmod +x Hello

Bc 3: quan st kt qu
Lp trnh h nhng
48

2.3. C ch lp trnh giao tip thit b


Device files, Device number Kim tra danh sch device driver, thit b C ch giao tip

Lp trnh h nhng

49

Device files, Device number


Device files: ls l /dev
Device file khng phi l file thng thng, khng phi l mt vng d liu trn h thng file Qu trnh c ghi device file
Giao tip vi device driver c, ghi phn cng ca thit b

Phn loi device files


Character device: thit b phn cng c, ghi mt chui cc byte d liu Block device: thit b phn cng c, ghi mt khi d liu 50
Lp trnh h nhng

Device files, Device number


Device number: mi thit b c xc nh bi hai gi tr
Major device number: xc nh thit b ny s dng drvier no Minor device number: phn bit gia cc thit b khc nhau cng s dng chung mt device driver

Lp trnh h nhng

51

Kim tra danh sch thit b


Kim tra danh sch cc nhm thit b
G lnh cat /proc/devices

Lp trnh h nhng

52

Kim tra danh sch thit b


Kim tra danh sch cc thit b mount vo h thng
vG lnh cat /proc/mounts vG lnh mount

Lp trnh h nhng

53

C ch lp trnh giao tip thit b


C ch lp trnh: giao tip qua cc device files
S dng cc hm vo ra file
open close read write

S dng hm iu khin vo ra: ioctl

Lp trnh h nhng

54

2.4. Lp trnh iu khin led

Lp trnh h nhng

55

Lp trnh iu khin led n


fd=open(/dev/leds,0)
fd: file id /dev/leds: device file 0: WRITE_ONLY

ioctl(fd, on, led_no)


Ioctl: IO control iu khin bt/tt led n c s hiu led_no

Driver cho led n: linux-2.6.32.2/drivers/char/mini2440_leds.c


Lp trnh h nhng
56

2.5. Lp trnh ghp ni nt bm

Lp trnh h nhng

57

Lp trnh ghp ni nt bm
buttons_fd=open(/dev/buttons,0)
buttons_fd: file id /dev/buttons: device file

read(buttons_fd,current_buttons,sizeof(curre nt_buttons)
c trng thi cc nt bm

close(buttons_fd): ng file Driver cho nt nhn linux2.6.32.2/drivers/char/mini2440_buttons.c


Lp trnh h nhng
58

Chng 3. Lp trnh vo ra nng cao


3.1. Lp trnh giao tip cng COM theo chun RS232 3.2. Lp trnh giao tip cng USB 3.3. Lp trnh ghp ni ADC

Lp trnh h nhng

59

3.1. Lp trnh giao tip cng RS232


Chun u ni trn PC
Chn 1 (DCD-Data Carrier Detect): pht hin tn hiu mang d liu Chn 2 (RxD-Receive Data): nhn d liu Chn 3 (TxD-Transmit Data): truyn d liu Chn 4 (DTR-Data Terminal Ready): u cui d liu sn sng Chn 5 (Signal Ground): t ca tn hiu Chn 6 (DSR-Data Set Ready): d liu sn sng Chn 7 (RTS-Request To Send): yu cu gi Chn 8 (CTS-Clear To Send): Xa gi Chn 9 (RI-Ring Indicate): bo chung

Lp trnh h nhng

60

Chun RS232
Khun dng khung truyn PC truyn nhn d liu qua cng ni tip RS-232 thc hin theo kiu khng ng b (Asynchronous) Khung truyn gm 4 thnh phn
1 Start bit (Mc logic 0): bt u mt gi tin, ng b xung nhp clock gia DTE v DCE Data (5,6,7,8 bit): d liu cn truyn 1 parity bit (chn (even), l (odd), mark, space): bit cho php kim tra li Stop bit (1 hoc 2 bit): kt thc mt gi tin

Lp trnh h nhng

61

Lp trnh giao tip RS232


Khi to: Khai bo th vin Bc 1: M cng Bc 2: Thit lp tham s Bc 3: c, ghi cng Bc 4: ng cng

Lp trnh h nhng

62

Khai bo th vin
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> // UNIX standard function #include <fcntl.h> // File control definitions #include <errno.h> // Error number definitions #include <termios.h> // POSIX terminal control #include <time.h> // time calls

Lp trnh h nhng

63

Bc 1: M cng
S dng lnh m file int fd = open ("/dev/ttySAC0", O_RDWR); Fd >0 nu m file thnh cng Fd<0 nu m file tht bi

Lp trnh h nhng

64

Bc 2: Thit lp tham s
S dng cu trc termios
struct termios port_settings;

Thit lp tham s (9600, 8, n, 1)


cfsetispeed(&port_settings, B9600); cfsetospeed(&port_settings, B9600); port_settings.c_cflag &= ~PARENB; port_settings.c_cflag &= ~CSTOPB; port_settings.c_cflag &= ~CSIZE; port_settings.c_cflag |= CS8; tcsetattr(fd, TCSANOW, &port_settings);
Lp trnh h nhng
65

Bc 3: c, ghi cng
c cng: s dng lnh c file n=read(fd,&result,sizeof(result)); N: s k t c c Result: cha kt qu Ghi cng: s dng lnh ghi file n=write(fd,Hello World\r",12); N:s k t ghi Fd: file id (c c t thao tc m file thnh cng)
Lp trnh h nhng
66

Bc 4: ng cng
ng cng: s dng lnh ng file close (fd); Fd: file ID (c c t thao tc m file thnh cng)

Lp trnh h nhng

67

3.2. Lp trnh giao tip USB

Lp trnh h nhng

68

3.3. Lp trnh giao tip ADC

Lp trnh h nhng

69

Chng 4. Cc k thut lp trnh nng cao

4.1. Tin trnh (process) v c ch s dng signal 4.2. Lp trnh x l a tin trnh 4.3. Gii thiu v lung 4.4. Lp trnh a lung

Lp trnh h nhng

70

4.1. Tin trnh v c ch s dng signal

Khi nim tin trnh C ch s dng signal

Lp trnh h nhng

71

Khi nim tin trnh


Tin trnh c to ra khi ta thc thi mt chng trnh a tin trnh cho php nhiu chng trnh cng thc thi v chia s d liu vi nhau Cc tham s ca mt tin trnh
PID (Process ID): s hiu tin trnh PPID (Parent Process ID): s hiu tin trnh cha Command: cu lnh c gi thc thi tin trnh

ls e o pid,ppid,command
Lp trnh h nhng
72

PID, PPID
Ly v PID: s dng hm getpid() Ly v PPID: s dng hm getppid() Hm getpid() v getppid() tr gi tr kiu pid_t (bn cht l kiu int)

Lp trnh h nhng

73

Dng tin trnh


Cch 1: S dng t hp phm Ctrl + C Cch 2: S dng shell command

kill PID

Lp trnh h nhng

74

To tin trnh mi
Cch 1: s dng hm system

Lp trnh h nhng

75

To tin trnh mi
Cch 2: s dng hm fork v exec

Lp trnh h nhng

76

C ch s dng signal
Signal l c ch cho php giao tip gia cc tin trnh Signal l c ch khng ng b Khi tin trnh nhn c signal, tin trnh phi x l signal ngay lp tc Linux h tr 32 SIGNAL

Lp trnh h nhng

77

Danh sch signal thng dng


Kiu SIGNAL
SIGHUP SIGINT SIGILL SIGABRT SIGKILL SIGUSR1 SIGUSR2

L do gi SIGNAL
Bo cho chng trnh khi thot khi terminal Khi ngi dng nhn Ctrl + C tt chng trnh Khi chng trnh chy lnh khng hp l Khi chng trnh nhn c lnh abort Khi chng trnh nhn c lnh kill (ng chng trnh) Ty bin theo ng dng Ty bin theo chng trnh

Lp trnh h nhng

78

Gi SIGNAL ti process
Cch 1: s dng shell command kill [-SIGNAL_TYPE] PID Cch 2: s dng hm kill trong chng trnh, cho php process ny gi signal ti process khc kill(PID, SIGNAL_TYPE)

Lp trnh h nhng

79

4.2. Lp trnh giao tip a tin trnh


C ch:
Tin trnh chnh to ra cc tin trnh con s dng lnh fork v exec S dng c ch signal trao i tn hiu gia cc tin trnh

Lp trnh h nhng

80

4.3. Gii thiu v lung (thread)


Mt chng trnh mc nh chy mt lung -> lung chnh Lung chnh c th to ra cc lung khc, cc lung s chy ng thi -> tng tc chng trnh Cc lung chia s khng gian nh, truy xut file v cc ti nguyn khc Tham s ca mt lung:
thread ID: s hiu lung (kiu d liu pthread_t)

Lp trnh h nhng

81

4.4. Lp trnh x l a lung


To lung Truyn tham s cho lung Nhn gi tr tr v t lung Tt lung

Lp trnh h nhng

82

To lung
Khai bo th vin: pthread.h Hm to lung: pthread_create

v thread: thread id v attr: cc thuc tnh ca lung, mc nh NULL v start_routine: hm thc thi trong lung v arg: cc tham s truyn cho lung

Bin dch chng trnh:


gcc o multithread multithread.c -pthread
Lp trnh h nhng
83

M ngun to lung

Lp trnh h nhng

84

Truyn tham s cho lung


Khai bo cu trc d liu cha d liu cn truyn cho lung. V d: struct arg { //Ky tu can in char character; //So lan can in int count; }; Truyn d liu cho lung khi to lung qua tham s arg Chng trnh con thc thi lung nhn tham s v v x l
Lp trnh h nhng
85

M ngun truyn tham s cho lung

Lp trnh h nhng

86

Tt lung
S dng hm pthread_cancel:

thread: nhn tham s thread id ca lung mun tt

Lp trnh h nhng

87

M ngun tt lung

Lp trnh h nhng

88

Chng 5. Lp trnh Device Driver trn Linux

5.1. Kernel module 5.2. Device driver

Lp trnh h nhng

89

5.1. Kernel Module


Hot ng trn Kernel Space, c th truy xut ti cc ti nguyn ca h thng Kernel Module cho php thm mi cc module mt cch linh hot, trnh vic phi bin dch li nhn h iu hnh Kernel Module l c ch hu hiu pht trin cc device driver Xem danh sch cc module ang chy: psmod

Lp trnh h nhng

90

Kernel Module
Cc bc thm mt kernel module vo h thng
Vit m ngun: ch s dng cc th vin c cung cp bi kernel, khng s dng c cc th vin bn ngoi Bin dch m ngun module Ci t module: dng lnh insmod Tn_Module.ko G module: dng lnh rmmod Tn_Module Xem cc thng tin log: s dng System Log Viewer
Lp trnh h nhng
91

M ngun kernel Module

Lp trnh h nhng

92

Kernel Module Makefile


obj-m += hello.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean

Lp trnh h nhng

93

5.2. Device Driver


Thm cc device driver theo c ch s dng Kernel Module Cc thao tc thm driver vo h thng
Vit m ngun (cu trc tng t kernel Module). ng k Major ID Bin dch m ngun Ci t s dng lnh insmod S dng lnh mknod to device file trong /dev mknod [options] NAME Type [Major Minor]
Lp trnh h nhng
94

Chng 6. Lp trnh giao din QT


6.1. Gii thiu nn tng QT 6.2. Ci t v cu hnh nn tng QT 6.3. Lp trnh QT

Lp trnh h nhng

95

6.1. Gii thiu nn tng QT


ng dng a nn: Desktop, mobile, embedded computer Vit code 1 ln duy nht, chy trn nhiu nn tng khc nhau S dng ngn ng C/C++ H tr cc nn tng: Windows, Linux, Embedded Linux, Win CE, Symbian, Maemo C th tch hp vi cc IDE thng dng: Visual Studio, Eclipse Tham kho: qt.nokia.com; qtcentre.org
Lp trnh h nhng

96

ng dng QT

Lp trnh h nhng

97

Kin trc nn tng QT

Lp trnh h nhng

98

6.2. Quy trnh ci t QT-Embedded


Bc 1: Ci t QT Embedded (QT Everywhere)
Ci t th vin tslib h tr mn hnh touchscreen Chun b cc th vin cn thit: Download m ngun ca tslib Cu hnh bin dch Dch v ci t tslib Ci t QT-Embedded FrameWork Chnh sa file cu hnh Cu hnh bin dch Dch v ci t QT-Embedded

Lp trnh h nhng

99

Ci t th vin tslib

Lp trnh h nhng

100

Ci t th vin tslib

Lp trnh h nhng

101

Ci t QT-Embedded

Lp trnh h nhng

102

Ci t QT-Embedded

Lp trnh h nhng

103

Quy trnh ci t QT-Embedded


Bc 2: Copy cc file th vin cn thit ca QT-Embedded (va dch thnh cng) xung KIT
3 th vin quan trng (VD: copy xung th mc /opt/qte/lib)
libQtCore.so.4 libQtGui.so.4 libQtNetwork.so.4

Copy cc fonts vo th mc /opt/qte/lib/fonts Copy ton b th mc /opt/tslib trn HOST xung th mc /opt/tslib trn KIT

Bc 3: Chnh file cu hnh /etc/init.d/rcS, tt Qtopia trnh tranh chp Bc 4: Chnh sa file cu hnh /opt/tslib/etc/ts.conf (trn KIT): b ch thch dng lnh: module_raw input
Lp trnh h nhng
104

Quy trnh ci t QT-Embedded


Bc 5: thm bin mi trng s dng th vin tslib: sa file /etc/profile trn KIT

Lp trnh h nhng

105

Cu hnh trnh dch Qmake cho kit Mini2440


Bc 6: To cu hnh bin dch cho Mini2440, tr ti Qmake bin dch c trn

Lp trnh h nhng

106

Cu hnh trnh dch Qmake cho kit Mini2440


Bc 7: Dch chng trnh QT cho KIT
Chn ng b bin dch Qmake cho QT Embedded

Lp trnh h nhng

107

V d

Lp trnh h nhng

108

6.3. Lp trnh QT
Mi trng pht trin C ch signal v slot Chng trnh HelloWorld Cu hnh trnh dch Qmake cho KIT micro2440

Lp trnh h nhng

109

Mi trng pht trin


IDE
1) QT Creator 2) Tch hp vo Visual Studio, Eclipse

Chng trnh dch: qmake


1) Qmake for Windows 2) Qmake for Linux 3) Qmake for Embedded Linux

Lp trnh h nhng

110

QT Creator

Lp trnh h nhng

111

C ch Signals and Slot ca QT


Signals: tng t Event Slot: tng t Event Handler
connect(sender, SIGNAL(signal), receiver, SLOT(slot));

VD: ng b hai iu khin trn QT

Lp trnh h nhng

112

Chng trnh HelloWorld

Lp trnh h nhng

113

You might also like