[172] | 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 |
|
---|