Professional Documents
Culture Documents
2010
H iu hnh T-kernel
Tng quan v h thng Lp T-Kernel Lp cc chng trnh ng dng Lp T-Monitor Bin dch v lin kt chng trnh chy trn T-Kernel Cu trc mt trnh ng dng v cc hm qun l tc v Qun l thit b v giao tip qun l thit b Load Bitmap Keyboard/Pointer Device Cc hm qun l s kin
BK
TP.HCM
dce
2010
dce
2010
T-Kernel/OS
Hm iu khin task Hm giao tip gia cc task Hm qun l b nh Hm qun l cc Exception/interrupt Hm qun l thi gian Hm qun l Subsystem
Embedded system
dce
2010
T-Kernel/SM
Hm qun l b nh ca h thng Hm qun l khng gian a ch Hm qun l cc thit b Hm qun l cc Interrupt Hm h tr truy xut I/O Hm qun l ngun Hm qun l cc thng tin cu hnh ca h thng
2010, Phan Dinh Khoi 4
Embedded system
dce
2010
T-Kernel/DS
Hm tham kho cc trng thi bn trong ca Kernel Trace
Embedded system
dce
2010
Phn mm T-Kernel-based
Chy trong mi trng c s dng MMU Thng tr trong b nh h thng c ti bi lnh lodspg Gii phng khi b nh bi lnh unlspg Phn ln chng trnh ng dng dng ny
Phn mm process-based
Chy dng T-Kernel Extension process Khng trc tip s dng cc hm ca T-Kernel
Embedded system 2010, Phan Dinh Khoi 6
dce
2010
Lp ng dng
Embedded system
dce
2010
T-Monitor
Chng trnh gim st c bn, thng tr trong ROM Cung cp cc hm
H thng
Khi to phn cng, khi ng h thng
Debug
Truy xut b nh, thanh ghi, I/O Disassembly Breakpoint, trace
H tr chng trnh
Embedded system 2010, Phan Dinh Khoi 8
dce
2010
T-Monitor: hm h thng
Khi to phn cng
Khi ng cc phn cng c bn khi boot Chn on li phn cng
Khi ng h thng
Tm a boot hoc boot t ROM Ch lnh nhp nu h thng ang ch khi ng monitor
iu khin exception/interrupt/trap
Nm gi bng vector
Embedded system 2010, Phan Dinh Khoi 9
dce
2010
Embedded system
10
dce
2010
Embedded system
11
dce
2010
Embedded system
12
dce
2010
Embedded system
13
dce
2010
Embedded system
14
dce
2010
Embedded system
15
dce
2010
Embedded system
16
dce
2010
Embedded system
17
dce
2010
Embedded system
18
dce
2010
Embedded system
19
dce
2010
Khi nim
task
n v lun l c bn ca mt chng trnh ang thc thi Chng trnh c 1 task thc thi tun t Chng trnh c 2 task tr ln th cc task thc thi song song Mi task c u tin ban u v u tin hin ti Mi task c 2 vng stack: stack h thng v stack ngi dng
Dispatcher
Chuyn i s thc thi gia cc task
Scheduler
Quyt nh task no s c thc thi k tip Hin thc trong phn x l system call hay trong dispatcher
Embedded system 2010, Phan Dinh Khoi 20
dce
2010
Khi nim
Cc trng thi h thng
Embedded system
21
dce
2010
Khi nim
Cc trng thi h thng
Transient
Cc system call ca OS ang c thc thi Khng c ngt qung gia chng Ngi dng khng thy c cc trng thi bn trong
Task-independent portion
Cc trnh x l interrupt/event ang thc thi Interrupt lun c u tin cao hn cc task Khng cho php chuyn i thc thi gia cc task khi ang trong trng thi ny V d: interrupt lng nhau
Embedded system 2010, Phan Dinh Khoi 22
dce
2010
Khi nim
Cc trng thi h thng
Task-independent portion
Embedded system
23
dce
2010
Khi nim
Cc trng thi h thng
Quasi-task portion
Cc trnh x l SVC m rng, cc system call m rng ang thc thi Cc trnh x l ny khng i hi u tin cao hn task Qu trnh chuyn i thc thi ca task xy ra bnh thng
Embedded system
24
dce
2010
Embedded system
25
dce
2010
Embedded system
26
dce
2010
tk_cre_tsk
Cc hm qun l task
ID tskid = tk_cre_tsk ( T_CTSK * pk_ctsk ); Khi to 1 task, gn 1 ID cho n Cp pht TCB (Task Control Block) Task c to ra trng thi DORMANT Tr v: ID task hoc m li (tham kho ti liu) Mt s thng s quan trng ca T_CTSK:
VP exinf Extended information
Thng s do ngi dng t thm vo PRCTSK_EXINF nu mun truy xut file trong task
INT stksz Kch thc user stack OS cp cho task (bytes) FP task Con tr ch n hm hin thc task
Embedded system 2010, Phan Dinh Khoi 27
dce
2010
Cc hm qun l task
tk_cre_tsk
Embedded system
28
dce
2010
Embedded system
29
dce
2010
Cc hm qun l task
Cp bo v vng nh
T-Kernel c 4 cp bo v b nh, t 0-3 0 cao nht, 3 thp nht Task cp bo v no ch c th truy xut vng nh ngang cp hoc thp hn
Embedded system
30
dce
2010
Cc hm qun l task
Mi task c mt stack h thng v 1 stack ngi dng (user stack)
Stack h thng c cp bo v 0 Stack ngi dng c cp bo v quy nh bi tham s TA_RNGn Bin cc b trong task c cp pht trn vng nh ca stack ngi dng Bin ton cc hoc static c cp pht trong vng nh ca chng trnh, khng chim stack Bin cp pht ng (malloc) khng chim stack
Embedded system
31
dce
2010
Cc hm qun l task
ER ercd = tk_sta_tsk (ID tskid, INT stacd); Cho php task c tskid to bt u thc thi Chuyn trng thi task t DORMANT READY
tk_sta_tsk
tk_ext_tsk
void tk_ext_tsk ( ); Kt thc task triu gi bnh thng Chuyn task sang trng thi DORMANT
tk_exd_tsk
void tk_exd_tsk ( ); Kt thc task triu gi bnh thng Xa task ang trng thi DORMANT khi b nh
Embedded system 2010, Phan Dinh Khoi 32
dce
2010
Cc hm qun l task
ER ercd = tk_ter_tsk (ID tskid); Kt thc s thc thi ca task ch nh bi tskid Chuyn task sang trng thi DORMANT
tk_ter_tsk
tk_del_tsk
ER ercd = tk_del_tsk (ID tskid); Xa task c ch nh bi tskid khi b nh Task phi ang trng thi DORMANT
tk_chg_pri
ER ercd = tk_chg_pri(ID tskid, PRI tskpri); Thay i u tin hin ti ca task
Embedded system 2010, Phan Dinh Khoi 33
dce
2010
Cc hm qun l task
ER ercd = tk_chg_slt(ID tskid, RELTIM slicetime);
tk_chg_slt
Thay i time slice ca task Time slice c s dng khi nh thi round robin gia cc task c cng u tin
tk_inf_tsk
ER ercd = tk_inf_tsk(ID tskid, T_ITSK * pk_itsk, BOOL clr);
tk_ref_tsk
ER ercd = tk_ref_tsk ( ID tskid, T_RTSK * pk_rtsk ) ;
dce
2010
Tn thit b
Mi thit b c t tn theo quy nh ca driver cho thit b khi ng k vi h thng Tn thit b l duy nht cho thit b Chui ti a 8 k t theo quy tc
Type: loi thit b (a-z, A-Z)
pc, hd, fd, screen
dce
2010
Qun l thit b
Thuc tnh ca thit b
Kiu ATR (32 bit)
16 bit cao: thuc tnh ring ca mi thit b 16 bit thp: c nh ngha bi h thng
#define TD_PROTECT 0x8000 /* P: write protection */ #define TD_REMOVABLE 0x4000 /* R: removable media */ #define TD_DEVKIND 0x00ff /* K: device/media kind */ #define TD_DEVTYPE 0x00f0 /* device type */ #define TDK_UNDEF 0x0000 /* undefined/unknown */ #define TDK_DISK 0x0010 /* disk device */ #define TDK_DISK_UNDEF 0x0010 /* miscellaneous disk */ #define TDK_DISK_RAM 0x0011 /* RAM disk (used as main memory) */ #define TDK_DISK_ROM 0x0012 /* ROM disk (used as main memory) */ #define TDK_DISK_FLA 0x0013 /* Flash ROM or other silicon disk */ #define TDK_DISK_FD 0x0014 /* floppy disk */ #define TDK_DISK_HD 0x0015 /* hard disk */ #define TDK_DISK_CDROM 0x0016 /* CD-ROM */
Hu ht cc thit b l TDK_UNDEF
Embedded system 2010, Phan Dinh Khoi 36
dce
2010
Qun l thit b
Application interface
Cc hm SVC m rng Qun l bi T-Kernel/SM Khng th gi t task-independent portion, trong khi ang dispatch hoc interrupt ang b v hiu
Embedded system
37
dce
2010
Application interface
Nhc li quy trnh truy xut file
M file
FILE *fopen(const char *filename, const char *mode);
ng file
int fclose(FILE *fp);
ng thit b
ER tk_cls_dev ( ID dd, UINT option )
Embedded system 2010, Phan Dinh Khoi 38
dce
2010
Embedded system
39
dce
2010
Embedded system
40
dce
2010
Tr v: request ID hoc m li
Embedded system
41
dce
2010
Tr v: request ID hoc m li
Embedded system
42
dce
2010
Nhiu task khng th cng i s hon thnh ca cng mt request ID ti mt thi im.
Embedded system 2010, Phan Dinh Khoi 43
dce
2010
Embedded system
44
dce
2010
Embedded system
45
dce
2010
Embedded system
46
dce
2010
Cc hm qun l thit b
Embedded system
47
dce
2010
Cc hm qun l thit b
INT tk_sus_dev (UINT mode) INT tk_get_dev (ID devid, UB *devnm) ID tk_ref_dev (UB *devnm, T_RDEV *rdev) ID tk_oref_dev (ID dd, T_RDEV *rdev) INT tk_lst_dev (T_LDEV *ldev, INT start, INT ndev) INT tk_evt_dev (ID devid, INT evttyp, VP evtinf)
Embedded system
48
dce
2010
DEVCONF
VIDEOMODE mode [pmode] [w] [h] [pw] [ph] Dng lnh devconf [/att_name] item [new_value | @] trn CLI
#include <device/screen.h>
Embedded system 2010, Phan Dinh Khoi 49
dce
2010
(239,319)
Embedded system
50
dce
2010
Embedded system
51
dce
2010
SCREEN DN_SCRBMP
Embedded system
52
dce
2010
Embedded system
53
dce
2010
Embedded system
54
dce
2010
SCREEN Cc hm th vin h tr
int in_rect(int x, int y, RECT *r)
Kim tra im (x,y) c nm trong vng r khng Tr v T/F
void draw_line (int x1, int y1, int x2, int y2, int c, BMP *p_bmp)
V mt ng thng ni 2 im (x1,y1), (x2,y2), mu c
void fill_rect(int x1, int y1, int x2, int y2, int c, BMP *p_bmp)
V mt hnh ch nht c 2 nh cho (x1,y1), (x2,y2) v t mu c
dce
2010
Embedded system
56
dce
2010
dce
2010
kbpd - DN_KEYMAP
Embedded system
58
dce
2010
kbpd - DN_KEYMAP
Scancode ca cc nt nhn trn T-Engine
dce
2010
Embedded system
60
dce
2010
Embedded system
61
dce
2010
Embedded system
62
dce
2010
Embedded system
63