You are on page 1of 69

MC LC

LI NI U.2 LI CM N..3
TOPIC 1: Phn cng kit nhng KM9260 I. Vi iu khin AT91SAM9260 1. c im chnh..4 2. S chn5 3. Ngun cp6 II. 4. Bng vng nh.7 Cc thnh phn khc trn kit 1. B nh.11 2. Kt ni ngoi vi14 3. Nt nhn18 TOPIC 2: Phn cng KIT nhng KM 9261 I. Gii thiu Board AT91SAM926 1. S khi22 2. T chc phn cng..24 TOPIC 3: Phng php bin dch trn KIT KM 9260 I. Gii thiu s lc29 II. III. IV. Cch thc ci cng c trn PC29 Cch thc chp file, truyn file, th vin vo kit30 Thc thi chng trnh trn kit32

TOPIC 4: Gii thiu QT I. Tng quan s lc......35 II. III. IV. Ci t th vin Tslib...36 Ci t th vin Opensource everywhere38 Vit chng trnh n gin trn QT40

TOPIC 5: Phng php bin dch QT sang KIT, thit b nhng hoc in thoi47 TOPIC 6: Gii thiu Gonme/GTK+ I. Gii thiu GNOME/GTK+ .58 II. III. IV. Gii thiu tng quan GTK.58 Ci t GTK+..61 Cch bin dch trn Linux.62

BI TP...63
Trang | 1

CHUYN CNG NGH MI

GVHD: U TRNG HIN

LI NI U Trn th gii, h thng nhng xut hin v c mt trn th trng vo nhng nm 1960, cho n nay hn na th k hnh thnh v pht trin. Vi nhng u im m h thng khc khng c nh tnh gn nh, p ng nhanh, tin cy cao, v quan trng l kh nng linh hot trong nhiu ng dng, to iu kin thun li cho sn xut hng lot dn n gi thnh gim. H thng nhng c s dng a dng trong nhiu lnh vc nh: dn dng, qun s, y t, Doanh thu m h thng nhng mang li l rt ln. Ti Vit Nam, vic bt tay vo nghin cu v pht trin phn mm cng nh phn cng h thng nhng ch mi pht trin vi nm tr li y, v c xem l c hi cho cc cng ty in t nghin cu v pht trin ng dng vo cc sn phm cng ngh cao. Tuy nhin i ng nhn lc ca nc ta trong lnh vc thit k h thng nhng cn hn ch. Vit Nam cn y mnh hn na vn nh hng nghin cu v pht trin h thng nhng t trong cc trng i hc v trung tm nghin cu. V vy, bi bo co ny nhm tng kt, cng c li nhng g c hc, ni dung bao gm 6 topic v bi tp. Tp. HCM, thng 11/2013 Nhm 13

Nhm 13

Trang | 2

CHUYN CNG NGH MI

GVHD: U TRNG HIN

LI CM N Chng em xin cm n thy u Trng Hin, ph trch mn Chuyn Cng ngh mi, hng dn tn tnh, to iu kin thun li chng em hon thnh bo co ny. Tp. HCM, thng 11/2013 Nhm 13

Nhm 13

Trang | 3

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 1
PHN CNG KIT NHNG KM9260

S khi ca kit Km9260

Hnh 1.1

S khi ca kit Km9260

I.

Vi iu khin AT91SAM9260: 1. c im chnh:

AT91SAM9260 c li l b vi x l ARM926EJS thuc h ARM9E h tr tp lnh Thumb (tp lnh nn t 32 bit xung 16 bit) v ARM v c th hot ng vi tc 180Mhz. - B nh: o Giao din bus 32 bit h tr 4 bank SDRAM, b nh tnh, CompactFlash, NandFlash. o C 2 SRAM c tch hp bn trong chp hot ng tc cao. Mi SRAM c dung lng 4 Kbyte. o C 1 ROM bn trong chp c dung lng 32 Kbyte cha chng trnh
Nhm 13 Trang | 4

CHUYN CNG NGH MI

GVHD: U TRNG HIN

h thng phc v cho vic khi ng h thng nhng do nh sn np sn. - Ngoi vi: o Bn trong chip tch hp 4 knh ADC 10 bit. o C 2 b truyn d liu khng ng b UART (Universal Asynchronous Receive/Transmitter)
o C 4 b truyn d liu khng ng b/ng b USART (Universal

Synchronous Asynchronous Receive/Transmitter). o Mt giao din truyn nhn d liu theo chun I2C (chun hai dy).
o Mt b iu khin ni tip ng b.

o Hai giao tip SPI h tr hai ch Master/Slaver. o Mt giao din SD/MMC (dng c th nh). o Mt b iu khin 10/100 Mbps Ethernet MAC. o Mt b iu khin truyn nhn USB v mt b truyn nhn USB Device. o Ba b Timer/Counter. - H thng: o C 22 knh DMA (Direction Memory Access). o Khi ng t NAND Flash, SDCard, DataFlash hoc Serial DataFlash. o C b iu khin Reset. o Ma trn bus AHB 6 lp 32 bit hot ng tn s90Mhz. o Mt PLL (b nhn tn s) cho h thng v mt cho USB. o Hai tn hiu xung ng b ngoi c th lp trnh c. o C b iu khin ngt cao cp v sa li. o Tch hp b dao ng ni RC. o Cho php chn tn s tit kim nng lng 32,768 Khz v b dao ng chnh 3 n 20 Mhz. o Cho php ci t ch timer, watchdog timer, realtime timer. o Khi xut nhp: Ba b iu khin Input/Output song song 32 bit. C 96 ng Input/Output a mc ch. 2. S chn ca AT91SAM9260:
Nhm 13 Trang | 5

CHUYN CNG NGH MI

GVHD: U TRNG HIN

- AT91SAM9260 c b ngoi hnh vung, c hai dng s chn: mt dng 208 chn v mt dng 217 chn. - Dng 208 chn: Cc chn c a ra xung quanh ca gi nha bc li v c t tn theo s t 1 n 208. Hnh dng c minh ha nh sau:

Hnh 1.2: S chn ca AT91SAM9260 208 chn - Dng 217 chn: cc chn c a ra pha di ca gi nha bc li. Hnh dng c minh ha nh sau:

Hnh 1.3: Schn ca A91SAM9260 217 chn V tr ca cc chn ny c xc nh bng cch ghp cc ch ci ca hng vi cc s ca ct v chn gn vi chm en lm du trn thn ca chp l chn A1. 3. Ngun cp cho AT91SAM9260: c tnh tit kim nng lng l mt trong nhng th mnh ca h vi x l ARM. tit kim c nng lng, bn cnh mt kin trc li tit kim nng lng th vi iu khin cn c thit kc nhiu ngun cp vi cc mc in p khc nhau. AT91SAM9260 cn c hai ngun cp vi cc mc in p 1,8V v 3,3V. Hai ngun cp ny c cung cp ti cc chn ngun ca chp c th cp ngun cho tng modun tch hp trong chip. C th nh sau: - Chn VDDCORE: chn ny cp ngun nui li vi x l vi in p l 1,8V.
Nhm 13 Trang | 6

CHUYN CNG NGH MI

GVHD: U TRNG HIN

- Chn VDDIOM: cung cp ngun cho b giao tip Input/Output m rng. in p cp n chn ny l 1,8 V hoc 3,3 V c chn bi phn mm. - Chn VDDIOP0: cung cp cho b giao tip Input/Output ngoi vi (USB, Micro SD) vi in p 3,3V. - Chn VDDBU: cung cp in p cho b dao ng chm (dao ng ni RC v thch anh 32,768 Khz) vi in p 1,8V. - Chn VDDPLL: cung cp in p cho b dao ng chnh v b nhn tn s vi in p l 1,8V. - Chn VDDANA: cung cp in p cho b ADC vi in p 3,3V. 4. Bng vng nh ca AT91SAM9260: AT91SAM9260 c th qun l mt vng nh ln n 4 Gbyte a ch,vng nh ny c phn thnh 16 bank vi mi bank l 256Mbyte a ch.Mi bank ny s qun l b nh ca mt thi t b nh nht nh hoc mt vng nh nht nh. Mc d thit b nh hoc vng nh khng cha d liu hoc khng ng dng trong h thng, nhng AT91SAM9260 vn dnh vng nh cho thit b nh hoc vng nh ca n. C th s c trnh by trong hnh sau:

Nhm 13

Trang | 7

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Hnh 1.4: Bng qun l vng nhca AT91SAM9260 Theo hnh trn th chng ta c th thy bng vng nh ca AT91SAM9260 c chia ra thnh nhiu bank qun l. Bank trn cng l bank 0, tip theo l bank 1, cho n cui cng l bank 15. Cc a ch nm bn tri cc ct chnh l cc a ch vt l. Bn phi cc ct l dung lng ca vng nh tng ng.
Nhm 13 Trang | 8

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Chng ta c th thy rng mi thit b nh hoc vng nh u c vi x l qun l trong mt khong a ch nht nh. Nu thit b nh c qun l bi bank 1 th nh u tin ca thit b nh (c a chl 0x0000000) s c vi x l c vi a ch l 0x10000000 , nh th hai (c a ch 0x00000001) s c c vi a ch l 0x10000001. Tng t th nh cui cng ca thit b nh (c a ch 0x0FFFFFFF) c vi x l cvi a chl 0x1FFFFFFF. Nh vy, chng ta c th thy a ch thc t ca nh c vi x l cvi mt a ch hon ton khc. a ch vt l: l a ch m vi x l gn cho vng nh cn c qun l. Theo hnh trn th a ch vt l chnh l cc a ch nm bn tri cc ct. a ch on: l a ch vt l ti nh u tin ca vng nh. Theo hnh trn th a ch on ca bank 1 l 0x10000000. a ch offset: l khong cch tnh t nh ang xt n a ch on. Nh vy a ch offset c th hiu l a ch thc t ca thit b nh. a ch offset ca nh th nht ca thit b nh l 0x00000000, ca nh th hai l 0x00000001 v ca nh cui cng l 0x0FFFFFFF. Bank 0 dng qun l b nh ni ca ca vi x l. ROM cqun l vi a ch vt l t 0x00100000 n 0x00108000 vi dung lng l 32Kbyte. Tng t vng nh SRAM0 cng c qun l t 0x00200000 n 0x00201000 , cc vng nh reserved l cc vng nh d tr. T Bank 1 n bank 8 dng qun l cc thit b nh bn ngoi. C th,bank 2 qun l SDRAMC vi chn chn chip l NCS1. Bank 4 qun l NandFlash vi chn chn chip l NCS3/NANDCS. Khi vi x l truy cp cc thit b nh ny th vi x l s a tn hiu chn vng nh ra cc chn NCS0 n NCS7 chn chip tng ng. Bank 15 qun l qun l vng nh ca cc thit b ngoi vi. Cc vng nh c mu m l cc vng nh d tr hoc l cha s dng n.

Nhm 13

Trang | 9

CHUYN CNG NGH MI

GVHD: U TRNG HIN

II.

Cc thnh phn khc trn kit

Hnh 1.5: Kit KM9260 STT 1 2 3 K HIU J3 J7 U2 Cng USB (loi A) Cng USB Devices (loi B) MT48LC16M16A2, SDRAM 256Mb (32MB) 133Mhz 4 5 6 7 8 9
Nhm 13

TN

J17 J10 U8 J5 U9 U1

Kt ni m rng SCI Cng truyn d liu ni tip BD9 K9F2G08UOM, NAND Flash (256MB) Giao tip JTAG ICE Serial dataflash (512kB) AT91SAM9260, 16/32 bit ARM926EJ-S 180Mhz
Trang | 10

CHUYN CNG NGH MI

GVHD: U TRNG HIN

10 11 12 13 S4 14 15 16 17 18

J12 U5 RJ1 S1, S2, S3,

Jack ngun 5VDC DM9161EA, Ethernet 10/100 Full-Duplex Cng Giao tip Ethernet (RJ45) Cc nt nhn

U10 U11 J12 J16 J14

Khe th nh MicroSD I2C EEPROM Cng tt ngun Kt ni m rng Uart, Adc, Twi Kt ni m rng SPI

Bng cc linh kin trn kit Km9260

1. B nh 1.1 B nh SDRAM

B nh chnh s dng SDRAM bus 133Mhz, SDRAMC c cu hnh

vi bus data 16 bit.


Nhm 13 Trang | 11

CHUYN CNG NGH MI

GVHD: U TRNG HIN

M s linh kin Chn chn chip a ch on Dung lng

MT48LC16M16A2 TC75 NCS1 0x20000000 0x2000000 (32MB)

thng.

Bng sau trnh by thng s bng vng nh ca SDRAM trong h

Thng s ca SDRAM

M s linh kin l s c in trn chn ca chip, m ny do nh sn xut Chn chn chip NCS1 c ngha l chn CS ca chip c ni vi chn a ch on l a ch m vi x l gn cho chip tng ng vi NCS1. Dung lng ca SDRAM l 32 MB

qui nh. SDCS_NCS1 ca vi x l. -

1.2 Serial dataflash

S kt ni Serial DataFlash Board s dng chip nh serial dataflash kt ni qua ng SPI0 ( slot

CS1 ).

Nhm 13

Trang | 12

CHUYN CNG NGH MI

GVHD: U TRNG HIN

AT91Bootstrap cc bin mi trng ( U-Boots Environment Variables ),

U-Boot c lu tr trong serial data flash. Cc phn vng cha cc bootloader c th hin bi bng sau:
M s linh kin Chn chn chip a ch on Dung lng Offset 0x00000000 0x00004200 0x00008400 AT45DB041D-SU NCS2 0xD0000000 0x80000 (512kB) Phn Vng 0 1 2 Phn mm lu Bootstrap Environment U-Boot

1.3 Nand flash

S kt ni NAND FLASH Nand flash 256 MB dng cha nhn Linux v root file system. 3 MB vng nh u tin dnh cho vic cha kernel Linux, phn vng cn li cha root file system ca h thng bng sau th thin thng s memory map ca Nand flash.
Nhm 13 Trang | 13

CHUYN CNG NGH MI

GVHD: U TRNG HIN

M s linh kin Chn chn chip a ch on Dung lng Offset 0x00000000 0x00300000

K9F2G08UOM NCS3 0x40000000 0x10000000 (256MB) Phn Vng 0 1 Thng s ca NAND FLASH Phn mm lu Kernel Rootfs (JFFS2)

1.4 Th nh MicroSD :

Khe cm th nh MicroSD
- Do c h tr microSD, c th thay th vai tr ca NAND Flash cho vic lu tr kernel Linux vi rootfs. Phn vng u tin (first partition) c format theo nh dng FAT, phn vng th 2 c nh dng theo ext2 hoc ext3 dng cha rootfs. load kernel Linux t MicroSD vo SDRAM i hi U-Boot phi h tr mmc sub system command set. MicroSD thng c dng boot Linux c roofs dung lng ln, v d nh Debian distribution.

2. Kt ni ngoi vi : 2.1 Cng USB (J3) :

Cng USB

Cng USB tc truy xut 2.0, tng t MicroSD, h thng c th boot Linux
Nhm 13 Trang | 14

CHUYN CNG NGH MI

GVHD: U TRNG HIN

thng qua a di ng USB.. 2.2 Cng thit b USB (J7) :

Cng USB Device Vi USB device connector, ta c th bin board nhng thnh cc thit b USB. MCU AT91SAM9260 cho php ta truy xut n tt c cc vng nh trong h thng thng qua chng trnh ng dng trn my tnh SAMBA, khi dy cable USB ny c dng n.

2.3 Cng truyn d liu ni tip BD9 (J10):

Cng truyn d liu ni tip DB9 AT91SAM9260 c tch hp cng RS232. KM9260 dng cng RS232 ny cho vic hin th, xut nhp vi console chnh ca Linux.

2.4 Cng kt ni Ethernet (RJ1)

Cng kt ni Ethernet AT91SAM9260 c th kt hp vi chp Fast Ethernet PHY DM9161AEP mang li cho h thng tnh nng mnh m v cc ng dng mng. KM9260 c th s dng
Nhm 13 Trang | 15

CHUYN CNG NGH MI

GVHD: U TRNG HIN

nh h thng webserver nhng, s dng trong h thng thu thp o lng, iu khin t xa.

2.5 Kt ni m rng SCI (J17)

Khe cm kt ni m rng SCI S chn ca khe cm kt ni m rng SCI


S CHN 1 3 5 7 9 TN HIU GND GND TK0 TD0 RK0 CHN VXL 23 (PB16) 27 (PB18) 163 (PB20) S CHN 2 4 6 8 10 TN HIU 5V 3V3 TF0 RD0 RF0 26 (PB17) 28 (PB19) 164 (PB21) CHN VXL

Connector cho php ta c th m rng kt ni vi cc thit b I2S audio codec, truyn nhn d liu 32bit stream ( High-speed Continuous Data Stream )...

2.6 Kt ni m rng SPI (J14)

Khe cm kt ni m rng SPI


Nhm 13 Trang | 16

CHUYN CNG NGH MI

GVHD: U TRNG HIN

S CHN

TN HIU

CHN VXL

S CHN

TN HIU

CHN VXL

1 3 5 7 9

GND SPI1_MISO SPI1_SPCK SPI1_NPCS1 GPIO

9 (PB0) 11 (PB2 67 (PC5) 63 (PC6)

2 4 6 8 10

3V3 SPI1_MOSI SPI1_NPCS0 SPI1_NPCS2 GPIO

10 (PB1) 12 (PB3) 62 (PC4) 64 (PC7)

S chn ca khe cm kt ni m rng SPI Connector m rng cho SPI, bao gm 3 ng chip select tng ng cho 3 slot CS0, CS1, S2.

2.7 Kt ni m rng UART, ADC, TWI (J16)

Khe cm kt ni m rng Uart, Adc, Twi


S CHN 1 3 5 7 9 11 13 15 17 5V AVDD AGND AD0 IRQ1 UART_RXD0 UART_RXD1 UART_RXD2 UART_RXD3 158 (PC0) 127 (PC15) 16 (PB5) 18 (PB7) 20 (PB9) 162 (PB11) 2 4 6 8 10 12 14 16 18 3V3 GND VREFP AD1 UART_TXD0 UART_TXD1 UART_TXD2 UART_TXD3 TWD 159 (PC1) 15 (PB4) 17 (PB6) 19 (PB8) 161 (PB10) 208 (PA23) TN HIU CHN VXL S CHN TN HIU CHN VXL

Nhm 13

Trang | 17

CHUYN CNG NGH MI


19 TWCK 1 (PA24) 20

GVHD: U TRNG HIN


GPIO 23 (PB16)

S chn ca khe cm kt ni m rng Uart, Adc, Twi Connector m rng cho cc cng giao tip serial bao gm UART, TWI, b chuyn i ADC, GPIO, ngt ngoi IRQ1.

2.8 Giao tip JTAG ICE (J5)

Khe cm giao tip JTAG ICE


S CHN 1 3 5 7 9 11 13 15 17 19 TN HIU 3V3 NTRST TDI TMS TCK RTCK TDO NRST NC NC CHN VXL 35 30 31 34 37 29 36 S CHN 2 4 6 8 10 12 14 16 18 20 TN HIU 3V3 GND GND GND GND GND GND GND GND GND CHN VXL -

Bng S chn ca khe cm giao tip JTAG ICE Cng JTAG ICE theo chun 20 pin cho php np chng trnh v debug h thng.

3. Nt nhn 3.1 Nt Reset (S2)


Nhm 13 Trang | 18

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Nt reset Reset h thng, tch cc mc thp.

3.2 Nt Wake up (S1)

Nt Wake up Nt c tc dng nh thc h thng t trng thi power down.

3.3 Nt ng dng 1 (S3)

Nt ng dng 1 User button, kt ni vi PC15 (chn 127) ca AT91SAM9260 MCU. Tch cc mc thp.

3.4 Nt ng dng 2 (S4)

Nt ng dng 2 User button, kt ni vi PC8 (pin 61) ca AT91SAM9260 MCU. Tch cc mc thp.

Nhm 13

Trang | 19

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 2 GII THIU BOARD AT91SAM9261 I. Gii thiu Board AT91SAM9261 AT91SAM9261 l board nhng trn nn vi iu khin ARM9. Board c kch thc nh gn v c tnh nng mnh, s dng dng vi iu khin AT91SAM9 ca ATMEL cho php h thng chy vi cc h iu hnh nhng Linux, WinCE v C/OS-II RTOS. Bao gm: CPU Phn m rng giao tip s. Cng ngh ARM Jazelle cho php gia tng tim lc ca java. 16 Kbytes b nh d liu, 16 Kbytes b nh lnh, write buffer Thc thi 120 lnh (MIPS) khi hot ng tn s 190MHZ. n v qun l b nh. 32 Kbytes SPI Serial EEPROM AT25256A 4 Mbyte 16-bit Flash 64 Mbyte 32-bit SDRAM 2 Gbit NAND Flash, 16-bit 16 Mbits SPI Serial DataFlash AT45DB161B 32 Kbytes SPI Serial EEPROM AT25256A Serial Number Chip DS2401 Kt ni SODIMM 200-chn Kch thc 67.6 mm x 47.0 mm Ngun cung cp AT91SAM9261 c 6 nhm thc hin in p: VDDCORE: Ngun cho li gm b x l, b nh v ngoi vi. Mc in p l 1.08V,1.32V v 1.2V nh mc. VDDIOM: Ngun cho External Bus Interface I/O; mc in p t 1.65V n 1.95V v 3.0V n 3.6V, 1.8V and 3.3V nh mc. VDDIOP: Ngun cho ngoi vi I/O and b khi phc p USB; mc in p 2.7V v 3.6V, 3.3V nh mc.
Nhm 13 Trang | 20

CHUYN CNG NGH MI

GVHD: U TRNG HIN

VDDBU: Ngun cho b dao ng Slow Clock v phn h thng iu. Mc in p 1.08V v 1.32V, 1.2V nh mc. VDDPLL: Ngun cho PLL cells; 3.0V v 3.6V, 3.3V nh mc. VDDOSC: Ngun cho b dao ng mc in p 3.0V, 3.6V v 3.3V nh mc. Bng 2.1: c t v giao din chnh CLASS Processor Memory FUNCTION CPU SDRAM NandFlash DataFlash SD Card PARAMETER Atmel AT91SAM9261, ARM9, 200MHz 64MB 128MB Optional Support 4G SDIO mode Support hotswappable Power Input Output Ext bus Aysbus interface
Voltage : 7 35 V. default 12 V power input

5V and Vin (+-5%) A1-A22. D0-D15 with buffer COM0: RS232/TTL 3-wire COM1: RS232/TTL 5-wire COM2: RS232/TTL/RS485 5-wire

Communication Serial port

Net USB Host USB Device LCD LCD

10/1000 Mbps with status indicator


2-chanel USB 2.0 HOST 10Mbps support USB Keyboard, USB Mouse,USB storage

1-chanel USB 2.0 device TFT LCD interface. RGB mode default 320*240 max 2048*2048

Input / output

Touch screen Matrix kerboard Buzzer

4-line touch screen 4*4 matrix keyboard interface 1 Buzzer 16 (10 from CPU + 6 from sxtern IC)

Panel

GPIO Reset indictor

Power indicator light, CPU status, IO


Trang | 21

Nhm 13

CHUYN CNG NGH MI

GVHD: U TRNG HIN

IO KEY WKUP Others Watchdog RTC 1. S khi ca board

RTC (with backup battery)

Hnh 2.1: S khi board AT91SAM9261

Nhm 13

Trang | 22

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Hnh nh thc t

Hnh 2.2: Hnh nh thc t ca board AT91SAM9261 Bao gm SODIMM 200 pin for reception of PM9261 1 cng USB 1 chun Ethernet RJ45 10/100M JTAG, 20-chn 1 mn hnh cm ng 3.5" 1/4 VGA TFT LCD + Touch Screen - 40 chn 2 cng RS232 4 kt ni m thanh : Line In, Line Out, Headphone, Microphone 1 card MMC/SD 1 Compact Flash expansion connectors 1 reset push-button 1 wakeup push-button 2 user input push-buttons
Nhm 13 Trang | 23

CHUYN CNG NGH MI

GVHD: U TRNG HIN

3 LEDs 2 ngun LEDs: 5V v 3.3V 1 pin Lithium Coin Kt ni DC 2.1 mm by 5.5 mm. kch thc 145 mm x 145 mm. 2. T chc phn cng trong s khi ca boardAT91SAM9261 16 bit SDRAM

Hnh 2.3: S b nh SDRAM 16 bit 32 bit SDRAM

Hnh 2.4: S b nh SDRAM 31 bit 8 bit NAND Flash

Nhm 13

Trang | 24

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Hnh 2.5: S b nh NAND Flash 8 bit 16 bit NAND Flash

Hnh 2.6: S b nh NAND Flash 16 bit

NOR Flash on NCS0


Nhm 13 Trang | 25

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Hnh 2.7: S b nh NOR Flash

Nhm 13

Trang | 26

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Compact Flash

Hnh 2.8: S b nh Compact Flash

Nhm 13

Trang | 27

CHUYN CNG NGH MI

GVHD: U TRNG HIN

USB Host Port

Hnh 2.9: S mch in USB Host Port USB Device Port

Hnh 2.10: S mch in USB Device Port

Nhm 13

Trang | 28

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 3 PHNG PHP BIN DCH TRN KIT KM 9260 I. Gii thiu s lt

Trnh bin dch cho cho php bin dch ng dng vit bng ngn ng C bin dch cho AT91SAM chy trn mi trng Linux. Thc hnh bin dch chng trnh v np chng trnh xung KIT thc thi.

II.

Cch thc ci cng c trn PC

* Gm 3 bc: Bc 1 : Ci t trnh bin dch cho Cross GCC trn my tnh Linux Trc tin ta download arm-linux-gcc ti link sau: http://www.friendlyarm.net/dl.php?file=arm-linux-gcc-4.4.3.tgz Chuyn n th mc cha file nn arm-linux-gcc-4.4.3.tar.gz v tin hnh gii nn : $ cd Downloads/ $ sudo tar xvzf arm-linux-gcc-4.4.3.tgz C/ Sau nhp password gii nn Kt qu gii nn c th mc cha trnh bin dch c ng dn nh sau: opt/FriendlyARM/toolschain/4.4.3/bin Bc 2 : Cp nht bin mi trng PATH cho trnh bin dch cho Mc ch: Cp nht bin mi trng ca Linux OS cho trnh bin dch cho c th s dng trc tip mi ni (Gi lnh trn cc ca s lnh m khng cn chuyn n th mc cha)

Thc hin: M file ~/.bashrc bng trnh son tho thch hp (gedit, vi, vim, ): gedit .bashrc . (Ch : file nm trong th mc tng ng, Mc nh b n). Thm 1 dng vo cui file .bashrc
Nhm 13 Trang | 29

CHUYN CNG NGH MI

GVHD: U TRNG HIN

PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin Lu v ng file .bashrc. Sau khi thit lp bin mi trng cn tt ca s terminal, m ca s mi thit lp c hiu lc. Bc 3 : kim tra thit lp

III.

Cch thc chp file, truyn file, th vin vo kit:

np file chng trnh ( bin dch trn my tnh bng trnh bin dch cho) ln KIT, chng ta s dng kt ni Ethernet ( cable LAN ) gia my tnh v KIT ( target ) bng phn mm gFTP ( phn mm giao tip truyn file trn Linux/Ubuntu ).

Nhm 13

Trang | 30

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Gm cc bc: Bc 1 : Ci t gFTP Thng thng gFTP c ci t sn trn Ubuntu (M Application/Internet/gFTP ) Nu cha c, c th ci t t internet dng lnh: sudo apt-get install gftp

Bc 2: Cu hnh cng LAN trn my tnh Linux KIT KM9260 c a ch IP mc nh l 192.168.3.29, netmask: 255.255.255.0
Nhm 13 Trang | 31

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Do vy kt ni cable LAN gia my tnh PC v KIT ( target ) cn cu hnh my tnh c cng gii a ch ny. Thc hin lnh ifconfig cu hnh cho ethernet interface ( eth0 ) $sudo ifconfig eth0 192.168.3.20 netmask 255.255.255.0 up S dng lnh ifconfig eth0 kim tra li xem eth0 c a ch IP cng gii. Bc 3: Thc hin kt ni my tnh v KIT M phn mm gFTP: Applications->Internet->gFTP Thit lp cc tham s a ch IP ca KIT: 192.168.3.29 Username: Password: M kt ni (Click nt Open connection) Ca s bn tri l cy th mc trn my pht trin Ca s bn phi l cy th mc trn kit (Target) gFTP cung cp chc nng duyt/chuyn th mc ( h thng file trn KIT ), v truyn/nhn file gia Host v KIT. (my HOST)

IV.

Thc thi chng trnh trn Kit

Bc 1: Vit m ngun chng trnh Hello Dng trnh son tho m ngun thch hp (v d: gedit). Son tho file m ngun C nh sau (Chng trnh c tnh cht minh ha)

#include <stdio.h> int main (int argc, char *argv[]) { printf (Hello World!\n); return 0; }
Nhm 13 Trang | 32

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Lu file m ngun Hello.c Bc 2: Bin dch file m ngun s dng trnh bin dch cho Chuyn n th mc cha file m ngun Hello.c c. Bin dch bng lnh: $ gcc o hello hello.c

Nhm 13

Trang | 33

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Bc 3: Np chng trnh v thc thi chng bin dch xung KIT Username: root Password: km9260 Gn thuc tnh thc thi: chmod 777 hello - Trn KIT, di chuyn n th mc cha chng trnh chy (/ktmt/bin), thc hin chng trnh: V d ./Hello

Nhm 13

Trang | 34

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 4
GII THIU QT
I. T NG QUAN S L C V QT Qt l nn tng xy dng cc ng dng chy c trn nhiu h iu hnh. Phn ln cc ng dng xy dng bng Qt u c giao din ha, do vy Qt cn c coi nh l mt b cng c (widget toolkit). Ban u Qt ra i nh mt sn phm thng mi v cng c dng vit mi trng KDE, nhng v sau c b sung giy php LGPL, theo c th c s dng t do pht trin cc phn mm ngun m hay ng hn l c th s dng trong cc phn mm thng mi nu mun. Bn quyn thng mi ca Qt hin nay c chuyn qua hnh thc thu ph h tr. Bn c th dng Qt nh mt th vin vit phn mm thng mi, nu c sa i no trong b ngun chnh ca Qt th bn phi cung cp m ngun sa ra ch khng yu cu phi m ton b m ngun hay phi mua giy php thng mi nh trc kia. C th ni, vic s dng Qt trn Linux gn ging vi vic chng ta s dng Visual Studio trn Windows, tuy nhin nu bn mun s dng Qt trn Windows th vn c phin bn dnh cho h iu hnh ny. Giao din lm vic vi Qt Creator:

Nhm 13

Trang | 35

CHUYN CNG NGH MI

GVHD: U TRNG HIN

* ci t Qt Creator, trong Ubuntu bn lm cc bc nh sau:

Applications

Ubuntu Software Center

[ti Search] Qt Creator

Install
Sau khi ci t xong, khi ng Qt chng ta cng lm cc bc sau: Applications

Programming

Qt Creator

II. ci t th vin Tslib. Tslib l mt th vin cung cp cc stack, cc chc nng cho vic giao tip vi touchscreen trong h thng Linux. Trc ht chng cn ci t gi git-core nhm gip vic ly source ca tslib t server cung cp. Cc bc tin hnh ci t v build tslib nh sau: Bc 1: M terminal $ apt-get install git-core
Nhm 13 Trang | 36

CHUYN CNG NGH MI

GVHD: U TRNG HIN

d qun l th th mc QtTut c to lu tr cc file c lin quan. to th muc QtTut ta thc hin bng 2 dng lnh sau: $ cd / $ mkdir QtTut V bt u ti th vin bng 2 dng lnh tip theo nh sau: $ cd /QtTut/ $ git clone http://github.com/kergoth/tslib.git Sau khi ti thnh cng th mn hnh Terminal c giao din nh hnh di y:

Sau config cho gi tslib bng lnh sau: $ cd /QtTut/tslib $ ./autogen.sh $ ./configure --host=arm-angstrom-linux-gnueabi --prefix=/usr/local/tslib -enable-static enable-shared y c hiu nm na l chng ta s chy th vin ny trn nn phn cng ARM, prefix vi ng dn s cha th mc tslib sau khi c build,tin hnh build th vin tslib nh sau: $ make $ make install V th vin s c to nh hnh di y:

Nhm 13

Trang | 37

CHUYN CNG NGH MI

GVHD: U TRNG HIN

III. Ci t th vin Opensource everywhere. Th vin ny s gip chng ta bin dch ng dng ca Qt chy trn nn phn cng ARM. Chng ta ti mt trong 2 gi ny v ng vi mi phin bn Ubuntu: http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.6.2.tar.gz (Ubuntu 10.04 LTS) http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.7.0.tar.gz (Ubuntu 10.10) Copy file v a ti v v o th mc tTut b ng lnh sau: $ cp /qt-everywhere-opensource-src-4.6.2.tar.gz /QtTut/ Sau gii nn: $ tar -zvxf qt-everywhere-opensource-src-4.6.2.tar.gz Truy cp vo th mc va gii nn: $ cd qt-everywhere-opensource-src-4.6.2 Chnh sa cc file sau bng gedit c sn trong Qt: $ gedit mkspecs/common/g++.conf
Nhm 13 Trang | 38

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Thay i dng sau: QMAKE_CFLAGS_RELEASE += -O2 Thnh QMAKE_CFLAGS_RELEASE += -O0 ng ca s gedit, g tip dng sau: $ gedit /mkspecs/qws/linux-arm-g++/qmake.conf Sa ton b ni dung ca file thnh nh sau: # # qmake configuration for building with arm-linux-g++ # include(../../common/g++.conf) include(../../common/linux.conf) include(../../common/qws.conf)

# modifications to g++.conf QMAKE_CC = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-gcc QMAKE_CXX = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++ QMAKE_LINK_SHLIB = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-g++ # modifications to qmake.conf QMAKE_AR = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-ar cqs QMAKE_OBJCOPY = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-objcopy QMAKE_STRIP = /usr/local/arm/4.3.2/bin/arm-none-linux-gnueabi-strip QMAKE_INCDIR += /usr/local/tslib/include QMAKE_LIBDIR += /usr/local/tslib/lib load(qt_config) Sau khi thc hin th nh cng 2 b c trn, chng ta s config cho th vin vi lnh sau:

Nhm 13

Trang | 39

CHUYN CNG NGH MI

GVHD: U TRNG HIN

$ mkdir /usr/local/Qt $ cd /QtTut/qt-everywhere-opensource-src-4.6.2/ $ ./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/Qt -qt-mouse-tslib -little-endian -no-webkit -no-qt3support -no-cups -no-largefile optimized-qmake -no-openssl -nomake tools Configure thnh cng chng ta s tin hnh build: $ make $ make install Sau mt khong thi gian, khi build thnh cng, chng ta s c th mc Qt nh ng dn trn, trong c cha cc file cn thit h tr cho Qt. IV. Vit chng trnh n gin s dng Qt * vit mt chng trnh v m phng trn Qt th ta lm theo trnh t cc bc nh sau:

1.To Project 2.To Giao din vi Qt Gui 3.Add code 4.Build + Run
Trn y l cc bc vit mt chng trnh tnh tng ca 2 s dng Qt Creator: To mt project mi vi tn tinhtong2so : y l giao din khi khi ng Qt Creator.

Nhm 13

Trang | 40

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Chn Create Project to mt d n mi:

Chn Qt C++ Project/Qt GUI Application, thc hin tip cc bc theo hng dn Wizard ca Qt Creator. Lu chn cu hnh nn tng bin dch thit lp bin dch ng dng chy trn KIT FriendlyArm (hoc bin dch chy trn desktop).

Nhm 13

Trang | 41

CHUYN CNG NGH MI

GVHD: U TRNG HIN

- t tn ca th mc cha project khung Name: Create in l ng dn lu th mc:

t tn xong ri chn Next tip tc: - Tip theo chn phin bn Qt cho project (ng dng cho nn tng Desktop, FriendlyArm , )

Xong nhn Next - in thng tin tn lp s to ra trong khung chng trnh mu, chn lp c s (base class) cho form chnh l Qwidget. Cc file m ngun tng ng s c t ng t tn v cp nht.

Nhm 13

Trang | 42

CHUYN CNG NGH MI

GVHD: U TRNG HIN

- Chn Next v ca s cui cng chn Finish

Sau ta c giao din tnh tng nh sau:

Nhm 13

Trang | 43

CHUYN CNG NGH MI

GVHD: U TRNG HIN

- Vo Input Widgets Ko 3 cng c c tn Line Edit ri ko chnh to thnh 2 nhp gi tr v 1 hin th kt qu. - Vo Display Widgets ri Ko 1 cng c c tn Label hin th du + - Vo Buttons tm v ko 1 cng c c tn Push Button v b tr khi nhn du = s hin th kt qu. Sau khi ko cc cng c v b tr cn chnh th giao din tnh tng c kt qu trn mn hnh nh sau:

* Bc tip theo ta vit code cho tng nt nhn bng thao tc Click phi chut vo tng nt chn Go to slot - chn Click s xut hin vng vit code nh sau:
Nhm 13 Trang | 44

CHUYN CNG NGH MI

GVHD: U TRNG HIN

vng mi tn ta ch n dng lnh ny vo:


void MainWindow::on_pushButton_2_clicked() {

ui->c->setText(QString::number((ui->a->text().toInt())+(ui->b->text().toInt())));

} Bt u bin dch chy m phng theo hnh sau:

RUN
REBUID

Sau khi buid v chy m phng xong ta c giao din nh sau:

Nhm 13

Trang | 45

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Nhm 13

Trang | 46

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 5
PHNG PH P BIN D CH Qt SANG KIT HO C THI T B NH NG HO C IN THO I. chy c ng dng trn board FriendlyARM, chng ta s cn ti qmake ca th vin Qt c build pha trn ca bi vit. Nhp vo th Project , chng ta s setting cho project, y bn s thy cc vng thit lp cho vic build project. Ti General Nhn dng Qt Version, bn nhn vo Manage. Trong hp thoi hin ra, th Qt version, trong danh sch chng ta nhn thy c Auto-dectected v Manual. Nhp chut chn Manual, nhn du cng bn phi hp thoi, ti Version name g FriendlyARM, ti qmake location, bn tm n ng dn cha file qmake ca Qt lc trc build, c th n ng dn nh sau: /usr/local/Qt/bin/qmake Apply ->> OK. Tr v th Project, vi Build Setting, trong General, b chn Shadown build. trong Qt version chn FriendlyARM. Bn di Build Setting c ln, ti Edit build Configuration chn FriendlyARM Realease. Cui cng chng ta c nh sau:

Nhm 13

Trang | 47

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Save li v build ng dng. Vo menu Build ->> Rebuild All. Build thnh cng chng ta s c file thc thi nh trong hnh, file c mu tm:

Bc tip theo chng ta s lm cho file ny chy c trn board FriendlyARM. Khi ng board FriendlyARM, sau khi khi ng chng ta s iu khin lnh thng
Nhm 13 Trang | 48

CHUYN CNG NGH MI

GVHD: U TRNG HIN

qua telnet: kt ni board FriendlyARM vi PC thng qua cng mng, hoc kt ni chung vo mt switch. kim tra kt ni : $ ping 192.168.1.230 $ telnet 192.168.1.230 G ti khon ng nhp v password.

to th mc cha file chng trnh: [root@FriendlyARM /]# mkdir myApp tip theo chng ta s tin hnh truyn file apphello ti board thng qua ng mng vi giao thc ftp.

Nhm 13

Trang | 49

CHUYN CNG NGH MI

GVHD: U TRNG HIN

M mt terminal mi trn ubuntu g lnh sau: $ cd /apphello/ $ ftp 192.168.1.230 ng nhp vi ti khon v mt khu ging trong telnet

G lnh sau gi truyn file chng trnh xung board: ftp> put apphello apphello l tn file chng trnh c build pha trn. trong th mc apphello cha file thc thi apphello, bn to file c ni dung: #!/bin/sh if [ -e /etc/friendlyarm-ts-input.conf ] ; then . /etc/friendlyarm-ts-input.conf fi true ${TSLIB_TSDEVICE:=/dev/touchscreen}

TSLIB_CONFFILE=/etc/ts.conf export TSLIB_TSDEVICE export TSLIB_CONFFILE export TSLIB_PLUGINDIR=/usr/lib/ts export TSLIB_CALIBFILE=/etc/pointercal export QWS_DISPLAY=:1 export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Nhm 13 Trang | 50

CHUYN CNG NGH MI

GVHD: U TRNG HIN

export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin if [ -c /dev/touchscreen ]; then export QWS_MOUSE_PROTO="Tslib MouseMan:/dev/input/mice" if [ ! -s /etc/pointercal ] ; then rm /etc/pointercal /usr/bin/ts_calibrate fi else export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice" fi export QWS_KEYBOARD=TTY:/dev/tty1 export HOME=/root cd /myApp ./apphello -qws hotplug t tn file l appscript, save li v ng ca s edit li. Ti khung terminal ftp g lnh sau: ftp> put appscript ti ca s terminal telnet chng ta s kim tra file ti th mc root di board [root@FriendlyARM /]# ls

g cc lnh sau cho php cc file thc thi trong mi trng s hu. [root@FriendlyARM /]# chmod +x apphello [root@FriendlyARM /]# chmod +x appscript
Nhm 13 Trang | 51

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Kim tra li vi lnh ls ta thy mu hin th ca file chuyn sang mu xanh l cy l ok. tip theo di chuyn chng vo th mc myApp c to trn [root@FriendlyARM /]# mv apphello /myApp [root@FriendlyARM /]# mv appscript /myApp Ti ca s terminal telnet, g lnh sau chnh sa file rS trong th mc /etc/init.d/rcS [root@FriendlyARM /]# vi /etc/init.d/rcS Di chuyn con tr ti v tr cn sa sau nhn phm i nhp d liu, sau khi sa xong nhn phm ESC - > :w ->> Enter lu li. sa ni dung ca file rcS thnh nh sau:

#! /bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin: runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel # # Trap CTRL-C &c only in this shell so we can interrupt

subprocesses.

# trap ":" INT QUIT TSTP /bin/hostname FriendlyARM [ -e /proc/1 ] || /bin/mount -n -t proc none /proc

[ -e /sys/class ] || /bin/mount -n -t sysfs none /sys [ -e /dev/tty ] || /bin/mount


Nhm 13

-t ramfs none
Trang | 52

CHUYN CNG NGH MI

GVHD: U TRNG HIN

/dev /bin/mount -n -t usbfs none

/proc/bus/usb echo /sbin/mdev > /proc/sys/kernel/hotplug /sbin/mdev s /bin/hotplug # mounting file system specified in /etc/fstab mkdir -p /dev/pts mkdir -p /dev/shm /bin/mount -n -t devpts none /dev/pts -o mode=0622 /bin/mount -n -t tmpfs tmpfs /dev/shm /bin/mount -n -t ramfs none /tmp /bin/mount -n -t ramfs none /var mkdir -p /var/empty mkdir -p /var/log mkdir -p /var/lock mkdir -p

Nhm 13

Trang | 53

CHUYN CNG NGH MI

GVHD: U TRNG HIN

/var/run mkdir -p /var/tmp /sbin/hwclock -s

/sbin/hwclock s syslogd /etc/rc.d/init.d/netd start echo " /dev/tty1 echo "Starting networking..." > /dev/tty1 sleep 1 /etc/rc.d/init.d/httpd start echo " /dev/tty1 echo "Starting web server..." > /dev/tty1 sleep 1 /etc/rc.d/init.d/leds start echo " /dev/tty1 echo "Starting leds service..." > /dev/tty1 echo " " "> "> ">

Nhm 13

Trang | 54

CHUYN CNG NGH MI

GVHD: U TRNG HIN

sleep 1 echo " /dev/tty1 /etc/rc.d/init.d/alsaconf start echo "Loading sound card config..." > /dev/tty1 echo " /sbin/ifconfig lo 127.0.0.1 " ">

/etc/init.d/ifconfigeth0 #/bin/qtopia & /myApp/appscript & echo " /dev/tty1 echo "Starting myApp, please waiting..." > /dev/tty1 ">

Nhm 13

Trang | 55

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Ctrl+Z thot edit, tr li dng input lnh. Copy Qt lib c sn di board, th vin cn thit c th chy ng dng Qt di board FriendlyARM [root@FriendlyARM /]# mkdir /usr/local/Qt [root@FriendlyARM /]# cp -r /usr/local/Trolltech/QtEmbedded-4.7.0arm/lib/ /usr/local/Qt/ G lnh sau restart li board: [root@FriendlyARM /]# shutdown -r now Quan st di board:

Nhm 13

Trang | 56

CHUYN CNG NGH MI

GVHD: U TRNG HIN

TOPIC 6
GII THIU GNOME/GTK+ I. GII THIU GNOME/GTK+

GNOME (GNU Network Object Model Environment) l b phn mm cung cp mi trng mn hnh nn dng cho h iu hnh Linux cng nh cho cc h iu hnh khc. GNOME l mt d n tin hc c hai mc ch: xy dng mi trng lm vic GNOME trc gic, hp dn i vi ngi dng v mi trng pht trin ng dng GNOME. GNOME c lp trnh bng ngn ng C. Trong phin bn GNOME ra mt GNOME bluetooth gip ngi dng qun l cc thit b khng dy. Ngoi ra cn ci tin nhiu trnh ng dng: time tracker(theo gii thi gian hot ng ca cc trnh ng dng trn my), Empathy(chat), media player, cheese(ghi hnh qua Webcam). GTK l b cng c dng to giao din ngi dng ha. Cc ng dng:

"Web" browser

Video chat trn Empathy GTK hoc b cng c GIMP: l mt b cng c a nn tng cho vic to ra cc giao din ngi dng ha. Cung cp mt b y cc vt dng, GTK l ph hp cho cc d n khc nhau, t cc cng c mt ln nh hon thnh b ng dng. GTK c vit bng C nhng c thit k ln h tr mt lot cc ngn ng. S dng GTK t cc ngn ng nh Perl v Python (c bit l khi kt hp vi Glade GUI builder) cung cp mt phng php hiu qu ca pht trin ng dng nhanh chng. II.
Nhm 13

GII THIU T NG QUAN GTK


Trang | 57

CHUYN CNG NGH MI

GVHD: U TRNG HIN

1. Cc th vin quan trng ca Gtk+: Glib GObject GDK GdkPixbuf Pango ATK 2. Cc lp ca GTKwindow

GOject: l lp c bn nht cung cp thuc tnh cho tt c th vin nn cho GTK+ v Pango.(G_OBJECT() ) GInitiallyUnowned: y l lp m ngi lp trnh khng c truy cp cho n khi cc lp khc c bo mt. GtkObject: l lp nn cho tt c GTK+ object. N c thay th gn nh hon ton lp nn cho tt c cc object Gtk+ 2.0.(GTK_OBJECT() ) GtkWidget: l lp nn tru tng cho tt c cc Gtk+ Widget. N gii thiu cc loi t tnh v chc nng chun cn thit cho tt c widget. (GTK_WIDGET() ) GtkContainer: l lp nn tru tng cha mt hoc nhiu widget. N l cu trc cc k quan trng, do bn khng th them bt c widget no m khng c n.(GTK_CONTAINER() ) GtkBin: l mt lp nn khc cho php widget cha ch mt lp con. N cho php c nhiu widget c cu trc khng cn s dng li d liu.(GTK_BIN() )
Trang | 58

Nhm 13

CHUYN CNG NGH MI

GVHD: U TRNG HIN

GtkWindow: l ca s object chun. ( GTK_WINDOW() )

3. Kiu d liu GTK v C tng ng

4. Cc GtkWidget im hnh trong GTK a. GtkWindow Lnh khi to: Gtk_window_new(GtkWindowType type);

b. GtkEntry Lnh khi to: gtk_entry_new();

c. GtkButton
Nhm 13 Trang | 59

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Lnh khi to: gtk_button_new(); gtk_button_new_with_label();

d. GtkRadioButton Lnh khi to: gtk_radio_button_new(GSList *group);

5. Chng trnh v d: #include <gtk/gtk.h> int main(int argc , char ** argv ) { GtkWidget * window; //khai bo bin cho widget gtk_init(&argc,&argv); //ci t b cng c window = gtk_window_new(GTK_WINDOW_TOPLEVEL); //khi to ca s gtk_container_set_border_width(GTK_CONTAINER(window), 10 ); gtk_window_set_title(GTK_WINDOW(window), "Linux GUI-Hello World!!!" ); gtk_window_resize(GTK_WINDOW(window), 500 , 500); gtk_widget_show(window); //hin tt c cc widget gtk_main(); // chy vng lp chnh cho n khi gtk_main_quit () c gi return 0 ; }; III. CI T GTK+ 1. C i t offline: Ti bn Glib, Pango, ATK v Gtk+2.0. Gii nn: Ci ln lc cc gi trn bng Terminal: ./configure Make su make install 2. Ci online:
Nhm 13 Trang | 60

CHUYN CNG NGH MI

GVHD: U TRNG HIN

M terminal: sudo apt-get install libgtk2.0-dev sudo apt-get install pkg-config sudo apt-get install devhelp sudo apt-get install libglib2.0-doc libgtk2.0-doc IV. CCH BIN D CH TRN LINUX Gkt+ cho php ngi dng bin dch trn linux bng cch s dng gcc v pkgconfig. M ca s Terminal: gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` \`pkg-config --libs gtk+-2.0` M terminal

a ng dn n file .c va to

Nhm 13

Trang | 61

CHUYN CNG NGH MI

GVHD: U TRNG HIN

Tin hnh g lnh bin dch

Kim tra file c bin dch cha

Tin hnh chy file va mi bin dch xong.


Nhm 13 Trang | 62

CHUYN CNG NGH MI

GVHD: U TRNG HIN

BI TP QT: CALCULATOR

nhom13.cpp
#include "nhom13.h" #include "ui_nhom13.h" #include "math.h" nhom13::nhom13(QWidget *parent) : QMainWindow(parent), ui(new Ui::nhom13) { ui->setupUi(this); } double a,b,c; int pheptoan; nhom13::~nhom13() {
Nhm 13 Trang | 63

CHUYN CNG NGH MI

GVHD: U TRNG HIN

delete ui; } void nhom13::on_pushButton_0_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_0->text()); } void nhom13::on_pushButton_1_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_1->text()); } void nhom13::on_pushButton_2_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_2->text()); } void nhom13::on_pushButton_3_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_3->text()); } void nhom13::on_pushButton_4_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_4->text()); } void nhom13::on_pushButton_5_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_5->text()); } void nhom13::on_pushButton_6_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_6->text()); } void nhom13::on_pushButton_7_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_7->text()); } void nhom13::on_pushButton_8_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_8->text());
Nhm 13 Trang | 64

CHUYN CNG NGH MI

GVHD: U TRNG HIN

} void nhom13::on_pushButton_9_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_9->text()); } void nhom13::on_pushButton_Dot_clicked() { ui->lineEdit->setText(ui->lineEdit->text()+ui->pushButton_Dot->text()); } void nhom13::on_pushButton_AC_clicked() { ui->lineEdit->clear(); } void nhom13::on_pushButton_C_clicked() { ui->lineEdit->setText(""); } void nhom13::on_pushButton_Cong_clicked() { a=ui->lineEdit->text().toDouble(); ui->lineEdit->setText(""); pheptoan=1; } void nhom13::on_pushButton_Tru_clicked() { a=ui->lineEdit->text().toDouble(); ui->lineEdit->setText(""); pheptoan=2; } void nhom13::on_pushButton_Nhan_clicked() { a=ui->lineEdit->text().toDouble(); ui->lineEdit->setText(""); pheptoan=3; } void nhom13::on_pushButton_Chia_clicked() { a=ui->lineEdit->text().toDouble();
Nhm 13 Trang | 65

CHUYN CNG NGH MI

GVHD: U TRNG HIN

ui->lineEdit->setText(""); pheptoan=4; } void nhom13::on_pushButton_sqr_clicked() { a=ui->lineEdit->text().toDouble(); b=a*a; ui->lineEdit->setText(QString::number(b)); } void nhom13::on_pushButton_Bang_clicked() { b=ui->lineEdit->text().toDouble(); switch (pheptoan) { case 1: { c=a+b; ui->lineEdit->setText(QString::number(c)); break; } case 2: { c=a-b; ui->lineEdit->setText(QString::number(c)); break; } case 3: { c=a*b; ui->lineEdit->setText(QString::number(c)); break; } case 4: { c=a/b; ui->lineEdit->setText(QString::number(c));break; } } } void nhom13::on_lineEdit_cursorPositionChanged(int , int ) { }

Nhm 13

Trang | 66

CHUYN CNG NGH MI

GVHD: U TRNG HIN

nhom13.h
#ifndef NHOM13_H #define NHOM13_H #include <QMainWindow> namespace Ui { class nhom13; } class nhom13 : public QMainWindow { Q_OBJECT public: explicit nhom13(QWidget *parent = 0); ~nhom13(); private: Ui::nhom13 *ui; private slots: void on_lineEdit_cursorPositionChanged(int , int ); void on_pushButton_Bang_clicked(); void on_pushButton_sqr_clicked(); void on_pushButton_Chia_clicked(); void on_pushButton_Nhan_clicked(); void on_pushButton_Tru_clicked(); void on_pushButton_Cong_clicked(); void on_pushButton_C_clicked(); void on_pushButton_AC_clicked(); void on_pushButton_Dot_clicked(); void on_pushButton_9_clicked(); void on_pushButton_8_clicked(); void on_pushButton_7_clicked(); void on_pushButton_6_clicked(); void on_pushButton_5_clicked(); void on_pushButton_4_clicked(); void on_pushButton_3_clicked(); void on_pushButton_2_clicked(); void on_pushButton_1_clicked(); void on_pushButton_0_clicked(); }; #endif // NHOM13_H
Nhm 13 Trang | 67

CHUYN CNG NGH MI

GVHD: U TRNG HIN

nhom13.pro
#------------------------------------------------# # Project created by QtCreator 2013-10-09T22:04:56 # #------------------------------------------------QT += core gui

TARGET = nhom13 TEMPLATE = app

SOURCES += main.cpp\ nhom13.cpp HEADERS += nhom13.h FORMS += nhom13.ui

OTHER_FILES += \ android/src/org/kde/necessitas/ministro/IMinistro.aidl \ android/src/org/kde/necessitas/ministro/IMinistroCallback.aidl \ android/src/org/kde/necessitas/origo/QtApplication.java \ android/src/org/kde/necessitas/origo/QtActivity.java \ android/AndroidManifest.xml \ android/res/values-fr/strings.xml \ android/res/drawable/icon.png \ android/res/drawable/logo.png \ android/res/values-zh-rCN/strings.xml \ android/res/values-nb/strings.xml \ android/res/values-fa/strings.xml \ android/res/values-ja/strings.xml \ android/res/values-el/strings.xml \ android/res/values-pt-rBR/strings.xml \ android/res/drawable-ldpi/icon.png \ android/res/layout/splash.xml \ android/res/values-it/strings.xml \ android/res/values-et/strings.xml \ android/res/values-ms/strings.xml \ android/res/values-pl/strings.xml \ android/res/values/libs.xml \ android/res/values/strings.xml \ android/res/values-id/strings.xml \ android/res/values-ro/strings.xml \
Nhm 13 Trang | 68

CHUYN CNG NGH MI

GVHD: U TRNG HIN

android/res/values-rs/strings.xml \ android/res/values-ru/strings.xml \ android/res/values-de/strings.xml \ android/res/drawable-mdpi/icon.png \ android/res/drawable-hdpi/icon.png \ android/res/values-es/strings.xml \ android/res/values-zh-rTW/strings.xml \ android/res/values-nl/strings.xml \ android/version.xml

main.cpp
#include <QtGui/QApplication> #include "nhom13.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); nhom13 w; w.show(); return a.exec(); }

Nhm 13

Trang | 69

You might also like