View
246
Download
3
Category
Preview:
Citation preview
Hiroaki Takada
RTOS
2015620
1
SPFRTOS
NPO TOPPERS
Email: hiro@ertl.jp URL: http://www.ertl.jp/~hiro/
ET TOPPERS
Hiroaki Takada
AGENDATOPPERS TOPPERSITRON TOPPERS
SPF
RTOS RTOSRTOS/SPF RTOS
RTOS
TOPPERS/HRP2API
2
SPFRTOS
Hiroaki Takada
TOPPERS
3
SPFRTOS
Hiroaki Takada
TOPPERS? ITRON
LinuxOS!
ITRONOS OS
20039NPO
4
SPFRTOS
Hiroaki Takada
NPO TOPPERS
5
SPFRTOS
22
WG
WG
TECS WG
WG
WG
Hiroaki Takada
ITRON
6
SPFRTOS
! OS
!1
8
.
8
%
1
2
.
0
%
1
7
.
4
%
2
7
.
8
%
Hiroaki Takada 7
SPFRTOS
Hiroaki Takada
ITRON 204ITRON
ITRON4.0OS
8
SPFRTOS
1984 1987 1989 1993 1999 2002
ITRON
ITRON1
8-bit, 16-bitMCU
ITRON2
ITRONver. 2
ITRON3.0
ITRON4.0
/PX1.0
32-bit MPU
Hiroaki Takada
ITRON OS
!
/ 8-bit64-bit
OS
/
9
SPFRTOS
Hiroaki Takada
ITRON ITRONRTOS
ITRON
10
SPFRTOS
AV/ STB PDA
/OA DVDFAX
/FA/
Hiroaki Takada
TOPPERS TOPPERS/JSPTOPPERS/FI4 TOPPERS/ATK1Automotive 1 TOPPERS/FDMPTOPPERS/HRP
TOPPERS/ASPTOPPERS/SSP TOPPERS/FMPTOPPERS/HRP2 TOPPERSTTSP
AUTOSAR TOPPERS/ATK2Automotive 2 TOPPERS/A-COMSTACKTOPPERS/A-WDGSTACK TOPPERS/A-RTEGEN
11
SPFRTOS
Hiroaki Takada
TINETFatFs for TOPPERS CAN/LIN TOPPERS/ECNLECHONET Lite RLLRemote Link LoaderDLMDynamic Loading Manager
TECSTOPPERS SafeGOS EV3RTLEGO Mindstorms EV3SPF TLVTraceLogVisualizerTOPPERS Builder
123 ETTOPPERS
12
SPFRTOS
Hiroaki Takada
TOPPERS TOPPERS
GNU GPLBSD
13
SPFRTOS
Hiroaki Takada
ASTRO-H (JAXA)
JAXA
()
14
SPFRTOS
SoftBank 945SH
PM-A970()
IPSiO GX e3300 ()
UA-101 (Roland)
H-IIBJAXA)
()
OSP-P300()
Hiroaki Takada
TOPPERS3ITRON RTOSAUTOSAR OS
TECSTOPPERS
SPF SPFAUTOSAR SPFSpaceWire OS SafeGA-SafeG
ETSPF
15
SPFRTOS
SPF
Hiroaki Takada
TOPPERS
16
2007 20132000
1 2 3
ASP Safety
ASP
HRP2
ATK2AUTOSAR
ATK1OSEK/VDX
ASP33
3/
HRP3
JSPITRON4.0
2020
ATK3?
HRP
FDMP
2004 2010
FI4ITRON4.0
ITRON
SSP
TECS
SPFRTOS
Hiroaki Takada
17
SPFRTOS
Hiroaki Takada
CPSIoT
=
18
SPFRTOS
Hiroaki Takada
CMMISPICE
!
OS
19
SPFRTOS
Hiroaki Takada
20
SPFRTOS
Hiroaki Takada
UniPhier LSI
OS
AUTOSAR http://www.autosar.org/ JASPAR http://www.jaspar.jp/
21
SPFRTOS
Hiroaki Takada
AUTOSAR (AUTomotive Open System ARchitecture)
2003
infrastructure 2015
2006 Release 4.02010 Release 4.2 Revision 1 100110
22
SPFRTOS
BMW Daimler PSA Peugeot CitroenBosch Ford Continental GM Volkswagen
Hiroaki Takada
AUTOSARAUTOSAR
SW-CVirtual Functional Bus
ECU
ECU
RTEBSW
23
SPFRTOS Virtual Functional Bus
V2.0.0 R4.0 Rev 1
ECU I
Virtual Functional Bus
AU
TOSA
RSW
-C1
AU
TOSA
RSW
-C2
AU
TOSA
RSW
-C3
AU
TOSA
RSW
-Cn...
ECU II
AU
TOSA
RSW
-C1
AU
TOSA
RSW
-C2
AU
TOSA
RSW
-C3
ECU m
AU
TOSA
RSW
-Cn
RTE
Basic Software
RTE
Basic Software
RTE
Basic Software
...
VFB view
Mapping
System ContraintDescriptionECU
DescriptionsTool supporting deployment
of SW components
Gateway
SW-CDescription
SW-CDescription
SW-CDescription
SW-CDescription
Figure 2.2: Detailed view on the activity Configure System
In AUTOSAR, an application is modeled as a composition of interconnected components. This is illustrated in the top half of Figure 2.2 (labeled JVFB viewK). The Jvirtual functional busK is the communication mechanism that allows these components to interact. In a design step called JConfigure SystemK, the components are mapped on specific system resources (ECUs). Thereby, the virtual connections between the components are mapped onto local connections (within a single ECU) or on network-technology specific communication mechanisms (such as CAN or FlexRay frames). Finally, the individual ECUs in such a system can be configured. The concrete interface between the components and the rest of the system on an ECU is called the Run-Time Environment (RTE), which is defined in [Specification of RTE]. A component encapsulates complete or partial automotive functionality. Components consist of an implementation and of an associated formal software-component description (defined in [SW-C Template]). The concept of the virtual functional bus allows for a strict separation between applications and infrastructure. The software components implementing the application are largely independent of the communication mechanisms through which the component interacts with other components or with hardware (such as sensor or actuators). This fulfills AUTOSARUs goal of relocatability (also see [Main Requirements]). With this the complete communication of a system can be specified including all communication sources and sinks. The VFB can therefore be used for plausibility checks concerning the communication of software components. The communication
9 of 74 Document ID 056: AUTOSAR_EXP_VFB - AUTOSAR Confidential -
AUTOSAR Virtual Function Bus 2.0.0
Hiroaki Takada
Runtime Environment (RTE) SW-CSW-CBSW SW-CBSWAPI SW-CSW-CBSW
RTE
AUTOSAR
Basic Software (BSW) OS++
24
SPFRTOS
AUTOSAR Virtual Function Bus 3.0.0
Virtual Functional Bus V3.0.0
R4.1 Rev 1
9 of 101 Document ID 056: AUTOSAR_EXP_VFB - AUTOSAR Confidential -
ECU I
Virtual Functional Bus
AUTOSAR SW-C 1
AUTOSAR SW-C 2
AUTOSAR SW-C 3
AUTOSAR SW-C n...
ECU II
AUTOSAR SW-C 1
AUTOSAR SW-C3
AUTOSAR SW-C 2
ECU n
AUTOSAR SW-C n
RTEBasic
Software
RTEBasic
Software
RTEBasic
Software
...
System Constraint DescriptionECU
Descriptions
Tool Supporting development of SW components
Gateway
SW-CDescription
SW-CDescription
SW-CDescription
SW-CDescription
ECU Description
ECU Description
Flex Ray CAN
Figure 2.2: Detailed view on the activity Configure System
In AUTOSAR, an application is modeled as a composition of interconnected components. This is illustrated in the top half of Figure 2.2 (labeled VFB view). The virtual functional bus is the communication mechanism that allows these components to interact. In a design step called Configure System, the components are mapped on specific system resources (ECUs). Thereby, the virtual connections between the components are mapped onto local connections (within a single ECU) or on network-technology specific communication mechanisms (such as CAN or FlexRay frames). Finally, the individual ECUs in such a system can be configured. The concrete interface between the individual components and between the components and the Basic Software (BSW) [5][4] is called the Run-Time Environment (RTE) [7] A component encapsulates complete or partial automotive functionality. Components consist of an implementation and of an associated formal software-component description (defined in the Software Component Template specification [6]). The
Hiroaki Takada
RTOS
25
SPFRTOS
Hiroaki Takada
?JIS
!
26
SPFRTOS
Hiroaki Takada
RTOS (OS) ? OS OS
OS
RTOS OS
27
SPFRTOS
Hiroaki Takada
OSOSI/O I/O
I/O
!
28
SPFRTOS
Hiroaki Takada
RTOS
RTOS
RTOS
OS
29
SPFRTOS
Hiroaki Takada
RTOS
OS
30
SPFRTOS
OS
API
OS
API
API
!
Hiroaki Takada
SPF
SPF
31
SPFRTOS
APIPOSIXAUTOSARRTE
API
API
Hiroaki Takada
RTOS/SPF
/ // RTOS
OSRTOS/SPF
GUI
32
SPFRTOS
Hiroaki Takada
1
1
33
SPFRTOS
!
Hiroaki Takada
OS
RTOS
OSUNIX/Linux
34
SPFRTOS
Hiroaki Takada
! RTOS RTOS
FCFSFirst Come First Served
! OS
35
SPFRTOS
Hiroaki Takada
/
RTOS
36
SPFRTOS
Hiroaki Takada
1015
1100
RTOS 10
5201
37
SPFRTOS
Hiroaki Takada
RTOS 2
10
38
SPFRTOS
Hiroaki Takada
RTOS
! RTOS
39
SPFRTOS
Hiroaki Takada
RTOS
(DORMANT)
!
40
SPFRTOS
(RUNNING) (READY)
Hiroaki Takada
1
41
SPFRTOS
( )
{
A;
A;
B;
B;
}
Hiroaki Takada
!
42
SPFRTOS
Hiroaki Takada
RTOS
1/ /!
!
/ Condition Variable
43
SPFRTOS
Hiroaki Takada
RTOS
or or 11or n1 or nn
or or
or or
or or
44
SPFRTOS
Hiroaki Takada
or or or
1/ FIFO or
/ FIFO or
/OSEK/VDXunqueued message
! RTOS
45
SPFRTOS
Hiroaki Takada
OS (Static Operating System)! OS
OS
OSOS ITRON
OSEK/VDXOSAUTOSAR OSOSAPI
OS
RAM
46
SPFRTOS
Hiroaki Takada
1
ITRONAPI OSEK/VDXOILOSEK Implementation
Language AUTOSARXML
2 GUI
3 C
47
SPFRTOS
Hiroaki Takada
RTOS
48
SPFRTOS
Hiroaki Takada
RTOSRTOS
RTOS RTOS RTOS
RTOS RTOS! RTOS
49
SPFRTOS
Hiroaki Takada
RTOS
50
SPFRTOS
Hiroaki Takada
OS
51
SPFRTOS
RTOS
Hiroaki Takada
!
52
SPFRTOS
Hiroaki Takada
!
I/O
53
SPFRTOS
Hiroaki Takada
54
SPFRTOS
Hiroaki Takada
QoSQuality of Service
55
SPFRTOS
Hiroaki Takada
vs.
RTOS
1n
56
SPFRTOS
Hiroaki Takada
deadline
57
SPFRTOS
Hiroaki Takada
()
58
SPFRTOS
Hiroaki Takada
TOPPERS/HRP2API
59
SPFRTOS
Hiroaki Takada
TOPPERSTOPPERS ITRONTOPPERS
RTOS ITRONITRON
ITRON ITRON
TOPPERS TOPPERS/ASP TOPPERS/SSP TOPPERS/FMP TOPPERS/HRP2
60
SPFRTOS
Hiroaki Takada
TOPPERS ITRON4.0 ITRON4.0 ITRON4.0
13
61
SPFRTOS
Hiroaki Takada
TOPPERS TOPPERS
URL http://www.toppers.jp/documents.html
TOPPERS TOPPERS
API SILAPI
API APIAPI
62
SPFRTOS
Hiroaki Takada
2.1 2.2 API 2.3 2.4 2.5 2.6 2.7 2.8 CPU 2.9 2.10 2.11 2.12 2.13 TOPPERS 2.14 TOPPERS 2.15
63
SPFRTOS
Hiroaki Takada
API 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 CPU 4.11 4.12
64
SPFRTOS
Hiroaki Takada
TOPPERS/HRP2ASP KB
MMU
MPU2 EV3RT EV3RT
65
SPFRTOS
Hiroaki Takada
HRP2TOPPERSHRP2 HRP2TOPPERS
HRP2
HRP2 HRP2
EV3RT
66
SPFRTOS
Hiroaki Takada
/
EV3RT
TOPPERS/HRP2
HRP2
67
SPFRTOS
Hiroaki Takada
API PAPI p
API MD
API API act_tskT HRP2 dis_waiTP HRP2 snd_mbxTp HRP2 mact_tskTM HRP2 acre_tskTD HRP2
68
SPFRTOS
Hiroaki Takada
69
SPFRTOS
Hiroaki Takada
70
SPFRTOS
Hiroaki Takada
,
NMINon-Maskable Interrupt
CPU
71
SPFRTOS
Hiroaki Takada
runnable running ready
dormant blocked waiting
suspended
waiting-suspended non-existent
72
SPFRTOS
Hiroaki Takada
73
SPFRTOS
Hiroaki Takada
FCFS First Come First Served
HRP216
74
SPFRTOS
Hiroaki Takada
ISR
CPU
75
SPFRTOS
Hiroaki Takada
ISR
CPUCPU
76
SPFRTOS
Hiroaki Takada
77
SPFRTOS
iact_tsk(B)
A
B
A
B
Hiroaki Takada
ISR CPU
78
SPFRTOS
Hiroaki Takada
CPU
79
SPFRTOS
Hiroaki Takada
()
80
SPFRTOS
CPU
Hiroaki Takada
()
81
SPFRTOS
CPU
!
!
!
Hiroaki Takada
subject) object
memory object
82
SPFRTOS
Hiroaki Takada
protection domain ID 1 1
83
SPFRTOS
Hiroaki Takada
kernel domain 1
user domain
32
84
SPFRTOS
Hiroaki Takada
system task
user task
access permission pattern
1 ACPTN32 TACP(domid) domid TACP_KERNEL TACP_SHARED
85
SPFRTOS
Hiroaki Takada
access permission vector 4
124
ACVCT
86
SPFRTOS
typedef struct acvct {
ACPTN acptn1; /* 1 */
ACPTN acptn2; /* 2 */
ACPTN acptn3; /* */
ACPTN acptn4; /* */
} ACVCT;
Hiroaki Takada
87
SPFRTOS
det_mem sac_mem
ref_mem prb_mem
act_tsk can_act wup_tsk can_wup
ter_tsk chg_pri rel_wai sus_tsk ras_tex
del_tsk sac_tsk def_tex
get_pri ref_tsk ref_tex ref_ovr
sig_sem wai_sem pol_sel twai_sem
del_sem ini_sem sac_sem
ref_sem
sta_cyc
stp_cyc del_cyc sac_cyc
ref_cyc
rot_rdq
loc_cpu
def_inh
get_tim
Hiroaki Takada
xxx_yyyzxxx_yyy
act_tsk
slp_tsktslp_tsk
iiact_tsk
88
SPFRTOS
activatetask
Hiroaki Takada
act_tsk CAPI
ER ercd = act_tsk ( ID tskid ) ; ER ercd = iact_tsk ( ID tskid ) ;
ID tskid ID
ER ercd E_OK
E_CTX E_ID IDtskid E_QOVR
tskid
89
SPFRTOS
Hiroaki Takada
API
API C
{ } API
API
API4
90
SPFRTOS
Hiroaki Takada
APICRE_TSK( ID tskid, { ATR tskatr, intptr_t exinf, TASK task, PRI itskpri, SIZE stksz, STK_T stk } );
ER ercd = cre_tsk ( ID tskid, T_CTSK *pk_ctsk ) ; API
CRE_TSK( TASK1, { TA_ACT, 0, task_main, 10, STACK_SIZE, NULL } );
91
SPFRTOS
ID
Hiroaki Takada
API
API
92
SPFRTOS
DOMAIN (DOM_A) {
CRE_TSK(TASK_A, { TA_NULL, 1, taskA_main, });
CRE_SEM(SEM_A, { TA_NULL, 1, 1 });
SAC_SEM(SEM_A, { TA_DOM(DOM_A), TA_SHARED, TA_KERNEL, TA_SHARED });
}
KERNEL_DOMAIN {
CRE_TSK(TASK_K, { TA_ACT, 0, taskK_main, });
}
CRE_SEM(SEM_S, { TA_TPRI, 1, 1 });
TASK_K
TASK_ASEM_ADOM_A
SEM_S
SEM_A
Hiroaki Takada
93
SPFRTOS
DOMAIN (DOM_A) {
CRE_TSK(TASK_A, { TA_NULL, 1, taskA_main, });
CRE_SEM(SEM_A, { TA_NULL, 1, 1 });
ATT_MOD("obj_a1.o");
ATA_MOD("obj_a2.o", { TA_DOM(DOM_A), TA_SHARED, TA_KERNEL, TA_SHARED });
}
KERNEL_DOMAIN {
CRE_TSK(TASK_K, { TA_ACT, 0, taskK_main, });
ATT_ISR({ TA_NULL, 1, INTNO_SIO1, sio_isr, 1 });
ATT_MOD("obj_k.o");
}
CRE_SEM(SEM_S, { TA_TPRI, 1, 1 });
ATT_MOD("shared_lib.a");
obj_a2.oDOM_A
obj_a1.oDOM_A
obj_k.o
shared_lib.a
Hiroaki Takada
94
SPFRTOS
appl.cfg
kernel_cfg.c kernel_cfg.h
#include appl.h CRE_TSK(TASK1, { TA_ACT, CRE_SEM(SEM1, { TA_TPRI,
#define TASK1 2 #define SEM1 5
kernel_mem.c
Hiroaki Takada
95
SPFRTOS
(1)
1
1, 2
3
4
&
&
2
&
(2)
Hiroaki Takada
TOPPERS
96
SPFRTOS
HRP2
EV3RT
Hiroaki Takada
CPU
97
SPFRTOS
Hiroaki Takada
API
98
SPFRTOS
CRE_TSKacre_tsk* SAC_TSKsac_tsk* del_tsk* act_tskiact_tsk can_act ext_tsk ter_tsk chg_pri get_pri get_inf ref_tsk
*
Hiroaki Takada
API
99
SPFRTOS
slp_tsktslp_tsk wup_tskiwup_tsk can_wup rel_waiirel_wai sus_tsk rsm_tsk dis_waiidis_wai ena_waiiena_wai dly_tsk
Hiroaki Takada
/
UNIX/API
100
SPFRTOS
DEF_TEXdef_tex* ras_texiras_tex dis_tex ena_tex sns_tex ref_tex
*
Hiroaki Takada
HRP2
1 1
101
SPFRTOS
EV3RT
Hiroaki Takada
API
102
SPFRTOS
CRE_SEMacre_sem* SAC_SEMsac_sem* del_sem* sig_semisig_sem ai_sempwai_semtwai_sem ini_sem ref_sem
*
Hiroaki Takada
API
1
wai_flg
103
SPFRTOS
CRE_FLGacre_flg* SAC_FLGsac_flg* del_flg* set_flgiset_flg cls_flg ai_flgpol_flgtwai_flg ini_flg ref_flg
*
Hiroaki Takada
API 1
/ 0
104
SPFRTOS
CRE_DTQacre_dtq* SAC_DTQsac_dtq* del_dtq* snd_dtqpsnd_dtqtsnd_dtqipsnd_dtq
fsnd_dtqifsnd_dtq rcv_dtqprcv_dtqtrcv_dtq ini_dtq ref_dtq
*
Hiroaki Takada
API 1
/
105
SPFRTOS
CRE_PDQacre_pdq* SAC_PDQsac_pdq* del_pdq* snd_pdqpsnd_pdqtsnd_pdqipsnd_pdq
rcv_pdqprcv_pdqtrcv_pdq ini_pdq ref_pdq
*
Hiroaki Takada
ITRON4.0
ITRON4.0 PX
PX
HRP2
106
SPFRTOS
Hiroaki Takada
API POSIX
1
107
SPFRTOS
CRE_MTXacre_mtx* SAC_MTXsac_mtx* del_mtx* loc_mtxploc_mtxtloc_mtx unl_mtx ini_mtx ref_mtx
*
Hiroaki Takada
/ MMU
RTOS C
malloc/free
HRP2
108
SPFRTOS
Hiroaki Takada
API /
109
SPFRTOS
CRE_MPFacre_mpf* SAC_MPFsac_mpf* del_mpf* get_mpfpget_mpftget_mpf rel_mpf ini_mpf ref_mpf
*
Hiroaki Takada
HRP23
110
SPFRTOS
Hiroaki Takada
API API
API
111
SPFRTOS
CRE_CYCacre_cyc* SAC_CYCsac_cyc* del_cyc* sta_cyc stp_cyc ref_cyc
get_tim
get_utm
*
Hiroaki Takada
API
sta_alm/ista_alm
112
SPFRTOS
CRE_ALMcre_alm* SAC_ALMsac_alm* del_alm* sta_almista_alm stp_almistp_alm ref_alm
*
Hiroaki Takada
API
sta_ovr/ista ovr
113
SPFRTOS
DEF_OVRdef_ovr** sta_ovrista_ovr stp_ovristp_ovr ref_ovr
**HRP2
Hiroaki Takada
/
API
114
SPFRTOS
rot_rdqirot_rdq get_tidiget_tid IDget_did IDloc_cpuiloc_cpu CPUunl_cpuiunl_cpu CPUdis_dsp ena_dsp sns_ctx sns_loc CPUsns_dsp sns_dpn sns_ker ext_ker
Hiroaki Takada
/
API
115
SPFRTOS
ATT_REG DEF_SRG ATT_SEC, ATA_SEC LNK_SEC ATT_MOD, ATA_MOD ATT_MEM, ATA_MEM, att_mem**
ATT_PMA, ATA_PMA, att_pma**
sac_mem** det_mem** prb_mem
**HRP2
Hiroaki Takada
ISR
ISR/ ISR/
/
ISR
116
SPFRTOS
Hiroaki Takada
API
CFG_INT
dis_intena_int/
117
SPFRTOS
CFG_INTcfg_int** ATT_ISRCRE_ISR**acre_isr*
/
SAC_ISR**sac_isr* del_isr* DEF_INHdef_inh** dis_int ena_int chg_ipm get_ipm
**HRP2*
Hiroaki Takada
CPUCPUCPU CPU
CPU
CPU CPU
/
CPU
CPUCPU
118
SPFRTOS
Hiroaki Takada
CPU CPU
CPU/
CPU
CPUAPI CPU
API
119
SPFRTOS
DEF_EXCdef_exc** CPUxsns_dpn CPUxsns_xpn CPU
**HRP2
Hiroaki Takada
API
120
SPFRTOS
DEF_SVC, def_svc**
**HRP2
Hiroaki Takada
API LMT_DOM
DEF_ICSDEF_KMM
121
SPFRTOS
LMT_DOM DEF_ICS DEF_KMM# ATT_INI ATT_TER
#
Recommended