You are on page 1of 56

Mc lc M u...........................................................................2 Phn A : L thuyt chung............................................3 Chng 1 . H iu hnh nhng uClinux...................

3
Nhn h iu hnh Linux...........................................................................................3 Lch s nhn h iu hnh Linux...........................................................................3 T chc ca nhn h iu hnh Linux ...................................................................4 T chc th mc ...................................................................................................6 H iu hnh nhng uClinux......................................................................................7 Qu trnh pht trin h iu hnh nhng uClinux...................................................8 Kin trc h iu hnh uClinux..............................................................................9 Cc th vin s dng pht trin h iu hnh uClinux......................................9 Driver ca cc ngoi vi .......................................................................................10 M ngun h iu hnh uClinux..........................................................................11

Chng 2 . Vi iu khin S3C44B0X v kit pht trin .............................................................................13


Vi iu khin S3C44B0X........................................................................................13 Cc c im ca vi iu S3C44B0X..................................................................13 S chn ...........................................................................................................18 S khi............................................................................................................19 Chc nng mt s khi chnh...............................................................................20 Kit pht trin HT44B0.............................................................................................35

Phn B : Thc nghim................................................38 Chng 3 . Bin dch m ngun uClinux v xy dng ng dng............................................................38
Bin dch m ngun h iu hnh uClinux..............................................................38 Mi trng v cc cng c cn bin dch........................................................38 Lu qu trnh bin dch v cc bc tin hnh................................................38 Nhng h iu hnh vo vi iu khin ....................................................................44 Thit lp giao tip gia kit v my tnh................................................................44 a file nh h iu hnh vo vi iu khin........................................................46 Xy dng ng dng .................................................................................................51

Kt lun.......................................................................55 Cc ti liu tham kho...............................................56

H Cng Ngh - HQG H Ni

Kha lun tt nghip

M u
Trong nhng thp nin gn y h thng nhng c nghin cu mnh m v c rt nhiu ng dng trong thc t . Cc sn phm ng dng h thng nhng rt a dng t h thng dn ng trong tn la , cc robot thng mnh n cc sn phm tiu dng nh my git , my in , cc thit b gii tr nh in thoi , my nghe nhc ... H thng nhng pht trin da trn s pht trin phn cng v phn mm . Phn cng phi mnh , y tnh nng cho h thng cn phn mm phi c pht trin khai thc c ti nguyn phn cng ng thi phi p ng c cc c tnh ca h thng nhng l tnh thi gian thc , iu khin chnh xc , n nh . ng dng h iu hnh m ngun m uClinux cho cc h thng nhng dng vi iu khin c nhn vi x l 32 bit gip cho qu trnh pht trin phn mm cho h thng nhanh hn chi ph thp hn v khai thc c sc mnh ca ti nguyn phn cng .

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Phn A : L thuyt chung Chng 1 . H iu hnh nhng uClinux


Nhn h iu hnh Linux Lch s nhn h iu hnh Linux
Linux l mt nhn h iu hnh c pht trin bi Linus Torvalds vo nm 1991 trn c s ci tin phin bn UNIX c tn Minix do gio s Andrew S.Tanenbaum xy dng v ph bin . Sau Linus Torvalds cng b m ngun ca mnh cho mi ngi v mong mun mi ngi c th ng gp kin , pht hin li v pht trin n ngy cng tt hn . V cng t thi im , theo t tng GNU rt nhiu chuyn gia trn ton th gii tham gia vo qu trnh pht trin Linux v v vy Linux ngy cng pht trin , mnh m , n nh , c tin cy cao v p ng c nhu cu ca ngi dng . Mt s mc lch s quan trng trong qu trnh pht trin nhn h iu hnh Linux : Sau ba nm nhn Linux ra i , n ngy 14-3-1994, h iu hnh Linux phin bn 1.0 c ph bin . Thnh cng ln nht ca Linux 1.0 l n h tr giao thc mng TCP/IP chun UNIX , snh vi giao thc socket BSD- tng thch cho lp trnh mng . Trnh iu khin thit b c b sung chy IP trn mt mng Ethernet hoc trn tuyn n hoc qua modem. H thng file trong Linux 1.0 vt xa h thng file ca Minix thng thng , ngoi ra h tr iu khin SCSI truy nhp a tc cao. iu khin b nh o c m rng h tr iu khin trang cho cc file swap v nh x b nh ca file c quyn . Vo thng 3-1995 , nhn 1.2 c ph bin. iu ng k ca Linux 1.2 so vi Linux 1.0 ch n h tr mt phm vi rng v phong ph phn cng , bao gm c kin trc tuyn phn cng PCI mi . Nhn Linux 1.2 l nhn kt thc dng nhn Linux ch h tr PC . Cch nh ch s cc dng nhn (h iu hnh) Linux : H thng ch s c chia thnh mt s mc, chng hn hai mc nh 2.4 hoc ba mc nh 2.2.5. Trong cch nh ch s nh vy , quy c rng vi cc ch s t mc th hai tr i , nu l s chn

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

th dng nhn kh n nh v tng i hon thin , cn nu l s l th dng nhn vn ang c pht trin tip . Thng 6-1996 , nhn Linux 2.0 c ph bin . C hai c trng ni bt ca Linux 2.0 l h tr kin trc phc hp , bao gm c cng Alpha 64-bit y , v h tr kin trc a b x l . Phn phi nhn Linux 2.0 cng thi hnh c trn b x l Motorola 68000 v kin trc SPARC ca SUN . Ti nm 2000 , nhn Linux 2.4 c ph bin . Mt trong c im c quan tm ca nhn ny l n h tr m k t Unicode 32 bt , rt thun li cho vic xy dng cc gii php ton din v trit i vi vn ngn ng t nhin trn phm vi ton th gii . Nhn Linux l phn mm t do c phn phi theo Giy php s hu cng cng phn mm GNU GPL ( General Public License ) . Vt ly phc ca nhn Linux l ch chim cnh ct - Tux .

Hnh 1: Linus Torvalds v vt ly phc ch chim cnh ct

T chc ca nhn h iu hnh Linux


Nhn c v nh tri tim ca h iu hnh . V bn cht nhn cng l mt chng trnh phn mm my tnh nhng cp h thng c vai tr iu khin cc thnh phn ca h thng my tnh , qun l ti nguyn ca h thng , cung cp mt s dch v v phn mm c bn cho my tnh , cung cp mi trng thc thi c cc ng dng khc nhau chy trn h thng . Nhn chnh l cu ni gia phn cng vt l ca my tnh vi v chng trnh ng dng .

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Cc dch v ca nhn c chy trong ch c quyn ca b x l . Tri li , cc chng trnh ng dng c chy trong ch ngi dng hon ton cch ly vi h iu hnh . Khi ng dng chy trong ch ngi dng gi ti mt dch v h thng thng qua mt giao din , b x l chn li li gi v thi hnh dch v mc nhn h iu hnh . Thng thng vic thi thc thi mc nhn n gin v nhanh hn bi v n khng b chuyn gia ch c quyn v khng c quyn . Nhn ca Linux gm nm tiu h thng : B phn thi gian cho tin trnh ( Process Schedule SCHED ) :

Hot ng ca my tnh , ti mt thi im ch c mt lnh c thc thi . Tuy nhin cc h iu hnh a nhim nh Windows , Linux u cho php nhiu chng trnh chy cng mt lc . Cc h iu hnh a nhim c th lm c nh vy bng cch chuyn quyn thc thi qua li gia cc chng trnh tht nhanh lm cho ngi dng c cm gic cc chng trnh chy cng lc vi nhau . Vi d ngi dng c th va son tho vn bn va c th nghe . Trong h iu hnh a nhim th b phn thi gian tin trnh m nhim nhim v ny . SCHED c chia thnh bn khi : Khi lut nh thi (scheduling policy): chu trch nhim phn b xem tin trnh ( process ) no c quyn truy xut CPU. H thng hot ng c thng sut hay khng nh vo b lut ny, trnh trng hp mt tin trnh li dng s h ca iu lut m chim thi gian h thng qu nhiu lm cc tin trnh khc b ng bng (freeze) .

Khi ph thuc kin trc ( architeture-specific ): khi ny gm cc m assembly ph thuc vo mi loi CPU dng tm ngng hot ng ca tin trnh .

Khi c lp kin trc (architeture-independent): Khi gi cc hm t khi ph thuc kin trc v khi lut chuyn gia cc tin trnh ng thi n cn gi cc hm MM thit lp b nh o cho cc tin trnh c hi phc li . Khi ph thuc kin trc s khc nhau mi loi CPU (386, apha, v.v) nhng khi c lp kin trc th khng i .

Khi hm gi h thng ( system call ) . Gm cc hm m ngi dng c th dng tng tc vi SCHED. Khi lp trnh Linux v Unix s quen vi cc hm gi h thng ny.

Lng Th Oanh

H Cng Ngh - HQG H Ni B qun l b nh ( Memory Manager - MM) :

Kha lun tt nghip

B nh qui c ca cc my tnh ch c 640KB . Do BIOS ch qun l c ti FFFF , vng nh cao t A0000 tr ln dng nh x BIOS , video card memory v cc thit b ngoi vi khc , vng nh cn li t 9FFFF tr xung tng ng vi 640KB. Trong ch bo v ( protect mode ) ca CPU 32 bit a ra khi nim b nh o ( Virtual Memory ) . Lc ny mi tin trnh c cp ti 4GB b nh o . Nhng nhn h iu hnh s to ra mt bng m t tng trang ca b nh o vi b nh vt l . B nh vt l by gi bao gm c b nh RAM v vng nh hon v trn a cng . H thng file o :

H thng ny khng ch cung cp truy sut n h thng file trn a cng m cn tt c cc ngoi vi . Trong Linux tt c cc tp tin , th mc v cc thit b u c coi nh l file . V d nh my in , cng ni tip , cc a u c truy cp nh l file . Linux cng cung cp cc thuc tnh truy cp cho file v th mc , cc thuc tnh c th c thit lp nh cho php c , cho php ghi , cho php thc thi . Linux thit lp ch bo v i vi cc file h thng v hn ch quyn truy cp i vi cc thit b . Giao din mng ( Network Interface - NET) : Trong nhn Linux dng sn giao thc TCP/UDP , IP v Ethernet .
-

B truyn thong ni b (Inter-process communication IPC) :

Mt tin trnh trong Linux giao tip vi cc tin trnh khc v vi nhn h iu hnh thng qua mt c ch c gi l b truyn thng ni b - IPC . N cho php cc tin trnh gi hoc nhn cc thng ip t mt tin trnh khc , s dng chung vng nh chia s v ng b vi cc tin trnh khc .

T chc th mc
Cc file trong h thng Linux c t theo mt trt t trong cc th mc . C mt th mc chnh trong cha cc th mc con v cc file . Th mc ./bin : Cha cc file thc thi dng nh phn v cc chng trnh khi dng ca h thng c . Th mc ./boot : Th mc ny cha file nh ( image file ) ca nhn dng cho qu trnh khi ng .

Lng Th Oanh

H Cng Ngh - HQG H Ni Th mc ./dev : Th mc ny cha cc file thit b .

Kha lun tt nghip

Th mc ./etc : Th mc ny cha cc file cu hnh ton cc ca h thng . Th mc ./home : Th mc ny cha cc th mc con i din cho mi ngi dng khi ng nhp . y l ni lm vic thng xuyn ca ngi dng . Khi ngi qun tr to ti khon cho mt ngi dng th s cp cho ngi dng mt th mc cng tn vi ti khon ngi dng nm trong th mc /home . Ngi dng cho mi quyn thao tc trn th mc ca mnh v khng nh hng n ngi dng khc . Th mc ./lib : Th mc ny cha cc file th vin .so hoc .a . Cc th vin C v lien kt ng cn cho chng trnh chy v cho ton h thng . Th mc ./lost+found : Khi chy chng trnh fsck , nu tm thy mt chui d liu no tht lc trn a cng v khng lien quan n cc tp tin , Linux s gom chng li v t trong th mc ny nu cn ngi dng c th c v gi li d liu b mt . Th mc ./mnt : Th mc ny cha cc kt gn ( mount ) tm thi n cc a hoc thit b khc . Th mc ./sbin : Th mc ny cha cc file thc thi ca h thng dnh cho ngi qun tr h thng . Th mc ./tmp : th mc ny dng cha cc file tm m chng trnh to ra lc chy . Cc file ny s c h thng dn dp khi cc chng trnh kt thc . Th mc ./usr : Th mc ny cha nhiu th mc con nh /usr/bin , /usr/local v y cng l mt trong nhng th mc con quan trng ca h thng , bn trong th mc con ny (/usr/local) cng cha y cc th mc con tng t ngoi th mc gc nh sbin, lib, bin Nu nng cp h thng th cc chng trnh ngi dng ci t trong th mc /usr/local vn gi nguyn v khng s cc chng trnh b mt mt. Th mc ./var : Th mc ny cha cc file bin thin bt thng nh cc file d liu t nhin tng kch thc trong mt thi gian ngn sau li gim kch thc xung cn rt nh. in hnh l cc file dng lm hng i cha d liu cn a ra my in hoc cc hng i cha th in t .

H iu hnh nhng uClinux


H iu hnh uClinux l mt phin bn h iu hnh s dng nhn Linux c thit k cho cc h thng nhng s dng b vi iu khin khng c n v qun l b

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

nh . L mt phin bn h iu hnh s dng nhn Linux nn uClinux c kin trc , cch thc hot ng ging nh h iu hnh Linux chy trn cc PC , phng php pht trin ng dng cng ging nh pht trin trn mi trng h iu hnh Linux . Do l mt h iu hnh m ngun m nn cc nh pht trin c th cu hnh h iu hnh theo mnh to ra mt h iu hnh ph hp vi h thng cn pht trin .

Qu trnh pht trin h iu hnh nhng uClinux


D n h iu hnh uClinux c bt u pht trin t nm 1997 , mc ch to ra h iu hnh ny l pht trin mt phin bn nhn h iu hnh Linux 2.0 nhng vo cc vi iu khin . N c Jeff Dionne , Kenneth Albanowski v nhm cc nh pht trin khc t vn l kh nng nhng Linux vo mng vi iu khin khng c n v qun l b nh , kh nng truyn thng gia mng vi cc h thng truyn thng . Phin bn pht hnh u tin ca h iu hnh ny c pht hnh cng vi vi x l Motorola 68000 , vi x l ny da trn trn vi x l MC68328 DragonBall Intergrated Microprocessor n c trin khai trong b iu khin SCADA nm 1997/98 . Phin bn ny c cng ng ngun m pht trin v mt phin bn khc c s dng cho Palm Pilot vo thng 2 nm 1998 . Trong h iu hnh uClinux c mt s thay i so vi h iu hnh Linux , th vin uC-libc c thit k thay cho th vin libc v glibc trong h iu hnh Linux . Mt ci tin khc c thc hin bi SnapGear l thm mt nh dng mi Binary Flat bFLT . H iu hnh uClinux l mt h iu hnh a nhim , cc chng trnh c th chy nhiu mc khc nhau ca h thng . H iu hnh cho php chy nhiu chng trnh cng mt lc , cho php chy cc ng dng a lung . Vi vic nhng h iu hnh uClinux vo cc vi iu khin gip cho cc nh pht trin to ra cc ng dng d dng v phng php lp trnh ging nh trn mi trng h iu hnh Linux . H iu hnh uClinux l mt h iu hnh thi gian thc , nh pht trin c th chy cc ng dng a lung trn mi trng h iu hnh . iu ny l rt kh khi pht trin mt ng dng a lung chy trc tip trn vi iu khin khng c h iu hnh . Nhim v chnh khi pht trin h iu hnh uClinux l cu hnh nhn h iu hnh cho ph hp vi h thng cn pht trin , bin dch nhn , pht trin cc driver cho cc ngoi vi v sau pht trin cc ng dng cho h thng nhng chy trn mi trng h iu hnh .

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Kin trc h iu hnh uClinux


uClinux l mt h iu hnh dng ph bin cho cc h thng nhng Linux . H iu hnh ny c dng cho cc vi iu khin khng c n v qun l b nh . Ngy nay nhn h iu hnh ny h tr cho rt nhiu loi nn tng CPU khc nhau nh ColdFire , Axis ETRAX , ARM , Atari 68k v rt nhiu loi khc na . Ging nh Linux , uClinux cng c h tr mng giao thc TCP/IP v cc giao thc giao tip mng khc . N cng h tr cc h thng file khc nhau v thm vo mt s dng file c bit c thit k cho cc h thng nhng . c th chy trn cc vi iu khin khng c n v qun l b nh th trong nhn ca h iu hnh c mt s thay i . Ton b m ngun v cc chc nng iu khin ca nhn h iu hnh ca b qun l b nh c loi b ra khi m ngun ca nhn h iu hnh . Mt s chc nng khc cng c iu chnh ph hp vi yu cu ca cc vi iu khin khng c n v qun l b nh . S thun li chnh ca nhn uClinux mang li so vi nhn Linux chy trn PC l kch thc ca nhn . Khi bin dch nhn , nh pht trin phi thit lp cc la chn bin dch nh h tr loi vi x l , h thng file v h tr cc thit b ca nhn lm sao kich thc ca nhn gim xung cn khong 400 KB . Tuy nhin vo lc khi ng , th nhn ca h iu hnh s yu cu khong khng gian b nh khong mt megabyte . Trong thc t kch thc b nh cn khong 2MB v cn cn cho cc ng dng . Vi h iu hnh uClinux , kch thc nh nhn h iu hnh c iu chnh khong t 500 ti 900 KB . Tng t nh m ngun h iu hnh Linux , m ngun ca h iu hnh uClinux cng c th ti min ph . M ngun h iu hnh ny cng thuc bn quyn GNU GPL , v ging nh cc tt c cc ng dng khc gi m ngun ca nhn cng bao gm y m ngun v cc th vin km theo . M ngun h iu hnh uClinux v cc cng c cn thit c tm ti website www.uclinux.org . T website ny cc nh pht trin c th ti gi phn phi c h iu hnh bao gm m ngun nhn h iu hnh uClinux , cc th vin , mt s ng dng c pht trin , nhng thng bo li v nhng li c sa .

Cc th vin s dng pht trin h iu hnh uClinux


uClinux s dng mt phn ca th vin C chun , l th vin c s phc v cho vic pht trin nhn uClinux . Th vin ny da trn th vin C Linux 8086

Lng Th Oanh

H Cng Ngh - HQG H Ni

Kha lun tt nghip

nhng c thu nh thnh mt th vin sc tch ph hp vi vi iu khin . Th vin uClibc c to ra h tr cho cc vi iu khin khng c n v qun l b nh nh Dragonball , ColdFire , ARM th vin vn h tr kin trc Linux chun . uClinux cng cung cp hon ton th vin Linux chun libC API . pht trin uClinux , nh pht trin c th la chn gia hai th vin libc l uC-libc v uClibc . Th vin uClibc ging nh th vin glibc pht trin cho Linux , cc hm ca glibc cng c p dng cho uClibc . Ngoi ra gi m ngun ca uClinux cn c mt s th vin khc nh : libatm h tr truyn d liu khng ng b , libjpeg h tr cho nh dng nh nn JPEG , libm h tr cc th vin ton hc , libnet h tr cc API thao tc mng .

Driver ca cc ngoi vi
Driver l cc trnh qun l , iu khin cc ngoi vi , cung cp cc hm cho php ngi dng c th iu khin ti cc thnh phn ngoi vi . Cc driver c chia lm ba lp : Character driver : Lp ny c s dng rng ri t cc ng dng n gin n cc ng dng phc . V d ng dng n gin nh driver iu khin LED , ng dng phc tp nh driver Firewire , driver USB . Character driver c v ghi d liu trc tip ti thit b m khng c b nh m . Block driver : Lp ny giao tip ti h thng file v c s dng kt ni cc phn vng a , cc thit b vo file h thng . Khc vi character driver , block driver thng c ghi d liu vi thit b thng qua b m . Network driver : Loi ny c nhiu cu trc khc nhau , h tr truyn thng , s dng cc Port v cc Socket nh tuyn cc gi d liu .

Thng thng chng trnh ng dng khng c truy cp , c hoc ghi trc tip ti cc thit b ngoi vi . Khi cn giao tip vi cc ngoi vi , chng trnh ng dng s s dng cc driver giao . Cc driver c th l mt module hoc l c lin kt tnh vo nhn . Driver c ng k vi nhn h iu hnh trong khi module khi to tin trnh . Driver s ng k cc thnh phn : Bng Fops . Ch s Major . Device Class ( Block hoc Char ) .

Lng Th Oanh

10

H Cng Ngh - HQG H Ni Name tn driver .

Kha lun tt nghip

M ngun h iu hnh uClinux


M ngun ca uClinux c th ti v t a ch www.uclinux.org , a ch ny cng cp cc phin bn khc nhau ca h iu hnh uClinux . Ton b m ngun uClinux c cha trong mt file nn . Khi c gi nn , gi m ngun c to ra thnh cu trc hnh cy gm cc th mc v tt c cc th mc ny u c cha trong th mc chnh l uClinux-dist . l m ngun ca h iu hnh uClinux v cn bin dch to ra mt file nh a vo h thng cn pht trin . File nn cha m ngun uClinux c t tn theo mt nh dng chun nh sau uClinux-distYYYYMMDD.tar.gz trong YYYY l nm , MM l thng , DD l ngy . Trong kha lun ny em s dng m ngun h iu hnh uClinux vi phin bn nhn Linux l linux-2.4 . Sau khi gii nn file m ngun , cc th mc c trong th mc chnh uClinux-dist gm cc th mc :
bin : cc tin ch to ra file flash.bin . Documention : ti liu chi tit ca uClinux . tools : cc cng c bin dch . user : ng dng ca ngi dng v m ngun cc ng dng . freeswan : cc chng trnh bo mt , m ha . lib : Cha cc th vin cho ng dng . linux-2.4.x : m ngun nhn uClinux . uClibc : th vin C . config : Cu hnh h thng file uClinux . vv romfs : Cu trc h thng file ca ROM , bao gm ng dng , cc file thit b . Th mc ny c to ra khi bin dch . vendor : Cha tn cc th mc ca cc loi vi x l m h iu hnh h tr . images : Sau khi bin dch , th mc ny cha nhn dng nh phn ca h iu hnh , file ROM , v file nh .

Lng Th Oanh

11

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 2 : cc thc mc con v cc file ca th mc uClinux-dist . Trong th mc ROM cha cc th mc con , cu trc th mc con ny chnh l cu trc th mc ca h iu hnh uClinux khi chy trn h thng nhng . V cu trc cng ging nh cu trc th mc c bn ca h iu hnh Linux chun . Cc th mc l : bin , dev , etc , home , lib , mnt , proc , tmp , usr , var ...

Hnh 3 : cc th mc trong th mc romfs .

Lng Th Oanh

12

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Chng 2 . Vi iu khin S3C44B0X v kit pht trin


H thng nhng c xy dng trn c s lin kt gia phn mm v phn cng . S pht trin phn mm phi da trn phn cng , phn mm s iu khin ton b hot ng ca phn cng nn vic tm hiu r phn cng cng rt quan trng c bit nm r phn cng s gip cho qu trnh cu hnh h iu hnh uClinux , vit driver cho ngoi vi v xy dng cc ng dng chnh xc v nhanh hn .

Vi iu khin S3C44B0X
Ging nh cc dng vi iu khin khc nh 8051 , AVR , PIC , PSoC , v.v , S3C44B0X c xy dng t mt CPU v c b sung thm cc ngoi vi nh b sung b nh , cc cng vo ra , cc b nh thi Nn vic tm hiu vi iu khin S3C44B0X cng ging nh tm hiu cc dng vi iu khin khc . Vic tm hiu s i vo chi tit cc khi cu thnh nn vi iu khin . S3C44B0X l mt vi iu khin ca hng Samsung , y l mt vi iu khin rt mnh , c nhiu c tnh u vit . Vi iu khin ny c dng trong cc h thng nh nhng i hi tnh ton phc tp v cn tc cao , cc ng dng thng s dng nh cc thit b cm tay , thit b cn x l tn hiu s v tt nhin vi iu khin ny cng c dng trong cc ng dng bnh thng nh cc loi vi iu khin khc . S3C44B0X l vi iu khin thuc dng vi iu khin s dng nhn vi x l ARM . Cng ging nh mt s hng khc nh Philipe , Atmel , hng Samsung s dng nhn vi x l ARM7TDMI c thit k bi hng Advanced RISC Machines ARM sau thit k mt s ngoi vi to nn mt chip vi iu khin . S3C44B0X c tch hp mt s khi chc nng c bit gip cho vic thit k h thng tr nn n gin hn , gim chi ph cho h thng .

Cc c im ca vi iu S3C44B0X
2.1.1.1.
-

Kin trc :

c tch hp trong cc thit b cm tay , di ng v cc ng dng ni chung . S dng nhn vi x l ARM7TDMI c thit k theo kin trc RISC 16/32-bit . Tch hp ch g ri trn chip thng qua chun JTAG .

Lng Th Oanh

13

H Cng Ngh - HQG H Ni Tch hp b nhn bng phn cng 32x8 bit .

Kha lun tt nghip

S dng kin trc bus SAMBA ( SAMSUNGs ARM CPU Embedded Microcontroller Bus Architecture ) lm gim cng sut tiu th ca vi iu khin . Qun l h thng :

2.1.1.2.

H tr Little endian Byte thp c lu a ch thp , byte cao c lu a ch cao v Big endian Byte thp c lu a ch cao , byte cao c lu a ch thp . Khng gian a ch l 32Mbytes trn mi bng . Tng cng l 256Mbytes . H tr kh nng lp trnh 8/16/32- bit rng bus d liu cho mi bng . C nh a ch bt u v kh trnh kch thc bng cho tt c 7 bng . a ch bt u v kch thc ca mi bng c th lp trnh c . C 8 bng nh : 6 bng nh cho ROM , SRAM , v cc loi khc . 2 bng nh cho ROM /SRAM/DRAM( Fast page , EDO , Synchronous DRAM ).

H tr i tn hiu bn ngoi cho ti khi kt thc chu k bus . H tr ch lm ti DRAM/SDRAM . H tr ch a ch i xng / khng i xng ca DRAM . B nh cache v SRAM ni :

2.1.1.3. -

0/4/8 Kbyte SRAM ni c s dng khi m b nh cache khng c dng . Ni dng chuyn gia b nh chnh v b nh cache c duy tr thng qua b bo v . B qun l Clock v ngun :

2.1.1.4. -

Vi iu khin tiu th cng sut thp .

Lng Th Oanh

14

H Cng Ngh - HQG H Ni -

Kha lun tt nghip

C b PLL tao tn hiu xung nhp iu khin h thng ln ti tc ti a 66MHz . Tn hiu clock c th c chn cho mi khi chc nng v c thit lp bng phn mm . Cc ch : Normal ch hot ng bnh thng , slow ch hot ng tn s thp khng c PLL , idle- stop clock cho CPU , stop stop ton b tn hiu clock . Khi c tn hiu ngt t ngt ngoi EINT[7:0] hoc ngt cnh bo ca b thi gian thc th vi iu khin tr v trng thi bnh thng . Ngt ca vi iu khin :

2.1.1.5.

Vi iu khin c 30 ngun ngt ( watch-dog timer , 6 timer , 6 UART , 8 ngt ngoi , 4 DMA , 2 RTC ,1 ADC , 1 IIC ,1SIO ) . H tr ngt ngoi theo mc v theo sn tn hiu . Ch ngt theo sn v theo mc c th chn bng lp trnh . H tr FIQ ( Fast Interrupt request ) khi c yu cu ngt ngay tc khc . Timer c iu ch rng xung :

2.1.1.6. -

5 knh Timer iu ch rng xung 16 bit . 1 knh timer ni 16 bit c DMA hoc ngt . H tr ngun clock bn ngoi . ng h thi gian thc RTC ( Real Time Clock ) :

2.1.1.7. -

ng h thi gian thc h tr : mini giy , giy , pht , gi , ngy , tun , thng , nm . Hot ng vi tn s 32.768 KHz . C ngt cnh bo nh thc CPU . Ngt timer tick . Cc IO Port :

2.1.1.8.

Lng Th Oanh

15

H Cng Ngh - HQG H Ni 8 port ngt bn ngoi . 71 port I/O . UART :

Kha lun tt nghip

2.1.1.9. -

2 knh UART c DMA v ngt. H tr chun d liu truyn nhn 5 , 6 , 7 , 8 bit . C bt tay bng phn cng . Tc baud c th thit lp bng phn mm . H tr giao tip hng ngoi IrDA 1.0 ( 115.2 kbps) . Mi knh UART c 2 b nh m bn trong 32 byte FIFO cho Rx v Tx . B iu khin DMA Direct Memory Access :

2.1.1.10.

2 knh iu khin DMA cho mc ch chung khng chu s can thip bi CPU. 2 knh iu khin DMA cho ngoi vi . H tr DMA gia cc cng vo ra ti b nh v t b nh ti cc cng vo ra . DMA c th c yu bi phn mm , 4 khi chc nng bn trong ( UART , SIO , Timer , IIS) v t cc chn bn ngoi . Mc u tin th t gia cc DMA c th thit lp bng phn mm . Tng tc truyn trn FPDRAM , EDODRAM v SDRAM . B bin i A/D :

2.1.1.11.

8 knh ADC . Tc ly mu ti a 100KSPS/10-bit . Khi iu khin LCD :

2.1.1.12.
-

H tr LCD en trng , mu v xm . H tr qut lin tc v qut xem k . H tr chc nng mn hnh o .

Lng Th Oanh

16

H Cng Ngh - HQG H Ni S dng b nh h thng lm b nh hin th . S dng DMA truyn d . Kch thc mn hnh c th chn bng chng trnh . H tr mn hnh Gray 16 mc . H tr 256 mu . Watchdog timer :

Kha lun tt nghip

2.1.1.13. -

C Watchdog timer 16 bit . C yu cu ngt hoc khi ng li h thng sau mt khong thi gian . Giao tip bus IIC :

2.1.1.14. -

1 knh Multi- Master IIC-Bus c iu khin ngt . Truyn ni tip , truyn d liu 8 bit theo mt chiu , hai chiu tc ln ti 100 Kbit/s trong ch chun ( standard mode ) v 400Kbit/s trong ch nhanh ( fast mode) . Giao tip bus IIS :

2.1.1.15. -

Mt knh IIS-bus cho giao tip audio c iu khin DMA . Truyn ni tip , 8/16 bit cho mi knh truyn d liu . H tr nh dng d liu MSB . Truyn ni tip ng b SIO ( Synchronous Serial I/O ) :

2.1.1.16. -

Mt knh SIO c iu khin DMA v ngt . Tc baud c th lp trnh c . H tr iu khin truyn nhn d liu 8 bit trong SIO . Tn s hot ng ca h thng :

2.1.1.17.

Tn s ln ti 66 MHz . 2.1.1.18. Di in p cp cho vi iu khin :

Lng Th Oanh

17

H Cng Ngh - HQG H Ni Cung cp cho nhn vi x l l 2.5V . Cung cp cho cc cng vo ra l 3V 3.6V .

Kha lun tt nghip

S chn

Hnh 4 : S chn ca vi iu khin S3C44B0X

Lng Th Oanh

18

H Cng Ngh - HQG H Ni

Kha lun tt nghip

S khi

Hnh 5: S khi vi iu khin S3C44B0X

Lng Th Oanh

19

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Chc nng mt s khi chnh


3.1.4.1. Li vi x l ARM7TDMI ng vai tr l b no ca S3C44B0X , li vi x l ARM7TDMI phi m bo cho chng trnh hot ng , phi c kh nng truy cp vo b nh , thc hin cc php tnh , iu khin ngoi vi v qun l ngt . Li vi x l ARM7TDMI l mt thnh vin trong h vi x l ARM . ARM7TDMI l dng vi x l 32 bit , rt mnh , tiu tn cng sut thp , h tr tp lp 32 bit v 16 bit . Kin trc ca ARM7TDMI c da trn kin trc RISC , vi kin trc ny vic gii m m my n gin hn rt nhiu so vi kin trc CISC do lm tng tc thc thi lnh , p ng c tnh thi gian thc ca cc ngt . ARM7TDMI c p dng k thut x l ng ng trong vic x l lnh v c chia lm ba giai on : np lnh fetch , gii m lnh decode v thc thi lnh execution . Trong k thut x l ng ng , khi mt lnh ang c thc thi th lnh th hai ang c gii m lnh v lnh th ba bt u c np t b nh . Vi k thut ny th tc x l tng ln rt nhiu , trong mt chu k my CPU lm c nhiu vic . H tr ti 4Gbytes khng gian a ch tuyn tnh , s dng kin trc Von Neumann np v lu tr lnh v d liu , dng chung mt bus 32 bit cho c d liu v lnh . ARM7TDMI h tr nhiu loi d liu , do l dng vi x l 32 bit nn mt t ( word ) s tng ng vi 32 bit , cc loi d liu nh word 32 bit , halfword 16 bit , byte 8 bit . C b nhn phn cng 32x8 bit trong mt chu k . H tr g ri chng trnh trn chip thng qua chun JTAG .

Lng Th Oanh

20

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 6 : S khi ca li vi x l ARM7TDMI.

Lng Th Oanh

21

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 7 : Cc khi logic ca ARM7TDMI.

Lng Th Oanh

22

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 8: S cc tn hiu vo ra ca ARM7TDMI . a. Cc ch hot ng : - User : Thc hin cc chng trnh bnh thng . - FIQ : H tr vic truyn d liu v cc knh x l . - IRQ : c s dng cho vic x l cc ngt mc ch chung . - Supervisor (svc) : y l ch bo v dng cho h iu hnh . - Abort mode (abt) : c nhp vo sau khi d liu hoc lnh c b qua tin np . - System ( sys ) : Ch c quyn ngi dng dng cho h iu hnh . - Undefined ( und ) : c nhp vo khi mt lnh khng xc nh c thc thi.

Lng Th Oanh

23

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Cc ch ny c th c thit lp bng phn mm hoc thng qua cc ngt bn ngoi hoc thng qua qu trnh x l ngoi l . Phn ln cc chng trnh ng dng c thc thi trong ch User .Mi ch iu khin u c cc bng thanh ghi h tr tng tc bt cc ngoi l . Ch FIQ c nm bng thanh ghi h tr t r8_fiq n r12_fiq lm tng tc x l cc ngt . b. Cc thanh ghi :

ARM7TDMI c tt c 37 thanh ghi , trong c 31 thanh ghi dng cho mc ch chung 32 bit , v 6 thanh ghi trng thi . Cc thanh ghi c s dng trong trng thi ARM ( The ARM-state register set ): Trong trng thi ARM , 16 thanh ghi chung v mt hoc hai thanh ghi trng thi c th c s dng mi thi im . Trong ch c quyn , bng thanh ghi ng vi ch c th s c thit lp . Bng cc thanh dng chung c s dng tng ng vi mi ch hot ng :

Bng cc thanh ghi trng thi chng trnh

Lng Th Oanh

24

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Cc bng thanh ghi Cc thanh ghi dng trong trng thi lnh rt gn ( The Thumb-state register set) : Bng cc thanh ghi dng c s dng tng ng vi mi ch hot ng :

Bng cc thanh ghi trng thi chng trnh

Cc bng thanh ghi Mi lin h cc thanh ghi gia ARM state v Thumb-state : Cc thanh ghi t r0 n r7 ca Thumb-state ging nh cc thanh ghi r0 n r7 ca ARM-state . Thanh ghi CPSR v cc thanh ghi SPSR ca Thumb-state ging vi cc thanh ghi SPSR v cc thanh ghi SPSR ca ARM-state . Thanh ghi SP ca Thumb-state c nh x ti thanh ghi r13 ca ARM-state . Thanh ghi LR ca Thumb-state c nh x ti thanh ghi r14 ca ARM-state .

Lng Th Oanh

25

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Thanh ghi PC ca Thumb-state c nh x ti thanh ghi PC(r15) ca ARM-state.

Hnh 9 : S nh x cc thanh ghi ca Thumb-sate v ARM-state . Cc thanh ghi trng thi chng trnh Li vi x l ARM7TDMI bao gm mt thanh ghi CPSR v nm thanh ghi SPSR lu gi trng thi cc ngoi l . Mc ch ca cc thanh ghi trng thi l : - Nm gi thng tin mi c thc hin bi b tnh ton ALU . - iu khin cho php hoc v hiu ha cc ngt . - Thit lp trng thi hot ng ca vi x l .

Lng Th Oanh

26

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 10 : nh dng cc bit ca thanh ghi trng thi . Cc c iu kin ( Condition code flags ) :

Cc bit N , Z , C v V l m cc c iu kin , cc bit ny c th thit lp bng cc s hoc bng cc ton t logic . Chng cng c th c thit lp bng cc lnh MSR hoc LDM . Vi x l ARM7TDMI kim tra cc c ny quyt nh xem lnh c thc thi hay khng . Cc bit iu khin :

Tm bit thp ca mt thanh ghi trng thi chng trnh l cc bit iu khin . Chng c th l : cc bit v hiu ha ngt , bit T, cc bit thit lp ch . Cc bit iu khin ny thay i khi xut hin mt ngoi l . Khi vi x l hot ng ch c quyn th phn mm c th thao tc vi cc bit ny . Cc bit v hiu ha ngt : Hai bit I v F l cc bit v hiu ha ngt . Khi bit I c t l 1 th cc ngt IRQ b v hiu ha . Khi bit F c t l 1 th cc ngt FIQ b v hiu ha . Bit T : Bit ny phn nh trng thi hot ng : khi bit T c t l 1 th b vi x l thc thi trong Thumb-state . Khi bit t t l 0 th b vi x l thc thi trong ARM-state . Cc bit thit lp ch : cc bit M[4:0] qui nh trng ch hot ng ca vi x l . Bng gi tr cc bit thit lp ch ca thanh ghi trng thi chng trnh

Lng Th Oanh

27

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Cc bit d tr : Cc bit ny cha c s dng , khi m cc bit c hoc cc bit iu khin thay i gi tr th cc bit d tr ny khng thay i .

3.1.4.2. Cc cng vo ra S3C44B0X c tt c 71 chn vo ra a chc nng , v cc chn ny c chia thnh cc cng : - Hai cng vo ra 9 bit ( Port E v port F) . - Hai cng vo ra 8 bit ( Port D v port G) . - Mt cng vo ra 16 bit ( Port C ) . - Mt cng ra 10 bit ( Port A) . - Mt cng ra 11 bit ( Port B) . Mi cng c th cu hnh d dng bng phn mm ph hp vi cc h thng v ph hp vi yu cu thit k .Cc chc nng ca mi chn c s dng phi c nh ngha trc khi chng trnh chnh bt u . Nu m trn mt chn nhiu chc nng khng c s dng , th chn c th c cu hnh ging nh cc cng vo ra bnh thng . Bnh thng cc chn ny c cu hnh mc nh trnh xy ra cc vn xung t . Cc cng ca S3C44B0X c cc thanh ghi bao gm thanh ghi cu hnh , thanh ghi d liu , thanh ghi thit lp tr treo , thanh ghi iu khin ngt bn ngoi.

Lng Th Oanh

28

H Cng Ngh - HQG H Ni -

Kha lun tt nghip

Thanh ghi cu hnh ( Port Configuration Register PCONA-G ) : Phn ln cc chn trn mt cng u c nhiu chc nng , do chc nng cho mi chn phi c la chn khi s dng . Thanh ghi PCONn s quyt nh chc nng c s dng cho tng chn . Thanh ghi d liu ( Port Data Register - PDATA-C) : Nu cc cng c cu hnh l cc cng ra , d liu c th c th c ghi vo thanh ghi PDATn tng ng tng bit . Nu m cc cng c cu hnh l cc cng vo th d liu c th c c t thanh ghi PDATn . Thanh ghi thit lp tr ko ( Port Pull-up Register PUPC-G ) : Thanh ghi ny thit lp vic cho php hoc v hiu ha cc cng c tr ko hay khng . ng vi tng bit ca thanh ghi ny nu m c t l 0 , th ng vi bit trn cng c tr ko v nu c t l 1 th ng vi bit trn cng khng c tr ko .

Bng cc a ch cc thanh ghi ca cc cng : Thanh ghi PCONA PDATA PCONB PDATB PCONC PDATC PUPC PCOND PDATD PUPD PCONE PDATE PUPE PCONF PDATF PUPF PCONG PDATG PUPG a ch 0x01D20000 0x01D20004 0x01D20008 0x01D2000C 0x01D20010 0x01D20014 0x01D20018 0x01D2001C 0x01D20020 0x01D20024 0x01D20028 0x01D2002C 0x01D20030 0x01D20034 0x01D20038 0x01D2003C 0x01D20040 0x01D20044 0x01D20048 Chc nng Cu hnh chn cng A Thanh ghi d liu cng A Cu hnh chn cng B Thanh ghi d liu cng B Cu hnh chn cng C Thanh ghi d liu cng C Cu hnh tr ko cng C Cu hnh chn cng D Thanh ghi d liu cng D Cu hnh tr ko cng D Cu hnh chn cng E Thanh ghi d liu cng E Cu hnh tr ko cng E Cu hnh chn cng F Thanh ghi d liu cng F Cu hnh tr ko cng F Cu hnh chn cng G Thanh ghi d liu cng G Cu hnh tr ko cng G R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W Gi tr mc inh 0x3ff Khng nh trc 0x7ff Khng nh trc 0xAAAAAAAA Khng nh trc 0x0 0x0000 Khng nh trc 0x0 0x0000 Khng nh trc 0x0 0x0000 Khng nh trc 0x0 0x0000 Khng nh trc 0x0

Lng Th Oanh

29

H Cng Ngh - HQG H Ni -

Kha lun tt nghip

Thanh ghi iu khin ngt ngoi ( External Interrupt Control Register ) : Thanh ghi EXTINT cu hnh tn hiu ngt nh ngt xy ra mc thp , ngt xy ra mc cao , ngt xy ra khi c xut hin sn ln ca xung , ngt xy ra khi xut hin sn xung ca xung v xy ra khi xut hin ca hai dng sn xung .

Thanh ghi EXTINT cu hnh trng thi tn hiu ngt cho tm ngun ngt bn ngoi .

Hnh 11 : a ch thanh ghi EXTINT v cc gi tr mc nh .

Hnh 12 : Cc gi tr cc bit ca thanh ghi EXTINT ng vi cc ngt ngoi

3.1.4.3.

Xung nhp h thng

B to xung nhp bn trong S3C44B0X c th to tn hiu xung nhp cung cp cho CPU v cc ngoi vi . B to xung nhp c th c iu khin cung cp hoc

Lng Th Oanh

30

H Cng Ngh - HQG H Ni

Kha lun tt nghip

ngt tn hiu xung nhp ti mi khi ngoi vi bng kha S/W . Ngun xung nhp chnh c th ly t thch anh bn ngoi hoc t tn hiu xung nhp bn ngoi . B to xung nhp c mt b dao ng c ni ti thch anh bn ngoi , v c mt b PLL ( Phase Locke - Loop ) to ra xung nhp c tn s cao t tn s thp ca b dao ng theo yu cu ca S3C44B0X .

Hnh 13 : S khi b to xung nhp

Hnh 14 : S khi b PLL ( Phase Locked Loop).

Lng Th Oanh

31

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 15 : Mch to dao ng bng thch anh v bng ngun dao ng bn ngoi 3.1.4.4. B iu khin truy cp b nh trc tip DMA .

Vi iu khin S3C44B0X c bn knh iu khin DMA . Hai knh DMA c gi l ZDMA c gn vo SSB ( Samsung System Bus ) vo hai knh DMA c gi l BDMA l cu ni gia hi SSB v SPB ( Samsung Peripheral Bus ) . Hai iu knh iu khin ZDMA truyn d liu gia b nh v b nh . Hai knh iu khin BDMA truyn d liu qua li gi ngoi vi vo ra v b nh . Cc bus SPB nh SIO , IIS ,UART . Nh c DMA nn vic truyn d liu khng cn s can thip ca CPU .

Hnh 16 : S khi b iu khin ZDMA.

Lng Th Oanh

32

H Cng Ngh - HQG H Ni

Kha lun tt nghip

3.1.4.5.

Hnh 17: S khi b iu khin BDMA. Cc b nh thi

S3C44B0X c su b nh thi 16 bit , mi b nh thi c th hot ng da trn ch ngt hoc DMA . Cc b nh thi 0 , 1, 2, 3 v 4 c chc nng to rng xung . B nh thi 5 l mt b nh thi bn trong v khng c chn ra . Ngun xung nhp chnh ca h thng c a qua b prescaler 8 bit v qua cc b chia tn sau mi c a n cc b nh thi . Thng qua b chia tn ngun xung nhp cp cho cc b nh thi c th iu chnh tn s r dng . Ngoi chc nng iu ch rng xung ra , cc b nh thi ca S3C44B0X cn c hai b m , khi thay i gi tr ca b nh thi th gi tr c t ng np vo vo qu trnh hot ng ln tip theo n khng lm nh hng hay lm dng hot ng hin ti . Cc b nh thi c kh nng t ng np li gi tr m .

Lng Th Oanh

33

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 18 :S khi cc b nh thi .

Lng Th Oanh

34

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Kit pht trin HT44B0

Hnh 19: kit pht trin HT44B0

Lng Th Oanh

35

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 20: S khi Kit pht trin S nguyn l ca kit HT44B0 c trong ti liu km theo . Mt s c im ca HT44B0 : - Dng vi iu khin S3C44B0X ( Samsung) c nhn vi x l ARM7TDMI . - C 2MB b nh Flash . - Cng Ethernet 10M , dng chp RTL8019AS . - C mn hnh LCD graphics , kch thc 320x240 en trng . - C cng USB 1.1 , dng chp PDIUSBD12 . - C 2 cng RS232 . - C cng IDE . - C loa . - C JTAG g ri chng trnh trn chp . - H tr h iu hnh nhng UCOSII v uClinux . Kit HT44B0 c np sn BIOS ngoi ra nh sn xut cng cung cp m ngun BIOS cho php ngi pht trin c th sa i . BIOS cung cp cho cc lnh cho php thc hin cc ty bin :

Lng Th Oanh

36

H Cng Ngh - HQG H Ni -

Kha lun tt nghip

help ------ Hin th tr gip . ? ------ Tng ng vi lnh help date ------ Hin th v thit lp ngy thng nm cho h thng time ------ Hin th v thit t gi pht giy cho h thng . setweek ------ Thit t tun ca h thng . clock ------ Hin th tn s hot ng ca h thng . setmclk ------ Thit lp tn s ca h thng . setbaud ------ Thit lp tc baud . load ------ Np file ra b nh . comload ------ np file t cng ni tip . prog ------ Ghi chng trnh vo b nh Flash. boot ------ Thc hin khi ng t Flash . ap ------ T ng np file nh chng trnh v ghi vo b nh flash . copy ------ Sao chp b nh Flash t a ngun vo a ch ch . ipcfg ------ Hin th v t a ch IP . run ------ Chy chng trnh t mt a ch trong RAM . move ------ Chuyn d liu trong b nh Flash ra RAM .

Kt ni kit vi my tnh : Cc kt ni gia HT44B0 bo gm kt ni JTAG , kt ni cng RS232 , kt ni Ethernet . Kt ni JTAG : Ghp ni gia chn JTAG ca kit vi cng LPT ca my tnh thng qua cp JTAG . Thng qua kt ni ny , ngi lp trnh c th vit chng trnh sau c th chy trnh v thc hin g ri ngay trn chp . Nh vy m vic pht trin chng trnh nhanh hn v trc quan hn . Kt ni gia cng RS232 ca my tnh vi cng COM1 ca kit : nh kt ni ny ngi s dng dng chng trnh Hyper Terminal ca h iu hnh Windows nh mt mn hnh hin th v nhp d liu , cn trn trn kit qu trnh truyn nhn c iu khin bi BIOS . Kt ni ethernet : BIOS trn HT44B0 h tr mt mini FTP , nn thng qua ethernet ta c th y file t my tnh vo b nh flash sau nh s iu khin ca BIOS s lu file vo mt a ch xc nh trn b nh flash .

Lng Th Oanh

37

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Phn B : Thc nghim Chng 3 . Bin dch m ngun uClinux v xy dng ng dng
Bin dch m ngun h iu hnh uClinux
Qu trnh bin dch nhn uClinux cng ging nh qu trnh bin dch nhn h Linux bnh thng . Trong m ngun uClinux , cc nh pht trin a vo rt nhiu th vin , chng trnh ng dng , driver cho cc thit b nu m bin dch ht ton b m ngun th kch thc file nh ca h iu hnh rt ln v c nhng th vin , chng trnh , hoc cc driver m h thng khng cn n . ph hp cho tng h thng th uClinux h tr cc la chn cu hnh nhng m ngun cn bin dch v cc b x l khc nhau . Khi tin hnh bin dch ngi s dng thit lp cc la chn m khi bin dch xong h iu hnh uClinux h tr .

Mi trng v cc cng c cn bin dch


tin hnh bin dch uClinux to ra file nh ROM , ta cn c mi trng v cc cng c tin hnh bin dch . Trong kha lun ny em s dng mi trng bin dch l mi trng Linux ca h iu hnh RedHat . Cc cng c bin dch c ng gi trong gi arm-elf-tools-20030314.sh . Trc tin ton b cc cng c bin dch ny c ci t vo h iu hnh RedHat . ci t ta vo terminal v g lnh ./ arm-elf-tools-20030314.sh .Khi qu trnh ci t hon tt b cng c ny bao gm : - arm-elf-gcc : Trnh dch C/C++ . - arm-elf-elf2flt : chuyn nh dng file elf sang nh dng file flat. - genromfs : Cng c to nh rom . - binutils : cc cng c nh arm-elf-ld , arm-elf-as , vv y l cc cng c bin dch uClinux cho cc vi iu khin s dng nhn vi x l ARM .

Lu qu trnh bin dch v cc bc tin hnh


a. Lu qu trnh bin dch

Lng Th Oanh

38

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 21: Lu qu trnh bin dch m ngun uClinux b. Cc bc tin hnh Bc 1 : chun b : Xc nh cc ngoi vi phn cng c trn kit tin hnh bin dch driver . Xc nh cc chng trnh ng dng cn dng .

Lng Th Oanh

39

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Bc 2 : Thc hin lnh cu hnh to ra cc mc la chn cu hnh . bt u cu hnh nhn uClinux , ti ca s Terminal ta di con ti th mc uClinux-dist y l th mc chnh cha ton b m ngun ca uClinux . tin hnh cu hnh ta thc hin lnh cu hnh . Lnh cu hnh c th l mt trong ba lnh sau : make config , make menuconfig , make xconfig . Ba lnh ny u c mt mc ch l cu hnh nhn nhng th cn thit bin dch nhn Linux sau l lu vo mt file cu hnh dng text file , chng ch khc nhau v giao din , cch thc trnh by cc la chn cn cu hnh . Cu hnh bng lnh make config : nu thc hin cu hnh bng lnh ny th cc mc lc la chn c th hin di dng mn hnh text .

Hnh 22: Mn hnh cu hnh bng lnh make config. Cu hnh bng lnh make menuconfig : khi thc hin lnh ny cc mc la chn cu hnh c hin th ra di dng cc menu rt thun tin cho vic la chn .

Lng Th Oanh

40

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 23: mn hnh cu hnh bng lnh make menuconfig . Cu hnh bng lnh make xconfig : mn hnh cu hnh hin th di dng hp thoi , c giao din trc quan .

Hnh 24 : Giao din cu hnh bng lnh make xconfig. Bc 3 : La chn cc mc cn cu hnh trn menu chnh Menu chnh c cu trc cc mc chung nh sau :

Lng Th Oanh

41

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 25 : Cc mc chnh trm menu cu hnh . Mc Choose a Vendor/Product selection xut hin danh sch lit k ton b nh sn xut v tn sn phm . Tn sn nh sn xut v sn phm c t trong th mc vendors trong th mc chnh uClinux-dist . Nhim v cn phi lm l la chn nh sn xut v sn phm m cn nhng h iu hnh uClinux vo . Vic chn

Lng Th Oanh

42

H Cng Ngh - HQG H Ni

Kha lun tt nghip

ng nh sn xut v tn sn phm rt quan trng , nu chn sai tn sn phm khi bin dch h iu hnh uClinux v trin khai vo h thng th s khng chy c v cu hnh phn cng ca mi loi vi iu khin s khc nhau . Trong kha lun ny em dng vi iu khin S3C44B0X ca hng Samsung .

Hnh 26: danh sch cc nh sn xut v sn phm Mc Libc Version cho php la chn mt trong hai th vin uC-libc v uClibc . Mc Default all settings : nu chn mc ny th cu hnh ca h iu hnh c chn theo mc nh ( theo ln cu hnh trc ) . - Mc Customize kernel settings : khi chn mc ny th s xut hin mt mn hnh c cc mc chn cn cu hnh cho nhn nh la chn cc driver , cc th vin h tr .. - Mc Customize Vendor/User setting : Khi chn mc ny th cng c mt mn hnh c cc mc la chn cc chng trnh ng dng , cc cng c , cc tr chi Bc 4 : Lu cc la chn cu hnh vo mt file v tin hnh cc lnh to file nh ca h iu hnh . Sau khi lu la chn cu hnh cn thc hin cc lnh sau to file nh : - make dep . - make lib_only. - make user_only - make romfs - make image - make linux - make image

Lng Th Oanh

43

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Kt thc qu trnh bin dch h iu hnh , ton b h iu hnh c to thnh mt file nh c l image.rom , y l file cn nhng vo kit pht trin . File image.rom c lu trong th mc images nm trong th mc chnh uClinux-dist . Cu trc th mc ca h iu hnh uClinux sau khi bin dch ging nh cu trc cc th mc con trong th mc romfs nm trong th mc chnh uClinux-dist .

Nhng h iu hnh vo vi iu khin Thit lp giao tip gia kit v my tnh


a. Ghp ni RS232 : Cng COM1 ca kit giao tip vi cng RS232 ca my tnh . Trong mi trng h iu hnh Windows , chy chng trnh HyperTerminal thc hin giao tip . Qua chng trnh HyperTerminal thit lp cc thuc tnh cng RS232 : - Tc baud : 57600 . - Bit stop :1bit . - Tnh chn l : khng dng chn l . - Bt tay : khng bt tay .

Hnh 27 : Thit lp cng COM.

Lng Th Oanh

44

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Sau kh thc hin kt ni , ta cp ngun cho kit . Nu trn HyperTerminal nhn c nh sau th qu trnh ghp ni thnh cng :

Hnh 28 :Tn hiu nhn c t kit HT44B0 truyn v my tnh . b. Ghp ni ethernet :

Mini Ftp trn kit c t a ch IP l 192.168.0.100 nn trn my tnh t a ch IP cho card mng l 192.168.0.152 . kim tra kt ni ethernet thnh cng hay cha ta thc hin lnh Ping t my tnh ti minu Ftp ca kit . Ti mn hnh HyperTerminal sau khi thc hin thnh cng kt ni cng RS232 , ta thc hin lnh ap

Hnh 29 : Chy lnh ap v ch thc hin lnh ping t my tnh .

Lng Th Oanh

45

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Ti my tnh , ta thc hin lnh ping ti a ch 192.168.0.100 nu qu trnh ping thnh cng th kt ni ethernet thnh cng .

Hnh 30: Kt qu ping thnh cng t my tnh ti kit HT44B0.

a file nh h iu hnh vo vi iu khin


Sau khi bin dch m ngun h iu hnh uClinux , ta thu c file nh h iu hnh uClinux image.rom nm trong th mc uClinux-dist/images . Trn h iu hnh Windows ta s dng chng trnh a file ln mt ftp server a file nh h iu hnh vo kit . File image.rom c t cng chng trnh y file ln ftp server . Ti chng trnh HyperTerminal ta thc hin lnh ap y l lnh cho php c file v ghi vo flash . Thc hin y file ln kit : ti h iu hnh windows : Start->Run -> CMD -> di chuyn ti th mc cha file imgage.rom -> thc hin lnh tftp -i 192.168.0.100 put f:\upload\image.rom . Sau khi thc hin qu trnh , trn kit file image.rom s c lu vo RAM , quay tr li chng trnh HyperTerminal :

Lng Th Oanh

46

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 31: Qu trnh gi v nhn file t my tnh v kit . Tip tc chn n v thc hin lnh prog 10000 c008000 100000 sau chn y thc hin qu trnh ghi file nh h iu hnh t RAM vo b nh flash :

Hnh 32: Chy lnh prog ghi file vo mt a ch ca b nh flash .

Hnh 33: Qu trnh ghi file vo flash thnh cng .

Lng Th Oanh

47

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Lnh prog s thc hin ghi nh h iu hnh vo flash a ch 0x10000 thay v ghi vo a ch 0x00 v a ch ny lu BIOS v Bootloader . i s th ba 0x100000 l s byte c ghi , nu file nh ca h iu hnh ln hn th s ny c tng ln .

3.1.1. Qu trnh khi ng uClinux trn kit pht trin


tin hnh chy h iu hnh uClinux trn kit , cng ti mn hnh HyperTerminal ta thc hin lnh move di chuyn h iu hnh t b nh flash ti b nh RAM , sau thc hin lnh run chy h iu hnh ti mt a ch trn RAM :

. Hnh 34: Lnh di chuyn d liu t flash vo RAM v lnh chy chng trnh .

Lng Th Oanh

48

H Cng Ngh - HQG H Ni Lu qu trnh khi ng :

Kha lun tt nghip

Hinh 35: Lu qu trnh khi ng h iu hnh uClinux Khi hon thnh qu trnh khi ng :

Lng Th Oanh

49

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 36: Mn hnh sau khi khi ng xong h iu hnh uClinux . H iu hnh c gii nn v bt u qu trnh khi ng ( qu trnh khi ng ca c trnh by trong 2.1.4 ) . Khi hon tt qu trnh khi ng , chng trnh HyperTerminal s tr thnh mt chng trnh ging nh chng trnh Terminal trn h iu hnh Linux . Thng qua HyperTerminal ta c th thc thi cc lnh ca Linux :

Hnh 36 : Chy th mt s lnh c bn . uClinux cng c cc lnh c bn ging nh h iu hnh Linux cho PC vi d nh cc lnh : ls , cd , echo , cat v uClinux cng cho php s dng cc lnh theo cu trc ng ng , chy cc lnh shell . H iu hnh uClinux c nhng thnh cng vo kit HT44B0 . Vi iu khin S3C44B0X c h iu hnh v cc ngoi vi

Lng Th Oanh

50

H Cng Ngh - HQG H Ni

Kha lun tt nghip

tr thnh mt my tnh thu nh c th giao tip vi th gii bn ngoi qua cc cng , cho php chy cc chng trnh .

Xy dng ng dng
Cc ng dng c xy dng chy trn mi trng h iu hnh uClinux cng ging nh cc ng dng chy trn mi trng h iu hnh Linux trn PC . Cc chng trnh ng dng giao tip vi cc thit b ngoi vi thng cc driver ca h iu hnh . Chng trnh c th c vit v kin tra trn mi trng Linux trn PC , sau khi c chng trnh chy ng th mi chuyn xung chy trn nn uClinux . Do chng trnh c chy trn mi trng uClinux trn kit nn cc file chng trnh phi chuyn i nh dng t ELF sang FLT ( s dng cng c arm-elf-elft2flt ). Do uClinux c xy dng bng ngn ng C , C++ v s dng cc th vin C nn cc chng trnh a s u c vit bng ngn ng C . Cc bc to chng trnh : To file m ngun v vit m ngun . To Makefile . Bin dch . Vi d to chng trnh n gin in ra mn hnh dng ch Hello world ! bng ngn ng C : To th mc hello trong th mc uClinux-dist/user/ Trong th mc hello to file hello.c c n dung : #include <stdio.h> int main(){ printf(Hello world !\n); return 0; } To file Makefile nm trong cng th mc hello c ni dng: EXEC = hello

OBJS = hello.o CFLAGS += -I. all : $(EXEC) $(EXEC) : $ (OBJS)

Lng Th Oanh

51

H Cng Ngh - HQG H Ni

Kha lun tt nghip

$(CC) $(LDFLAGS) o $@ $(OBJS) $(LDLIBS) romfs : $(ROMFSINST) /bin/$(EXEC) clean : -rm -f $(EXEC) *.elf *.gdb *.o

Tip theo chnh sa thng tin file Makefile trong th mc uClinux-dist/user . Thm dng lnh sau vo file Makefile : dir_$(CONFIG_USER_HELLO) +=hello Chnh sa thng tin file config.in trong th mc uClinux-dist/config . Thm dng lnh sau : mainmenu_option next_comment comment Hello Applications bool hello CONFIG_USER_HELLO endmenu Tin hnh bin dch chng trnh v a chng trnh vo h iu hnh : Trong chng trnh terminal ca Redhat thc hin lnh make menuconfig cu hnh li cc chng trnh ngi dng .

Lng Th Oanh

52

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 37 : Cc la chn cu hnh bin dch chng trnh hello Mt cch khc c th bin dch file m ngun hello.c ra file chy bng cch dng lnh trc tip t terminal ca RedHat : arm-elf-gcc Wl, -eft2flt hello.c o hello

Lng Th Oanh

53

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Hnh 38: kt qu chy chng trnh hello

Cc th vin c cung cp trong Linux u c vit bng ngn ng C , C++ nn rt tin cho qu trnh pht trin ng dng . ng thi h iu hnh uClinux l h iu hnh a nhim , cho php qun l nhiu tin trnh chy ng thi cng mt lc do c th pht trin cc ng dng a lung rt tin li . Khai thc cc c tnh u vit ca vi iu khin S3C44B0X 32 bit hot vi xung nhp ln ti 66MHz v s dng h iu hnh a nhim thi gian thc uClinux c rt nhiu th vin sn c , c th xy dng cc ng dng nh x l nh , ting ni , gii m MP3 , VoIP

Lng Th Oanh

54

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Kt lun
Sau qu trnh hc tp v nghin cu di s gip , ch bo tn tnh ca thy TS. Nguyn Thng Long , cc thy c trong khoa , em hon thnh c kha lun tt nghip vi ti Nghin cu ng dng h iu hnh nhng uClinux trn vi iu khin S3C44B0X . Kha lun ny t c nhng kt qu sau : 1. Nghin cu tm hiu v nhn h iu hnh Linux v uClinux . 2. Tip cn vi dng vi iu khin 32 bit s dng nhn vi x l ARM7TDMI . 3. Nm c phng php cu hnh nhn v bin dch h iu hnh uClinux . 4. Nhng h iu hnh uClinux xung vi iu khin S3C44B0X v xy dng ng dng chy trn nn h iu hnh uClinux . Hng pht trin tip theo ca kha lun l i su vo xy dng cc ng dng v pht trin cc driver trong mi trng h iu hnh uClinux ca cc h thng nhng .

Lng Th Oanh

55

H Cng Ngh - HQG H Ni

Kha lun tt nghip

Cc ti liu tham kho


[1] [2] [3] [4] [5] [6] H Quang Thy , Nguyn Tr Thnh , Nguyn Hi Chu . Gio trnh H iu Hnh Unix - Linux . Daniel P.Bovet & Marco Cesati .Understanding the Linux Kernel . OReilly . First Edition October 2000 . David A Rusling , The Linux Kernel . http://arm.com http://www.uclinux.org . http://docs.blackfin.uclinux.org/doku.php?id=introduction

Lng Th Oanh

56

You might also like