Upload
nguyen-huu-dat
View
225
Download
0
Embed Size (px)
Citation preview
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
1/56
Mc lc
M u ...........................................................................2Phn A : L thuyt chung ............................................3Chng 1 . H iu hnh nhng uClinux ...................3
Nhn h iu hnh Linux ...........................................................................................3Lch s nhn h iu hnh Linux ...........................................................................3T chc ca nhn h iu hnh Linux ...................................................................4T chc th mc ...................................................................................................6
H iu hnh nhng uClinux ......................................................................................7
Qu trnh pht trin h iu hnh nhng uClinux ...................................................8Kin trc h iu hnh uClinux ..............................................................................9Cc th vin s dng pht trin h iu hnh uClinux ......................................9Driver ca cc ngoi vi .......................................................................................10M ngun h iu hnh uClinux ..........................................................................11
Chng 2 . Vi iu khin S3C44B0X v kit phttrin .............................................................................13
Vi iu khin S3C44B0X ........................................................................................13Cc c im ca vi iu S3C44B0X ..................................................................13
S chn ...........................................................................................................18S khi ............................................................................................................19Chc nng mt s khi chnh ...............................................................................20
Kit pht trin HT44B0 .............................................................................................35
Phn B : Thc nghim ................................................38Chng 3 . Bin dch m ngun uClinux v xy
dng ng dng ............................................................38Bin dch m ngun h iu hnh uClinux ..............................................................38
Mi trng v cc cng c cn bin dch ........................................................38Lu qu trnh bin dch v cc bc tin hnh ................................................38
Nhng h iu hnh vo vi iu khin ....................................................................44Thit lp giao tip gia kit v my tnh ................................................................44a file nh h iu hnh vo vi iu khin ........................................................46
Xy dng ng dng .................................................................................................51
Kt lun .......................................................................55Cc ti liu tham kho ...............................................56
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
2/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 adng 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 viiu 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 2
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
3/56
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 liv 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 phinbn 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 3
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
4/56
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 htr 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 cngcng 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 4
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
5/56
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 bngcch 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 cthng 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 5
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
6/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- B qun l b nh ( Memory Manager - MM) :
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 vi640KB. 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 mcn 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 mcCc 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 6
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
7/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Th mc ./dev : Th mc ny cha cc file thit b .
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 ngiqun 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 trnhfsck, 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 filed 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 7
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
8/56
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 truynthng . 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 ccng 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 8
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
9/56
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 nhColdFire , 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 ngdng . 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 nhpht 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 9
http://www.uclinux.org/http://www.uclinux.org/8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
10/56
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 viDriver 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 ngdng 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
11/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- Name tn driver .
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-dist-
YYYYMMDD.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 bnnhn 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 htr .
- 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
http://www.uclinux.org/http://www.uclinux.org/8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
12/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
13/56
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 phncng . 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 cbit nm r phn cng s gip cho qu trnh cu hnh h iu hnh uClinux , vitdriver 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 khinS3C44B0X 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
ARMsau 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 S3C44B0X2.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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
14/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- Tch hp b nhn bng phn cng 32x8 bit .
- S dng kin trc bus SAMBA ( SAMSUNGs ARM CPU Embedded Micro-
controller Bus Architecture ) lm gim cng sut tiu th ca vi iu khin .
2.1.1.2. Qun l h thng :
- 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 .
2.1.1.3. B nh cache v SRAM ni :
- 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 .
2.1.1.4. B qun l Clock v ngun :
- Vi iu khin tiu th cng sut thp .
Lng Th Oanh 14
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
15/56
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 .
2.1.1.5. Ngt ca vi iu khin :
- 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 .
2.1.1.6. Timer c iu ch rng xung :
- 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 .
2.1.1.7. ng h thi gian thc RTC ( Real Time Clock ) :
- 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 .
2.1.1.8. Cc IO Port :
Lng Th Oanh 15
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
16/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- 8 port ngt bn ngoi .
- 71 port I/O .
2.1.1.9. UART :
- 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 .
2.1.1.10. B iu khin DMA Direct Memory Access :
- 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 .
2.1.1.11. B bin i A/D :
- 8 knh ADC .- Tc ly mu ti a 100KSPS/10-bit .
2.1.1.12. Khi iu khin LCD :
- 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
17/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- 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 .
2.1.1.13. Watchdog timer :
- C Watchdog timer 16 bit .
- C yu cu ngt hoc khi ng li h thng sau mt khong thi gian .
2.1.1.14. Giao tip bus IIC :
- 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) .
2.1.1.15. Giao tip bus IIS :- 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 .
2.1.1.16. Truyn ni tip ng b SIO ( Synchronous Serial I/O ) :
- 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 .
2.1.1.17. Tn s hot ng ca h thng :
Tn s ln ti 66 MHz .
2.1.1.18. Di in p cp cho vi iu khin :
Lng Th Oanh 17
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
18/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
- Cung cp cho nhn vi x l l 2.5V .
- Cung cp cho cc cng vo ra l 3V 3.6V .
S chn
Hnh 4 : S chn ca vi iu khin S3C44B0X
Lng Th Oanh 18
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
19/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
S khi
Hnh 5: S khi vi iu khin S3C44B0X
Lng Th Oanh 19
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
20/56
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 lutr 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
21/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Hnh 6 : S khi ca li vi x l ARM7TDMI.
Lng Th Oanh 21
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
22/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Hnh 7 : Cc khi logic ca ARM7TDMI.
Lng Th Oanh 22
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
23/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
24/56
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 registerset ):
Trong trng thi ARM , 16 thanh ghi chung v mt hoc hai thanh ghi trngthi 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
25/56
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-stateregisterset) :
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 thanhghi 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
26/56
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 trnhLi 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
27/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
28/56
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 thngv 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
29/56
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
a ch Chc nng R/W Gi tr mc inh
PCONA 0x01D20000 Cu hnh chn cng A R/W 0x3ff PDATA 0x01D20004 Thanh ghi d liu cng A R/W Khng nh trcPCONB 0x01D20008 Cu hnh chn cng B R/W 0x7ff PDATB 0x01D2000C Thanh ghi d liu cng B R/W Khng nh trcPCONC 0x01D20010 Cu hnh chn cng C R/W 0xAAAAAAAAPDATC 0x01D20014 Thanh ghi d liu cng C R/W Khng nh trcPUPC 0x01D20018 Cu hnh tr ko cng C R/W 0x0PCOND 0x01D2001C Cu hnh chn cng D R/W 0x0000PDATD 0x01D20020 Thanh ghi d liu cng D R/W Khng nh trcPUPD 0x01D20024 Cu hnh tr ko cng D R/W 0x0
PCONE 0x01D20028 Cu hnh chn cng E R/W 0x0000PDATE 0x01D2002C Thanh ghi d liu cng E R/W Khng nh trcPUPE 0x01D20030 Cu hnh tr ko cng E R/W 0x0PCONF 0x01D20034 Cu hnh chn cng F R/W 0x0000PDATF 0x01D20038 Thanh ghi d liu cng F R/W Khng nh trcPUPF 0x01D2003C Cu hnh tr ko cng F R/W 0x0PCONG 0x01D20040 Cu hnh chn cng G R/W 0x0000PDATG 0x01D20044 Thanh ghi d liu cng G R/W Khng nh trcPUPG 0x01D20048 Cu hnh tr ko cng G R/W 0x0
Lng Th Oanh 29
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
30/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
31/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
32/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
33/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Hnh 17: S khi b iu khin BDMA.
3.1.4.5. 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 chocc 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
34/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Hnh 18 :S khi cc b nh thi .
Lng Th Oanh 34
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
35/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Kit pht trin HT44B0
Hnh 19: kit pht trin HT44B0
Lng Th Oanh 35
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
36/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
37/56
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 HT44B0bo 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 trnhHyper 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
38/56
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 hthng 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 dchc 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
39/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
40/56
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 Terminalta di con ti th mc
uClinux-disty l th mc chnh cha ton b m ngun ca uClinux . tin hnhcu 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
41/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
42/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
43/56
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
- McLibc 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
44/56
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 trnhHyperTerminal thc hin giao tip .
Qua chng trnhHyperTerminalthit 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
45/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Sau kh thc hin kt ni , ta cp ngun cho kit . Nu trnHyperTerminal
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 chIPl 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 hnhHyperTerminalsau 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
46/56
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 trnhHyperTerminalta thc hin lnh ap y l lnh cho php cfile 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 trnhHyperTerminal:
Lng Th Oanh 46
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
47/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
48/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Lnhprogs 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 ctng 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
49/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Lu qu trnh khi ng :
Hinh 35: Lu qu trnh khi ng h iu hnh uClinux
Khi hon thnh qu trnh khi ng :
Lng Th Oanh 49
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
50/56
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
HyperTerminals tr thnh mt chng trnh ging nh chng trnh Terminaltrn
h iu hnh Linux . Thng quaHyperTerminalta 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
51/56
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 ccchng 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
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
52/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
53/56
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 cchdng lnh trc tip t terminal ca RedHat :
arm-elf-gcc Wl, -eft2flt hello.c o hello
Lng Th Oanh 53
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
54/56
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 vixung 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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
55/56
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
8/4/2019 [Laptrinh.vn]-H iu hnh nhng uClinux
56/56
H Cng Ngh - HQG H Ni Kha lun tt nghip
Cc ti liu tham kho
[1] H Quang Thy , Nguyn Tr Thnh , Nguyn Hi Chu . Gio trnh H iuHnh Unix - Linux .
[2] Daniel P.Bovet & Marco Cesati .Understanding the Linux Kernel. OReilly .
First Edition October 2000 .
[3] David A Rusling , The Linux Kernel .
[4] http://arm.com
[5] http://www.uclinux.org .
[6] http://docs.blackfin.uclinux.org/doku.php?id=introduction