1 |
|
---|
2 | TOPPERS/ATK2-SC3
|
---|
3 | ï¼RH850ããã»ããµä¾åé¨è¨è¨æ¹é(CCRHç)ï¼
|
---|
4 |
|
---|
5 | ----------------------------------------------------------------------
|
---|
6 | TOPPERS ATK2
|
---|
7 | Toyohashi Open Platform for Embedded Real-Time Systems
|
---|
8 | Automotive Kernel Version 2
|
---|
9 |
|
---|
10 | Copyright (C) 2014-2015 by Center for Embedded Computing Systems
|
---|
11 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
12 |
|
---|
13 | ä¸è¨èä½æ¨©è
|
---|
14 | ã¯ï¼ä»¥ä¸ã® (1)ã(3)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ããã¥ã¡
|
---|
15 | ã³ãï¼æ¬ããã¥ã¡ã³ããæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹
|
---|
16 | å¤ã»åé
|
---|
17 | å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
18 | (1) æ¬ããã¥ã¡ã³ããå©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶
|
---|
19 | ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ããã¥ã¡ã³ãä¸ã«å«ã¾ãã¦
|
---|
20 | ãããã¨ï¼
|
---|
21 | (2) æ¬ããã¥ã¡ã³ããæ¹å¤ããå ´åã«ã¯ï¼ããã¥ã¡ã³ããæ¹å¤ããæ¨ã®è¨è¿°
|
---|
22 | ãï¼æ¹å¤å¾ã®ããã¥ã¡ã³ãä¸ã«å«ãããã¨ï¼ãã ãï¼æ¹å¤å¾ã®ããã¥ã¡
|
---|
23 | ã³ããï¼TOPPERSããã¸ã§ã¯ãæå®ã®éçºææç©ã§ããå ´åã«ã¯ï¼ãã®é
|
---|
24 | ãã§ã¯ãªãï¼
|
---|
25 | (3) æ¬ããã¥ã¡ã³ãã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害
|
---|
26 | ãããï¼ä¸è¨èä½æ¨©è
|
---|
27 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
28 | 責ãããã¨ï¼ã¾ãï¼
|
---|
29 | æ¬ããã¥ã¡ã³ãã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãçç±ã«åºã¥
|
---|
30 | ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
|
---|
31 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
32 | 責ãããã¨ï¼
|
---|
33 |
|
---|
34 | æ¬ããã¥ã¡ã³ãã¯ï¼AUTOSARï¼AUTomotive Open System ARchitectureï¼ä»æ§
|
---|
35 | ã«åºã¥ãã¦ããï¼ä¸è¨ã®è¨±è«¾ã¯ï¼AUTOSARã®ç¥ç財ç£æ¨©ã許諾ãããã®ã§ã¯ãª
|
---|
36 | ãï¼AUTOSARã¯ï¼AUTOSARä»æ§ã«åºã¥ããã½ããã¦ã§ã¢ãåç¨ç®çã§å©ç¨ãã
|
---|
37 | è
|
---|
38 | ã«å¯¾ãã¦ï¼AUTOSARãã¼ããã¼ã«ãªããã¨ãæ±ãã¦ããï¼
|
---|
39 |
|
---|
40 | æ¬ããã¥ã¡ã³ãã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
41 | ãã
|
---|
42 | ã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ããã¥ã¡ã³ãã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®çã«å¯¾ã
|
---|
43 | ãé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ããã¥ã¡ã³ãã®å©ç¨
|
---|
44 | ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè²
|
---|
45 | ããªãï¼
|
---|
46 |
|
---|
47 | $Id: prc_design.txt 164 2015-06-03 01:22:29Z t_ishikawa $
|
---|
48 | ----------------------------------------------------------------------
|
---|
49 |
|
---|
50 | âæ¦è¦
|
---|
51 |
|
---|
52 | æ¬ããã¥ã¡ã³ãã§ã¯ï¼GCCããCCRHã«åãã¦å¤æ´ããè¨è¨äºé
|
---|
53 | ããã£ããã¨
|
---|
54 | è¨é²ããï¼
|
---|
55 |
|
---|
56 | ⯠ã¿ã¼ã²ããå®ç¾©ã®ã»ã¯ã·ã§ã³
|
---|
57 |
|
---|
58 | ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ãå®ç¾©ããã»ã¯ã·ã§ã³åã®å¯¾å¿ã¯ä¸è¨ã®ã¨ãã
|
---|
59 | ã§ããï¼prc_mem.yaml|arxmlã«ãã£ã¦å®ç¾©ãã
|
---|
60 |
|
---|
61 | å¡ä¾ï¼gccä¾åé¨ã§ã®ã»ã¯ã·ã§ã³å â ccrhä¾åé¨ã§ã®ã»ã¯ã·ã§ã³å
|
---|
62 | .text_kernel â kernel.text
|
---|
63 | .rodata_kernel â kernel.const
|
---|
64 | .data_kernel â kernel.data
|
---|
65 | .bss_kernel â kernel.bss
|
---|
66 | .srpw_kernel â kernel.srpw.bss
|
---|
67 | .text_shared â shared.text
|
---|
68 | .rodata_shared â shared.const
|
---|
69 | .data_shared â shared.data
|
---|
70 | .bss_shared â shared.bss
|
---|
71 |
|
---|
72 | ã¾ãï¼ä¸è¨ã»ã¯ã·ã§ã³ãé
|
---|
73 | ç½®ãããOSAPã¯ä¸è¨ã®ã¨ãã
|
---|
74 | å¡ä¾ï¼OSAPå - æå±ããã»ã¯ã·ã§ã³å
|
---|
75 | prc_osap_kernel (ä¿¡é ¼OSAP)
|
---|
76 | - kernel.text
|
---|
77 | - kernel.const
|
---|
78 | - kernel.data
|
---|
79 | - kernel.bss
|
---|
80 | - kernel.srpw.bss
|
---|
81 | (ç¡æå±)
|
---|
82 | - shared.text
|
---|
83 | - shared.const
|
---|
84 | - shared.data
|
---|
85 | - shared.bss
|
---|
86 |
|
---|
87 | ã¾ãï¼ã¸ã§ãã¬ã¼ã¿ãèªåçã«å®ç¾©ããã»ã¯ã·ã§ã³åï¼å
|
---|
88 | ·ä½çã«ã¯ã¦ã¼ã¶
|
---|
89 | ã¹ã¿ãã¯ã®ã»ã¯ã·ã§ã³åã¯ä¸è¨ã®ã¨ããï¼
|
---|
90 | å¡ä¾ï¼gccä¾åé¨ã§ã®ã»ã¯ã·ã§ã³å â ccrhä¾åé¨ã§ã®ã»ã¯ã·ã§ã³å
|
---|
91 | .user_stack.<task ID> â .user_stack.<task ID>.bss
|
---|
92 | .shared_user_stack.<priority> â .shared_user_stack.<priority>.bss
|
---|
93 |
|
---|
94 | ⯠prc_support.asm
|
---|
95 |
|
---|
96 | ã¾ãï¼v850_gcc/prc_support.S ãã ccrh/gcc2ccrh.rb ã«ããã¢ã»ã³ããªã
|
---|
97 | çæããï¼
|
---|
98 |
|
---|
99 | ããã¦ï¼ä¸è¨ã»ã¯ã·ã§ã³åã®å¤æè¦åã«å¾ãï¼ã»ã¯ã·ã§ã³é
|
---|
100 | ç½®æå®ãå¤æ´ããï¼
|
---|
101 |
|
---|
102 | ã¾ãï¼ccrhã§ã¯ï¼Cè¨èªã®ãã¯ããã¢ã»ã³ããªã«åãè¾¼ããªãããï¼v850asm.inc
|
---|
103 | ã«ãã¯ãå®ç¾©ãè¨è¿°ããï¼
|
---|
104 |
|
---|
105 | â»prc_asm.tf ã§åºåããæ¡ãèãããã
|
---|
106 |
|
---|
107 | ⯠DEFINE_VAR_SEC_NOBITS(type, var, sec)
|
---|
108 |
|
---|
109 | éä¾åé¨ã§å®ç¾©ããå¤æ°ãï¼ç¹å®ã®ã»ã¯ã·ã§ã³ã«é
|
---|
110 | ç½®ããããã®ãã¯ãã§ããï¼
|
---|
111 | ç¾ç¶ã§ã¯ï¼å
|
---|
112 | ±æãªã¼ãå°æã©ã¤ãã®ã«ã¼ãã«å¤æ°ãã»ã¯ã·ã§ã³é
|
---|
113 | ç½®ããç®çã§
|
---|
114 | ã®ã¿ä½¿ç¨ãã¦ããï¼
|
---|
115 | ccrhã§ã¯pragmaã«ããã»ã¯ã·ã§ã³é
|
---|
116 | ç½®ãè¡ãããï¼ä¸è¨ãã¯ãã§ã¯extern宣è¨
|
---|
117 | ãããããã«å¤æ´ãï¼prc_tool.c ã§å¤æ°ã®å®ä½ã®å®£è¨ããã³ã»ã¯ã·ã§ã³é
|
---|
118 | ç½®ã
|
---|
119 | æå®ããï¼
|
---|
120 |
|
---|
121 | â»defineãã¯ãã«ããã¦pragmaãå±éãããã¨ã¯ã§ããªãã£ãï¼
|
---|
122 | â»defineãã¯ãã«ããã¦ã»ã¯ã·ã§ã³åãå±éãããã¨ã¯ã§ããªãã£ãï¼
|
---|
123 | #define SECTION section1
|
---|
124 | #pragma section SECTION
|
---|
125 | ã¨ããã¨ï¼SECTIONã¨ããã»ã¯ã·ã§ã³ã«é
|
---|
126 | ç½®ããã
|
---|
127 |
|
---|
128 | ⯠ã«ã¼ãã«å¤æ°ï¼ã³ã¼ãã®ã»ã¯ã·ã§ã³é
|
---|
129 | ç½®æå®
|
---|
130 |
|
---|
131 | éä¾åé¨ã§å®ç¾©ããã¦ããå¤æ°ããã³é¢æ°ãªã©ãï¼kernel.xxxxã»ã¯ã·ã§ã³ã«
|
---|
132 | é
|
---|
133 | ç½®ããããã«ï¼Platfrom_Types.hã«ããã¦ï¼kernel_impl.hããincludeããã
|
---|
134 | å ´åã«ï¼#pragma section kernel ãçæããããã«ããï¼
|
---|
135 |
|
---|
136 | ããã§ï¼cfgã®ãã¹1ã«ããã¦kernelã»ã¯ã·ã§ã³ã«é
|
---|
137 | ç½®ããããã¨ãé²ãããã«ï¼
|
---|
138 | ã¬ã¼ããããã¦ããï¼
|
---|
139 | cfgã®ãã¹1ã§ã¯ï¼ccrhããã©ã«ãã®ã»ã¯ã·ã§ã³é
|
---|
140 | ç½®æå®ã使ç¨ããããï¼kernel
|
---|
141 | ã¨ããã»ã¯ã·ã§ã³ã¯åå¨ããªãï¼
|
---|
142 |
|
---|
143 | ã¾ãï¼Os_Lcfg.c / kernel_mem.c ã«çæããããã¼ã¿ãé¢æ°ãkernelã»ã¯ã·ã§ã³
|
---|
144 | ã«é
|
---|
145 | ç½®ããããï¼prc.tfã«ããã¦ï¼#pragma section kernel ãçæããããã«ããï¼
|
---|
146 |
|
---|
147 | ⯠tf
|
---|
148 |
|
---|
149 | ã»OsMemoryModuleããµãã¼ãããªãããï¼TOPPERS_SUPPORT_ATT_MOD ã0ã«ããï¼
|
---|
150 |
|
---|
151 | ã»MPUã«ã»ããããçªå°ã«ã¤ãã¦ï¼ccrhã§ã¯ã»ã¯ã·ã§ã³ã®å¢çã示ãã©ãã«åãï¼
|
---|
152 | ã'.'ãå«ãããï¼Cè¨èªã§ä½¿ç¨ãããã¨ãã§ããªã(æ§é ä½ã®ã¡ã³ãã¨ãã¦æ±ã
|
---|
153 | ããã¦ãã¾ã)ï¼ãã®ããï¼ãã¹2ã§ã¯0ãMPUåæåãããã¯ã«åºåãã¦ããï¼
|
---|
154 | ããã¹4ã§ï¼ã¡ã¢ãªãªãã¸ã§ã¯ãã¨ãã¦ç»é²ãããã»ã¯ã·ã§ã³ã®ã©ãã«åãã
|
---|
155 | ãé
|
---|
156 | ç½®ã¢ãã¬ã¹ãSYMBOLã§åå¾ãã¦ï¼MPUåæåãããã¯ã«åºåããï¼
|
---|
157 |
|
---|
158 | ã»ccrhã§ã¯ï¼ãµã¤ãºã空ã®ã»ã¯ã·ã§ã³ãé
|
---|
159 | ç½®ããã¨ï¼è¦åãçºããï¼
|
---|
160 | ããã®è¦åãåé¿ããããã«ï¼arxmlã§ç»é²ããããã¹ã¦ã®ã»ã¯ã·ã§ã³ã«å¯¾ãã¦ï¼
|
---|
161 | ãããã¼ã®ã·ã³ãã«ãçæãï¼Os_Lcfg_asm.asm ã«åºåããï¼
|
---|
162 |
|
---|
163 | ã»ccrh/ldscript.tf ã«ããã¦ï¼CS+ã§ãªã³ã¯ãªãã·ã§ã³ãæå®ããããã®
|
---|
164 | ãpythonã¹ã¯ãªããï¼ldscript.pyãåºåããï¼
|
---|
165 |
|
---|
166 | ããã®pythonã¹ã¯ãªãããå®è¡ããæ¹æ³ã¨ãã¦ï¼ä»¥ä¸ã®æ¹æ³ãæ¤è¨ããï¼
|
---|
167 |
|
---|
168 | ã(1) ãã¹4ã¨atk2-sc3æ¬ä½ã®ãã«ãåã«ã¦ã¼ã¶ã«å®è¡ãã¦ãããï¼
|
---|
169 | ã - ã¦ã¼ã¶ã®æéã«ãªãï¼å®è¡ãå¿ãã«ããã¨ã©ã¼ãèµ·ããå¯è½æ§ãããï¼
|
---|
170 | ã(2) ãã¹4ã¨atk2-sc3æ¬ä½ã®ãã«ãåã«CS+ã«ãã¬ãã«ãèªåå®è¡ãã¦ãããï¼
|
---|
171 | ã - ãã¬ãã«ãæã«ãã«ããªãã·ã§ã³ãæ¸ãæãããã¨ã¯ã§ããªãã£ãããå´ä¸ï¼
|
---|
172 | ã(3) CS+ã«ãã¹2ã®ãã«ãå¾ã«ãã¹ããã«ãèªåå®è¡ãã¦ãããï¼ãã¹4ã¨
|
---|
173 | ãããatk2-sc3æ¬ä½ã®ããã¸ã§ã¯ããã¡ã¤ã«(xml)ãæ¸ãæããï¼
|
---|
174 | ã - ãã¹2ã®ãã¨ã«æ¸ãæããããã¸ã§ã¯ããã¡ã¤ã«ãèªåã§éãç´ãã¨ããã§
|
---|
175 | ã ã¨ã©ã¼ã¨ãªãï¼ã¦ã¼ã¶ã«å度ããã¸ã§ã¯ããéãç´ãã¦ãããå¿
|
---|
176 | è¦ãããï¼
|
---|
177 | ç¾ç¶ã¯(3)ã§å®è£
|
---|
178 | ãã¦ããï¼
|
---|
179 |
|
---|
180 | ãæ¬ã¹ã¯ãªããã§ã¯ï¼ã»ã¯ã·ã§ã³ã®é
|
---|
181 | ç½®é ï¼ROMåãããã¼ã¿ã»ã¯ã·ã§ã³ï¼
|
---|
182 | ãã¢ã©ã¤ã¡ã³ãããã»ã¯ã·ã§ã³ã®ããã®ãªã³ã¯ãªãã·ã§ã³ãæå®ããï¼
|
---|
183 |
|
---|
184 | ã»ccrhã§ã¯ï¼åºåã»ã¯ã·ã§ã³ã¨ããæ¦å¿µããªãï¼å
|
---|
185 | ¥åã»ã¯ã·ã§ã³ãã¡ã¢ãª
|
---|
186 | ããªãã¸ã§ã¯ããã¨ã«ã¾ã¨ããåºåã»ã¯ã·ã§ã³ãçæãï¼ãã®å¢çå¤ãåå¾ãã
|
---|
187 | ããã¨ã§ï¼MPUã®è¨å®æ
|
---|
188 | å ±ãçæããã¨ããå¾æ¥ææ³(GCCä¾åé¨)ã使ç¨ã§ããªãï¼
|
---|
189 | ããã®ããï¼MPUã«è¨å®ããã¢ãã¬ã¹ãåå¾ããããã«ï¼ãã¹ã¦ã®ã»ã¯ã·ã§ã³ã
|
---|
190 | ãã¡ã¢ãªãªãã¸ã§ã¯ããã¨ã«ï¼ãªã³ã¯é ã«ãµã¼ããï¼å§ãã¦è¦ã¤ãã£ã空ã§ãªã
|
---|
191 | ãã»ã¯ã·ã§ã³ã®éå§çªå°ããã®ã¡ã¢ãªãªãã¸ã§ã¯ãã®éå§çªå°ã¨ãã¦ï¼æå¾ã«
|
---|
192 | ãè¦ã¤ãã£ã空ã§ãªãã»ã¯ã·ã§ã³ã®çµäºçªå°ããã®ã¡ã¢ãªãªãã¸ã§ã¯ãã®çµäº
|
---|
193 | ãçªå°ã¨ãã¦ããï¼
|
---|
194 |
|
---|
195 | ã»ã»ã¯ã·ã§ã³ã®ã©ãã«åã®å¶ç´ã«ããï¼kernel_mem.tf ã«ãããæ¨æºã®ã¡ã¢ãª
|
---|
196 | ããªãã¸ã§ã¯ãåæåãããã¯ãçæã§ããªãï¼
|
---|
197 | ããã®é¨åã«ã¤ãã¦ã¯ï¼prc_meminib.tf ã§çæããï¼
|
---|
198 |
|
---|
199 | â TIPS
|
---|
200 |
|
---|
201 | ã»sdata/sbss ã¯ï¼pragmaã§å¤æ°ãgp_dispxxã»ã¯ã·ã§ã³ã«é
|
---|
202 | ç½®ããã¨çæããã
|
---|
203 | ã»sdata/sbss ã¯ï¼ããã©ã«ãã§ã¯gpç¸å¯¾ã§ã¢ã¯ã»ã¹ãããªãï¼-MApãªãã·ã§ã³ã
|
---|
204 | ãã¤ãã¦ãªã³ã¯ããçµæåºåãããblsãã¡ã¤ã«ãï¼ã³ã³ãã¤ã«ãªãã·ã§ã³-Omap=
|
---|
205 | ãã§æå®ãããã¨ã§ï¼gpç¸å¯¾ã§ã¢ã¯ã»ã¹ãããã³ã¼ããçæãããï¼
|
---|
206 | ãgpç¸å¯¾ã使ãã®ã§ããã°ï¼ãã¹4ã®ãã«ãæã«ãgpç¸å¯¾ã使ãããã«ãã«ããã¹ã
|
---|
207 | ãã¨èããããï¼
|
---|
208 |
|
---|