| 1 | TOPPERS Confidential
|
---|
| 2 | TOPPERSããã¸ã§ã¯ã ãã£ã¹ã«ãã·ã§ã³ã¡ã¢
|
---|
| 3 | å¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
|
---|
| 4 |
|
---|
| 5 |
|
---|
| 6 | ä½æè
|
---|
| 7 | : é«ç°åºç« ï¼åå¤å±å¤§å¦ï¼
|
---|
| 8 | æçµæ´æ°: 2007å¹´7æ17æ¥
|
---|
| 9 |
|
---|
| 10 | âã¡ã¢ã®ä½ç½®ä»ã
|
---|
| 11 |
|
---|
| 12 | ãã®ã¡ã¢ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã«ãããå¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æ
|
---|
| 13 | ã®ã·ã¹ãã ç¶æ
|
---|
| 14 | ã«é¢ããä»æ§ã¨ï¼TOPPERS/ASPã«ã¼ãã«ã«ããã¦ãããã©ã®ãã
|
---|
| 15 | ã«å®ç¾ããã¦ããããè¨è¿°ãããã®ã§ããï¼
|
---|
| 16 |
|
---|
| 17 | âå¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
|
---|
| 18 |
|
---|
| 19 |
|
---|
| 20 | TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã«ãããå¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶
|
---|
| 21 | æ
|
---|
| 22 | ã«ã¤ãã¦ï¼Î¼ITRON4.0ä»æ§ããå¼·ãè¦å®ããï¼è¦å®ã®å
|
---|
| 23 | 容ã«ã¤ãã¦ã¯ï¼
|
---|
| 24 | TOPPERSæ°ä¸ä»£ã«ã¼ãã«ä»æ§æ¸ã2.5.12 å¦çåä½ã¨ã·ã¹ãã ç¶æ
|
---|
| 25 | ããåç
|
---|
| 26 | §ãã
|
---|
| 27 | ãã¨ï¼
|
---|
| 28 |
|
---|
| 29 | âåèï¼Î¼ITRON4.0/PXä»æ§
|
---|
| 30 |
|
---|
| 31 | CPUããã¯ï¼ å²è¾¼ã¿åªå
|
---|
| 32 | 度 ãã£ã¹ããã ã¿ã¹ã¯ä¾å¤
|
---|
| 33 | ããã¯è§£é¤ç¶æ
|
---|
| 34 | ãã¹ã¯ ç¦æ¢ï¼è¨±å¯ç¶æ
|
---|
| 35 | ç¦æ¢ï¼è¨±å¯ç¶æ
|
---|
| 36 |
|
---|
| 37 | ------------------------------------------------------------------------------
|
---|
| 38 | ãã¿ã¹ã¯ã
|
---|
| 39 | å®è¡éå§æ¡ä»¶ è§£é¤ ï¼ è¨±å¯ ï¼
|
---|
| 40 | å®è¡éå§æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ç¦æ¢ãã
|
---|
| 41 | çµäºå è§£é¤ ï¼ è¨±å¯ ä»»æ
|
---|
| 42 | çµäºæå¦ç æªè¦å®(*1) ï¼ æªè¦å®(*1)ãããï¼
|
---|
| 43 | ------------------------------------------------------------------------------
|
---|
| 44 | ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã
|
---|
| 45 | å®è¡éå§æ¡ä»¶ è§£é¤ ï¼ ä»»æ 許å¯
|
---|
| 46 | å®è¡éå§æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ç¦æ¢ãã
|
---|
| 47 | ãªã¿ã¼ã³å è§£é¤ ï¼ ä»»æ(*3) ä»»æ
|
---|
| 48 | ãªã¿ã¼ã³æå¦ç æªè¦å®(*1) ï¼ ãã®ã¾ã¾ 許å¯ãã
|
---|
| 49 | ------------------------------------------------------------------------------
|
---|
| 50 | ãå²è¾¼ã¿ãã³ãã©ã
|
---|
| 51 | å®è¡éå§æ¡ä»¶ è§£é¤ ï¼ ä»»æ ä»»æ
|
---|
| 52 | å®è¡éå§æå¦ç å®è£
|
---|
| 53 | ä¾å ï¼ ãã®ã¾ã¾ ãã®ã¾ã¾
|
---|
| 54 | ãªã¿ã¼ã³å å®è£
|
---|
| 55 | å®ç¾©(*2) ï¼ å
|
---|
| 56 | ã«æ»ã(*4) å¤æ´ä¸å¯
|
---|
| 57 | ãªã¿ã¼ã³æå¦ç æªè¦å®(*2) ï¼ æªè¦å®(*1) ãã®ã¾ã¾
|
---|
| 58 | ------------------------------------------------------------------------------
|
---|
| 59 | ãISRï¼ã¿ã¤ã ã¤ãã³ããã³ãã©ã
|
---|
| 60 | å®è¡éå§æ¡ä»¶ è§£é¤ ï¼ ä»»æ ä»»æ
|
---|
| 61 | å®è¡éå§æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ãã®ã¾ã¾
|
---|
| 62 | ãªã¿ã¼ã³å è§£é¤ ï¼ å
|
---|
| 63 | ã«æ»ã(*4) å¤æ´ä¸å¯
|
---|
| 64 | ãªã¿ã¼ã³æå¦ç æªè¦å®(*1) ï¼ æªè¦å®(*1) ãã®ã¾ã¾
|
---|
| 65 | ------------------------------------------------------------------------------
|
---|
| 66 | ãCPUä¾å¤ãã³ãã©ã
|
---|
| 67 | å®è¡éå§æ¡ä»¶ ä»»æ ï¼ ä»»æ ä»»æ
|
---|
| 68 | å®è¡éå§æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ãã®ã¾ã¾
|
---|
| 69 | ãªã¿ã¼ã³å å
|
---|
| 70 | ã«æ»ã ï¼ å
|
---|
| 71 | ã«æ»ã(*4) å¤æ´ä¸å¯
|
---|
| 72 | ãªã¿ã¼ã³æå¦ç æªè¦å®(*1) ï¼ æªè¦å®(*1) ãã®ã¾ã¾
|
---|
| 73 | ------------------------------------------------------------------------------
|
---|
| 74 | ãæ¡å¼µãµã¼ãã¹ã³ã¼ã«ã«ã¼ãã³ã
|
---|
| 75 | å®è¡éå§æ¡ä»¶ ä»»æ ï¼ ä»»æ ä»»æ
|
---|
| 76 | å®è¡éå§æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ãã®ã¾ã¾
|
---|
| 77 | ãªã¿ã¼ã³å ä»»æ ï¼ ä»»æ ä»»æ
|
---|
| 78 | ãªã¿ã¼ã³æå¦ç ãã®ã¾ã¾ ï¼ ãã®ã¾ã¾ ãã®ã¾ã¾
|
---|
| 79 | ------------------------------------------------------------------------------
|
---|
| 80 |
|
---|
| 81 | (*1) ãªã¿ã¼ã³åã®æ¡ä»¶ã«å¾ããã«ãªã¿ã¼ã³ããå ´åã®æ¯èãã¯æªå®ç¾©ï¼ãªã¿
|
---|
| 82 | ã¼ã³åã®æ¡ä»¶ã«å¾ãã°ï¼ãªã¿ã¼ã³ç´å¾ã¯ãã®ã¾ã¾ã¨ãªãï¼
|
---|
| 83 |
|
---|
| 84 | (*2) å®è£
|
---|
| 85 | å®ç¾©ã®æ¹æ³ã«å¾ãããªã¿ã¼ã³ããå ´åã®æ¯èãã¯æªå®ç¾©ï¼å®è£
|
---|
| 86 | å®ç¾©
|
---|
| 87 | ã®æ¹æ³ã«å¾ãã°ï¼ãªã¿ã¼ã³ç´å¾ã¯CPUããã¯è§£é¤ç¶æ
|
---|
| 88 | ã¨ãªãï¼
|
---|
| 89 |
|
---|
| 90 | (*3)ãä»»æãã¯æ¬¡ã®çç±ã§ä¸é½åã§ããï¼dis_dspã¨ena_dspã®å¯¾ããã¹ããã
|
---|
| 91 | ããå ´åã®å¯¾å¦æ³ã¨ãã¦ï¼Î¼ITRON4.0ä»æ§ã§ã¯ï¼sns_dspãç¨ããæ¹æ³ãæ示ã
|
---|
| 92 | ã¦ããï¼ã¨ãããï¼éåæã«å®è¡ãããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ä¸ã§ãã£ã¹ãã
|
---|
| 93 | ãç¦æ¢ï¼è¨±å¯ç¶æ
|
---|
| 94 | ãå¤æ´ãããã¨ï¼ãã®æ¹æ³ã§ã¯å¯¾å¿ã§ããªãï¼ã¾ãï¼ããã«
|
---|
| 95 | 代ããè¯ãæ¹æ³ãç¨æããã¦ããªãï¼Î¼ITRON4.0ä»æ§çå®æã®èæ
|
---|
| 96 | ®ä¸è¶³ã¨èã
|
---|
| 97 | ãããï¼
|
---|
| 98 |
|
---|
| 99 | (*4) å¤æ´ããããã®APIã¯æ¨æºã§ã¯è¦å®ããã¦ããªãããï¼ãå¤æ´ä¸å¯ãã¨è¦
|
---|
| 100 | ããã¨ãã§ããï¼
|
---|
| 101 |
|
---|
| 102 | âTOPPERS/ASPã«ã¼ãã«ã«ãããå®ç¾ï¼æ¬ä¼¼ã³ã¼ããã¼ã¹ï¼
|
---|
| 103 |
|
---|
| 104 | âã¿ã¹ã¯ã®å®è¡éå§æå¦ç
|
---|
| 105 |
|
---|
| 106 | ã¿ã¹ã¯ã®å®è¡éå§æã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 107 | ã»å²è¾¼ã¿åªå
|
---|
| 108 | 度ãã¹ã¯å
|
---|
| 109 | ¨è§£é¤ç¶æ
|
---|
| 110 | ã»
|
---|
| 111 | ãã£ã¹ããã許å¯ç¶æ
|
---|
| 112 | ã»ã¿ã¹ã¯ä¾å¤ç¦æ¢ç¶æ
|
---|
| 113 | ã¨ããªããã°ãªããªãï¼ä»¥ä¸ï¼ã
|
---|
| 114 | ããå®ç¾ããã¦ãããã¨ã確èªããï¼
|
---|
| 115 |
|
---|
| 116 | ã¿ã¹ã¯ã®å®è¡éå§æã¯ï¼ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼ããï¼ã¿ã¹ã¯ãå®
|
---|
| 117 | è¡éå§ããå¦çï¼start_rï¼ã«åå²ãï¼ããããã¿ã¹ã¯ã®èµ·åçªå°ãå¼ã³åºãã
|
---|
| 118 | ãï¼
|
---|
| 119 |
|
---|
| 120 | CPUããã¯è§£é¤ç¶æ
|
---|
| 121 | ã«ã¤ãã¦ã¯ï¼start_rã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 122 | ã«ããå¦
|
---|
| 123 | çãè¡ãããï¼
|
---|
| 124 |
|
---|
| 125 | dispatcherã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã»CPUããã¯ç¶æ
|
---|
| 126 | ã»å²è¾¼ã¿åªå
|
---|
| 127 | 度ãã¹ã¯å
|
---|
| 128 | ¨è§£
|
---|
| 129 | é¤ç¶æ
|
---|
| 130 | ã»ãã£ã¹ããã許å¯ç¶æ
|
---|
| 131 | ã§å¼ã³åºããï¼åãç¶æ
|
---|
| 132 | ã§start_rã¸åå²ããï¼
|
---|
| 133 | start_rã§ã¯ï¼å²è¾¼ã¿åªå
|
---|
| 134 | 度ãã¹ã¯ã¨ãã£ã¹ãããç¦æ¢ãã©ã°ãå¤æ´ããªãããï¼
|
---|
| 135 | ã¿ã¹ã¯ã®å®è¡éå§æã«ã¯ï¼å²è¾¼ã¿åªå
|
---|
| 136 | 度ãã¹ã¯å
|
---|
| 137 | ¨è§£é¤ç¶æ
|
---|
| 138 | ã»ãã£ã¹ããã許å¯
|
---|
| 139 | ç¶æ
|
---|
| 140 | ã¨ãªã£ã¦ããï¼
|
---|
| 141 |
|
---|
| 142 | â
|
---|
| 143 | dispatcherãä¸è¨æ¡ä»¶ã§å¼ã³åºããããã¨ã®ç¢ºèªãå¿
|
---|
| 144 | è¦ï¼
|
---|
| 145 |
|
---|
| 146 | ã¿ã¹ã¯ä¾å¤ç¦æ¢ç¶æ
|
---|
| 147 | ã«ã¤ãã¦ã¯ï¼make_dormantã«ããã¦ï¼TCBã®enatexãã£ã¼ã«
|
---|
| 148 | ããFALSEã«ãã¦ããï¼ã¿ã¹ã¯ãä¼æ¢ç¶æ
|
---|
| 149 | ã®éã¯ãããä¿ãããï¼ãã®ããï¼ã¿
|
---|
| 150 | ã¹ã¯ã®å®è¡éå§æã«ã¯ï¼ç¹å¥ãªå¦çã¯å¿
|
---|
| 151 | è¦ãªãï¼
|
---|
| 152 |
|
---|
| 153 | âã¿ã¹ã¯ã®çµäºæå¦ç
|
---|
| 154 |
|
---|
| 155 | ã¿ã¹ã¯ã®çµäºæã«ã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 156 | ã»å²è¾¼ã¿åªå
|
---|
| 157 | 度ãã¹ã¯å
|
---|
| 158 | ¨è§£é¤ç¶æ
|
---|
| 159 | ã»ãã£
|
---|
| 160 | ã¹ããã許å¯ç¶æ
|
---|
| 161 | ã¨ããªããã°ãªããªãï¼ä»¥ä¸ï¼ãããå®ç¾ããã¦ãããã¨ã
|
---|
| 162 | 確èªããï¼
|
---|
| 163 |
|
---|
| 164 | ã¿ã¹ã¯ã®çµäºæã«ã¯ext_tskãå¼ã³åºããããï¼ãã®ä¸ã§ï¼CPUããã¯ç¶æ
|
---|
| 165 | ã§å¼
|
---|
| 166 | ã°ããå ´åã«ã¯ãã®è§£é¤ï¼ã³ã¼ãä¸ã¯ï¼ext_tskä¸ã§CPUããã¯ç¶æ
|
---|
| 167 | ã«ç§»è¡ãã
|
---|
| 168 | éã«ï¼CPUããã¯ç¶æ
|
---|
| 169 | ã§å¼ã°ããå ´åã«ã¯ï¼ç§»è¡å¦çãçç¥ãã¦ããã ãï¼ï¼å²
|
---|
| 170 | è¾¼ã¿åªå
|
---|
| 171 | 度ãã¹ã¯å
|
---|
| 172 | ¨è§£é¤ä»¥å¤ã§å¼ã°ããå ´åã«ã¯ãã®å
|
---|
| 173 | ¨è§£é¤ï¼ãã£ã¹ãããç¦
|
---|
| 174 | æ¢ç¶æ
|
---|
| 175 | ã§å¼ã°ããå ´åã«ã¯ãã£ã¹ãããã®è¨±å¯ãè¡ã£ã¦ããï¼
|
---|
| 176 |
|
---|
| 177 | ï¼æªå®æï¼
|
---|
| 178 |
|
---|
| 179 | âTOPPERS/ASPã«ã¼ãã«ã«ãããå®ç¾ï¼M68040ä¾åï¼
|
---|
| 180 |
|
---|
| 181 | âã¿ã¹ã¯ã®å®è¡éå§
|
---|
| 182 |
|
---|
| 183 | ãã£ã¹ãããã£ï¼dispatcherï¼ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼CPUããã¯ç¶æ
|
---|
| 184 | ï¼ãã£
|
---|
| 185 | ã¹ããã許å¯ç¶æ
|
---|
| 186 | ï¼å²è¾¼ã¿åªå
|
---|
| 187 | 度ãã¹ã¯å
|
---|
| 188 | ¨è§£é¤ç¶æ
|
---|
| 189 | ã§å¼ã³åºãããï¼
|
---|
| 190 |
|
---|
| 191 | M68040ã«ããã¦ã¯ï¼â
|
---|
| 192 | ä¸ã®æ¡ä»¶ãæºãããã¦ãããã¨ã確èªããå¿
|
---|
| 193 | è¦ãããâ
|
---|
| 194 | ï¼
|
---|
| 195 |
|
---|
| 196 | ã¿ã¹ã¯å®è¡éå§æã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 197 | ï¼ãã£ã¹ããã許å¯ç¶æ
|
---|
| 198 | ï¼å²è¾¼ã¿åªå
|
---|
| 199 |
|
---|
| 200 | 度ãã¹ã¯å
|
---|
| 201 | ¨è§£é¤ç¶æ
|
---|
| 202 | ã¨ããªããã°ãªããªãããï¼ãã£ã¹ãããã£ããã¿ã¹ã¯å®
|
---|
| 203 | è¡éå§ããå¦çï¼start_rï¼ã«ããã¦ï¼CPUããã¯ã解é¤ããï¼
|
---|
| 204 |
|
---|
| 205 | M68040ã«ããã¦ã¯ï¼start_rä¸ã®æ¬¡ã®å¦çã§ãããå®ç¾ãã¦ããï¼
|
---|
| 206 |
|
---|
| 207 | ----------------------------------------
|
---|
| 208 | clr.l lock_flag /* CPUããã¯è§£é¤ç¶æ
|
---|
| 209 | ã« */
|
---|
| 210 | and.w #~0x0700, %sr
|
---|
| 211 | ----------------------------------------
|
---|
| 212 |
|
---|
| 213 | start_rãå®è¡ãããæã«ã¯ï¼ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
|
---|
| 214 | 度ãã¹ã¯å
|
---|
| 215 | ¨è§£é¤ç¶æ
|
---|
| 216 | ã¨
|
---|
| 217 | ãªã£ã¦ããããï¼ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SRï¼ä¸ã®IPMã0ã¨ãã¦ããï¼saved_iipm
|
---|
| 218 | ã«ä¿åããå¤ã«æ»ãå¿
|
---|
| 219 | è¦ã¯ãªãï¼ï¼
|
---|
| 220 |
|
---|
| 221 | make_dormantã«ããã¦ï¼TCBã®enatexãã£ã¼ã«ããfalseã«ãã¦ããï¼ã¿ã¹ã¯ã
|
---|
| 222 | ä¼æ¢ç¶æ
|
---|
| 223 | ã®éã¯ãããä¿ãããï¼ãã®ããï¼ã¿ã¹ã¯ã®å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤
|
---|
| 224 | ç¦æ¢ç¶æ
|
---|
| 225 | ã¨ããããã«ï¼ç¹å¥ãªå¦çã¯å¿
|
---|
| 226 | è¦ãªãï¼
|
---|
| 227 |
|
---|
| 228 | âã¿ã¹ã¯ã®çµäº
|
---|
| 229 |
|
---|
| 230 | ext_tskã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
| 231 | ã§å¼ã°ããå ´åã«ã¯ãã®è§£é¤ï¼ã³ã¼ãä¸ã¯ï¼
|
---|
| 232 | ext_tskä¸ã§CPUããã¯ç¶æ
|
---|
| 233 | ã«ç§»è¡ããéã«ï¼CPUããã¯ç¶æ
|
---|
| 234 | ã§å¼ã°ããå ´åã«ã¯ï¼
|
---|
| 235 | 移è¡å¦çãçç¥ãã¦ããã ãï¼ï¼ãã£ã¹ãããç¦æ¢ç¶æ
|
---|
| 236 | ã§å¼ã°ããå ´åã«ã¯ãã£
|
---|
| 237 | ã¹ãããã®è¨±å¯ï¼å²è¾¼ã¿åªå
|
---|
| 238 | 度ãã¹ã¯å
|
---|
| 239 | ¨è§£é¤ä»¥å¤ã§å¼ã°ããå ´åã«ã¯ãã®å
|
---|
| 240 | ¨è§£
|
---|
| 241 | é¤ãè¡ã£ã¦ããï¼
|
---|
| 242 |
|
---|
| 243 | âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§
|
---|
| 244 |
|
---|
| 245 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãå¦çï¼call_texrtnï¼ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼
|
---|
| 246 | CPUããã¯ç¶æ
|
---|
| 247 | ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
|
---|
| 248 | ã§å¼ã³åºãããï¼ã¿ã¼ã²ããéä¾åé¨ã«ã
|
---|
| 249 | ãã¦ã¯ï¼ras_texã¨ena_texããcall_texrtnãå¼ã³åºãã¦ãããï¼ãããããã®
|
---|
| 250 | æ¡ä»¶ãæºããã¦ããï¼
|
---|
| 251 |
|
---|
| 252 | M68040ã«ããã¦ã¯ï¼dispatch_rã¨ret_int_rã®2ç®æããcall_texrtnãå¼ã³åºã
|
---|
| 253 | ã¦ããï¼dispatch_rãå®è¡ãããæã«ã¯ï¼CPUããã¯ç¶æ
|
---|
| 254 | ã¨ãªã£ã¦ããï¼ã¿ã¹ã¯
|
---|
| 255 | ä¾å¤è¨±å¯ç¶æ
|
---|
| 256 | ã®å ´åã®ã¿call_texrtnãå¼ã³åºãããã«ãã¦ããï¼ret_int_rã«
|
---|
| 257 | ã¤ãã¦ãï¼å®è¡ãããæã«ã¯CPUããã¯ç¶æ
|
---|
| 258 | ã¨ãªã£ã¦ããï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
|
---|
| 259 |
|
---|
| 260 | ã®å ´åã®ã¿call_texrtnãå¼ã³åºãããã«ãã¦ããï¼call_texrtnãç´æ¥å¼ã¶ä»£
|
---|
| 261 | ããã«calltexãå¼ã¹ã°ï¼calltexã«ããã¦ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
|
---|
| 262 | ã®å ´åã®ã¿
|
---|
| 263 | call_texrtnãå¼ã³åºãããã«ãªã£ã¦ããï¼ï¼
|
---|
| 264 |
|
---|
| 265 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å®è¡éå§æã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 266 | ï¼ã¿ã¹ã¯ä¾å¤ç¦æ¢ç¶
|
---|
| 267 | æ
|
---|
| 268 | ã¨ããªããã°ãªããªãããï¼call_texrtnã«ããã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã
|
---|
| 269 | å¼ã³åºãåã«ï¼CPUããã¯ã解é¤ãï¼ã¿ã¹ã¯ä¾å¤ç¦æ¢ç¶æ
|
---|
| 270 | ã¨ãã¦ããï¼ã¾ãï¼ãã£
|
---|
| 271 | ã¹ãããç¦æ¢ï¼è¨±å¯ç¶æ
|
---|
| 272 | ã¨å²è¾¼ã¿åªå
|
---|
| 273 | 度ãã¹ã¯ã¯ï¼å¼ã³åºãåã®ç¶æ
|
---|
| 274 | ãä¿åã
|
---|
| 275 | ãã®ã¿ã§ï¼ç¶æ
|
---|
| 276 | ã®å¤æ´ã¯è¡ããªãï¼
|
---|
| 277 |
|
---|
| 278 | âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³
|
---|
| 279 |
|
---|
| 280 | call_texrtnã«ããã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããæ»ã£ãå¾ã«ï¼CPUããã¯ç¶æ
|
---|
| 281 |
|
---|
| 282 | ã¸ã®ç§»è¡ï¼CPUããã¯ç¶æ
|
---|
| 283 | ã§æ»ã£ã¦ããå ´åã«ã¯çç¥ï¼ã¨ï¼ãã£ã¹ãããç¦æ¢ï¼
|
---|
| 284 | 許å¯ç¶æ
|
---|
| 285 | ã¨å²è¾¼ã¿åªå
|
---|
| 286 | 度ãã¹ã¯ãå¼ã³åºãåã®ç¶æ
|
---|
| 287 | ã«æ»ãå¦çãè¡ãï¼ã¾ãï¼
|
---|
| 288 | ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
|
---|
| 289 | ã¨ããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãç¶ãã¦å¼ã³åºãå ´åã«
|
---|
| 290 | ã¯ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
|
---|
| 291 | ã«ã¯ããªãï¼ï¼CPUããã¯ç¶æ
|
---|
| 292 | ã®è§£é¤ã¯ï¼call_texrtn
|
---|
| 293 | ãããªã¿ã¼ã³ããå¾ã«è¡ãï¼
|
---|
| 294 |
|
---|
| 295 | ã¿ã¼ã²ããéä¾åé¨ã«ããã¦ï¼ras_texã¨ena_texããcall_texrtnãå¼ã³åºãã
|
---|
| 296 | ãå ´åã«ã¯ï¼call_texrtnããã®ãªã¿ã¼ã³ã«ãããµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã«æ»ãï¼
|
---|
| 297 | ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã§ã¯ï¼call_texrtnããæ»ã£ãå¾ã«ï¼t_unlock_cpuãå¼
|
---|
| 298 | ã³åºãã¦CPUããã¯ç¶æ
|
---|
| 299 | ã解é¤ããï¼
|
---|
| 300 |
|
---|
| 301 | M68040ã«ããã¦ï¼dispatch_rããcall_texrtnãå¼ã³åºãããå ´åã«ã¯ï¼
|
---|
| 302 | call_texrtnããã®ãªã¿ã¼ã³ã«ããï¼ç´æ¥ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã«æ»ã
|
---|
| 303 | ï¼dispatchã®å¼åºãããæ»ãï¼ï¼ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã§ã¯ï¼dispatchãã
|
---|
| 304 | æ»ã£ãå¾ã«ï¼t_unlock_cpuãå¼ã³åºãã¦CPUããã¯ç¶æ
|
---|
| 305 | ã解é¤ããï¼
|
---|
| 306 |
|
---|
| 307 | ret_int_rããcall_texrtnãå¼ã³åºãããå ´åã«ã¯ï¼call_texrtnããã®ãªã¿ã¼
|
---|
| 308 | ã³å¾ã«ï¼lock_flagãã¯ãªã¢ãï¼rteå½ä»¤ã«ããIPMãå²è¾¼ã¿çºçåã®å¤ã«æ»ãã¦ï¼
|
---|
| 309 | CPUããã¯ç¶æ
|
---|
| 310 | ã解é¤ããï¼ãã®ã±ã¼ã¹ã¯ããã«ï¼ret_intã«ããã¦ã¿ã¹ã¯åæ
|
---|
| 311 | ããè¡ã£ãå ´åã¨ï¼è¡ããªãã£ãå ´åï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®è¡ããã
|
---|
| 312 | ãã«reqflgãã»ããããå ´åï¼ã«åé¡ã§ãããï¼ãããã®å ´åãï¼rteå½ä»¤ã«ã
|
---|
| 313 | ãï¼IPMã¯ã¿ã¹ã¯ãå²è¾¼ã¿ãåãä»ããæã®ç¶æ
|
---|
| 314 | ã«æ»ãï¼ä»æ§ã«åè´ããæ¯èã
|
---|
| 315 | ã¨ãªã£ã¦ããï¼
|
---|
| 316 |
|
---|
| 317 | âå²è¾¼ã¿ãã³ãã©ã®å®è¡éå§
|
---|
| 318 |
|
---|
| 319 | å²è¾¼ã¿ãã³ãã©ã®å®è¡éå§æã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã«ããã¦ï¼å²è¾¼ã¿åªå
|
---|
| 320 | 度
|
---|
| 321 | ãã¹ã¯ãï¼å®è¡éå§ããå²è¾¼ã¿ãã³ãã©ã®å²è¾¼ã¿åªå
|
---|
| 322 | 度ã«è¨å®ããï¼
|
---|
| 323 |
|
---|
| 324 | M68040ã«ããã¦ã¯ï¼å²è¾¼ã¿åªå
|
---|
| 325 | 度ãã¹ã¯ã®å¤æ´ã¯ï¼ãã¼ãã¦ã§ã¢ã§è¡ãããã
|
---|
| 326 | ãï¼ã½ããã¦ã§ã¢ã§ã¯ç¹å¥ã®å¦çãè¡ãå¿
|
---|
| 327 | è¦ããªãï¼
|
---|
| 328 |
|
---|
| 329 | âå²è¾¼ã¿ãã³ãã©ããã®ãªã¿ã¼ã³
|
---|
| 330 |
|
---|
| 331 | å²è¾¼ã¿ãã³ãã©ããã®ãªã¿ã¼ã³æã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã«ããã¦ï¼CPUããã¯
|
---|
| 332 | 解é¤ç¶æ
|
---|
| 333 | ã«æ»ãï¼å²è¾¼ã¿åªå
|
---|
| 334 | 度ãã¹ã¯ãå²è¾¼ã¿ãã³ãã©å®è¡éå§åã®å¤ã«æ»ãï¼
|
---|
| 335 |
|
---|
| 336 | M68040ã«ããã¦ã¯ï¼å²è¾¼ã¿ãã³ãã©ããã®åºå£å¦çï¼ret_intï¼ã®å¦çãï¼ãã
|
---|
| 337 | ã¤ãã®å®è¡çµè·¯ã«åãã¦ç¢ºèªããå¿
|
---|
| 338 | è¦ãããï¼
|
---|
| 339 |
|
---|
| 340 | (1) æ»ãå
|
---|
| 341 | ãéã¿ã¹ã¯ã³ã³ããã¹ããï¼reqflgãfalseã®å ´åã«ã¯ï¼ret_int_1
|
---|
| 342 | ã«ããã¦ï¼lock_flagãã¯ãªã¢ãï¼rteå½ä»¤ã«ããIPMãå²è¾¼ã¿çºçåã®å¤ã«æ»ã
|
---|
| 343 | ã¦ï¼CPUããã¯ç¶æ
|
---|
| 344 | ã解é¤ãï¼å²è¾¼ã¿åªå
|
---|
| 345 | 度ãã¹ã¯ãå
|
---|
| 346 | ã®å¤ã«æ»ãï¼
|
---|
| 347 |
|
---|
| 348 | (2) ã¿ã¹ã¯åæããå¿
|
---|
| 349 | è¦ãªå ´åã«ã¯ï¼CPUããã¯ç¶æ
|
---|
| 350 | ã«ç§»è¡ãã¦ï¼ãã£ã¹ãããã£
|
---|
| 351 | ï¼dispatcherï¼ã¸åå²ããï¼ãã®éã«ï¼å²è¾¼ã¿çºçåã®IPMï¼ãã£ã¹ãããä¿ç
|
---|
| 352 | ç¶æ
|
---|
| 353 | ã§ãªããã¨ããï¼TIPM_ENAALLã«ãªã£ã¦ããã¯ãï¼ãï¼saved_iipmã«ä¿åã
|
---|
| 354 | ãï¼ããã«ããï¼æ¬¡ã«å®è¡ãã¹ãã¿ã¹ã¯ã¸ã¨æ»ãåã«CPUããã¯ç¶æ
|
---|
| 355 | ã解é¤ãã
|
---|
| 356 | ã¿ã¤ãã³ã°ã§ï¼CPUããã¯ç¶æ
|
---|
| 357 | ã解é¤ãï¼å²è¾¼ã¿åªå
|
---|
| 358 | 度ãã¹ã¯ãå²è¾¼ã¿çºçåã®
|
---|
| 359 | å¤ã«è¨å®ããããã¨ã«ãªãï¼
|
---|
| 360 |
|
---|
| 361 | (3) ã¿ã¹ã¯åæããå¿
|
---|
| 362 | è¦ãªãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡ãå¿
|
---|
| 363 | è¦ãªå ´åã«
|
---|
| 364 | ã¯ï¼CPUããã¯ç¶æ
|
---|
| 365 | ã«ç§»è¡ãã¦ï¼call_rettexãå¼ã³åºãï¼ãã®éã«ï¼å²è¾¼ã¿çº
|
---|
| 366 | çåã®IPMï¼TIPM_ENAALLã§ããã¨ã¯éããªãï¼ãï¼saved_iipmã«ä¿åããï¼ã
|
---|
| 367 | ãã«ããï¼call_rettexã®ä¸ã§ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãåã«CPUãã
|
---|
| 368 | ã¯ç¶æ
|
---|
| 369 | ã解é¤ããã¿ã¤ãã³ã°ã§ï¼CPUããã¯ç¶æ
|
---|
| 370 | ã解é¤ãï¼å²è¾¼ã¿åªå
|
---|
| 371 | 度ãã¹ã¯
|
---|
| 372 | ãå²è¾¼ã¿çºçåã®å¤ã«è¨å®ããããã¨ã«ãªãï¼
|
---|
| 373 |
|
---|
| 374 | âå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ã®å®è¡éå§
|
---|
| 375 |
|
---|
| 376 | å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæããå²è¾¼ã¿ãã³
|
---|
| 377 | ãã©ããå¼ã³åºãï¼ISRã®å¼åºãã¯ï¼å²è¾¼ã¿ãã³ãã©ã®å®è¡éå§å¾ã«ãã®ã¾ã¾ã®
|
---|
| 378 | ç¶æ
|
---|
| 379 | ã§è¡ããï¼ä»ã®ISRãããªã¿ã¼ã³ããå¾ã«å
|
---|
| 380 | ã®ç¶æ
|
---|
| 381 | ã«æ»ããå¾ã«è¡ãï¼ãã
|
---|
| 382 | ãã®å ´åãï¼ISRã®å®è¡éå§æã®æ¡ä»¶ãæºããã¦ããï¼
|
---|
| 383 |
|
---|
| 384 | âå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ããã®ãªã¿ã¼ã³
|
---|
| 385 |
|
---|
| 386 | å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ããã®ãªã¿ã¼ã³å¾ã®å¦çã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼
|
---|
| 387 | ã¿ãçæããå²è¾¼ã¿ãã³ãã©ã«å«ã¾ããï¼ããã§ã¯ï¼CPUããã¯ç¶æ
|
---|
| 388 | ã§ããã°ã
|
---|
| 389 | ãã解é¤ãï¼å²è¾¼ã¿åªå
|
---|
| 390 | 度ãã¹ã¯ãISRå¼åºãåã®å¤ã«æ»ãï¼
|
---|
| 391 |
|
---|
| 392 | âã¿ã¤ã ã¤ãã³ããã³ãã©ã®å®è¡éå§
|
---|
| 393 |
|
---|
| 394 | å¨æãã³ãã©ã¯ã¿ã¼ã²ããéä¾åé¨ã®call_cychdrããï¼ã¢ã©ã¼ã ãã³ãã©ã¯ã¿ã¼
|
---|
| 395 | ã²ããéä¾åé¨ã®call_almhdrããå¼ã³åºãï¼ããããï¼å¼åºãåã«CPUããã¯
|
---|
| 396 | ç¶æ
|
---|
| 397 | ã解é¤ããï¼ããã§ï¼CPUããã¯ç¶æ
|
---|
| 398 | ã«ç§»è¡ããã®ã¯signal_timeã®ä¸ã®ã¯
|
---|
| 399 | ããªã®ã§ï¼å²è¾¼ã¿åªå
|
---|
| 400 | 度ãã¹ã¯ã¯ï¼signal_timeãå¼ã°ããæã®å¤ã«è¨å®ãããï¼
|
---|
| 401 |
|
---|
| 402 | âã¿ã¤ã ã¤ãã³ããã³ãã©ããã®ãªã¿ã¼ã³
|
---|
| 403 |
|
---|
| 404 | ã¿ã¤ã ã¤ãã³ããã³ãã©ããã®ãªã¿ã¼ã³å¾ã®å¦çã¯ï¼å¨æãã³ãã©ã«ã¤ãã¦ã¯
|
---|
| 405 | ã¿ã¼ã²ããéä¾åé¨ã®call_cychdrã«ï¼ã¢ã©ã¼ã ãã³ãã©ã«ã¤ãã¦ã¯ã¿ã¼ã²ãã
|
---|
| 406 | éä¾åé¨ã®call_almhdrã«å«ã¾ããï¼ããã§ã¯ï¼CPUããã¯ç¶æ
|
---|
| 407 | ã§ãªããã°CPUãã
|
---|
| 408 | ã¯ç¶æ
|
---|
| 409 | ã«æ»ãï¼CPUããã¯ç¶æ
|
---|
| 410 | ã®è§£é¤ã¯ï¼signal_timeã§è¡ãããï¼ï¼å²è¾¼ã¿åª
|
---|
| 411 | å
|
---|
| 412 | 度ãã¹ã¯ãã¿ã¤ã ã¤ãã³ããã³ãã©å¼åºãåã®å¤ã«æ»ãï¼
|
---|
| 413 |
|
---|
| 414 | âCPUä¾å¤ãã³ãã©ã®å®è¡éå§
|
---|
| 415 |
|
---|
| 416 | CPUä¾å¤ãã³ãã©ã®å®è¡éå§æã«ã¯ï¼å®è¡éå§åã®ã·ã¹ãã ç¶æ
|
---|
| 417 | ãä¿åããã®ã¿
|
---|
| 418 | ã§ï¼ã·ã¹ãã ç¶æ
|
---|
| 419 | ããã®ã¾ã¾å¼ãç¶ãï¼
|
---|
| 420 |
|
---|
| 421 | M68040ã«ããã¦ã¯ï¼ä¾å¤å¦çå®è¡éå§ç´å¾ã®ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SRï¼ã¨
|
---|
| 422 | lock_flagãã¹ã¿ãã¯ã«ä¿åããå¾ï¼ã·ã¹ãã ç¶æ
|
---|
| 423 | ãå¤æ´ããã«ï¼CPUä¾å¤å¦ç
|
---|
| 424 | ã«ã¼ãã³ãå¼ã³åºãï¼
|
---|
| 425 |
|
---|
| 426 | âCPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³
|
---|
| 427 |
|
---|
| 428 | CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³æã«ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã«ããã¦ï¼CPUãã
|
---|
| 429 | ã¯ï¼ããã¯è§£é¤ç¶æ
|
---|
| 430 | ã¨å²è¾¼ã¿åªå
|
---|
| 431 | 度ãã¹ã¯ãï¼CPUä¾å¤ãã³ãã©å®è¡éå§åã®ç¶
|
---|
| 432 | æ
|
---|
| 433 | ã«æ»ãï¼
|
---|
| 434 |
|
---|
| 435 | M68040ã«ããã¦ã¯ï¼CPUä¾å¤ãã³ãã©ããã®åºå£å¦çï¼ret_excï¼ã«ããã¦ï¼ã¾
|
---|
| 436 | ãï¼lock_flagãå
|
---|
| 437 | ã®å¤ã«æ»ãã¦ããï¼å²è¾¼ã¿åªå
|
---|
| 438 | 度ãã¹ã¯ã«ã¤ãã¦ã¯ï¼ããã¤
|
---|
| 439 | ãã®å®è¡çµè·¯ã«åãã¦ç¢ºèªããå¿
|
---|
| 440 | è¦ãããï¼
|
---|
| 441 |
|
---|
| 442 | (1) æ»ãå
|
---|
| 443 | ãéã¿ã¹ã¯ã³ã³ããã¹ããï¼reqflgãfalseã®å ´åã«ã¯ï¼ret_exc_2
|
---|
| 444 | ã«ããã¦ï¼rteå½ä»¤ã«ããIPMãå²è¾¼ã¿çºçåã®å¤ã«æ»ãã¦ï¼å²è¾¼ã¿åªå
|
---|
| 445 | 度ãã¹
|
---|
| 446 | ã¯ãå
|
---|
| 447 | ã®å¤ã«æ»ãï¼CPUããã¯ç¶æ
|
---|
| 448 | ã§CPUä¾å¤ãçºçããå ´åã«ã¯ï¼reqflgã
|
---|
| 449 | trueã«ãªããã¨ã¯ãªãã®ã§ï¼ãã®çµè·¯ã§å®è¡ãããï¼
|
---|
| 450 |
|
---|
| 451 | (2,3) ãã®ä»ã®å ´åã¯ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 452 | ã§CPUä¾å¤ãçºçããå ´åã§ããï¼
|
---|
| 453 | å²è¾¼ã¿ãã³ãã©ããã®åºå£å¦çã¨åæ§ã§ããï¼
|
---|
| 454 |
|
---|
| 455 | 以ä¸
|
---|