Upload
duong-dinh-tu
View
228
Download
0
Embed Size (px)
Citation preview
7/31/2019 Cong cu GNU
1/48
Hiu hnh thigian thc
7/31/2019 Cong cu GNU
2/48
Tip cn a tc v Tip cn chng trnh n: mt tc v (lung)
Tip cn gn/tip cn sau: 2 tc v Tng qut ha, a tc v l:
Cng gi l cc quy trnh, lung Mi tc vc x l song song
Khng chim ton b ti nguyn x l Cc tc v tng tc ng thi ti cc phn t bn ngoi
iu khin b cm bin, iu khin c cu truyn ng thng quaDMA, b ngt, I/O.
Thng c x l song song
Yu cu Lp lch cho cc tc v Chia x d liu gia cc tc vng thi
2V Quang Dng
7/31/2019 Cong cu GNU
3/48
Cc du hiu ca tc v Cc tc v mi c th khi ng trong khong thi gian
Theo chu k hoc khng theo chu k Tc v c th gm:
Ti nguyn cn thit Cc mc quan trng Quan hu tin Lin kt Gii hn thi gian
Trng thi ca tc v Hot ng
Chun b tc v - ch x l t CPU Hn ch tc v - ch khi c s kin khc tc ng ti qu trnh x l Khng hot ng
3V Quang Dng
7/31/2019 Cong cu GNU
4/48
Quyn u tin
Khng c u tin: tc v khi khi ng s chy
n khi dng lai hoc tc ng ti mt s cngvo/ra
u tin: tc v c th dng li chy tc v
khc Chu su tin v s phc tp trong thc thi C qu trnh lp lch v phn tch Trong khng u tin, cc tc v hot ng do b p
buc
4V Quang Dng
7/31/2019 Cong cu GNU
5/48
Lp lch cho a tc v K hoch lp lch ng
Cc tc v xy ra ng Qu trnh kim tra lch xy ra mi khi c tc vng c hot
ng Khi c tc v mi, trc khi khi ng
Lp lch hot ng cho tc v trc v sau Nu qu trnh lp lch c li, c phng n thay i
Lch nhn c s quyt nh khi khi to
Kt qut c ca lp lch ng
H thng c gng t c thi hn v thi gian hot ng Khng bit khi no gii hn v thi gian xy ra cho n khi gp
deadline hoc tc v kt thc hot ng
5V Quang Dng
7/31/2019 Cong cu GNU
6/48
Thc thi trong hiu hnh thigian thc Nh, nhanh
Ch thi gian thc Nghin cu hiu hnh
Thnh phn ca ngn ng to mi trng Java (embedded real-time Java)
Nhn n hoc nhn nh tch hp Vn chnh
M hnh song song: s kin, lung, lp lch
M hnh b nh: Tnh v ng
Cc m hnh thnh phn khc nu c
6V Quang Dng
7/31/2019 Cong cu GNU
7/48
S so snh ca cc RTOS khcnhau: s thc thi tun hon
7V Quang Dng
Kernel Mode
DeviceDrivers NetworkDrivers
Hardware
I/O Services
TCP/IP Stack
Application Application Application
7/31/2019 Cong cu GNU
8/48
S so snh ca cc RTOS khcnhau: nhn n
8V Quang Dng
User Mode
(protected)
Kernel ModeFilesystems
Device
Drivers
Network
Drivers
Hardware
I/O Managers Graphics
Subsystem
Graphics
Drivers Other.
Application Application Application
Hardware Interface Layer
7/31/2019 Cong cu GNU
9/48
S so snh ca cc RTOS khcnhau: nhn nh tch hp
9V Quang Dng
User Mode
(protected)
Kernel Mode
Device Drivers
Network
Drivers Har
d
w
ar
e
FilesystemManager
Graphics
Drivers
Application
Application
Application
FilesystemDrivers
Device
Manager
Photon
Network
Manager
Kernel (tiny)
7/31/2019 Cong cu GNU
10/48
Hiu hnh thi gian thc linux
Vi iu khin:uClinux - Linux nh (nhn < 512KB) vi
TCP/IP
Embedded PC
RTLinux
RTAI (Real-Time Application Interface)
TinyOS
10V Quang Dng
7/31/2019 Cong cu GNU
11/48
RTLinux
11V Quang Dng
Nhn Linux hot ng di ch u tin nh nht Nhn Linux hot ng theo ch u tin Linux nm bt v lm vic theo cc ch ngt, thng qua cc lnh v ngt
Ch thi gian thc v x l thng tin trong Linux thng qua s phn chia b nh v cc giaodin ca chng trnh
Issues
C ch thi gian thc chy trong cng mt khng gian a chging nh nhn Linux Cc device drivers dnh cho c ch thi gian thc khng th s dng chun c ch ca
Linux
Khng cung cp cc qu trnh qun l ti nguyn Linux drivers c ngt trc tip khi xy r a s c
7/31/2019 Cong cu GNU
12/48
RTAI (Real Time ApplicationInterface) D n m ngun m xy dng trn tng ca RTLinux, v c tng kh nng
ln ng k Linux kernel lm thay i trong qu trnh nm bt hm ngt v lp lch, v c cu
thnh bi Cc nn thi gian thc vi tr nh v c s don cao V cc nn khng theo thi gian thc nh giao din ngi dng
Tch hp gia lp lch cho cc tc v ca nhn, lung x l v cc tin trnh theo ca
cc tc nhn khc Lung x l c bo v bi cc qu trnh tr trong cc i tng lp lch ca
linux
V c bn, th hm ngt l qu trnh by ca cc s kin bn ngoi v cn thit chocc tin trnh x l khc trong Linux S dng HAL (Hardware Abstraction Layer)
V qu trnh x l ng, th mt lp middleware c dng iu khin cc tintrnh gi th tc ca cc RTAI API
12V Quang Dng
7/31/2019 Cong cu GNU
13/48
TinyOS
13V Quang Dng
Khng hn l mt hiu hnh theo quan nim truyn thng
c cu trc ging nh mt tin trnh x l trong hiu hnh
Application = Scheduler+ Graph ofComponents M hnh song hnh s kin v kin trc iu khin
Chia xn ca ngn xp
Lp trnh trnNesC, mt dng ca C
7/31/2019 Cong cu GNU
14/48
S ti cu hnh ca phn mm
Qu trnh cm nhn v hot ng ca networks i hi
mt qu trnh lin tc v hn S pht trin ca phn mm l qu trnh k tha lin tc
Ty bin mi trng h thng
Qu trnh nng cp Sa v loi b li
Ti lp cc bi ton v tin trnh h thng
Ti lp trnh trin khai h thng
iu khin s ti lp trnh l bn cht tt yu ca s bnvng
14V Quang Dng
7/31/2019 Cong cu GNU
15/48
Kin trc h thng
15V Quang Dng
Static Kernel Tru tng ha phn cng v cc tin trnh Thay i sau khi trin khai kh v t Cu trc d liu dnh cho cc module
Dynamic Modules Trnh iu khin, protocols, v cc chng trnh Thay i sau khi trin khai d dng v r C
u trc v v
tr
c l
p
Dynamic
Memory
Message
Scheduler
Dynamic
LinkerKernel
Components
Sensor
Manager
Messaging
I/O
System
TimerRTOS
Services
Radio I2C ADC DeviceDrivers
Tree Routing
Module
Data Collector
Application
Photo-sensor
ModuleDynamically
Loaded modules
Static Small OS Kernel
7/31/2019 Cong cu GNU
16/48
7/31/2019 Cong cu GNU
17/48
B cng c
B cng c sdng trong pht trin ccmc tiu ca phn cng
c sdng trong phm vi xy dngphn mm trn mt h thng sc cit hoc trn mt sh thng khc
c sdng vi cc thit b khc bindch, to thvin, ngn ngmy (compiler, libraries, assembler)
17V Quang Dng
7/31/2019 Cong cu GNU
18/48
Li ch ca b cng c Bt k dn no m cn thit trongxl nhng u cn thit phi ccng c pht trin phn mm
em li li ch trong pht trin hthng nhng mi vi b cng cring bit
18V Quang Dng
7/31/2019 Cong cu GNU
19/48
Vai tr ca b cng c
19V Quang Dng
7/31/2019 Cong cu GNU
20/48
Biu pht trin
20V Quang Dng
Source Source Source
code code code
compiler compiler compiler
Assembly Assembly Assembly
code code code
Assembler Assembler Assembler
object object objectcode code code
Executable codeLinker
Libraries
7/31/2019 Cong cu GNU
21/48
B cng c GNU
GNU l hiu hnh, ging nhUnix(GNUs Not Unix), c pht trintrn 20 nm bi tchc phn mm
tdo (FSF Free SoftwareFoundation) Phn mm GNU c bit ti l tnh
n nh v tin li B cng c GNU l m ngun m
21V Quang Dng
7/31/2019 Cong cu GNU
22/48
Thnh phn ca b cng cGNU Bin dch - gccAssembler - binutils : as
Lin kt - binutils : ld Thvin - glibc G li - gdb
22V Quang Dng
7/31/2019 Cong cu GNU
23/48
7/31/2019 Cong cu GNU
24/48
GNU binutils (GNU Binary Utility)
Binutils l tp hp cc cng c xlnh phn nhassembler, lin kt,disassembler .
Binutils sdng to v thao tcvi m nh phn ca file Thnh phn chnh gm
ld - GNU linker.
as - GNU assembler.
24V Quang Dng
7/31/2019 Cong cu GNU
25/48
Th vin C trong GNU
Bt k h thng ging Unix no u cn thvin
C, xy dng cc tp lnh, qun l tin trnh, bnh
Thvin C c sdng nhcc thvin C khctrong h thng GNU v trong nhn Linux
Thvin C l skt ni trong m ngun, v chegiu cc chc nng c trng ca nhn.
25V Quang Dng
7/31/2019 Cong cu GNU
26/48
GDB GNU Debugger
Cho php xem c tin trnh bntrong ca chng trnh khc trongthc thi
Cho php xem c chng trnhkhc lm g ti thi im dng khncp chng trnh
GDB c thchy trn mi h thngnhUnix v c thtrn Windows
26V Quang Dng
7/31/2019 Cong cu GNU
27/48
Thnh phn ngn ng h tr ca GDB
C
C++
Java
Objective C
27V Quang Dng
7/31/2019 Cong cu GNU
28/48
Bootloader
Bootloader l thnh phn chnh, quan trng khi khi ng
nhn C nhiu loi bootloaders khc nhau c thsdng vi
Linux trong nhiu cu trc phn cng LOIO
GRUB
LinuxBIOS
Redboot
U-boot
Bootloader ca h thng nhng s lm: Khi to phn cng: b vi xl v b nh Khi ng nhn v thc thi nhn (trong mt strng hp cn phi
truyn tham scho nhn linux)
28V Quang Dng
7/31/2019 Cong cu GNU
29/48
V d v bootloader
29V Quang Dng
7/31/2019 Cong cu GNU
30/48
Tng quan v Bootloader
30V Quang Dng
Boot Loader
reset;
;Reset Code;(in assembly)Jmp hw_init
Hw_initMain();Hardware
;Initialization {;(in assembly) /*The C/C++ program start here*/. }Jmp startup
Startup; NoOS/OS Code;startup code;(in assembly)
Call main
7/31/2019 Cong cu GNU
31/48
Tin trnh Bootloader Part 1
Nhy ti a ch 0x00900000
Part 2 Khi to thnh phn phn cng Ci t ch cho CPU
Part 3 Hy b tt c cc hm ngt Copy v khi to dliu tROM sang RAM
Cc thnh phn khng c dliu c khi to vi gi tr Zero Tnh ton khng gian cho khi to ngn xp Khi to con tr trong ngn xp To v khi to b nh ng Thc thi cc cu trc cho cc gi tr ton b (C++) Cho php cc hm ngt
Gi hm main Part 4
Chng trnh m C/C++
31V Quang Dng
7/31/2019 Cong cu GNU
32/48
Xy dng nhn Linux
C 3 kin trc khc nhau v host/target
c sdng cho pht trin h thnglinux nhng: Ci t lin kt
Ci t thit b lu trdi ng Ci t tng
Qu trnh ci t c thlin quan ti mt
hoc nhiu thnh phn, ph thuc vo yucu v phng php pht trin h thng
32V Quang Dng
7/31/2019 Cong cu GNU
33/48
Ci t lin kt ch v ngun c lin kt cnh
vi nhau sdng lin kt vt l Lin kt co ththng qua cng serial hocethernet
Tt c dliu c chuyn qua lin kt
33V Quang Dng
Host Target
*Bootloader*Cross-platformdevelopment *Kernelenvironment
*Root filesystem
7/31/2019 Cong cu GNU
34/48
Ci t lin kt (tip) Nhn c trung chuyn qua ftp cn bng
(TFTP) H thng file gc c thl NFS thay v l
ni lu trti ngun
Lin kt vt l c thsdng cho mcch g li Nhiu h thng nhng cung cp c 2 loi lin kt qua
Ethernet v RS232
34V Quang Dng
7/31/2019 Cong cu GNU
35/48
Ci t thit b lu tr di ng
Thit b lu trc vit bi ngunv s chuyn sang ch, v sdnglm thit b khi ng
35V Quang Dng
Host Target
*Cross-platformdevelopment *Bootloader
environment
*Secondary
bootloader *Kernel
*Root filesystem
7/31/2019 Cong cu GNU
36/48
Ci t thit b lu tr di ng (tip) ch cha h thng khi ng nh nht
Cc phn cn li c lu trti thit b lu tr nhCompactFlash IDE v mt sloi khc
Thay vi dng chp flash cnh, ngun c thcha socketm cc chip flash c thd dng gn vo v tho ra Chp sc lp trnh bng flash programmer ti ngun v s
gn vo socket ti ch
Ci t ny c sdng nhiu trong cc giai on u capht trin h thng nhng
36V Quang Dng
7/31/2019 Cong cu GNU
37/48
Ci t tng
ch c thtcha h thng pht trin vbao gm tt c cc phn mm khi ng,iu khin v pht trin cc phn mmph Ci t ny thng sdng ti cc my workstation, loitrcc phn cng c bn khng phi ca my trm m
la thuc h thng nhng
37V Quang Dng
Target
*Bootloader *Kernel
*Full rootfilesystem *Nativedevelopment
environment
7/31/2019 Cong cu GNU
38/48
Ci t tng
Ci t tng phbin khi pht trin xydng h thng PC mnh trn cu trc cah thng nhng C thsdng chun sn sng sdng ca linux cung
cp cho h thng nhng (off-the-shelf ) Mt khi pht trin xong, h thng hot ng theo trt
txung theo sphn bv mc ch yu cu
i hi xy dng mt h thng gc
filesystems dnh cho n, v c cu hnhkhi h thng khi ng
38V Quang Dng
7/31/2019 Cong cu GNU
39/48
Ci t tng (tip) Mt sc im ring bit tphn cng chy h thng
Linux: Linux i hi ti thiu 32-bit CPU cha hiu khin b nh (MMU) dung lng RAM cn thit cho h thng lm vic Nng lc ti thiu ca h thng I/O i hi nu trong qu trnh pht
trin cn phi tach ring ch v ngun d dng cho kim li
C 3 sci t khc nhau c sdng tkhi ng hthng linux nhng: Trng thi lu trvng chc a Mng
39V Quang Dng
7/31/2019 Cong cu GNU
40/48
Trng thi lu trvngchc
40V Quang Dng
Bootparameter
Kernel Root file system
Bootloader
7/31/2019 Cong cu GNU
41/48
a
41V Quang Dng
0xFFFF0(ROM-BIOS)
Initializing
Boot sector
512bytes
LiLo (Linux
Loader)
bzImage
(Kernel
Image)
MBR
7/31/2019 Cong cu GNU
42/48
Mng
Nhn linux tp trung vo trng thilu trvng chc hoc a, v hthng filesystem gc NFS
Ch c bootloader c tp trung vothit b lu trcc b. Nhn ccp nht thng qua TFTP, v h
thng filesystem gc NFS
42V Quang Dng
7/31/2019 Cong cu GNU
43/48
Nhn linux
43V Quang Dng
User programs
Libraries
User Level
Kernel Level
System Call Interface
file subsystem IPC
buffer Schedulercache Linux
Memorymanagement
character block
device drivers
Hardware control (HAL )
Kernel Level
Hardware Level
7/31/2019 Cong cu GNU
44/48
iu khin thit b c trng ca thit b Khi thit b Giao din mng
44V Quang Dng
7/31/2019 Cong cu GNU
45/48
c trng ca thit b c trng c bn ca thit b l c thtruy
nhp nhl mt chui ca byte Siu khin thng thc thi ti thiu
cc chc nng nhm, ng, c, v ghiyu cu h thng
Giao din console (/dev/console) v cngni tip (/dev/ttyS0) l nhng v d cac trng thit b
c trng ca thit b l cc knh dliu,m c thtruy cp lin tip
45V Quang Dng
7/31/2019 Cong cu GNU
46/48
Khi thit b
Ging nhc trng thit b,khi thit b l struy cp cafilesystem vo thmc /dev.
46V Quang Dng
7/31/2019 Cong cu GNU
47/48
Giao din mng
Bt k sthc hin trn mng ctin hnh thng qua giao din, thitb c thtrao i dliu vi cc hostkhc
Giao din mng c thc nhnnhn nhhng i (Queue)
Unix cung cp struy cp ti giaodin thng qua tn truy cp ringdanh cho chng (nheth0).
47V Quang Dng
7/31/2019 Cong cu GNU
48/48
Giao din ngi s dng
QT & QT EmbeddedQt l thvin lp C++ dnh cho pht
trin GUI chy trn Unix, Windows
Qt/Embedded l cng linux nhng caQt, l shon thin ca GUI trn C++v nn pht trin dnh cho Linux nhng
48V Quang Dng