[363] | 1 |
|
---|
| 2 | ï¼ JSPã«ã¼ãã« ã¿ã¼ã²ããä¾åé¨ ãã¼ãã£ã³ã°ã¬ã¤ã ï¼
|
---|
| 3 |
|
---|
| 4 | ï¼Release 1.4.3対å¿ï¼æçµæ´æ°: 22-Apr-2007ï¼
|
---|
| 5 |
|
---|
| 6 | ------------------------------------------------------------------------
|
---|
| 7 | TOPPERS/JSP Kernel
|
---|
| 8 | Toyohashi Open Platform for Embedded Real-Time Systems/
|
---|
| 9 | Just Standard Profile Kernel
|
---|
| 10 |
|
---|
| 11 | Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
|
---|
| 12 | Toyohashi Univ. of Technology, JAPAN
|
---|
| 13 | Copyright (C) 2004-2005 by Embedded and Real-Time Systems Laboratory
|
---|
| 14 | Graduate School of Information Science, Nagoya Univ., JAPAN
|
---|
| 15 |
|
---|
| 16 | ä¸è¨èä½æ¨©è
|
---|
| 17 | ã¯ï¼ä»¥ä¸ã® (1)ã(4) ã®æ¡ä»¶ãï¼Free Software Foundation
|
---|
| 18 | ã«ãã£ã¦å
|
---|
| 19 | ¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
|
---|
| 20 | è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
|
---|
| 21 | ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹å¤ã»åé
|
---|
| 22 | å¸ï¼ä»¥ä¸ï¼
|
---|
| 23 | å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
|
---|
| 24 | (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
|
---|
| 25 | 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
|
---|
| 26 | ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼
|
---|
| 27 | (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
| 28 | ç¨ã§ããå½¢ã§åé
|
---|
| 29 | å¸ããå ´åã«ã¯ï¼åé
|
---|
| 30 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨
|
---|
| 31 | è
|
---|
| 32 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
|
---|
| 33 | ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
| 34 | (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
|
---|
| 35 | ç¨ã§ããªãå½¢ã§åé
|
---|
| 36 | å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
|
---|
| 37 | ã¨ï¼
|
---|
| 38 | (a) åé
|
---|
| 39 | å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è
|
---|
| 40 | ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
|
---|
| 41 | ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
|
---|
| 42 | (b) åé
|
---|
| 43 | å¸ã®å½¢æ
|
---|
| 44 | ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã«
|
---|
| 45 | å ±åãããã¨ï¼
|
---|
| 46 | (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
|
---|
| 47 | 害ãããï¼ä¸è¨èä½æ¨©è
|
---|
| 48 | ããã³TOPPERSããã¸ã§ã¯ããå
|
---|
| 49 | 責ãããã¨ï¼
|
---|
| 50 |
|
---|
| 51 | æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
|
---|
| 52 | ã
|
---|
| 53 | ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
|
---|
| 54 | å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
|
---|
| 55 | æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
|
---|
| 56 |
|
---|
| 57 | @(#) $Id: config.txt,v 1.40 2007/05/28 02:06:45 honda Exp $
|
---|
| 58 | ------------------------------------------------------------------------
|
---|
| 59 |
|
---|
| 60 |
|
---|
| 61 | ãã®ããã¥ã¡ã³ãã§ã¯ï¼JSPã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ããã¼ã¿
|
---|
| 62 | åãé¢æ°ãªã©ã«ã¤ãã¦è§£èª¬ããï¼
|
---|
| 63 |
|
---|
| 64 | JSPã«ã¼ãã«ã®ã¿ã¼ã²ããä¾åé¨ã¯ï¼ä¾åé¨ã®åå©ç¨æ§ãèæ
|
---|
| 65 | ®ãï¼ããã»ããµ
|
---|
| 66 | ä¾åé¨ï¼ã·ã¹ãã ä¾åé¨ï¼éçºç°å¢ä¾åé¨ã«åé¢ãã¦ããï¼éçºç°å¢ä¾åé¨ã«
|
---|
| 67 | é¢ãã¦ã¯ï¼ããããã®å½¹å²åæ
|
---|
| 68 | ã決ã¾ã£ã¦ãããï¼ããã»ããµä¾åé¨ã¨ã·ã¹ã
|
---|
| 69 | ã ä¾åé¨ã«ã¤ãã¦ã¯ï¼å½¹å²åæ
|
---|
| 70 | ãæ確ãªããã§ã¯ãªãï¼ä»¥ä¸ã®ãã¼ã¿åãé¢æ°
|
---|
| 71 | ã®å¤ãã¯ï¼ã©ã®ä¾åé¨ã§å®ç¾©ãã¦ããã¾ããªãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã®
|
---|
| 72 | 極端ãªã±ã¼ã¹ã§ã¯ï¼ã·ã¹ãã ä¾åé¨ãå
|
---|
| 73 | ¨ã使ããªããã¨ãèããããï¼
|
---|
| 74 |
|
---|
| 75 | JSPã«ã¼ãã«ã®ããã¤ã¹ãã©ã¤ãçã¯ï¼ããã³åä¼ã«ããã¦æ¤è¨ããã¦ããã
|
---|
| 76 | ãã¤ã¹ãã©ã¤ãè¨è¨ã¬ã¤ãã©ã¤ã³ã«æ²¿ãå½¢ã§å®è£
|
---|
| 77 | ãã¦ããï¼ããã¤ã¹ãã©ã¤ã
|
---|
| 78 | è¨è¨ã¬ã¤ãã©ã¤ã³WGã®ä¸éå ±åã¯ï¼ä»¥ä¸ã®URLãããã¦ã³ãã¼ããããã¨ãã§
|
---|
| 79 | ããï¼
|
---|
| 80 | http://www.ertl.jp/ITRON/GUIDE/device-j.html
|
---|
| 81 |
|
---|
| 82 |
|
---|
| 83 | ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢
|
---|
| 84 |
|
---|
| 85 | JSPã«ã¼ãã«ã¯ï¼GNUéçºç°å¢ãæ¨æºã¨ãã¦ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãéçºæ¯
|
---|
| 86 | æ´ã¦ã¼ãã£ãªãã£ã¯ï¼ä¸»ã«GNUéçºç°å¢ã¨çµã¿åããã¦åä½ããããã«å®è£
|
---|
| 87 | ã
|
---|
| 88 | ãã¦ããï¼ããã§ä»¥ä¸ã§ã¯ï¼GNUéçºç°å¢ãç¨ããå ´åãä¸å¿ã«èª¬æããï¼ã
|
---|
| 89 | ã以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºæ¯æ´ã¦ã¼ãã£ãªãã£ã®æ¹é ãå¿
|
---|
| 90 | è¦ã«
|
---|
| 91 | ãªã£ããï¼ä¸é¨ã®ã¦ã¼ãã£ãªãã£ã使ç¨ã§ããªãã±ã¼ã¹ãããï¼
|
---|
| 92 |
|
---|
| 93 | (1) ã¿ã¼ã²ããç¥ç§°ã®æ±ºå®
|
---|
| 94 |
|
---|
| 95 | æ°ããã¿ã¼ã²ããä¾åé¨ãä½æããæã¯ï¼ããã»ããµç¥ç§°ã¨ã·ã¹ãã ç¥ç§°ãå®
|
---|
| 96 | ããï¼ã¾ãï¼GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºç°å¢ç¥ç§°ãå®ããï¼
|
---|
| 97 | ãããã®ç¥ç§°ã«ç¨ããæåã¯ï¼è±æåï¼æ°åããã³ "_" ã«éå®ããï¼
|
---|
| 98 |
|
---|
| 99 | (2) ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããª
|
---|
| 100 |
|
---|
| 101 | ã¿ã¼ã²ããä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããªãï¼config ã®ä¸ã«ä½
|
---|
| 102 | æããï¼ãã£ã¬ã¯ããªåã¯ï¼ã¿ã¼ã²ããç¥ç§°ãã以ä¸ã®ããã«æ±ºå®ããï¼ãã
|
---|
| 103 | ãï¼ãã£ã¬ã¯ããªåã«å«ã¾ããè±æåã¯ãã¹ã¦å°æåã¨ããï¼ããªãã¡ï¼ãã£
|
---|
| 104 | ã¬ã¯ããªåã«ã¯ï¼è±å°æåï¼æ°åããã³ "_" ã®ã¿ã使ããã¨ãã§ããï¼
|
---|
| 105 |
|
---|
| 106 | GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼config ã®ä¸ã«ããã»ããµç¥ç§°ãç¨ãã¦ããã»ã
|
---|
| 107 | ãµä¾åé¨ã®ãã¡ã¤ã«ãç½®ãããã®ãã£ã¬ã¯ããªï¼ããã»ããµä¾åé¨ãã£ã¬ã¯ã
|
---|
| 108 | ãªï¼ãï¼ããã«ãã®ä¸ã«ã·ã¹ãã ç¥ç§°ãç¨ãã¦ã·ã¹ãã ä¾åé¨ã®ãã¡ã¤ã«ãç½®
|
---|
| 109 | ãããã®ãã£ã¬ã¯ããªï¼ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªï¼ãä½æããï¼
|
---|
| 110 |
|
---|
| 111 | GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼config ã®ä¸ã«ããã»ããµç¥ç§°ã¨éçºç°
|
---|
| 112 | å¢ç¥ç§°ã "-" ã§é£çµããå称ï¼ä¾ãã°ï¼"sh3-hitachi"ï¼ã§ï¼ããã»ããµä¾å
|
---|
| 113 | é¨ãã£ã¬ã¯ããªãä½æããï¼ããã«ãã®ä¸ã«ï¼ã·ã¹ãã ç¥ç§°ãç¨ãã¦ã·ã¹ãã
|
---|
| 114 | ä¾åé¨ãã£ã¬ã¯ããªãä½æããï¼ãããã®ãã£ã¬ã¯ããªã«ã¯ï¼GNUéçºç°å¢ç¨
|
---|
| 115 | ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ãããã¡ã¤ã«ã¨ç°ãªããã¡ã¤ã«ã®ã¿ãç½®ãï¼ãã¡ã¤
|
---|
| 116 | ã«ãç½®ããã¦ããªãå ´åã«ã¯ï¼GNUéçºç°å¢ç¨ã®ãã£ã¬ã¯ããªãåç
|
---|
| 117 | §ããï¼ã
|
---|
| 118 | ã ãï¼Makefile.config ã«é¢ãã¦ã¯ï¼GNUéçºç°å¢ç¨ã®ãã£ã¬ã¯ããªãåç
|
---|
| 119 | §ã
|
---|
| 120 | ãªãããï¼åãå
|
---|
| 121 | 容ã§ãã£ã¦ãç¨æããªããã°ãªããªãï¼
|
---|
| 122 |
|
---|
| 123 | (3) ã·ã¹ãã æ§ç¯æ¹æ³ã®è¨å®
|
---|
| 124 |
|
---|
| 125 | ããã»ããµä¾åé¨ãã£ã¬ã¯ããªããã³ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªã®ä¸ã«ï¼ã
|
---|
| 126 | ãããï¼ã·ã¹ãã æ§ç¯æ¹æ³ãè¨å®ããããã® Makefile.config ãã¡ã¤ã«ãç¨
|
---|
| 127 | æããï¼ãããã®ãã¡ã¤ã«ã¯ï¼Makefile ããã¤ã³ã¯ã«ã¼ããããï¼
|
---|
| 128 |
|
---|
| 129 | ããã»ããµä¾åé¨ããã³ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§å®ç¾©ãã¹ãå¤
|
---|
| 130 | æ°ã«ã¯ï¼éçºç°å¢ã®ã³ãã³ãåãè¨å®ãããã®ï¼ã³ã³ãã¤ã«ãªãã·ã§ã³ãè¨å®
|
---|
| 131 | ãããã®ï¼ãã®ä»ã®ãã®ãããï¼ããã§ã¯ï¼ãã®ä»ã®å¤æ°ã¨ãã®å®ç¾©ã®æ¹æ³ã«
|
---|
| 132 | ã¤ãã¦èª¬æããï¼
|
---|
| 133 |
|
---|
| 134 | (3-1) TEXT_START_ADDRESS ããã¹ãã»ã¯ã·ã§ã³ã®å
|
---|
| 135 | é çªå°
|
---|
| 136 | (3-2) DATA_START_ADDRESS ãã¼ã¿ã»ã¯ã·ã§ã³ã®å
|
---|
| 137 | é çªå°
|
---|
| 138 |
|
---|
| 139 | åã»ã¯ã·ã§ã³ã®å
|
---|
| 140 | é çªå°ã®æå®ãå¿
|
---|
| 141 | è¦ãªå ´åã«ã¯ï¼ãããã®å¤æ°ã«å
|
---|
| 142 | é çªå°ã
|
---|
| 143 | å®ç¾©ããï¼
|
---|
| 144 |
|
---|
| 145 | (3-3) LDSCRIPT ãªã³ã«ã¹ã¯ãªããã®ãã¡ã¤ã«å
|
---|
| 146 |
|
---|
| 147 | å°ç¨ã®ãªã³ã«ã¹ã¯ãªãããç¨ããå ´åã«ã¯ï¼ãã®å¤æ°ã«ãªã³ã«ã¹ã¯ãªããã®ãã¡
|
---|
| 148 | ã¤ã«åãå®ç¾©ããï¼ãã¡ã¤ã«åã¯ï¼config ãã£ã¬ã¯ããªããã®ç¸å¯¾ãã¹ã§æ
|
---|
| 149 | å®ããï¼
|
---|
| 150 |
|
---|
| 151 | (4) éçºç°å¢ã®ã³ãã³ãåã®è¨å®
|
---|
| 152 |
|
---|
| 153 | (4-1) TARGET ã¿ã¼ã²ããå
|
---|
| 154 |
|
---|
| 155 | GNUéçºç°å¢ã configure ããå ´åã«æå®ããã¿ã¼ã²ããåã§ï¼ã³ã³ãã¤ã©ç
|
---|
| 156 | ã®ã³ãã³ãåã®å
|
---|
| 157 | é ã«ä»ä¸ãããæååï¼æå¾ã® "-" ã¯ä¸è¦ï¼ã«å®ç¾©ããï¼
|
---|
| 158 | ä¾ãã°ï¼TARGET ã m68k-unknown-elf ã«å®ç¾©ãããå ´åã«ã¯ï¼ã³ã³ãã¤ã©ã¨
|
---|
| 159 | ã㦠m68k-unknown-elf-gcc ã使ãããï¼ãã®å¤æ°ãå®ç¾©ãããªãå ´åã«ã¯ï¼
|
---|
| 160 | åãªã gcc ã使ãããï¼GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼å®ç¾©ããå¿
|
---|
| 161 | è¦
|
---|
| 162 | ããªãï¼
|
---|
| 163 |
|
---|
| 164 | (4-2) CC Cã³ã³ãã¤ã©ãã©ã¤ãã®å称
|
---|
| 165 | (4-3) CXX C++ã³ã³ãã¤ã©ãã©ã¤ãã®å称
|
---|
| 166 | (4-4) AS ã¢ã»ã³ãã©ã®å称
|
---|
| 167 | (4-5) LD ãªã³ã«ã®å称
|
---|
| 168 | (4-6) AR ã¢ã¼ã«ã¤ãã®å称
|
---|
| 169 | (4-7) NM nmããã°ã©ã ã®å称
|
---|
| 170 | (4-8) RANLIB ranlibããã°ã©ã ã®å称
|
---|
| 171 | (4-9) OBJCOPY objcopyããã°ã©ã ã®å称
|
---|
| 172 | (4-10) OBJDUMP objdumpããã°ã©ã ã®å称
|
---|
| 173 |
|
---|
| 174 | GNU以å¤ã®éçºç°å¢ãç¨ããå ´åã«ï¼ããããã®ã³ãã³ãã®å称ã«å®ç¾©ããï¼
|
---|
| 175 | 対å¿ããã³ãã³ãããªãå ´åãï¼ã³ãã³ããã©ã¡ã¼ã¿ãç°ãªãå ´åã«ã¯ï¼
|
---|
| 176 | Makefile ä¸ã®ãã®ã³ãã³ããå¼ã³åºãã¦ããé¨åãå¤æ´ããå¿
|
---|
| 177 | è¦ãããï¼GNU
|
---|
| 178 | éçºç°å¢ã§ã¯ï¼ããã㯠TARGET ãç¨ãã¦å®ç¾©ãããã®ã§ï¼å®ç¾©ããå¿
|
---|
| 179 | è¦ã¯ãª
|
---|
| 180 | ãï¼
|
---|
| 181 |
|
---|
| 182 | (5) ã³ã³ãã¤ã«ãªãã·ã§ã³ã®è¨å®
|
---|
| 183 |
|
---|
| 184 | (5-1) CDEFS ãã¯ãå®ç¾©ãªãã·ã§ã³ï¼-Dï¼
|
---|
| 185 | (5-2) INCLUDES ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®ãã£ã¬ã¯ããªæå®ãªãã·ã§ã³ï¼-Iï¼
|
---|
| 186 | (5-3) COPTS ã³ã³ãã¤ã©ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
|
---|
| 187 | (5-4) LDFLAGS ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
|
---|
| 188 | (5-5) LIBS ã©ã¤ãã©ãªãªã³ã¯æå®ã®ããã®ãªãã·ã§ã³
|
---|
| 189 |
|
---|
| 190 | ã¿ã¼ã²ããã«ä¾åãã¦ï¼ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã«å
|
---|
| 191 | ±éããã³ã³ãã¤ã«ãªãã·ã§
|
---|
| 192 | ã³ã®è¿½å ãå¿
|
---|
| 193 | è¦ãªå ´åã«ã¯ï¼ãªãã·ã§ã³ã®ç¨®é¡æ¯ã«ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
| 194 |
|
---|
| 195 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼":=" ã
|
---|
| 196 | ç¨ãã¦ï¼ããã¾ã§ã®å®ç¾©ã«è¿½å ããå½¢ã§è¡ãï¼ä¾ãã°ï¼ããã»ããµä¾åé¨ã§
|
---|
| 197 | ã-Wall -g -O2 -m68020-40ãã¨ãããªãã·ã§ã³ã追å ãããå ´åã«ã¯ï¼ä»¥ä¸
|
---|
| 198 | ã®è¨è¿°ãããã»ããµä¾åé¨ã® Makefile.config ã«å«ããï¼
|
---|
| 199 |
|
---|
| 200 | COPTS := $(COPTS) -Wall -g -O2 -m68020-40
|
---|
| 201 |
|
---|
| 202 | ããã«å¯¾ãã¦ï¼ã·ã¹ãã ä¾åé¨ã® Makefile.config 㯠Makefile ã®æåã§ã¤
|
---|
| 203 | ã³ã¯ã«ã¼ããããããï¼ãã®ãããªé
|
---|
| 204 | æ
|
---|
| 205 | ®ã¯å¿
|
---|
| 206 | è¦ãªããï¼å¤æ´ã«å¼·ãããããã«
|
---|
| 207 | åæ§ã«æ±ããã¨ã«ããï¼
|
---|
| 208 |
|
---|
| 209 | ã»ã¨ãã©ã®å ´åã«ï¼ããã»ããµä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ã
|
---|
| 210 | å«ããå¿
|
---|
| 211 | è¦ãããï¼
|
---|
| 212 |
|
---|
| 213 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
| 214 | INCLUDES := -I$(CONFIGDIR)/$(CPU)
|
---|
| 215 |
|
---|
| 216 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
| 217 | INCLUDES := -I$(CONFIGDIR)/$(CPU)-$(TOOL) -I$(CONFIGDIR)/$(CPU)
|
---|
| 218 |
|
---|
| 219 | ã¾ãï¼ã·ã¹ãã ä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ãå«ããå¿
|
---|
| 220 | è¦ãã
|
---|
| 221 | ãï¼
|
---|
| 222 |
|
---|
| 223 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
| 224 | INCLUDES := $(INCLUDES) -I$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
| 225 |
|
---|
| 226 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
| 227 | INCLUDES := $(INCLUDES) -I$(CONFIGDIR)/$(CPU)-$(TOOL)/$(SYS) \
|
---|
| 228 | -I$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
| 229 |
|
---|
| 230 | ã¾ãï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®èå¥åãï¼Cè¨èªã¬ãã«ã®èå¥åã®å
|
---|
| 231 | é ã« "_"
|
---|
| 232 | ãä»ãããã®ã«ãªãå ´åã«ã¯ï¼ããããã® Makefile.config 㧠CDEFS ã«
|
---|
| 233 | -DLABEL_ASM ã追å ããï¼
|
---|
| 234 |
|
---|
| 235 | (5-6) STASK_DIR ã·ã¹ãã ãµã¼ãã¹ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
| 236 | (5-7) STASK_ASMOBJS ã¢ã»ã³ãã©ã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
|
---|
| 237 | (5-8) STASK_COBJS Cè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
|
---|
| 238 | (5-9) STASK_CFLAGS ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
| 239 | (5-10) STASK_LIBS ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã©ã¤ãã©ãªãªã³ã¯æå®
|
---|
| 240 |
|
---|
| 241 | ã·ã¹ãã ãµã¼ãã¹ï¼ã·ã¹ãã ãã°ã¿ã¹ã¯ãããã¤ã¹ãã©ã¤ããªã©ï¼ã®ã½ã¼ã¹ã
|
---|
| 242 | ç½®ããããã£ã¬ã¯ããªï¼ãããæ§æãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ãã
|
---|
| 243 | ããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ãã¤ã«ãªãã·ã§ã³ï¼ãã®æ§æã«å¿
|
---|
| 244 | è¦ãªã©
|
---|
| 245 | ã¤ãã©ãªãªã³ã¯æå®ãè¡ãå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
| 246 |
|
---|
| 247 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼CDEFS
|
---|
| 248 | ãªã©ã¨åæ§ã®æ±ããå¿
|
---|
| 249 | è¦ã§ããï¼
|
---|
| 250 |
|
---|
| 251 | (5-11) KERNEL_DIR ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
|
---|
| 252 | (5-12) KERNEL_ASMOBJS ã¢ã»ã³ãã©ã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
| 253 | (5-13) KERNEL_COBJS Cè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
|
---|
| 254 | (5-14) KERNEL_CFLAGS ã«ã¼ãã«ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
|
---|
| 255 |
|
---|
| 256 | ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ãããæ§æãããªãã¸ã§ã¯ããã¡
|
---|
| 257 | ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ãã¤ã«ãªãã·ã§ã³ã
|
---|
| 258 | æå®ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
|
---|
| 259 |
|
---|
| 260 | ã·ã¹ãã ä¾åé¨ã® Makefile.config ã§ãããã®å¤æ°ãå®ç¾©ããæã¯ï¼CDEFS
|
---|
| 261 | ãªã©ã¨åæ§ã®æ±ããå¿
|
---|
| 262 | è¦ã§ããï¼
|
---|
| 263 |
|
---|
| 264 | ã»ã¨ãã©ã®å ´åã«ï¼ããã»ããµä¾åé¨ã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ã
|
---|
| 265 | å«ããå¿
|
---|
| 266 | è¦ãããï¼
|
---|
| 267 |
|
---|
| 268 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
| 269 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)
|
---|
| 270 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) cpu_support.o
|
---|
| 271 | KERNEL_COBJS := $(KERNEL_COBJS) cpu_config.o
|
---|
| 272 |
|
---|
| 273 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
| 274 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)-$(TOOL)
|
---|
| 275 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)
|
---|
| 276 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) cpu_support.o
|
---|
| 277 | KERNEL_COBJS := $(KERNEL_COBJS) cpu_config.o
|
---|
| 278 |
|
---|
| 279 | ã¾ãï¼ã·ã¹ãã ä¾åé¨ãã£ã¬ã¯ããªã® Makefile.config ã«ã¯ä»¥ä¸ã®è¨è¿°ãå«
|
---|
| 280 | ããå¿
|
---|
| 281 | è¦ãããï¼
|
---|
| 282 |
|
---|
| 283 | GNUéçºç°å¢ãç¨ããå ´å
|
---|
| 284 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
| 285 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) sys_support.o
|
---|
| 286 | KERNEL_COBJS := $(KERNEL_COBJS) sys_config.o
|
---|
| 287 |
|
---|
| 288 | ãã®ä»ã®éçºç°å¢ãç¨ããå ´å
|
---|
| 289 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)-$(TOOL)/$(SYS)
|
---|
| 290 | KERNEL_DIR := $(KERNEL_DIR):$(CONFIGDIR)/$(CPU)/$(SYS)
|
---|
| 291 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) sys_support.o
|
---|
| 292 | KERNEL_COBJS := $(KERNEL_COBJS) sys_config.o
|
---|
| 293 |
|
---|
| 294 | (6) ãªãã»ãããã¡ã¤ã«ã®çæ
|
---|
| 295 |
|
---|
| 296 | ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããããã°ã©ã ããï¼Cè¨èªã®æ§é ä½ã«ã¢ã¯ã»ã¹ãã
|
---|
| 297 | å ´åã«ã¯ï¼æ§é ä½ã®åãã£ã¼ã«ãã®ãªãã»ãããåç
|
---|
| 298 | §ãããã¨ãå¿
|
---|
| 299 | è¦ã§ããï¼
|
---|
| 300 | JSPã«ã¼ãã«ã§ã¯ï¼å¿
|
---|
| 301 | è¦ãªãªãã»ããå¤ããã¡ã¤ã«ï¼æ¨æºã§ã¯ offset.hï¼ã«åº
|
---|
| 302 | åããããã®ä»çµã¿ã¨ãã¦ï¼makeoffset.c 㨠genoffset ãç¨æãã¦ããï¼
|
---|
| 303 | makeoffset.c ã¯ï¼ã©ã®ãªãã»ããå¤ããã¡ã¤ã«ã«åºåããããæå®ãããã®
|
---|
| 304 | ã§ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
| 305 | è¦ãããï¼genoffset ã¯ï¼ç¾æç¹ã§ã¯GNU
|
---|
| 306 | éçºç°å¢ã«ã®ã¿å¯¾å¿ãã¦ããï¼
|
---|
| 307 |
|
---|
| 308 | makeoffset.c 㨠genoffset ã使ããã¨ã§ï¼ä¾ãã°ï¼TCB ä¸ã® texptn ãã£ã¼
|
---|
| 309 | ã«ãã®ãªãã»ããå¤ã TCB_texptn ã«ãã¯ãå®ç¾©ãããã¨ãï¼TCB ä¸ã®ã¿ã¹ã¯
|
---|
| 310 | ã³ã³ããã¹ããããã¯ï¼tskctxbï¼ã«å«ã¾ãã pc ãã£ã¼ã«ãã®ãªãã»ããå¤
|
---|
| 311 | ã TCB_pc ã«ãã¯ãå®ç¾©ãããã¨ãã§ããï¼ã¾ãï¼TCB ä¸ã® enatex ãã£ã¼ã«
|
---|
| 312 | ãã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼ããããã¹ã¯ãï¼ãããã TCB_enatexï¼
|
---|
| 313 | TCB_enatex_bitï¼TCB_enatex_mask ã«ãã¯ãå®ç¾©ãããã¨ãã§ããï¼ãã¯ãå®
|
---|
| 314 | 義ãããããä½ç½®ãããããã¹ã¯ã¯ï¼ã¢ã¯ã»ã¹ãããµã¤ãºãã¨ã³ãã£ã¢ã³ãæ
|
---|
| 315 | å®ãããã¨ãã§ããï¼
|
---|
| 316 |
|
---|
| 317 | GNUéçºç°å¢ä»¥å¤ãç¨ããå ´åãªã©ï¼ãã®ä»çµã¿ã§ãªãã»ãããã¡ã¤ã«ãçæ
|
---|
| 318 | ã§ããªãæã«ã¯ï¼offset.h ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼Makefile.config
|
---|
| 319 | 㧠OMIT_MAKEOFFSET ããã«ã¹ããªã³ã°ä»¥å¤ã«å®ç¾©ããï¼
|
---|
| 320 |
|
---|
| 321 | makeoffset.c 㨠genoffset ã«é¢ããããã¥ã¢ã«ã¯ï¼ç¾æç¹ã§ã¯ç¨æã§ãã¦ã
|
---|
| 322 | ãªãï¼ä½¿ãæ¹ãããããªãå ´åãï¼æ©è½ã足ããªãå ´åã«ã¯ï¼ç¸è«ããããï¼
|
---|
| 323 |
|
---|
| 324 | (7) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ãªã©
|
---|
| 325 |
|
---|
| 326 | ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
| 327 | é ã¨æå¾ã«ãªã³ã¯ãã¹ãããã°
|
---|
| 328 | ã©ã ãï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨æããå¿
|
---|
| 329 | è¦ãããï¼å¤ãã®å ´åï¼ã¹ã¿ã¼ãã¢ã
|
---|
| 330 | ãã¢ã¸ã¥ã¼ã«ããã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
| 331 | é ã«ãªã³ã¯ããå¿
|
---|
| 332 | è¦ãããï¼
|
---|
| 333 |
|
---|
| 334 | ãã¼ãã¢ã¸ã¥ã¼ã«ã®å
|
---|
| 335 | é ã«ãªã³ã¯ãã¹ãããã°ã©ã ãããå ´åã«ã¯ï¼
|
---|
| 336 | Makefile.config ã«ããã¦ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åã START_OBJS ã«å®
|
---|
| 337 | 義ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããªããã°
|
---|
| 338 | ãªããªãï¼ãã¼ãã¢ã¸ã¥ã¼ã«ã®æå¾ã«ãªã³ã¯ãã¹ãããã°ã©ã ãããå ´åã«ã¯ï¼
|
---|
| 339 | ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åã END_OBJS ã«å®ç¾©ãï¼ããã«å¯¾ããã³ã³ãã¤ã«
|
---|
| 340 | ã«ã¼ã«ã¨ä¾åé¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããªããã°ãªããªãï¼
|
---|
| 341 |
|
---|
| 342 | ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ã start.S ã®å ´åã«ã¯ï¼
|
---|
| 343 | Makefile.config ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
| 344 | ¥ããã¨ããï¼
|
---|
| 345 |
|
---|
| 346 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
| 347 | START_OBJS = start.o
|
---|
| 348 |
|
---|
| 349 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
|
---|
| 350 | $(START_OBJS): %.o: %.S
|
---|
| 351 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
| 352 |
|
---|
| 353 | # ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¾åé¢ä¿ä½æã«ã¼ã«
|
---|
| 354 | $(START_OBJS:.o=.d): %.d: %.S
|
---|
| 355 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
|
---|
| 356 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
| 357 |
|
---|
| 358 | ã¾ãï¼ã³ã³ãã¤ã©ã«æ¨æºã® crtbegin.o 㨠crtend.o ãç¨ããå ´åã«ã¯ï¼
|
---|
| 359 | Makefile.config ã«æ¬¡ã®ãããªè¨è¿°ãå
|
---|
| 360 | ¥ããã¨ããï¼
|
---|
| 361 |
|
---|
| 362 | # ãªãã¸ã§ã¯ããã¡ã¤ã«å
|
---|
| 363 | START_OBJS = $(shell $(CC) -print-file-name=crtbegin.o)
|
---|
| 364 | END_OBJS = $(shell $(CC) -print-file-name=crtend.o)
|
---|
| 365 |
|
---|
| 366 | # ä¾åé¢ä¿ä½æã«ã¼ã«
|
---|
| 367 | $(START_OBJS:.o=.d): %.d:
|
---|
| 368 | $(END_OBJS:.o=.d): %.d:
|
---|
| 369 |
|
---|
| 370 | ãã®å ´åï¼ãããã®ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã¨ã¯ãªãããï¼ã³ã³ãã¤ã«ã«ã¼
|
---|
| 371 | ã«ã¯ä¸è¦ã§ããï¼ã¾ãï¼ä¾åé¢ä¿ä½æã«ã¼ã«ã¯ããã¼ã§ããï¼ä¾åé¢ä¿ä½æã«ã¼
|
---|
| 372 | ã«ããªãã¨ã¨ã©ã¼ã«ãªãï¼ï¼
|
---|
| 373 |
|
---|
| 374 | ãªãï¼ã«ã¼ãã«ç¨ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããã¯ï¼main é¢æ°ã§ã¯ãªãï¼
|
---|
| 375 | kernel_start é¢æ°ãèµ·åããå¿
|
---|
| 376 | è¦ãããï¼
|
---|
| 377 |
|
---|
| 378 | (8) ãªã³ã«ã¹ã¯ãªãã
|
---|
| 379 |
|
---|
| 380 | éçºç°å¢ã«æ¨æºã®ãªã³ã«ã¹ã¯ãªããã使ç¨ã§ããªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å
|
---|
| 381 | é¨ã§ç¨æããï¼
|
---|
| 382 |
|
---|
| 383 |
|
---|
| 384 | ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ç¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«
|
---|
| 385 |
|
---|
| 386 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã¢ããªã±ã¼ã·ã§ã³ç¨ã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼
|
---|
| 387 | ãããã®å®ç¾©ã®ä¸ã§ï¼(1) ããã³ (2) 㯠tool_defs.h ã«å«ããªããã°ãªããª
|
---|
| 388 | ãï¼ãã®ä»ã®å®ç¾©ã¯ï¼cpu_defs.h ã¾ã㯠sys_defs.hï¼ã¾ãã¯ãããããã¤ã³
|
---|
| 389 | ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
|
---|
| 390 |
|
---|
| 391 | (1) ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã®å®ç¾©
|
---|
| 392 |
|
---|
| 393 | ã³ã³ãã¤ã©ä¾åã®ãã¼ã¿åã以ä¸ã®ã·ã³ãã«ã«å®ç¾©ããï¼ãããã®å®ç¾©ã¯ï¼
|
---|
| 394 | typedef ã§ã¯ãªãï¼#define ã«ãããã¯ãå®ç¾©ããªããã°ãªããªãï¼
|
---|
| 395 |
|
---|
| 396 | (1-1) _int8_ 8ãããã®æ´æ°å
|
---|
| 397 | (1-2) _int16_ 16ãããã®æ´æ°å
|
---|
| 398 | (1-3) _int32_ 32ãããã®æ´æ°å
|
---|
| 399 | (1-4) _int64_ 64ãããã®æ´æ°å
|
---|
| 400 |
|
---|
| 401 | åãµã¤ãºã®æ´æ°åãï¼ãããã®ã·ã³ãã«ã«ãã¯ãå®ç¾©ããï¼_int32_ 以å¤ã¯ï¼
|
---|
| 402 | ã³ã³ãã¤ã©ããµãã¼ããã¦ããªãå ´åã«ã¯å®ç¾©ããå¿
|
---|
| 403 | è¦ããªãï¼_int32_ ã®å®
|
---|
| 404 | 義ã¯å¿
|
---|
| 405 | é ã§ããï¼
|
---|
| 406 |
|
---|
| 407 | (1-5) _bool_ BOOLã®å
|
---|
| 408 |
|
---|
| 409 | BOOL ã¯ï¼æ¨æºã§ã¯ int ã«åå®ç¾©ããããï¼ããã§ä¸é½åãªå ´åã«ã¯ï¼é©åãª
|
---|
| 410 | åã _bool_ ã«ãã¯ãå®ç¾©ããï¼
|
---|
| 411 |
|
---|
| 412 | (1-6) _vp_int_ VP_INTã®å
|
---|
| 413 |
|
---|
| 414 | VP_INT ã¯ï¼æ¨æºã§ã¯ VP ã«åå®ç¾©ããããï¼ããã§ä¸é½åãªå ´åï¼ä¾ãã°ï¼
|
---|
| 415 | ãã¤ã³ã¿ã16ãããã§ï¼int ã32ãããã®å ´åï¼ã«ã¯ï¼é©åãªåã _vp_int_
|
---|
| 416 | ã«ãã¯ãå®ç¾©ããï¼
|
---|
| 417 |
|
---|
| 418 | (1-7) _intptr_ ãã¤ã³ã¿ãæ ¼ç´ã§ããæ´æ°å
|
---|
| 419 |
|
---|
| 420 | _intptr_ ã¯ï¼ãã©ã¼ãããåºåã«ããã¦ï¼intåããã¤ã³ã¿åãæ ¼ç´ã§ããæ´
|
---|
| 421 | æ°åã¨ãã¦ä½¿ç¨ããï¼ãããå®ç¾©ããªãå ´åï¼long ã使ãããï¼
|
---|
| 422 |
|
---|
| 423 | (2) ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ãå®ç¾©
|
---|
| 424 |
|
---|
| 425 | (2-1) inline ã¤ã³ã©ã¤ã³æå®
|
---|
| 426 | (2-2) Inline ãã¡ã¤ã«å
|
---|
| 427 | ã®ã¿ã«æå¹ãªã¤ã³ã©ã¤ã³æå®
|
---|
| 428 | (2-3) asm ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åã許ãï¼
|
---|
| 429 | (2-4) Asm ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åãææ¢ï¼
|
---|
| 430 |
|
---|
| 431 | ãããã®ä¸ã§ï¼asm 㨠Asm ã¯ï¼ã¿ã¼ã²ããä¾åé¨ã§ç¨ãã¦ããªããã°å®ç¾©ã
|
---|
| 432 | ãå¿
|
---|
| 433 | è¦ããªãï¼
|
---|
| 434 |
|
---|
| 435 | (3) ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
|
---|
| 436 |
|
---|
| 437 | (3-1) TIC_NUME ã¿ã¤ã ãã£ãã¯ã®å¨æã®ååï¼åä½: 1ããªç§ï¼
|
---|
| 438 | (3-2) TIC_DENO ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯ï¼åä½: 1ããªç§ï¼
|
---|
| 439 |
|
---|
| 440 | (4) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©é¢é£ã®å®ç¾©
|
---|
| 441 |
|
---|
| 442 | (4-1) INHNO å²è¾¼ã¿ãã³ãã©çªå·ã®ãã¼ã¿å
|
---|
| 443 | (4-2) EXCNO CPUä¾å¤ãã³ãã©çªå·ã®ãã¼ã¿å
|
---|
| 444 |
|
---|
| 445 | (5) å²è¾¼ã¿ãã¹ã¯ã¨å²è¾¼ã¿ãã¹ã¯ã®å¤æ´ï¼åç
|
---|
| 446 | §é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 447 |
|
---|
| 448 | chg_ixxï¼get_ixx ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ã
|
---|
| 449 | ãã³å®£è¨ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼xxï¼xxxxï¼XXXX ã¯ï¼ã¿ã¼ã²ããæ¯
|
---|
| 450 | ã«é©åãªæååã«å®ããï¼xxxx ããã³ XXXX ã¯ï¼4æåã§ãªãã¦ãããï¼
|
---|
| 451 |
|
---|
| 452 | (5-1) IXXXX å²è¾¼ã¿ãã¹ã¯ã®ãã¼ã¿å
|
---|
| 453 | (5-2) ER chg_ixx(IXXXX ixxxx) chg_ixx ã®ãããã¿ã¤ã宣è¨
|
---|
| 454 | (5-3) ER get_ixx(IXXXX *p_ixxxx) get_ixx ã®ãããã¿ã¤ã宣è¨
|
---|
| 455 |
|
---|
| 456 | (6) å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ã®ç¦æ¢ï¼è¨±å¯é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 457 |
|
---|
| 458 | dis_intï¼ena_int ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ã
|
---|
| 459 | ãã³å®£è¨ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
| 460 |
|
---|
| 461 | (6-1) INTNO å²è¾¼ã¿çªå·ã®ãã¼ã¿å
|
---|
| 462 | (6-2) ER dis_int(INTNO intno) dis_int ã®ãããã¿ã¤ã宣è¨
|
---|
| 463 | (6-3) ER ena_int(INTNO intno) ena_int ã®ãããã¿ã¤ã宣è¨
|
---|
| 464 |
|
---|
| 465 | (7) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 466 |
|
---|
| 467 | JSPã«ã¼ãã«ã¯ï¼ç 究ã¸ã®å©ç¨ã主ç®çã®ä¸ã¤ã¨ãã¦ãããã¨ããï¼ã¿ã¼ã²ã
|
---|
| 468 | ãä¾åã«ï¼æ§è½è©ä¾¡ç¨ã®ãµã¼ãã¹ã³ã¼ã« vxget_tim ããµãã¼ãå¯è½ã¨ãã¦ã
|
---|
| 469 | ãï¼vxget_tim ããµãã¼ãããå ´åã«ã¯ï¼ä»¥ä¸ã®å®ç¾©ããã³å®£è¨ãã¿ã¼ã²ãã
|
---|
| 470 | ä¾åé¨ã§æä¾ããï¼
|
---|
| 471 |
|
---|
| 472 | (7-1) SYSUTIM æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®ãã¼ã¿å
|
---|
| 473 | (7-2) ER vxget_tim(SYSUTIM *p_sysutim) vxget_tim ã®ãããã¿ã¤ã宣è¨
|
---|
| 474 |
|
---|
| 475 | (8) ã¿ã¼ã²ããèå¥ãã¯ãã®å®ç¾©
|
---|
| 476 |
|
---|
| 477 | cpu_defs.h ã§ã¯ããã»ããµç¥ç§°ï¼cpu_defs.h ã®ç½®ããã¦ãããã£ã¬ã¯ããªå
|
---|
| 478 | ã大æåã«ãããã®ï¼ï¼sys_defs.h ã§ã¯ã·ã¹ãã ç¥ç§°ï¼sys_defs.h ã®ç½®ãã
|
---|
| 479 | ã¦ãããã£ã¬ã¯ããªåã大æåã«ãããã®ï¼ããã¯ãå®ç¾©ããï¼
|
---|
| 480 |
|
---|
| 481 | (9) ããã»ããµã®ã¨ã³ãã£ã¢ã³ã®å®ç¾©
|
---|
| 482 |
|
---|
| 483 | (9-1) SIL_ENDIAN
|
---|
| 484 |
|
---|
| 485 | ããã»ããµãããã°ã¨ã³ãã£ã¢ã³ã®å ´åã«ã¯ SIL_ENDIAN_BIGï¼ï¼1ï¼ï¼ãªãã«
|
---|
| 486 | ã¨ã³ãã£ã¢ã³ã®å ´åã«ã¯ SIL_ENDIAN_LITTLEï¼ï¼0ï¼ã«ãã¯ãå®ç¾©ããï¼
|
---|
| 487 |
|
---|
| 488 | (10) ã·ã¹ãã ã®åæ¢å¦çã®å®ç¾©
|
---|
| 489 |
|
---|
| 490 | (10-1) kernel_abort(void)
|
---|
| 491 |
|
---|
| 492 | assertãã¯ãã«ãããã¢ãµã¼ã·ã§ã³ã®å¤±æãï¼ãµã¼ãã¹ã³ã¼ã«ãè´å½çãªã¨ã©ã¼
|
---|
| 493 | ãè¿ããå ´åã«ï¼ã·ã¹ãã ãåæ¢ãããé¢æ°ã¾ãã¯ãã¯ãï¼kernel_exit ãå¼
|
---|
| 494 | ã³åºãæ¹æ³ãèãããããï¼ãããã°ã容æã«ããããã«ã¯ï¼ã¤ã³ã©ã¤ã³é¢æ°
|
---|
| 495 | ããã¯ãã§å®ç¾©ãï¼ãã®å ´ã§ã·ã¹ãã ãåæ¢ãããå¦çã«å®ç¾©ããã®ãæã¾ã
|
---|
| 496 | ãï¼kernel_exit ãå¼ã³åºãã¨ï¼ã¨ã©ã¼ãçºçããæç¹ã®ç¶æ
|
---|
| 497 | ããå¤åãã¦ã
|
---|
| 498 | ã¾ãï¼ï¼
|
---|
| 499 |
|
---|
| 500 |
|
---|
| 501 | ï¼ï¼ã«ã¼ãã«ç¨ã®ãã¼ã¿åãé¢æ°ãªã©
|
---|
| 502 |
|
---|
| 503 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã«ã¼ãã«ç¨ã®ãã¼ã¿åãé¢æ°ãªã©ã¯æ¬¡ã®éãã§
|
---|
| 504 | ããï¼ãããã®ãã¼ã¿åããã¯ãã®å®ç¾©ã¨é¢æ°ã®ãããã¿ã¤ã宣è¨ã¯ï¼å¥ã«è¨
|
---|
| 505 | è¿°ããªãéãï¼cpu_config.h ã¾ã㯠sys_config.hï¼ã¾ãã¯ãããããã¤ã³ã¯
|
---|
| 506 | ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼ã¾ãï¼é¢æ°ã®å®ä½ã¯ï¼Cè¨èªã®å ´åã¯
|
---|
| 507 | cpu_config.c ã¾ã㯠sys_config.c ã«ï¼ã¢ã»ã³ããªè¨èªã®å ´åã¯
|
---|
| 508 | cpu_support.S ã¾ã㯠sys_support.S ã«è¨è¿°ããï¼
|
---|
| 509 |
|
---|
| 510 | (0) ã¤ã³ã¯ã«ã¼ãæ¹æ³ã«é¢ããã«ã¼ã«
|
---|
| 511 |
|
---|
| 512 | ããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããè¨è¿°ã¯ï¼ä»¥ä¸ã®ã«ã¼ã«ã«å¾ãã®ãååã¨ã
|
---|
| 513 | ãï¼
|
---|
| 514 |
|
---|
| 515 | ANSI Cã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼#include <â¦> ã§ã¤ã³ã¯ã«ã¼ãããï¼
|
---|
| 516 | ã¾ãï¼Makefile ã¾ã㯠Makefile.config 㧠INCLUDES ã« -Iãªãã·ã§ã³ã§æ
|
---|
| 517 | å®ãããã£ã¬ã¯ããªã«ãããã¡ã¤ã«ã¯ï¼#include <â¦> ã§ã¤ã³ã¯ã«ã¼ãããï¼
|
---|
| 518 | ã«ã¼ãã«ãæ§æãããã¡ã¤ã«ããã®ã¤ã³ã¯ã«ã¼ãã«å¯¾ãã¦ã¯ï¼ä»¥ä¸ã®ãã£ã¬ã¯
|
---|
| 519 | ããªã«ãããã¡ã¤ã«ãããã«è©²å½ããï¼ã¿ã¼ã²ããã«ãä¾åï¼ï¼
|
---|
| 520 | jsp/include/
|
---|
| 521 | jsp/config/$(CPU)
|
---|
| 522 | jsp/config/$(CPU)/$(SYS)
|
---|
| 523 | jsp/config/$(CPU)-$(TOOL)
|
---|
| 524 | jsp/config/$(CPU)-$(TOOL)/$(SYS)
|
---|
| 525 | pdic/simple_sio
|
---|
| 526 |
|
---|
| 527 | ãã®ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ #include "â¦" ã§ã¤ã³ã¯ã«ã¼ãããï¼ã«ã¼
|
---|
| 528 | ãã«ãæ§æãããã¡ã¤ã«ããã®ã¤ã³ã¯ã«ã¼ãã«å¯¾ãã¦ã¯ï¼ä»¥ä¸ã®ãã£ã¬ã¯ããª
|
---|
| 529 | ã«ãããã¡ã¤ã«ãããã«è©²å½ããï¼ã¿ã¼ã²ããã«ãä¾åï¼ï¼
|
---|
| 530 | jsp/kernel
|
---|
| 531 | jsp/systask
|
---|
| 532 |
|
---|
| 533 | (1) ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®ãã¼ã¿å
|
---|
| 534 |
|
---|
| 535 | (1-1) CTXB
|
---|
| 536 |
|
---|
| 537 | ã¿ã¼ã²ããä¾åã®ã¿ã¹ã¯ã³ã³ããã¹ããä¿åããããã«ï¼TCB ä¸ã«æã¤ãã¨ã
|
---|
| 538 | å¿
|
---|
| 539 | è¦ãªãã¼ã¿æ§é ã®åï¼
|
---|
| 540 |
|
---|
| 541 | (2) ã·ã¹ãã ç¶æ
|
---|
| 542 | åç
|
---|
| 543 | §
|
---|
| 544 |
|
---|
| 545 | (2-1) BOOL sense_context(void)
|
---|
| 546 |
|
---|
| 547 | ç¾å¨ã®å®è¡ã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠FALSEï¼éã¿ã¹ã¯ã³
|
---|
| 548 | ã³ããã¹ãã®å ´å㯠TRUE ãè¿ãé¢æ°ï¼
|
---|
| 549 |
|
---|
| 550 | (2-2) BOOL sense_lock(void)
|
---|
| 551 |
|
---|
| 552 | ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
| 553 | ãï¼CPUããã¯ç¶æ
|
---|
| 554 | ã®å ´å㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 555 | ã®
|
---|
| 556 | æ㯠FALSE ãè¿ãé¢æ°ï¼
|
---|
| 557 |
|
---|
| 558 | (2-3) BOOL t_sense_lock(void)
|
---|
| 559 |
|
---|
| 560 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
| 561 | ãï¼CPUããã¯ç¶æ
|
---|
| 562 | ã®å ´å
|
---|
| 563 | 㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 564 | ã®æ㯠FALSE ãè¿ãé¢æ°ï¼ãã®é¢æ°ãï¼éã¿ã¹
|
---|
| 565 | ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ã¯ãªãï¼
|
---|
| 566 |
|
---|
| 567 | (2-4) BOOL i_sense_lock(void)
|
---|
| 568 |
|
---|
| 569 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼ç¾å¨ã®ã·ã¹ãã ç¶æ
|
---|
| 570 | ãï¼CPUããã¯ç¶æ
|
---|
| 571 | ã®å ´
|
---|
| 572 | å㯠TRUEï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 573 | ã®æ㯠FALSE ãè¿ãé¢æ°ï¼ãã®é¢æ°ãï¼ã¿ã¹
|
---|
| 574 | ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ã¯ãªãï¼
|
---|
| 575 |
|
---|
| 576 | â» åççã«ã¯ï¼sense_lock ãæä¾ããã¦ããã° t_sense_lock ã¨
|
---|
| 577 | i_sense_lock ã¯å¿
|
---|
| 578 | è¦ãªãï¼éã« t_sense_lock 㨠i_sense_lock ãæä¾ãã
|
---|
| 579 | ã¦ããã° sense_lock ãå®ç¾ãããã¨ã¯ã§ãããï¼ã¿ã¼ã²ããã«ä¾åããã«é«
|
---|
| 580 | ãå®è¡å¹çãå®ç¾ããããã«ï¼ã¿ã¼ã²ããä¾åé¨ã3ã¤ã®é¢æ°ãæä¾ãããã¨
|
---|
| 581 | ã¨ãã¦ããï¼
|
---|
| 582 |
|
---|
| 583 | (3) CPUããã¯ã¨ãã®è§£é¤
|
---|
| 584 |
|
---|
| 585 | (3-1) void t_lock_cpu(void)
|
---|
| 586 |
|
---|
| 587 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 588 | ããï¼CPUããã¯ç¶æ
|
---|
| 589 | ã«é·ç§»
|
---|
| 590 | ãããé¢æ°ï¼ãã®é¢æ°ãï¼CPUããã¯ç¶æ
|
---|
| 591 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼éã¿
|
---|
| 592 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
| 593 |
|
---|
| 594 | (3-2) void t_unlock_cpu(void)
|
---|
| 595 |
|
---|
| 596 | ã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
| 597 | ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 598 | ã«é·ç§»
|
---|
| 599 | ãããé¢æ°ï¼ãã®é¢æ°ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 600 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼
|
---|
| 601 | éã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
| 602 |
|
---|
| 603 | (3-3) void i_lock_cpu(void)
|
---|
| 604 |
|
---|
| 605 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 606 | ããï¼CPUããã¯ç¶æ
|
---|
| 607 | ã«é·
|
---|
| 608 | 移ãããé¢æ°ï¼ãã®é¢æ°ãï¼CPUããã¯ç¶æ
|
---|
| 609 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼ã¿
|
---|
| 610 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
| 611 |
|
---|
| 612 | (3-4) void i_unlock_cpu(void)
|
---|
| 613 |
|
---|
| 614 | éã¿ã¹ã¯ã³ã³ããã¹ãã«ããã¦ï¼CPUããã¯ç¶æ
|
---|
| 615 | ããï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 616 | ã«é·
|
---|
| 617 | 移ãããé¢æ°ï¼ãã®é¢æ°ãï¼CPUããã¯è§£é¤ç¶æ
|
---|
| 618 | ã§å¼ã°ãããã¨ã¯ãªãï¼ã¾ãï¼
|
---|
| 619 | ã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããã¨ããªãï¼
|
---|
| 620 |
|
---|
| 621 | (4) ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
| 622 |
|
---|
| 623 | (4-1) void dispatch(void)
|
---|
| 624 |
|
---|
| 625 | ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ä»¥ä¸ï¼åã«ãã£ã¹ãããã£ã¨è¨ãï¼ãæ示çã«å¼ã¶ã
|
---|
| 626 | ãã®é¢æ°ï¼ã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããµã¼ãã¹ã³ã¼ã«å¦çããï¼CPUãã
|
---|
| 627 | ã¯ç¶æ
|
---|
| 628 | ã§å¼ã°ããï¼
|
---|
| 629 |
|
---|
| 630 | ãã®é¢æ°ãå¼ã°ããã¨ï¼é¢æ°ãå¼ãã ã¿ã¹ã¯ã®ã³ã³ããã¹ããä¿åãï¼ å®è¡
|
---|
| 631 | ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
| 632 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ã®ã³ã³ããã¹ãã復帰
|
---|
| 633 | ãã¦å®è¡ç¶æ
|
---|
| 634 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´
|
---|
| 635 | åï¼ã«ã¯ï¼å²è¾¼ã¿ã許å¯ãã¦ï¼å®è¡ã§ããã¿ã¹ã¯ãã§ããã¾ã§å¾
|
---|
| 636 | ã¤ï¼ããã§ï¼
|
---|
| 637 | å®è¡ã§ããã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
| 638 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ï¼
|
---|
| 639 | ãã£ã¹ãããã£ãå¼ã°ããªãããã«å¯¾çãããã¨ãå¿
|
---|
| 640 | è¦ã§ããï¼å
|
---|
| 641 | ·ä½çã«ã¯ï¼
|
---|
| 642 | å®è¡ã§ããã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
| 643 | ã¤éï¼ä¸æçã«éã¿ã¹ã¯ã³ã³ããã¹ãã«åã
|
---|
| 644 | æãããï¼ãã£ã¹ããããä¿çããããã«ããï¼
|
---|
| 645 |
|
---|
| 646 | æ°ãã«å®è¡ç¶æ
|
---|
| 647 | ã«ãªã£ãã¿ã¹ã¯ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºã
|
---|
| 648 | ãã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼ã¾ãï¼ãã®é¢æ°ãå¼ã³åºã
|
---|
| 649 | ãã¿ã¹ã¯ã次ã«å®è¡ç¶æ
|
---|
| 650 | ã«ãªã£ãæï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæº
|
---|
| 651 | ããã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
| 652 | ã³ã®èµ·åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ãæä¾ãã calltex ã¾ã㯠call_texrtn
|
---|
| 653 | ãç¨ãããã¨ãã§ããï¼
|
---|
| 654 |
|
---|
| 655 | (4-2) void exit_and_dispatch(void)
|
---|
| 656 |
|
---|
| 657 | ç¾å¨å®è¡ä¸ã®ã³ã³ããã¹ããæ¨ã¦ï¼ãã£ã¹ãããã£ãå¼ã³åºãããã®é¢æ°ï¼ã¿
|
---|
| 658 | ã¹ã¯ã³ã³ããã¹ãããå¼ã°ãããµã¼ãã¹ã³ã¼ã«ï¼å
|
---|
| 659 | ·ä½çã«ã¯ï¼ext_tskï¼å¦ç
|
---|
| 660 | ã¾ãã¯ã«ã¼ãã«ã®åæåå¦çããï¼CPUããã¯ç¶æ
|
---|
| 661 | ã§å¼ã°ããï¼
|
---|
| 662 |
|
---|
| 663 | ãã®é¢æ°ãå¼ã°ããã¨ï¼é¢æ°ãå¼ãã ã¿ã¹ã¯ã®ã³ã³ããã¹ããä¿åããï¼å®è¡
|
---|
| 664 | ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
| 665 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ã®ã³ã³ããã¹ãã復帰
|
---|
| 666 | ãã¦å®è¡ç¶æ
|
---|
| 667 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´
|
---|
| 668 | åï¼ã®å¦çã¯ï¼dispatch ã¨åæ§ã§ããï¼
|
---|
| 669 |
|
---|
| 670 | æ°ãã«å®è¡ç¶æ
|
---|
| 671 | ã«ãªã£ãã¿ã¹ã¯ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºã
|
---|
| 672 | ãã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼
|
---|
| 673 |
|
---|
| 674 | ãã®é¢æ°ã¯ï¼ã«ã¼ãã«ã®åæåå¦çãããå¼ã°ããããã«ï¼éã¿ã¹ã¯ã³ã³ãã
|
---|
| 675 | ã¹ããããå¼ã°ãã¦ãæ£ããå¦çã§ãããã¨ãå¿
|
---|
| 676 | è¦ã§ããï¼ãªãï¼ãã®é¢æ°ã
|
---|
| 677 | ãã¯ãªã¿ã¼ã³ããªãï¼
|
---|
| 678 |
|
---|
| 679 | (5) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå
|
---|
| 680 | ¥å£å¦ç
|
---|
| 681 |
|
---|
| 682 | (5-1) INTHDR_ENTRY(inthdr)
|
---|
| 683 | (5-2) INT_ENTRY(inthdr)
|
---|
| 684 |
|
---|
| 685 | INTHDR_ENTRY(inthdr) ã¯èµ·åçªå°ã inthdr ã®å²è¾¼ã¿ãã³ãã©ãå¼ã³åºãåº
|
---|
| 686 | å
|
---|
| 687 | ¥å£å¦çã«ã¼ãã³ãçæãããã¯ãï¼INT_ENTRY(inthdr) ã¯çæããåºå
|
---|
| 688 | ¥å£å¦
|
---|
| 689 | çã«ã¼ãã³ã®å
|
---|
| 690 | é ã®ã©ãã«ãå¾ãããã®ãã¯ãã§ããï¼INT_ENTRY(inthdr) ã§
|
---|
| 691 | å¾ãããã©ãã«ã¯ï¼å²è¾¼ã¿ãã³ãã©åæåãããã¯ã«åºå
|
---|
| 692 | ¥å£å¦çã«ã¼ãã³ã®å
|
---|
| 693 |
|
---|
| 694 | é çªå°ãç»é²ããããã«ä½¿ãããï¼åºå
|
---|
| 695 | ¥å£å¦çã«ã¼ãã³ãçæããå¿
|
---|
| 696 | è¦ããªã
|
---|
| 697 | å ´åã«ã¯ï¼INTHDR_ENTRY(inthdr) ãåã« extern 宣è¨ã«å±éããã°ããï¼
|
---|
| 698 |
|
---|
| 699 | å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
| 700 | ¥å£å¦çã¯ï¼å®è¡ã³ã³ããã¹ããéã¿ã¹ã¯ã³ã³ããã¹ãã«
|
---|
| 701 | åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿åãã¦ï¼å²è¾¼ã¿ãã³ãã©ãå¼ã³åºãï¼å²è¾¼
|
---|
| 702 | ã¿ãã³ãã©ããæ»ãã¨ï¼å
|
---|
| 703 | ã®å®è¡ã³ã³ããã¹ãã«æ»ãã¨ã¨ãã«ï¼å¿
|
---|
| 704 | è¦ã«å¿ãã¦
|
---|
| 705 | ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çãè¡ãï¼ãã£ã¹ãããã¨ã¿
|
---|
| 706 | ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å
|
---|
| 707 | ·ä½çã«ã¯æ¬¡ã®ããã«è¡ãï¼
|
---|
| 708 |
|
---|
| 709 | (a) 以ä¸ã®å¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ãã¿ã¹ã¯ã³ã³ããã¹ãå®è¡ä¸ã«èµ·åããã
|
---|
| 710 | å ´åã§ï¼reqflg ã TRUE ã®æã®ã¿è¡ãï¼
|
---|
| 711 |
|
---|
| 712 | (b) enadsp ã TRUE ã§ï¼å®è¡ç¶æ
|
---|
| 713 | ã®ã¿ã¹ã¯ï¼runtskï¼ã¨å®è¡ã§ããã¿ã¹ã¯ã®
|
---|
| 714 | ä¸ã§æé«åªå
|
---|
| 715 | é ä½ã®ã¿ã¹ã¯ï¼schedtskï¼ãä¸è´ãã¦ããªãå ´åã«ã¯ï¼åè
|
---|
| 716 | ã®ã¿
|
---|
| 717 | ã¹ã¯ã®ã³ã³ããã¹ããä¿åãï¼å¾è
|
---|
| 718 | ã®ã¿ã¹ã¯ã®ã³ã³ããã¹ãã復帰ãã¦å®è¡ç¶
|
---|
| 719 | æ
|
---|
| 720 | ã¨ããï¼å®è¡ã§ããã¿ã¹ã¯ããªãå ´åï¼schedtsk ã NULL ã®å ´åï¼ã«ã¯ï¼
|
---|
| 721 | å²è¾¼ã¿ã許å¯ãã¦ï¼å®è¡ã§ããã¿ã¹ã¯ãã§ããã¾ã§å¾
|
---|
| 722 | ã¤ï¼ããã§ãï¼å®è¡ã§ã
|
---|
| 723 | ãã¿ã¹ã¯ãã§ããã®ãå¾
|
---|
| 724 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ï¼ã¿ã¹ã¯ãã£
|
---|
| 725 | ã¹ãããã£ãå¼ã°ããªãããã«ãããã¨ãå¿
|
---|
| 726 | è¦ã§ãããï¼åºå
|
---|
| 727 | ¥å£å¦çãéã¿ã¹
|
---|
| 728 | ã¯ã³ã³ããã¹ãã§å®è¡ãã¦ããã°ï¼ç¹ã«å¯¾çããå¿
|
---|
| 729 | è¦ã¯ãªãï¼
|
---|
| 730 |
|
---|
| 731 | (c) å®è¡ç¶æ
|
---|
| 732 | ã®ã¿ã¹ã¯ï¼(b) ã§ã¿ã¹ã¯ãã£ã¹ããããè¡ã£ãå ´åã¯ï¼æ°ãã«å®
|
---|
| 733 | è¡ç¶æ
|
---|
| 734 | ã¨ãªã£ãã¿ã¹ã¯ï¼ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ãã
|
---|
| 735 | ã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããï¼ã¾ãï¼(b) ã§ã¿ã¹ã¯ãã£ã¹ãããã
|
---|
| 736 | è¡ã£ãå ´åã¯ï¼ããã¾ã§å®è¡ç¶æ
|
---|
| 737 | ã§ãã£ãã¿ã¹ã¯ã次ã«å®è¡ç¶æ
|
---|
| 738 | ã«ãªã£ãæï¼
|
---|
| 739 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ããã°ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
| 740 | ã³ã®èµ·åãè¡ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã
|
---|
| 741 | æä¾ãã calltex ã¾ã㯠call_texrtn ãç¨ãããã¨ãã§ããï¼
|
---|
| 742 |
|
---|
| 743 | ãã®ãã¯ãã§çæããã«ã¼ãã³ã§ã¯ï¼ä¸è¨ã®å¦çã®ä¸é¨ã®ã¿ãè¡ãï¼æ®ãã®å¦
|
---|
| 744 | çã¯å¥ã«ç¨æããã«ã¼ãã³ã«ä»»ãã¦ãããï¼å
|
---|
| 745 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ããã
|
---|
| 746 | ã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å¥ã«ã«ã¼ãã³ã¨ãã¦ç¨æããã®ãé©
|
---|
| 747 | å½ã§ãããï¼
|
---|
| 748 |
|
---|
| 749 | (5-3) EXCHDR_ENTRY(exchdr)
|
---|
| 750 | (5-4) EXC_ENTRY(exchdr)
|
---|
| 751 |
|
---|
| 752 | EXCHDR_ENTRY(exchdr) ã¯èµ·åçªå°ã exchdr ã®CPUä¾å¤ãã³ãã©ãå¼ã³åºãåº
|
---|
| 753 | å
|
---|
| 754 | ¥å£å¦çã«ã¼ãã³ãçæãããã¯ãï¼EXC_ENTRY(exchdr) ã¯çæããåºå
|
---|
| 755 | ¥å£å¦
|
---|
| 756 | çã«ã¼ãã³ã®å
|
---|
| 757 | é ã®ã©ãã«ãå¾ãããã®ãã¯ãã§ããï¼EXC_ENTRY(exchdr) ã§
|
---|
| 758 | å¾ãããã©ãã«ã¯ï¼CPUä¾å¤ãã³ãã©åæåãããã¯ã«åºå
|
---|
| 759 | ¥å£å¦çã«ã¼ãã³ã®
|
---|
| 760 | å
|
---|
| 761 | é çªå°ãç»é²ããããã«ä½¿ãããï¼åºå
|
---|
| 762 | ¥å£å¦çã«ã¼ãã³ãçæããå¿
|
---|
| 763 | è¦ããª
|
---|
| 764 | ãå ´åã«ã¯ï¼EXCHDR_ENTRY(exchdr) ãåã« extern 宣è¨ã«å±éããã°ããï¼
|
---|
| 765 |
|
---|
| 766 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
| 767 | ¥å£å¦çã¯ï¼å®è¡ã³ã³ããã¹ããéã¿ã¹ã¯ã³ã³ããã¹ã
|
---|
| 768 | ã«åãæãï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿åãã¦ï¼CPUä¾å¤ãã³ãã©ãå¼ã³åºãï¼
|
---|
| 769 | CPUä¾å¤ãã³ãã©ã«ã¯ï¼VPåã®ãã©ã¡ã¼ã¿ p_excinf ã渡ãï¼ãã®ãã©ã¡ã¼ã¿
|
---|
| 770 | ã¯ï¼CPUä¾å¤ã«é¢ããæ
|
---|
| 771 | å ±ãä¿åããã¹ã¿ãã¯é åã¸ã®ãã¤ã³ã¿ã§ãããã¨ã
|
---|
| 772 | æ³å®ãã¦ãããï¼å
|
---|
| 773 | ·ä½çã«ã¯ã¿ã¼ã²ããæ¯ã«å®ããï¼
|
---|
| 774 |
|
---|
| 775 | CPUä¾å¤ãã³ãã©ããæ»ãã¨ï¼å
|
---|
| 776 | ã®å®è¡ã³ã³ããã¹ãã«æ»ãã¨ã¨ãã«ï¼å¿
|
---|
| 777 | è¦ã«
|
---|
| 778 | å¿ãã¦ã¿ã¹ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çãè¡ãï¼ã¿ã¹
|
---|
| 779 | ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ã®åº
|
---|
| 780 | å
|
---|
| 781 | ¥å£å¦çã®å ´åã¨åæ§ã§ããï¼ä¸è¨ã® (a)ã(c)ï¼ï¼
|
---|
| 782 |
|
---|
| 783 | (6) ã¿ã¹ã¯ã³ã³ããã¹ãè¨å®å¦çï¼cpu_context.hï¼
|
---|
| 784 |
|
---|
| 785 | ã¿ã¼ã²ããä¾åã®ã¿ã¹ã¯ã³ã³ããã¹ããè¨å®ããããã« create_context ã¨
|
---|
| 786 | activate_context ã®2ã¤ã®é¢æ°ãç¨æããï¼2ã¤ã®é¢æ°ãå¼ã³åºããã¨ã§ï¼ã¿
|
---|
| 787 | ã¹ã¯ã®ã³ã³ããã¹ãï¼å
|
---|
| 788 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹ããããã¯ã®å
|
---|
| 789 | 容ã¨ã¿ã¹
|
---|
| 790 | ã¯ã®ã¹ã¿ãã¯é åï¼ãã¿ã¹ã¯ãèµ·åã§ããç¶æ
|
---|
| 791 | ã«è¨å®ããï¼2ã¤ã®é¢æ°ã¯å¼ã°
|
---|
| 792 | ããã¿ã¤ãã³ã°ãç°ãªãã ãã§æ確ãªå½¹å²åæ
|
---|
| 793 | ã¯ãªãï¼ã©ã®ãããªå¦çã¯ã©ã¡
|
---|
| 794 | ãã®é¢æ°ã§è¡ããªããã°ãªããªãã¨ããå¶ç´ã¯ãªãï¼
|
---|
| 795 |
|
---|
| 796 | ãããã®é¢æ°ã®å®£è¨ããã³ãã¯ãã®å®ç¾©ã¯ï¼cpu_context.h ã«å«ããï¼ããã¯ï¼
|
---|
| 797 | cpu_config.h ãå¦çããæç¹ã§ã¯ TCB ãå®ç¾©ããã¦ããªãããã§ããï¼
|
---|
| 798 |
|
---|
| 799 | (6-1) void create_context(TCB *tcb)
|
---|
| 800 |
|
---|
| 801 | ã¿ã¹ã¯ãä¼æ¢ç¶æ
|
---|
| 802 | ã«ç§»è¡ããæã«å¼ã°ããï¼å
|
---|
| 803 | ·ä½çã«ã¯ï¼ã¿ã¹ã¯ã®çææ
|
---|
| 804 | ï¼JSPã«ã¼ãã«ã§ã¯ï¼CRE_TSK ã§ã¿ã¹ã¯ãçæããããï¼ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼
|
---|
| 805 | ã«ã®åæåï¼ã¨ã¿ã¹ã¯ã®çµäºæï¼ext_tskï¼ter_tskï¼ã«å¼ã°ããï¼
|
---|
| 806 |
|
---|
| 807 | (6-2) void activate_context(TCB *tcb)
|
---|
| 808 |
|
---|
| 809 | ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
|
---|
| 810 | ã«ç§»è¡ããæã«å¼ã°ããï¼å
|
---|
| 811 | ·ä½çã«ã¯ï¼act_tsk ã§ã¿
|
---|
| 812 | ã¹ã¯ãèµ·åããæï¼ã¿ã¹ã¯ã®çµäºæï¼ext_tskï¼ter_tskï¼ã«èµ·åè¦æ±ã®ãã¥ã¼
|
---|
| 813 | ã¤ã³ã°ã«ããåèµ·åããæï¼TA_ACT å±æ§ãæå®ãã¦ã¿ã¹ã¯ãçæããæï¼ã¿
|
---|
| 814 | ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæåï¼ã«å¼ã°ããï¼
|
---|
| 815 |
|
---|
| 816 | (6-3) ACTIVATED_STACK_SIZEï¼ãªãã·ã§ã³ï¼
|
---|
| 817 |
|
---|
| 818 | ext_tsk ãã¹ã¿ãã¯ä¸ã«ç¢ºä¿ããããã¼é åã®ãµã¤ãºãå®ç¾©ããããã®ãã¯ãï¼
|
---|
| 819 | ããã¼é åãå¿
|
---|
| 820 | è¦ãªãå ´åã¯ï¼ãã®ãã¯ããå®ç¾©ããå¿
|
---|
| 821 | è¦ã¯ãªãï¼
|
---|
| 822 |
|
---|
| 823 | ext_tsk ã¯ï¼èªã¿ã¹ã¯ãçµäºãããå¾ï¼èªã¿ã¹ã¯ã«å¯¾ã㦠create_context ã
|
---|
| 824 | å¼ã¶ï¼ã¾ãï¼ã¿ã¹ã¯ã®èµ·åè¦æ±ããã¥ã¼ã¤ã³ã°ããã¦ããå ´åã«ã¯ï¼èªã¿ã¹ã¯
|
---|
| 825 | ã«å¯¾ã㦠activate_context ãå¼ã¶ï¼create_context 㨠activate_context
|
---|
| 826 | ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãæ¸ãæããå ´åããããï¼ããã ext_tsk
|
---|
| 827 | ï¼ããã³ããããå¼ã°ããé¢æ°ï¼ã使ç¨ãã¦ããã¹ã¿ãã¯é åã¨éãªã£ãå ´åï¼
|
---|
| 828 | èªåã®ä½¿ç¨ãã¦ããã¹ã¿ãã¯é åãèªåã§ç ´å£ããçµæã«ãªãï¼
|
---|
| 829 |
|
---|
| 830 | ACTIVATE_STACK_SIZE ãï¼create_context 㨠activate_context ãæ¸ãæã
|
---|
| 831 | ãã¹ã¿ãã¯é åã®ãµã¤ãºï¼å³å¯ã«ã¯ï¼ã¹ã¿ãã¯ã®åºããä½ãã¤ããã¾ã§ãæ¸ã
|
---|
| 832 | æãããï¼ã«ãã¯ãå®ç¾©ãã¦ããã¨ï¼ext_tsk å
|
---|
| 833 | ã§ã¹ã¿ãã¯ä¸ã«å®ç¾©ãããµã¤
|
---|
| 834 | ãºã®ããã¼é åã確ä¿ãï¼èªåã®ä½¿ç¨ãã¦ããã¹ã¿ãã¯é åãç ´å£ããã®ãé²
|
---|
| 835 | ãï¼
|
---|
| 836 |
|
---|
| 837 | ãªãï¼ãããå®ç¾ããããã«ï¼å¦çç³»ä¾åã®æ©è½ã§ãã alloca ãç¨ãã¦ããï¼
|
---|
| 838 | gcc 㯠alloca ããµãã¼ããã¦ãããï¼ä»ã®ã³ã³ãã¤ã©ãç¨ããå ´åã«ã¯ï¼
|
---|
| 839 | alloca ããµãã¼ããã¦ããã確èªãå¿
|
---|
| 840 | è¦ã§ããï¼ã¾ãï¼alloca ãç¨ããå ´å
|
---|
| 841 | ã«ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãå¿
|
---|
| 842 | è¦ãªå ´åã«ã¯ï¼tool_config.h ããã¤ã³ã¯ã«ã¼ã
|
---|
| 843 | ããå¿
|
---|
| 844 | è¦ãããï¼
|
---|
| 845 |
|
---|
| 846 | (7) ã¿ã¼ã²ããä¾åã®åæåï¼çµäºå¦ç
|
---|
| 847 |
|
---|
| 848 | (7-1) void cpu_initialize(void)
|
---|
| 849 |
|
---|
| 850 | ããã»ããµä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼ã«ã¼ãã«å
|
---|
| 851 | ã®åã¢ã¸ã¥
|
---|
| 852 | ã¼ã«ãåæåããåã«å¼ã°ããï¼
|
---|
| 853 |
|
---|
| 854 | (7-2) void sys_initialize(void)
|
---|
| 855 |
|
---|
| 856 | ã·ã¹ãã ä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼cpu_initialize ã«ç¶
|
---|
| 857 | ãã¦å¼ã°ããï¼
|
---|
| 858 |
|
---|
| 859 | (7-3) void tool_initialize(void)
|
---|
| 860 |
|
---|
| 861 | éçºç°å¢ä¾åã®åæåå¦çï¼ã«ã¼ãã«ã®åæåå¦çã§ï¼sys_initialize ã«ç¶
|
---|
| 862 | ãã¦å¼ã°ããï¼
|
---|
| 863 |
|
---|
| 864 | ä¸ã®3ã¤ã®é¢æ°ã¯ï¼ã«ã¼ãã«èµ·åå¦çï¼kernel_start é¢æ°ï¼ã®æåã§ãã®é ã«
|
---|
| 865 | å¼ã³åºãããï¼3ã¤ã®é¢æ°ãå¼ã³åºããå¾ã®æç¹ã§ï¼CPUããã¯ç¶æ
|
---|
| 866 | ã«ãªã£ã¦ã
|
---|
| 867 | ãªããã°ãªããªãï¼
|
---|
| 868 |
|
---|
| 869 | (7-4) void cpu_terminate(void);
|
---|
| 870 |
|
---|
| 871 | ããã»ããµä¾åã®çµäºæå¦çï¼ã«ã¼ãã«ã®çµäºå¦çã§å¼ã°ããï¼
|
---|
| 872 |
|
---|
| 873 | (7-5) sys_exit(void)
|
---|
| 874 |
|
---|
| 875 | ã·ã¹ãã ã®çµäºå¦çï¼ã«ã¼ãã«ã®çµäºå¦çã§ï¼cpu_terminate ã«ç¶ãã¦å¼ã°ã
|
---|
| 876 | ãï¼ãã®é¢æ°ããã¯ãªã¿ã¼ã³ããªãï¼ROMã¢ãã¿ãæã¤ã·ã¹ãã ã§ã¯ï¼ROMã¢ã
|
---|
| 877 | ã¿å¼åºãã§å®ç¾ãããã¨ãæ³å®ãã¦ããï¼
|
---|
| 878 |
|
---|
| 879 | (7-6) call_atexit(void)
|
---|
| 880 |
|
---|
| 881 | éçºç°å¢ä¾åã®çµäºå¦çï¼å¿
|
---|
| 882 | è¦ã«å¿ãã¦ï¼atexit ã«ãã£ã¦ç»é²ãããé¢æ°ã®
|
---|
| 883 | å®è¡ã C++ ã«ããããã¹ãã©ã¯ã¿ã®å®è¡ãè¡ãï¼
|
---|
| 884 |
|
---|
| 885 | (8) å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®å®ç¾©
|
---|
| 886 |
|
---|
| 887 | (8-1) void define_inh(INHNO inhno, FP inthdr)
|
---|
| 888 |
|
---|
| 889 | å²è¾¼ã¿ãã³ãã©çªå· inhno ã®èµ·åçªå°ã inthdr ã«è¨å®ããï¼å²è¾¼ã¿ç®¡çæ©
|
---|
| 890 | è½ã®åæåå¦çããå¼ã°ããï¼
|
---|
| 891 |
|
---|
| 892 | (8-2) void define_exc(EXCNO excno, FP exchdr)
|
---|
| 893 |
|
---|
| 894 | CPUä¾å¤ãã³ãã©çªå· excno ã®èµ·åçªå°ã exchdr ã«è¨å®ããï¼CPUä¾å¤ãã³
|
---|
| 895 | ãã©ç®¡çæ©è½ã®åæåå¦çããå¼ã°ããï¼
|
---|
| 896 |
|
---|
| 897 | (9) CPUä¾å¤çºçæç¹ã®ã·ã¹ãã ç¶æ
|
---|
| 898 | ã®åç
|
---|
| 899 | §
|
---|
| 900 |
|
---|
| 901 | (9-1) BOOL exc_sense_context(VP p_excinf)
|
---|
| 902 |
|
---|
| 903 | CPUä¾å¤ãçºçããã³ã³ããã¹ããï¼ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠FALSEï¼é
|
---|
| 904 | ã¿ã¹ã¯ã³ã³ããã¹ãã®å ´å㯠TRUE ãè¿ãé¢æ°ï¼CPUä¾å¤ãã³ãã©ããå¼ã°ã
|
---|
| 905 | ããµã¼ãã¹ã³ã¼ã«å¦çããå¼ã°ããï¼p_excinf ã«ã¯ï¼CPUä¾å¤ãã³ãã©ã¸ã®å¼
|
---|
| 906 | æ°ããã®ã¾ã¾æ¸¡ãããï¼
|
---|
| 907 |
|
---|
| 908 | (9-2) BOOL exc_sense_lock(VP p_excinf)
|
---|
| 909 |
|
---|
| 910 | CPUä¾å¤ãçºçããã³ã³ããã¹ããï¼CPUããã¯ç¶æ
|
---|
| 911 | ã®å ´å㯠TRUEï¼CPUããã¯
|
---|
| 912 | 解é¤ç¶æ
|
---|
| 913 | ã®æ㯠FALSE ãè¿ãé¢æ°ï¼CPUä¾å¤ãã³ãã©ããå¼ã°ãããµã¼ãã¹ã³
|
---|
| 914 | ã¼ã«å¦çããå¼ã°ããï¼p_excinf ã«ã¯ï¼CPUä¾å¤ãã³ãã©ã¸ã®å¼æ°ããã®ã¾ã¾
|
---|
| 915 | 渡ãããï¼
|
---|
| 916 |
|
---|
| 917 | (10) TCB ä¸ã®ãã£ã¼ã«ãã®ãããå¹
|
---|
| 918 | ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 919 |
|
---|
| 920 | TCB ä¸ã®ãã£ã¼ã«ãã®é
|
---|
| 921 | ç½®ã¯æ§è½ã«å¤§ããå½±é¿ããã¨æãããããï¼ã¿ã¼ã²ã
|
---|
| 922 | ãä¾åã«ãã£ã¼ã«ãã®ãããå¹
|
---|
| 923 | ãå¤æ´ã§ããããã«ãã¦ããï¼å
|
---|
| 924 | ·ä½çã«ã¯ï¼ä»¥
|
---|
| 925 | ä¸ã®2ã¤ã®ãã£ã¼ã«ãã®ãããå¹
|
---|
| 926 | ãå¤æ´ã§ããï¼ãããã®ãã¯ããå®ç¾©ããªã
|
---|
| 927 | å ´åï¼æå°ãããå¹
|
---|
| 928 | ã¨ãªãï¼
|
---|
| 929 |
|
---|
| 930 | (10-1) TBIT_TCB_TSTAT tstatï¼ã¿ã¹ã¯ç¶æ
|
---|
| 931 | ï¼ã®ãããå¹
|
---|
| 932 |
|
---|
| 933 | (10-2) TBIT_TCB_PRIORITY priorityï¼åªå
|
---|
| 934 | 度ï¼ãã£ã¼ã«ãã®ãããå¹
|
---|
| 935 |
|
---|
| 936 |
|
---|
| 937 | 32ãããããã»ããµã®å ´åã«ã¯ï¼ãããã 8 ã«å®ç¾©ããã®ãå¹ççã§ããï¼
|
---|
| 938 |
|
---|
| 939 | (11) ãããããããµã¼ãã«ããããµã¼ãå½ä»¤ã使ãããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 940 |
|
---|
| 941 | ããã»ããµãããããµã¼ãå½ä»¤ãæã¤å ´åï¼ã¬ãã£ãã¥ã¼ã®ãããããããµã¼
|
---|
| 942 | ãã«ãã®å½ä»¤ãç¨ããæ¹ãå¹çãããï¼ãã®å ´åï¼ä»¥ä¸ã®é¢æ°ããã³ãã¯ãã
|
---|
| 943 | ã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããï¼
|
---|
| 944 |
|
---|
| 945 | (11-1) CPU_BITMAP_SEARCH
|
---|
| 946 |
|
---|
| 947 | ããã»ããµã®ããããµã¼ãå½ä»¤ãç¨ããå ´åï¼ãã®ãã¯ããå®ç¾©ããï¼ãã®ã
|
---|
| 948 | ã¯ããå®ç¾©ãããã¨ã«ããï¼ã¿ã¼ã²ããéä¾åé¨ãã bitmap_search ãåã
|
---|
| 949 | é¤ãããï¼
|
---|
| 950 |
|
---|
| 951 | (11-2) UINT bitmap_search(UINT bitmap)
|
---|
| 952 |
|
---|
| 953 | ããããµã¼ããè¡ãé¢æ°ï¼bitmap å
|
---|
| 954 | ã® 1 ã®ãããã®å
|
---|
| 955 | ï¼æãä¸ä½ã®ãã®ããµ
|
---|
| 956 | ã¼ããï¼ãã®ãããçªå·ãè¿ãï¼ãããçªå·ã¯ï¼æä¸ä½ãããï¼LSBï¼ã 0 ã¨
|
---|
| 957 | ããï¼bitmap ã®ä¸ä½16ãããã«ï¼å¿
|
---|
| 958 | ã 1 ã®ããããããï¼ããªãã¡ï¼bitmap
|
---|
| 959 | ã« 0 ãæå®ããããã¨ã¯ãªãï¼ãã¨ãä»®å®ãã¦ããï¼
|
---|
| 960 |
|
---|
| 961 | æ¨æºã©ã¤ãã©ãªã«ããããµã¼ãå½ä»¤ãç¨ãã ffs ãããå ´åï¼ffs ãç¨ãã¦
|
---|
| 962 | bitmap_search ã次ã®ããã«å®ç¾©ããã°ããï¼
|
---|
| 963 | #define bitmap_search(bitmap) (ffs(bitmap) - 1)
|
---|
| 964 |
|
---|
| 965 | ããã»ããµã®æã¤ããããµã¼ãå½ä»¤ãï¼æãä¸ä½ã® 1 ã®ãããããµã¼ããã
|
---|
| 966 | ãã®ã§ããå ´åã«ã¯ï¼æ¬¡ã®ãã¯ããå®ç¾©ãã¦ï¼ãããã®å²ä»ããå¤æ´ãããã¨
|
---|
| 967 | ãã§ããï¼
|
---|
| 968 |
|
---|
| 969 | (11-3) UINT PRIMAP_BIT(pri)
|
---|
| 970 |
|
---|
| 971 | ã¿ã¹ã¯åªå
|
---|
| 972 | 度ã®å
|
---|
| 973 | é¨è¡¨ç¾ï¼æé«åªå
|
---|
| 974 | 度ã 0 ã¨ããï¼ãï¼ããã«å¯¾å¿ãããã
|
---|
| 975 | ããããã«å¤æããï¼ããã©ã«ãã®å®ç¾©ã¯æ¬¡ã®éãï¼
|
---|
| 976 | #define PRIMAP_BIT(pri) (1 << (pri))
|
---|
| 977 |
|
---|
| 978 | (12) ã¿ã¼ã²ããä¾åã®ãµã¼ãã¹ã³ã¼ã«ï¼ãªãã·ã§ã³ï¼
|
---|
| 979 |
|
---|
| 980 | 以ä¸ã®ãµã¼ãã¹ã³ã¼ã«ãã¿ã¼ã²ããä¾åã«ãµãã¼ãããå ´åã«ã¯ï¼ãã®å¦çã«
|
---|
| 981 | ã¼ãã³ãã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããï¼
|
---|
| 982 |
|
---|
| 983 | (12-1) chg_ixx
|
---|
| 984 | (12-2) get_ixx
|
---|
| 985 | (12-3) dis_int
|
---|
| 986 | (12-4) ena_int
|
---|
| 987 |
|
---|
| 988 | (13) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 989 |
|
---|
| 990 | (13-1) SUPPORT_VXGET_TIM
|
---|
| 991 |
|
---|
| 992 | ã¿ã¼ã²ããéä¾åé¨ã® vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åã«ï¼ãã®ã
|
---|
| 993 | ã¯ããå®ç¾©ããï¼
|
---|
| 994 |
|
---|
| 995 | (13-2) hw_timer.h
|
---|
| 996 |
|
---|
| 997 | ã¿ã¼ã²ããä¾åã®ã¿ã¤ãã¢ã¸ã¥ã¼ã«ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼ã¿ã¼ã²ããéä¾
|
---|
| 998 | åé¨ã® vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åï¼ã¿ã¼ã²ããä¾åã®ã¿ã¤ã
|
---|
| 999 | ã¢ã¸ã¥ã¼ã«ãå¿
|
---|
| 1000 | è¦ã«ãªãï¼ãã®ããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã§ãã
|
---|
| 1001 | hw_timer.h ã¯ï¼ã·ã¹ãã ãµã¼ãã¹ã®ã·ã¹ãã ã¯ããã¯ãã©ã¤ãã§ç¨ãããã®
|
---|
| 1002 | ã¨å
|
---|
| 1003 | ±éã«ãã¦ããï¼
|
---|
| 1004 |
|
---|
| 1005 | (14) ã«ã¼ãã«ã®å
|
---|
| 1006 | é¨èå¥åã®ãªãã¼ã ã¨ãã®è§£é¤ï¼cpu_rename.hï¼
|
---|
| 1007 | cpu_unrename.hï¼sys_rename.hï¼sys_unrename.hï¼
|
---|
| 1008 |
|
---|
| 1009 | ã¿ã¼ã²ããä¾åé¨ã§ç¨ãã¦ããèå¥åï¼ã¢ã¸ã¥ã¼ã«å
|
---|
| 1010 | ã«éããèå¥åãé¤ãï¼
|
---|
| 1011 | ãï¼Î¼ITRON4.0ä»æ§ã«å¾ã£ã¦ _kernel_ ã§å§ã¾ããã®ã«ãªãã¼ã ããå¿
|
---|
| 1012 | è¦ãã
|
---|
| 1013 | ãï¼
|
---|
| 1014 |
|
---|
| 1015 | å
|
---|
| 1016 | ·ä½çã«ã¯ï¼ããã»ããµä¾åé¨ã§ç¨ãã¦ããèå¥åããªã¹ãã¢ãããããã¡ã¤
|
---|
| 1017 | ã«ã cpu_rename.def ã«ï¼ã·ã¹ãã ä¾åé¨ã§ç¨ãã¦ããèå¥åããªã¹ãã¢ãã
|
---|
| 1018 | ãããã¡ã¤ã«ã sys_rename.def ã«ä½æããï¼genrename 使ã£ã¦ï¼ãããã®ãã¡
|
---|
| 1019 | ã¤ã«ããï¼ãããã cpu_rename.h 㨠cpu_unrename.hï¼sys_rename.h ã¨
|
---|
| 1020 | sys_unrename.h ãçæããï¼xxx_rename.def ãã xxx_rename.h ã¨
|
---|
| 1021 | xxx_unrename.h ãçæããã«ã¯ï¼ã$(KERNEL_DIR)/utils/genrename xxxãã
|
---|
| 1022 | å®è¡ããã°ããï¼
|
---|
| 1023 |
|
---|
| 1024 | ã¾ãï¼cpu_config.h ã®å
|
---|
| 1025 | é ãã cpu_rename.h ãï¼sys_config.h ã®å
|
---|
| 1026 | é ãã
|
---|
| 1027 | sys_rename.h ãã¤ã³ã¯ã«ã¼ãããï¼
|
---|
| 1028 |
|
---|
| 1029 | genrename ãçæãããã¡ã¤ã«ã¯æ¬¡ã®ãããªå
|
---|
| 1030 | 容ã§ããï¼xxx_rename.def ã«
|
---|
| 1031 | xxxx ã¨ããèå¥åãå«ã¾ãã¦ããå ´åï¼xxx_rename.h ã«ã¯æ¬¡ã®ãããªãã¯ã
|
---|
| 1032 | å®ç¾©ãçæãããï¼
|
---|
| 1033 |
|
---|
| 1034 | #define xxxx _kernel_xxxx
|
---|
| 1035 | #ifdef LABEL_ASM
|
---|
| 1036 | #define _xxxx __kernel_xxxx
|
---|
| 1037 | #endif /* LABEL_ASM */
|
---|
| 1038 |
|
---|
| 1039 | ããã§ï¼LABEL_ASM ã¯ï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®èå¥åãï¼Cè¨èªã¬ãã«ã®è
|
---|
| 1040 | å¥åã®å
|
---|
| 1041 | é ã« "_" ãä»ãããã®ã«ãªãå ´åã«å®ç¾©ãã¹ããã¯ãã§ããï¼å®ç¾©
|
---|
| 1042 | ã®æ¹æ³ã«ã¤ãã¦ã¯ãã·ã¹ãã æ§ç¯æ¹æ³ã®è¨å®ããåç
|
---|
| 1043 | §ï¼ï¼
|
---|
| 1044 |
|
---|
| 1045 | ã¾ãï¼xxx_unrename.h ã«ã¯æ¬¡ã®ãããªãã¯ãå®ç¾©è§£é¤ãçæãããï¼
|
---|
| 1046 |
|
---|
| 1047 | #undef xxxx
|
---|
| 1048 | #ifdef LABEL_ASM
|
---|
| 1049 | #undef _xxxx
|
---|
| 1050 | #endif /* LABEL_ASM */
|
---|
| 1051 |
|
---|
| 1052 | (15) ãã¬ã¼ã¹ãã°ã®ããã®ãã¯ãå®ç¾©ï¼tool_config.hï¼
|
---|
| 1053 |
|
---|
| 1054 | ã«ã¼ãã«ã®ãã¬ã¼ã¹ãã°ã®åå¾ã¯ï¼éçºç°å¢ä¾åé¨ã§ãã¬ã¼ã¹ãã°ã®ããã®ã
|
---|
| 1055 | ã¯ããå®ç¾©ãããã¨ã«ãã£ã¦è¡ãï¼ãã¬ã¼ã¹ãã°ã®ããã®ãã¯ãã¯ç´150種é¡
|
---|
| 1056 | ããï¼åå¾ããããã°æ
|
---|
| 1057 | å ±ã«å¯¾å¿ãããã¯ããå®ç¾©ããï¼ãã¬ã¼ã¹ãã°ãåå¾
|
---|
| 1058 | ããªãå ´åã«ã¯ï¼ãããã®ãã¯ãã空ã«å®ç¾©ããã°ããï¼
|
---|
| 1059 |
|
---|
| 1060 | (16) ãã®ä»
|
---|
| 1061 |
|
---|
| 1062 | (16-1) TARGET_NAME
|
---|
| 1063 |
|
---|
| 1064 | èµ·åã¡ãã»ã¼ã¸ã®ã¿ã¼ã²ããåï¼
|
---|
| 1065 |
|
---|
| 1066 | (16-2) void sys_putc(char c)
|
---|
| 1067 |
|
---|
| 1068 | ã¿ã¼ã²ããã·ã¹ãã ã®ä½ã¬ãã«ã®æååºåã«ã¼ãã³ï¼ROMã¢ãã¿ãæã¤ã·ã¹ã
|
---|
| 1069 | ã ã§ã¯ï¼ROMã¢ãã¿å¼ã³åºãã§å®ç¾ãããã¨ãæ³å®ãã¦ããï¼
|
---|
| 1070 |
|
---|
| 1071 | (16-3) OMIT_CALLTEXï¼ãªãã·ã§ã³ï¼
|
---|
| 1072 |
|
---|
| 1073 | ã¿ã¼ã²ããéä¾åé¨ã calltex ãæä¾ããå¿
|
---|
| 1074 | è¦ããªãå ´åã«ï¼ãã®ãã¯ãã
|
---|
| 1075 | å®ç¾©ããï¼è©³ããã¯ï¼ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åé¢æ°ã¨ãã®ä¸ã§åç
|
---|
| 1076 | §ã
|
---|
| 1077 | ã TCB ã®ãã£ã¼ã«ããã®ç¯ãåç
|
---|
| 1078 | §ã®ãã¨ï¼
|
---|
| 1079 |
|
---|
| 1080 | (16-4) LABEL_ALIAS(new_label, defined_label)ï¼ãªãã·ã§ã³ï¼tool_config.hï¼
|
---|
| 1081 |
|
---|
| 1082 | new_label ã defined_label ã¨åãã¢ãã¬ã¹ã«å®ç¾©ããããã®ãã¯ãï¼ãã®
|
---|
| 1083 | ãããªãã¯ããå®ç¾ã§ããªãå ´åã«ã¯ï¼å®ç¾©ãçç¥ãããã¨ãã§ããï¼ãã®ã
|
---|
| 1084 | ã¯ãå®ç¾©ã¯ï¼tool_config.h ã®ä¸ã§è¡ãã®ãæ¨æºã¨ããï¼
|
---|
| 1085 |
|
---|
| 1086 | (16-5) COPYRIGHT_CPUï¼ãªãã·ã§ã³ï¼
|
---|
| 1087 | (16-6) COPYRIGHT_SYSï¼ãªãã·ã§ã³ï¼
|
---|
| 1088 |
|
---|
| 1089 | ã«ã¼ãã«èµ·åæã®ã¡ãã»ã¼ã¸ã«ï¼ããããããã»ããµä¾åé¨ããã³ã·ã¹ãã ä¾
|
---|
| 1090 | åé¨ã®èä½æ¨©è¡¨ç¤ºã追å ããããã®ãã¯ãï¼
|
---|
| 1091 |
|
---|
| 1092 | (16-7) __STK_UNITï¼ãªãã·ã§ã³ï¼
|
---|
| 1093 | (16-8) __MPF_UNITï¼ãªãã·ã§ã³ï¼
|
---|
| 1094 |
|
---|
| 1095 | æ¨æºã§ã¯ï¼ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã¯ï¼VPåã®ãµã¤ãºã«ã¢ã©ã¤
|
---|
| 1096 | ã³ããï¼ãããï¼ãã大ããåä½ã§ã¢ã©ã¤ã³ãããå¿
|
---|
| 1097 | è¦ãããå ´åã«ã¯ï¼
|
---|
| 1098 | __STK_UNIT 㨠__MPF_UNIT ãï¼ããããã¢ã©ã¤ã³ãããåä½ã®ãã¼ã¿åã«å®
|
---|
| 1099 | 義ããï¼ãã ãï¼__STK_UNIT ããã³ __MPF_UNIT ã®ãµã¤ãºã¯ï¼2ã®å·¾ä¹ã§ãªã
|
---|
| 1100 | ãã°ãªããªãï¼
|
---|
| 1101 |
|
---|
| 1102 | (16-9) __EMPTY_LABEL(x, y)ï¼ãªãã·ã§ã³ï¼tool_config.hï¼
|
---|
| 1103 |
|
---|
| 1104 | å x ã®ãµã¤ãº 0 ã®é
|
---|
| 1105 | å y ãå®ç¾©ããããã®ãã¯ãï¼ãµã¤ãº 0 ã®é
|
---|
| 1106 | åãå®ç¾©
|
---|
| 1107 | ã§ããã³ã³ãã¤ã©ï¼GNUéçºç°å¢ã¯ããã«è©²å½ï¼ã§ã¯å®ç¾©ãçç¥ãããã¨ãã§
|
---|
| 1108 | ããï¼ãã®ãã¯ãå®ç¾©ã¯ï¼tool_config.h ã®ä¸ã§è¡ãã®ãæ¨æºã¨ããï¼
|
---|
| 1109 |
|
---|
| 1110 |
|
---|
| 1111 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨ãç¨ãããã¨ãã§ããã¿ã¼ã²ããéä¾åé¨ã®å¤æ°ã»é¢æ°
|
---|
| 1112 |
|
---|
| 1113 | (1) ã¿ã¹ã¯ç®¡çé¢é£ã®å¤æ°
|
---|
| 1114 |
|
---|
| 1115 | (1-1) TCB *runtsk
|
---|
| 1116 |
|
---|
| 1117 | å®è¡ç¶æ
|
---|
| 1118 | ã®ã¿ã¹ã¯ï¼ï¼ããã»ããµãã³ã³ããã¹ããæã£ã¦ããã¿ã¹ã¯ï¼ã® TCB
|
---|
| 1119 | ãæããã¤ã³ã¿ï¼å®è¡ç¶æ
|
---|
| 1120 | ã®ã¿ã¹ã¯ããªãå ´å㯠NULL ã«ããï¼ãµã¼ãã¹ã³ã¼
|
---|
| 1121 | ã«ã®å¦çä¸ã§ï¼èªã¿ã¹ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããã¿ã¹ã¯ï¼ã«é¢ããæ
|
---|
| 1122 | å ±
|
---|
| 1123 | ãåç
|
---|
| 1124 | §ããå ´å㯠runtsk ã使ãï¼ã«ã¼ãã«ã®åæåå¦ç以å¤ã§ï¼ãã®å¤æ°ã
|
---|
| 1125 | æ¸ãæããã®ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ããªãã¡ï¼ã¿ã¼ã²ããä¾åé¨ï¼ã®ã¿
|
---|
| 1126 | ã§ããï¼
|
---|
| 1127 |
|
---|
| 1128 | (1-2) TCB *schedtsk
|
---|
| 1129 |
|
---|
| 1130 | å®è¡ã§ããã¿ã¹ã¯ã®ä¸ã§æé«åªå
|
---|
| 1131 | é ä½ã®ã¿ã¹ã¯ã® TCB ãæããã¤ã³ã¿ï¼å®è¡
|
---|
| 1132 | ã§ããã¿ã¹ã¯ããªãå ´å㯠NULL ã¨ãªãï¼ãã£ã¹ãããç¦æ¢ç¶æ
|
---|
| 1133 | ãªã©ï¼ãã£ã¹
|
---|
| 1134 | ããããä¿çããã¦ããéã¯ï¼runtsk ã¨ä¸è´ãã¦ããã¨ã¯éããªãï¼ãã®å¤
|
---|
| 1135 | æ°ãæ¸ãæããã®ã¯ã¹ã±ã¸ã¥ã¼ã©ã®ã¿ã§ï¼ã¿ã¼ã²ããä¾åé¨ã¯ãã®å¤æ°ãæ¸ã
|
---|
| 1136 | æãã¦ã¯ãªããªãï¼
|
---|
| 1137 |
|
---|
| 1138 | (1-3) BOOL reqflg
|
---|
| 1139 |
|
---|
| 1140 | å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ï¼ã¿ã¹ã¯ãã£ã¹ãããã¾ãã¯
|
---|
| 1141 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¦æ±ãããã¨ã示ããã©ã°ï¼ãã®å¤æ°ã¯ãµã¼
|
---|
| 1142 | ãã¹ã³ã¼ã«å¦çï¼ã¿ã¼ã²ããéä¾åé¨ï¼ã§ã»ãããï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾
|
---|
| 1143 | å¤ãã³ãã©ã®åºå£å¦çï¼ã¿ã¼ã²ããä¾åé¨ï¼ã§åç
|
---|
| 1144 | §ï¼ã¯ãªã¢ããï¼
|
---|
| 1145 |
|
---|
| 1146 | (1-4) BOOL enadsp
|
---|
| 1147 |
|
---|
| 1148 | ã¿ã¹ã¯ãã£ã¹ããã許å¯ç¶æ
|
---|
| 1149 | ã§ããï¼ããªãã¡ï¼ã¿ã¹ã¯ãã£ã¹ãããç¦æ¢ç¶æ
|
---|
| 1150 |
|
---|
| 1151 | ã§ãªãï¼ãã¨ã示ããã©ã°ï¼ãã®å¤æ°ã¯ãµã¼ãã¹ã³ã¼ã«ï¼dis_dspï¼ena_dspï¼
|
---|
| 1152 | ã¿ã¼ã²ããä¾åã« chg_ixxï¼å¦çã®ä¸ã§æ¸ãæããï¼
|
---|
| 1153 |
|
---|
| 1154 | ã¾ãï¼ã¿ã¹ã¯ãã£ã¹ãããã£ï¼ã¿ã¼ã²ããä¾åé¨ï¼ã®ä¸ã§ï¼å®è¡ã§ããã¿ã¹ã¯
|
---|
| 1155 | ãã§ããã®ãå¾
|
---|
| 1156 | ã¤éã«èµ·åãããå²è¾¼ã¿ãã³ãã©ã®åºå£ã§ã¿ã¹ã¯ãã£ã¹ãããã£
|
---|
| 1157 | ãå¼ã°ããªãããã«ããããã«ï¼ãã®å¤æ°ãä¸æçã« FALSE ã«è¨å®ãããã¨
|
---|
| 1158 | ãã§ããï¼
|
---|
| 1159 |
|
---|
| 1160 | (2) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åé¢æ°ã¨ãã®ä¸ã§åç
|
---|
| 1161 | §ãã TCB ã®ãã£ã¼ã«ã
|
---|
| 1162 |
|
---|
| 1163 | (2-1) void calltex(void)
|
---|
| 1164 | (2-2) void call_texrtn(void)
|
---|
| 1165 |
|
---|
| 1166 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ãé¢æ°ï¼calltex ã¯ï¼å®è¡ç¶æ
|
---|
| 1167 | ã®ã¿ã¹ã¯ã
|
---|
| 1168 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ããã°ï¼call_texrtn ãå¼ã³åº
|
---|
| 1169 | ãï¼call_texrtn ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼ã³åºããè¡ãï¼ã¿ã¹ã¯ä¾å¤
|
---|
| 1170 | å¦çã«ã¼ãã³ãå¼ã³åºãæã¯ï¼ä¸æçã«CPUããã¯ã解é¤ããï¼
|
---|
| 1171 |
|
---|
| 1172 | ãããã®é¢æ°ã¯ï¼ãã£ã¹ãããã£ãå²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£
|
---|
| 1173 | å¦çããï¼CPUããã¯ç¶æ
|
---|
| 1174 | ã§å¼ã°ãããã¨ãæ³å®ãã¦ããï¼calltex ãå¼ã³åº
|
---|
| 1175 | ãã®ãæãç°¡åã§ãããï¼å®è¡å¹çãä¸ããããã«ã¯ï¼èµ·åæ¡ä»¶ã®ãã§ãã¯ã
|
---|
| 1176 | ã¢ã»ã³ããªè¨èªã§è¨è¿°ãï¼call_texrtn ãå¼ã³åºããæ¹ãããï¼ãã§ãã¯ãã¹
|
---|
| 1177 | ãèµ·åæ¡ä»¶ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã® calltex ã®ã½ã¼ã¹ã³ã¼ããå
|
---|
| 1178 | ç
|
---|
| 1179 | §ãããã¨ï¼ã¾ããã®å ´åã«ã¯ï¼OMIT_CALLTEX ããã¯ãå®ç¾©ãããã¨ã§ï¼ã¿
|
---|
| 1180 | ã¼ã²ããéä¾åé¨ãã calltex ãåãé¤ãããï¼
|
---|
| 1181 |
|
---|
| 1182 | (2-3) BOOL enatex
|
---|
| 1183 | (2-4) TEXPTN texptn
|
---|
| 1184 |
|
---|
| 1185 | call_texrtn ãå¼ã³åºãããã«ï¼èµ·åæ¡ä»¶ã®ãã§ãã¯ãã¢ã»ã³ããªè¨èªã§è¨è¿°
|
---|
| 1186 | ããå ´åã«ã¯ï¼TCB å
|
---|
| 1187 | ã®ãããã®ãã£ã¼ã«ããåç
|
---|
| 1188 | §ããå¿
|
---|
| 1189 | è¦ãããï¼
|
---|
| 1190 |
|
---|
| 1191 | (3) ã·ã¹ãã ãã°æ©è½
|
---|
| 1192 |
|
---|
| 1193 | ç°å¸¸äºè±¡ãéç¥ããããã«ï¼ã·ã¹ãã ãã°æ©è½ã¸ã®ãã°åºåé¢æ°ãç¨ãããã¨
|
---|
| 1194 | ãã§ããï¼ã·ã¹ãã ãã°æ©è½ã«ã¤ãã¦ã¯ï¼ã¦ã¼ã¶ãºããã¥ã¢ã«ãåç
|
---|
| 1195 | §ãããã¨ï¼
|
---|
| 1196 |
|
---|
| 1197 |
|
---|
| 1198 | ï¼ï¼ã·ã¹ãã ãµã¼ãã¹ç¨ã®ãã¼ã¿åãé¢æ°ãªã©
|
---|
| 1199 |
|
---|
| 1200 | 5.1 ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ããã®å®ç¾©
|
---|
| 1201 |
|
---|
| 1202 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ãã
|
---|
| 1203 | ã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼cpu_defs.hã¾ãã¯sys_defs.hï¼ã¾
|
---|
| 1204 | ãã¯ãããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼ã¾ãï¼é¢æ°ã®å®ä½ã
|
---|
| 1205 | å¿
|
---|
| 1206 | è¦ãªå ´åï¼Cè¨èªã®å ´åã¯cpu_config.cã¾ãã¯sys_config.cã«ï¼ã¢ã»ã³ããª
|
---|
| 1207 | è¨èªã®å ´åã¯cpu_support.Sã¾ãã¯sys_support.Sã«è¨è¿°ããï¼
|
---|
| 1208 |
|
---|
| 1209 | (1) å¾®å°æéå¾
|
---|
| 1210 | ã¡é¢é£
|
---|
| 1211 |
|
---|
| 1212 | (1-1) void sil_dly_nse(UINT dlytim)
|
---|
| 1213 |
|
---|
| 1214 | dlytimã§æå®ãããæéï¼åä½: 1ããç§ï¼å¾
|
---|
| 1215 | ã¤é¢æ°ãã¿ã¼ã²ããä¾åé¨ã§æ
|
---|
| 1216 | ä¾ããï¼
|
---|
| 1217 |
|
---|
| 1218 | å®ç¾æ¹æ³ã¯ã¿ã¼ã²ããä¾åã§ãããï¼ä»¥ä¸ã®é¢æ°ãã¢ã»ã³ããªè¨èªã§è¨è¿°ãã
|
---|
| 1219 | ãã®ãï¼ããã»ããµä¾åé¨ã«å«ããã®ãæ¨æºçãªæ¹æ³ã¨ããï¼ã¢ã»ã³ããªè¨èª
|
---|
| 1220 | ã§è¨è¿°ããã®ã¯ï¼ã³ã³ãã¤ã©ã®æé©åã«ä¾åããªãããã«ããããã§ããï¼ã¾
|
---|
| 1221 | ããã®é¢æ°ã¯ï¼ã§ããéãã¡ã¢ãªã¢ã¯ã»ã¹ãè¡ããªãããã«å®è£
|
---|
| 1222 | ãã¹ãã§ããï¼
|
---|
| 1223 |
|
---|
| 1224 | void sil_dly_nse(UINT dlytim)
|
---|
| 1225 | {
|
---|
| 1226 | if (dlytim > SIL_DLY_TIM1) {
|
---|
| 1227 | dlytim -= SIL_DLY_TIM1;
|
---|
| 1228 | while (dlytim > SIL_DLY_TIM2) {
|
---|
| 1229 | dlytim -= SIL_DLY_TIM2;
|
---|
| 1230 | }
|
---|
| 1231 | }
|
---|
| 1232 | }
|
---|
| 1233 |
|
---|
| 1234 | (1-2) SIL_DLY_TIM1ï¼ãªãã·ã§ã³ï¼
|
---|
| 1235 | (1-3) SIL_DLY_TIM2ï¼ãªãã·ã§ã³ï¼
|
---|
| 1236 |
|
---|
| 1237 | sil_dly_nseãä¸è¨ã®æ¨æºçãªæ¹æ³ã§å®ç¾ããå ´åï¼ãã®2ã¤ã®å®æ°ãã·ã¹ãã
|
---|
| 1238 | ä¾åé¨ã§ãã¯ãå®ç¾©ããï¼ãªãï¼ãã®2ã¤ã®å®æ°ã®æ±ºå®ãå©ããããã°ã©ã ã
|
---|
| 1239 | ç¨æãã¦ããï¼å¸æãããæ¹ã¯ï¼ç¸è«ããããï¼
|
---|
| 1240 |
|
---|
| 1241 | (2) å²è¾¼ã¿ããã¯ç¶æ
|
---|
| 1242 | ã®å¶å¾¡é¢é£ï¼ãªãã·ã§ã³ï¼
|
---|
| 1243 |
|
---|
| 1244 | (2-1) SIL_PRE_LOC
|
---|
| 1245 | (2-2) SIL_LOC_INT()
|
---|
| 1246 | (2-3) SIL_UNL_INT()
|
---|
| 1247 |
|
---|
| 1248 | ã¿ã¼ã²ããä¾åã§å²è¾¼ã¿ããã¯ç¶æ
|
---|
| 1249 | ã®å¶å¾¡æ¹æ³ãå¤æ´ãããå ´åã«ã¯ï¼ããã
|
---|
| 1250 | ã®ãã¯ãã«ãã®æ¹æ³ãå®ç¾©ããï¼ããããã¯ããå®ç¾©ããªãå ´åã«ã¯ï¼ ã¿ã¼
|
---|
| 1251 | ã²ããéä¾åé¨ã«ããã¦ï¼ã«ã¼ãã«ã®CPUããã¯ã®æ©è½ãç¨ãã¦å²è¾¼ã¿ããã¯
|
---|
| 1252 | ç¶æ
|
---|
| 1253 | ãå®ç¾ãããï¼
|
---|
| 1254 |
|
---|
| 1255 | (3) ããã»ããµã®ã¨ã³ãã£ã¢ã³ã®å®ç¾©
|
---|
| 1256 |
|
---|
| 1257 | (3-1) SIL_ENDIAN
|
---|
| 1258 |
|
---|
| 1259 | ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯SIL_ENDIAN_LITTLEï¼ï¼0ï¼ï¼ããã°ã¨ã³ãã£
|
---|
| 1260 | ã¢ã³ããã»ããµã§ã¯SIL_ENDIAN_BIGï¼ï¼1ï¼ã«ãã¯ãå®ç¾©ããï¼
|
---|
| 1261 |
|
---|
| 1262 | (4) ã¨ã³ãã£ã¢ã³ã®å転ï¼ãªãã·ã§ã³ï¼
|
---|
| 1263 |
|
---|
| 1264 | (4-1) VH SIL_REV_ENDIAN_H(VH data)
|
---|
| 1265 | (4-2) VW SIL_REV_ENDIAN_W(VW data)
|
---|
| 1266 |
|
---|
| 1267 | ã¨ã³ãã£ã¢ã³ã®å転ãå¹çããå®ç¾ããæ¹æ³ãããå ´åã«ã¯ï¼ãããã®ãã¯ã
|
---|
| 1268 | ã«ãã®æ¹æ³ãå®ç¾©ããï¼ãããã®ãã¯ããå®ç¾©ããªãå ´åã«ã¯ï¼æ¨æºçãªæ¹æ³
|
---|
| 1269 | ã§ã¨ã³ãã£ã¢ã³ã®å転ãè¡ãããï¼
|
---|
| 1270 |
|
---|
| 1271 | (5) ã¨ã³ãã£ã¢ã³å転ä»ãã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹ï¼ãªãã·ã§ã³ï¼
|
---|
| 1272 |
|
---|
| 1273 | ã¨ã³ãã£ã¢ã³ãå転ãã¦ã¡ã¢ãªãèªåºãï¼æ¸è¾¼ã¿ããå¹ççãªæ¹æ³ãããå ´åï¼
|
---|
| 1274 | 該å½ããã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼ã²ããä¾åé¨ã§ç¨æãï¼ã¿ã¼ã²ããé
|
---|
| 1275 | ä¾åé¨ã®æ¨æºçãªå®ç¾©ãç¡å¹ã«ããããã®ãã¯ããå®ç¾©ããï¼
|
---|
| 1276 |
|
---|
| 1277 | (5-1) VH sil_reh_bem(VP mem) OMIT_SIL_REH_BEM
|
---|
| 1278 | (5-2) void sil_wrh_bem(VP mem, VH data) OMIT_SIL_WRH_BEM
|
---|
| 1279 | (5-3) VW sil_rew_bem(VP mem) OMIT_SIL_REW_BEM
|
---|
| 1280 | (5-4) void sil_wrw_bem(VP mem, VW data) OMIT_SIL_WRW_BEM
|
---|
| 1281 |
|
---|
| 1282 | ãªãã«ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯ï¼ãããã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼
|
---|
| 1283 | ã²ããä¾åé¨ã§ç¨æãï¼å³ã«ç¤ºããã¯ããå®ç¾©ããï¼
|
---|
| 1284 |
|
---|
| 1285 | (5-5) VH sil_reh_lem(VP mem) OMIT_SIL_REH_LEM
|
---|
| 1286 | (5-6) void sil_wrh_lem(VP mem, VH data) OMIT_SIL_WRH_LEM
|
---|
| 1287 | (5-7) VW sil_rew_lem(VP mem) OMIT_SIL_REW_LEM
|
---|
| 1288 | (5-8) void sil_wrw_lem(VP mem, VW data) OMIT_SIL_WRW_LEM
|
---|
| 1289 |
|
---|
| 1290 | ããã°ã¨ã³ãã£ã¢ã³ããã»ããµã§ã¯ï¼ãããã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼
|
---|
| 1291 | ã²ããä¾åé¨ã§ç¨æãï¼å³ã«ç¤ºããã¯ããå®ç¾©ããï¼
|
---|
| 1292 |
|
---|
| 1293 | (6) æ¨æºã®ã¢ã¯ã»ã¹é¢æ°ã®ç¡å¹åï¼ãªãã·ã§ã³ï¼
|
---|
| 1294 |
|
---|
| 1295 | (6-1) OMIT_SIL_ACCESS
|
---|
| 1296 |
|
---|
| 1297 | ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã§ï¼ãã¹ã¦ã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãã¿ã¼ã²ãã
|
---|
| 1298 | ä¾åé¨ã§ç¨æããå ´åã«ã¯ï¼ã¿ã¼ã²ããéä¾åé¨ã®æ¨æºçãªå®ç¾©ãç¡å¹ã«ãã
|
---|
| 1299 | ããã«ï¼ãã®ãã¯ããå®ç¾©ããï¼
|
---|
| 1300 |
|
---|
| 1301 | 5.2 ã·ã¹ãã ã¯ããã¯ãã©ã¤ãç¨ã®ãã¼ã¿åãé¢æ°ãªã©
|
---|
| 1302 |
|
---|
| 1303 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ã¯ããã¯ãã©ã¤ãç¨ã®ãã¼ã¿åãé¢æ°
|
---|
| 1304 | ãªã©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼hw_timer.hï¼ã¾ãã¯ãããããã¤ã³
|
---|
| 1305 | ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼é¢æ°ã®å®ä½ãå¿
|
---|
| 1306 | è¦ãªå ´åã«ã¯ï¼é©åãªãã¡
|
---|
| 1307 | ã¤ã«ãç¨æããï¼
|
---|
| 1308 |
|
---|
| 1309 | (1) INHNO_TIMER
|
---|
| 1310 |
|
---|
| 1311 | ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ã®ãã¯ã¿çªå·ãå®ç¾©ãããã¯ããï¼ã¿ã¼ã²ããä¾åé¨ã§
|
---|
| 1312 | æä¾ããï¼
|
---|
| 1313 |
|
---|
| 1314 | (2) ã¿ã¤ãã®å¶å¾¡
|
---|
| 1315 |
|
---|
| 1316 | (2-1) void hw_timer_initialize(void)
|
---|
| 1317 |
|
---|
| 1318 | ã¿ã¤ããåæåãï¼ã¿ã¤ãå²è¾¼ã¿ãå¨æçã«çºçãããé¢æ°ãï¼ã¿ã¼ã²ããä¾
|
---|
| 1319 | åé¨ã§æä¾ããï¼ã¿ã¤ãå²è¾¼ã¿ã®å¨æã¯ï¼TIC_NUMEã¨TIC_DENOã§æå®ãããæ
|
---|
| 1320 | éã¨ä¸è´ãããï¼
|
---|
| 1321 |
|
---|
| 1322 | (2-2) void hw_timer_int_clear(void)
|
---|
| 1323 |
|
---|
| 1324 | ã¿ã¤ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããé¢æ°ãï¼ã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
| 1325 |
|
---|
| 1326 | (2-3) void hw_timer_terminate(void)
|
---|
| 1327 |
|
---|
| 1328 | ã¿ã¤ãã®åä½ãåæ¢ããï¼ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«ããé¢æ°ãï¼ã¿ã¼
|
---|
| 1329 | ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
| 1330 |
|
---|
| 1331 | (3) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
|
---|
| 1332 | §æ©è½é¢é£ï¼ãªãã·ã§ã³ï¼
|
---|
| 1333 |
|
---|
| 1334 | ã¿ã¼ã²ããéä¾åé¨ã®vxget_timãµã¼ãã¹ã³ã¼ã«å¦çãç¨ããå ´åã«ï¼ä»¥ä¸ã®
|
---|
| 1335 | ãã¼ã¿åãé¢æ°ãªã©ãã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
| 1336 |
|
---|
| 1337 | (3-1) CLOCK
|
---|
| 1338 |
|
---|
| 1339 | ã¿ã¤ãå¤ã®å
|
---|
| 1340 | é¨è¡¨ç¾ã®ããã®ãã¼ã¿åï¼
|
---|
| 1341 |
|
---|
| 1342 | (3-2) CLOCK hw_timer_get_current(void)
|
---|
| 1343 |
|
---|
| 1344 | ã¿ã¤ãã®ç¾å¨å¤ãèªã¿åºãï¼å
|
---|
| 1345 | é¨è¡¨ç¾ã§è¿ãé¢æ°ï¼
|
---|
| 1346 |
|
---|
| 1347 | (3-3) BOOL hw_timer_fetch_interrupt(void)
|
---|
| 1348 |
|
---|
| 1349 | ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã§ãã¯ããé¢æ°ï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ããã¦ããå ´åã«
|
---|
| 1350 | TRUEï¼è¦æ±ããã¦ããªãå ´åã«FALSEãè¿ãï¼
|
---|
| 1351 |
|
---|
| 1352 | (3-4) UINT TO_USEC(CLOCK clock)
|
---|
| 1353 |
|
---|
| 1354 | ã¿ã¤ãå¤ã®å
|
---|
| 1355 | é¨è¡¨ç¾ãï¼1μç§åä½ã«å¤æããããã®ãã¯ãï¼ã¾ãã¯é¢æ°ï¼ï¼
|
---|
| 1356 | hw_timer_get_currentã§èªã¿åºããå¤ãï¼ã¿ã¤ãå²è¾¼ã¿çºçããã®çµéæé
|
---|
| 1357 | ï¼åä½: 1μç§ï¼ã«å¤æããããã«ç¨ããï¼
|
---|
| 1358 |
|
---|
| 1359 | (3-5) BOOL BEFORE_IREQ(CLOCK clock)
|
---|
| 1360 |
|
---|
| 1361 | å²è¾¼ã¿ãç¦æ¢ããç¶æ
|
---|
| 1362 | ã§ï¼ã¾ãhw_timer_get_currentãå¼ã³åºãï¼ç¶ãã¦
|
---|
| 1363 | hw_timer_fetch_interruptãå¼ã³åºãå ´åãèããï¼hw_timer_get_current
|
---|
| 1364 | ãå¼ã³åºããç´å¾ã«ã¿ã¤ããå¨æã«éãï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ãããã¨ï¼
|
---|
| 1365 | hw_timer_get_currentã¯å¨æã«éããç´åã®ã¿ã¤ãå¤ï¼ãããï¼clockã¨ããï¼
|
---|
| 1366 | ãè¿ãï¼hw_timer_fetch_interruptãTRUEãè¿ããã¨ã«ãªãï¼ãã®ç¶æ³ã§ãæ£
|
---|
| 1367 | ããç¾å¨æå»ãå¾ãããã«ï¼clockãããä¸å®å¤ä»¥ä¸ã®å ´åã«ã¯ï¼
|
---|
| 1368 | hw_timer_fetch_interruptãTRUEãè¿ãã¦ãï¼å²è¾¼ã¿çºçåã®å¤ã¨ã¿ãªããã¨
|
---|
| 1369 | ã«ããï¼BEFORE_IREQã¯ï¼clockãå²è¾¼ã¿çºçåã®å¤ã¨ã¿ãªãã¹ãå ´åã«TRUEãï¼
|
---|
| 1370 | ããã§ãªãå ´åã«FALSEãè¿ããã¯ãï¼ã¾ãã¯é¢æ°ï¼ã§ããï¼
|
---|
| 1371 |
|
---|
| 1372 | 5.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãç¨ã®ãã¼ã¿åãé¢æ°ãªã©
|
---|
| 1373 |
|
---|
| 1374 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãç¨ã®ãã¼ã¿å
|
---|
| 1375 | ãé¢æ°ãªã©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼å¥ã«è¨è¿°ããªãéãï¼
|
---|
| 1376 | hw_serial.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ãï¼å¿
|
---|
| 1377 | è¦ãª
|
---|
| 1378 | ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æ
|
---|
| 1379 | å ±ãhw_serial.cfgã«è¨è¿°ããï¼é¢æ°ã®å®ä½ãå¿
|
---|
| 1380 | è¦
|
---|
| 1381 | ãªå ´åã«ã¯ï¼é©åãªãã¡ã¤ã«ãç¨æããï¼
|
---|
| 1382 |
|
---|
| 1383 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ä¸ã§ï¼ã¿ã¼ã²ããã®ã·ãªã¢ã«I/Oããã¤ã¹
|
---|
| 1384 | ã«ä¾åããé¨åãï¼ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã¨å¼ã¶ï¼ã·ãªã¢ã«I/Oããã¤
|
---|
| 1385 | ã¹ãã©ã¤ãã¯ï¼ããããï¼ITRONããã¤ã¹ãã©ã¤ãè¨è¨ã¬ã¤ãã©ã¤ã³ã®PDICã«
|
---|
| 1386 | ç¸å½ããï¼PDICã«ç¸å½ãããã¡ã¤ã«ã§ï¼ä»ã®ã·ã¹ãã ã«ãå
|
---|
| 1387 | ±éã«ä½¿ããå¯è½æ§
|
---|
| 1388 | ãããå ´åã«ã¯ï¼pdic/simple_sioãã£ã¬ã¯ããªã«ç½®ãï¼
|
---|
| 1389 |
|
---|
| 1390 | (1) TNUM_PORT
|
---|
| 1391 |
|
---|
| 1392 | ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããµãã¼ãããã·ãªã¢ã«ãã¼ãæ°ãå®ç¾©ãã
|
---|
| 1393 | ãã¯ãï¼ãã®ãã¯ãã¯ï¼cpu_config.hã¾ãã¯sys_config.hï¼ã¾ãã¯ããããã
|
---|
| 1394 | ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§å®ç¾©ããï¼
|
---|
| 1395 |
|
---|
| 1396 | (2) ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãã³ãã©ã¨ãã®ç»é²
|
---|
| 1397 |
|
---|
| 1398 | ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãã³ãã©ãã¿ã¼ã²ããä¾åé¨ã§æä¾ãï¼ããã
|
---|
| 1399 | ã«ã¼ãã«ã«ç»é²ããéçAPIãhw_serial.cfgã«å«ããï¼ã·ãªã¢ã«I/Oããã¤ã¹
|
---|
| 1400 | ã®å²è¾¼ãã³ãã©ã®ãã¯ã¿çªå·ã¯ï¼hw_serial.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ã
|
---|
| 1401 | ããããã¡ã¤ã«ï¼ã§ãã¯ãå®ç¾©ãï¼hw_serial.cfgããhw_serial.hãã¤ã³ã¯ã«
|
---|
| 1402 | ã¼ãããæ¹æ³ãæ¨æºã¨ããï¼
|
---|
| 1403 |
|
---|
| 1404 | (3) void sio_initialize(void)
|
---|
| 1405 |
|
---|
| 1406 | ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ããåæåããã«ã¼ãã³ï¼ãã®é¢æ°ã¯ï¼ã·ãªã¢ã«
|
---|
| 1407 | ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããéä¾åé¨ã®åæåã«ã¼ãã³ããå¼ã³åºã
|
---|
| 1408 | ããï¼
|
---|
| 1409 |
|
---|
| 1410 | (4) SIOPCB
|
---|
| 1411 |
|
---|
| 1412 | ã·ãªã¢ã«I/Oãã¼ã管çãããã¯ã®ãã¼ã¿åï¼hw_serial.hã«ã¯ï¼å宣è¨ã ãå«
|
---|
| 1413 | ã¾ãã¦ããã°ããï¼ï¼
|
---|
| 1414 |
|
---|
| 1415 | (5) SIO_ERDY_SNDã¨SIO_ERDY_RCV
|
---|
| 1416 |
|
---|
| 1417 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã®èå¥çªå·ãSIO_ERDY_SNDã«ï¼åä¿¡éç¥ã³ã¼ã«ããã¯ã®
|
---|
| 1418 | èå¥çªå·ãSIO_ERDY_RCVã«ãã¯ãå®ç¾©ããï¼ã³ã¼ã«ããã¯ã®ç¦æ¢ï¼è¨±å¯ãè¡ãª
|
---|
| 1419 | ããµã¼ãã¹ã³ã¼ã«ï¼sio_ena_cbrã¨sio_dis_cbrï¼ã§ç¨ããï¼
|
---|
| 1420 |
|
---|
| 1421 | (6) ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
|
---|
| 1422 |
|
---|
| 1423 | 以ä¸ã®ããã¤ã¹ãµã¼ãã«ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ããã
|
---|
| 1424 | ã®å²è¾¼ã¿ãç¦æ¢ãããç¶æ
|
---|
| 1425 | ã§å¼ã³åºãããï¼ã¾ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãï¼éã¿
|
---|
| 1426 | ã¹ã¯ã³ã³ããã¹ãã®ãããã§å¼ã³åºãããå ´åãããï¼ãããã§å¼ã³åºããã¦
|
---|
| 1427 | ãåä½ããããã«ããªããã°ãªããªãï¼ï¼
|
---|
| 1428 |
|
---|
| 1429 | (6-1) SIOPCB *sio_opn_por(ID siopid, VP_INT exinf)
|
---|
| 1430 |
|
---|
| 1431 | siopidã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããªã¼ãã³ããé¢æ°ï¼exinfã¯ã·ãªã¢ã«
|
---|
| 1432 | I/Oãã¼ãã«å¯¾ããæ¡å¼µæ
|
---|
| 1433 | å ±ã§ï¼ã³ã¼ã«ããã¯ãå¼ã¶æã«ãã¼ããåºå¥ããã
|
---|
| 1434 | ãã«æ¸¡ãï¼
|
---|
| 1435 |
|
---|
| 1436 | (6-2) void sio_cls_por(SIOPCB *siopcb)
|
---|
| 1437 |
|
---|
| 1438 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ããã¯ãã¼ãºããé¢æ°ï¼
|
---|
| 1439 |
|
---|
| 1440 | (6-3) BOOL sio_snd_chr(SIOPCB *siopcb, char c)
|
---|
| 1441 |
|
---|
| 1442 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãã«ï¼cã§ç¤ºãããæåãéä¿¡ããé¢æ°ï¼
|
---|
| 1443 | æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
| 1444 | ¥ããå ´åã«ã¯TRUEãï¼åã«éä¿¡ããæåã®éä¿¡ãçµãã£
|
---|
| 1445 | ã¦ããªãããã«ï¼æåãéä¿¡ã¬ã¸ã¹ã¿ã«å
|
---|
| 1446 | ¥ããããªãã£ãå ´åã«ã¯FALSEãè¿
|
---|
| 1447 | ãï¼
|
---|
| 1448 |
|
---|
| 1449 | (6-4) INT sio_rcv_chr(SIOPCB *siopcb)
|
---|
| 1450 |
|
---|
| 1451 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããæåãèªãé¢æ°ï¼æåãåä¿¡ãã¦
|
---|
| 1452 | ããå ´åï¼èªãã æåã®ã³ã¼ãã¯æ£ã®å¤ã¨ãã¦è¿ãï¼æåãåä¿¡ãã¦ããªãå ´
|
---|
| 1453 | åã«ã¯-1ãè¿ãï¼
|
---|
| 1454 |
|
---|
| 1455 | (6-5) sio_ena_cbr(SIOPCB *siopcb, UINT cbrtn)
|
---|
| 1456 |
|
---|
| 1457 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
| 1458 | ã¯ã許å¯ããï¼cbrtnã«ã¯ï¼SIO_ERDY_SNDãSIO_ERDY_RCVãæå®ã§ããï¼
|
---|
| 1459 |
|
---|
| 1460 | (6-6) sio_dis_cbr(SIOPCB *siopcb, UINT cbrtn)
|
---|
| 1461 |
|
---|
| 1462 | siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
|
---|
| 1463 | ã¯ãç¦æ¢ããï¼cbrtnã«ã¯ï¼SIO_ERDY_SNDãSIO_ERDY_RCVãæå®ã§ããï¼
|
---|
| 1464 |
|
---|
| 1465 | (7) ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
| 1466 |
|
---|
| 1467 | ã¿ã¼ã²ããä¾åé¨ã¯ï¼å¿
|
---|
| 1468 | è¦ãªã¿ã¤ãã³ã°ã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
|
---|
| 1469 | ã®ã¿ã¼ã²ããéä¾åé¨ã«å«ã¾ãã以ä¸ã®ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã³ã ã
|
---|
| 1470 | ãªããã°ãªããªãï¼ãã ãï¼ããããã®ã³ã¼ã«ããã¯ãç¦æ¢ããã¦ããæã¯ï¼
|
---|
| 1471 | ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãã¦ã¯ãªããªãï¼
|
---|
| 1472 |
|
---|
| 1473 | ã³ã¼ã«ããã¯ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®å²è¾¼ã¿ã
|
---|
| 1474 | ç¦æ¢ãããç¶æ
|
---|
| 1475 | ã§ï¼éã¿ã¹ã¯ã³ã³ããã¹ãã§å¼ã³åºãï¼exinfã«ã¯ï¼ã·ãªã¢ã«
|
---|
| 1476 | I/Oãã¼ãã®ãªã¼ãã³æã«æå®ãããæ¡å¼µæ
|
---|
| 1477 | å ±ã渡ãï¼
|
---|
| 1478 |
|
---|
| 1479 | (7-1) void sio_ierdy_snd(VP_INT exinf)
|
---|
| 1480 |
|
---|
| 1481 | éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ãã¦æåãéä¿¡ã§ã
|
---|
| 1482 | ãç¶æ
|
---|
| 1483 | ã«ãªã£ãå ´åã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³
|
---|
| 1484 | ã¼ã«ããã¯ã«ã¼ãã³ã®ä¸ã§ï¼sio_snd_chrãå¼ã³åºãã¦æ¬¡ã®æåãéä¿¡ãããï¼
|
---|
| 1485 | éä¿¡ãã¹ãæåããªãå ´åã«ã¯éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ¢ããï¼
|
---|
| 1486 |
|
---|
| 1487 | (7-2) void sio_ierdy_rcv(VP_INT exinf)
|
---|
| 1488 |
|
---|
| 1489 | åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãããæåãåä¿¡ããå ´å
|
---|
| 1490 | ã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼ã«ããã¯ã«ã¼ãã³
|
---|
| 1491 | ã®ä¸ã§ï¼å¿
|
---|
| 1492 | ãsio_rcv_chrãå¼ã³åºãã¦åä¿¡ããæåãåãåºãï¼
|
---|
| 1493 |
|
---|
| 1494 | 5.4 ã·ã¹ãã ãã°ã¿ã¹ã¯ç¨ã®ããã®å®ç¾©
|
---|
| 1495 |
|
---|
| 1496 | ã¿ã¼ã²ããä¾åé¨ã§æä¾ãã¹ãã·ã¹ãã ãã°ã¿ã¹ã¯ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§
|
---|
| 1497 | ããï¼ãããã®å®ç¾©ã¯ï¼cpu_config.hã¾ãã¯sys_config.hï¼ã¾ãã¯ããããã
|
---|
| 1498 | ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
|
---|
| 1499 |
|
---|
| 1500 | (1) LOGTASK_PORTID
|
---|
| 1501 |
|
---|
| 1502 | ã·ã¹ãã ãã°ã¿ã¹ã¯ãï¼ã·ã¹ãã ãã°ãåºåããã·ãªã¢ã«ãã¼ãã®IDãå®ç¾©ã
|
---|
| 1503 | ããã¯ããã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼
|
---|
| 1504 |
|
---|
| 1505 | (2) ã·ã¹ãã ãã°ã¿ã¹ã¯é¢é£ã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
|
---|
| 1506 |
|
---|
| 1507 | ã·ã¹ãã ãã°ã¿ã¹ã¯ã«é¢ãã以ä¸ã®ãã¯ããã¿ã¼ã²ããä¾åé¨ã§æä¾ããï¼ã
|
---|
| 1508 | ããã®ãã¯ããã¿ã¼ã²ããä¾åé¨ã§å®ç¾©ããªãå ´åã«ã¯ï¼ããã©ã«ãã®å¤ã使
|
---|
| 1509 | ãããï¼
|
---|
| 1510 |
|
---|
| 1511 | (2-1) LOGTASK_PRIORITY ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åæåªå
|
---|
| 1512 | 度
|
---|
| 1513 | (2-2) LOGTASK_STACK_SIZE ã·ã¹ãã ãã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº
|
---|
| 1514 | (2-3) LOGTASK_INTERVAL ã·ã¹ãã ãã°ã¿ã¹ã¯ã®åä½ééï¼åä½: ããªç§ï¼
|
---|
| 1515 |
|
---|
| 1516 |
|
---|
| 1517 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨å®è£
|
---|
| 1518 | ä¸ã®ãã³ã
|
---|
| 1519 |
|
---|
| 1520 | (1) ã¿ã¹ã¯ãã£ã¹ãããã£ã®2éãã®å®è£
|
---|
| 1521 | æ¹é
|
---|
| 1522 |
|
---|
| 1523 | ã¿ã¹ã¯ãã£ã¹ãããã£ã®å®è£
|
---|
| 1524 | æ¹éã¨ãã¦ï¼ã³ã³ããã¹ãã®ä¿åã»å¾©å¸°ã¨ã¿ã¹ã¯
|
---|
| 1525 | ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãä¸é£ã®ã«ã¼ãã³ã§è¡ãæ¹éï¼ãããæ¹éAã¨å¼ã¶ï¼
|
---|
| 1526 | ã¨ï¼ã³ã³ããã¹ãã®ä¿åã»å®è¡ããã¿ã¹ã¯ã®é¸æã»ã³ã³ããã¹ãã®å¾©å¸°ã¨ã¿ã¹
|
---|
| 1527 | ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãã°ãã°ãã®ã«ã¼ãã³ã§è¡ãæ¹éï¼ãããæ¹éBã¨
|
---|
| 1528 | å¼ã¶ï¼ãããï¼æ¹éBã¯ï¼ä¿åããã³ã³ããã¹ãæ
|
---|
| 1529 | å ±ãç¶æ³ã«å¿ãã¦å¿
|
---|
| 1530 | è¦æå°
|
---|
| 1531 | éã«ãããã¨ã容æã«ãªãã¨ããå©ç¹ãããï¼ãã ãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢
|
---|
| 1532 | ã®å ´åï¼å®ç¾æ¹æ³ã«ãã£ã¦ã¯æ¹éBãæ¡ããªãå¯è½æ§ãèããããï¼
|
---|
| 1533 |
|
---|
| 1534 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åç®æã¨ãã観ç¹ããã¿ãå ´åï¼2ã¤ã®æ¹éã«ã¯
|
---|
| 1535 | çæãã¹ãéããããï¼ä»¥ä¸ï¼ä¾ã«ãã説æããï¼ã¿ã¹ã¯1ã¨ã¿ã¹ã¯2ã®2ã¤ã®
|
---|
| 1536 | ã¿ã¹ã¯ãããï¼ã¿ã¹ã¯1ã®æ¹ãåªå
|
---|
| 1537 | 度ãé«ããã®ã¨ããï¼æåï¼ã¿ã¹ã¯2ãå®è¡
|
---|
| 1538 | ä¸ã«å²è¾¼ã¿ãã³ãã©ãèµ·åããï¼ãã®ä¸ããã¿ã¹ã¯1ãèµ·åãããçµæï¼ã¿ã¹
|
---|
| 1539 | ã¯2ãã¿ã¹ã¯1ã«ãã£ã¦ããªã¨ã³ããããããã®ã¨ããï¼ããã§ï¼ã¿ã¹ã¯1ãã¿
|
---|
| 1540 | ã¹ã¯2ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¦æ±ããå¾ï¼å¾
|
---|
| 1541 | ã¡ç¶æ
|
---|
| 1542 | ã«å
|
---|
| 1543 | ¥ã
|
---|
| 1544 | ãµã¼ãã¹ã³ã¼ã«ãçºè¡ãï¼ãã®çµæã¿ã¹ã¯2ã«ãã£ã¹ããããããç¶æ³ãèã
|
---|
| 1545 | ãï¼ãã®æï¼ã¿ã¹ã¯ãã£ã¹ãããã£ã¯ï¼ã¿ã¹ã¯2ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼
|
---|
| 1546 | ãã³ã®èµ·åå¦çãè¡ãå¿
|
---|
| 1547 | è¦ããããï¼æ¹å¼Aã®å ´åã«ã¯ï¼ã¿ã¹ã¯1ããæ示çã«
|
---|
| 1548 | å¼ã°ãããã£ã¹ãããã£ã®ä¸ã§ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ãããã®ã«
|
---|
| 1549 | 対ãã¦ï¼æ¹éBã®å ´åã«ã¯ï¼ã¿ã¹ã¯2ã®ã³ã³ããã¹ãã復帰ããã«ã¼ãã³ã¸åå²
|
---|
| 1550 | ããå¾ï¼ã³ã³ããã¹ãã復帰ããå¦çã«ç¶ãå¦çã¨ãã¦ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
|
---|
| 1551 | ã³ã®èµ·åãè¡ãããï¼
|
---|
| 1552 |
|
---|
| 1553 | JSPã«ã¼ãã«ã§ã¯ï¼æ¹éAãæ¡ããæ¹éBãæ¡ãããã¿ã¼ã²ããä¾åé¨ã«ä»»ãã
|
---|
| 1554 | ãã¨ã¨ããï¼ãã®ããã«ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãã¿ã¹ã¯ãã£ã¹ãã
|
---|
| 1555 | ãã£ã«å«ããä»æ§ã¨ãã¦ããï¼
|
---|
| 1556 |
|
---|
| 1557 | (2) å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
| 1558 | ¥å£å¦ç
|
---|
| 1559 |
|
---|
| 1560 | å²è¾¼ã¿ãã³ãã©ã®åºå
|
---|
| 1561 | ¥å£å¦çã®å
|
---|
| 1562 | 容ã¯ï¼ããã»ããµã®å²è¾¼ã¿ã¢ã¼ããã¯ãã£ã«
|
---|
| 1563 | ãã大ããç°ãªããï¼ããããã®å¦çã®æµãã¯æ¬¡ã®éãã§ããï¼CPUä¾å¤ãã³
|
---|
| 1564 | ãã©ã®åºå
|
---|
| 1565 | ¥å£å¦çãï¼å¼æ°ã渡ããã¨ãé¤ãã¦ã¯ï¼ããããã®å¦çã®æµãã¯å
|
---|
| 1566 | æ§ã§ããï¼ãã ãï¼ããã»ããµãå²è¾¼ã¿ã¨CPUä¾å¤ã§ç°ãªãæ±ããããå ´åã¯ï¼
|
---|
| 1567 | å®éã®åºå
|
---|
| 1568 | ¥å£å¦çã¯ããªãç°ãªã£ããã®ã¨ãªãï¼
|
---|
| 1569 |
|
---|
| 1570 | ------------------------------------------------------------
|
---|
| 1571 | ã¬ã¸ã¹ã¿ã®ä¿åï¼ä¸»ã«ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼
|
---|
| 1572 | å²è¾¼ã¿ã¹ã¿ãã¯ã¸åæãï¼æãå¤å´ã®ãã³ãã©ã®ã¿ï¼
|
---|
| 1573 |
|
---|
| 1574 | ç»é²ãããå²è¾¼ã¿ãã³ãã©ã®å¼åºã
|
---|
| 1575 |
|
---|
| 1576 | ã¿ã¹ã¯ã¹ã¿ãã¯ã¸åæãï¼æãå¤å´ã®ãã³ãã©ã®ã¿ï¼
|
---|
| 1577 | if (æãå¤å´ã®ãã³ãã© && reqflg) {
|
---|
| 1578 | if (enadsp && runtsk != schedtsk) {
|
---|
| 1579 | ã¿ã¹ã¯ãã£ã¹ãããå¦ç
|
---|
| 1580 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
| 1581 | }
|
---|
| 1582 | else {
|
---|
| 1583 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
| 1584 | }
|
---|
| 1585 | }
|
---|
| 1586 | ã¬ã¸ã¹ã¿ã®å¾©å¸°ï¼ä¸»ã«ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼
|
---|
| 1587 | å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³
|
---|
| 1588 |
|
---|
| 1589 | â»ããã³ãã©ãã¯ï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®ç·ç§°ï¼
|
---|
| 1590 | â»ãæãå¤å´ã®ãã³ãã©ãã¯ãæ»ãå
|
---|
| 1591 | ãã¿ã¹ã¯ãã¨è¨ãæãããã¨ã
|
---|
| 1592 | ã§ããï¼
|
---|
| 1593 | ------------------------------------------------------------
|
---|
| 1594 |
|
---|
| 1595 | ãã®ä¸ã§ï¼å
|
---|
| 1596 | å´ã®ifæããããã®å ´åã§ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦ç
|
---|
| 1597 | ãè¡ãå¿
|
---|
| 1598 | è¦ããããã¨ããï¼ãã ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¡ã対
|
---|
| 1599 | 象ã¿ã¹ã¯ã¯ç°ãªãï¼ï¼å
|
---|
| 1600 | å´ã®ifæã¯æ¬¡ã®ããã«æé©åã§ããå ´åãããï¼
|
---|
| 1601 |
|
---|
| 1602 | ------------------------------------------------------------
|
---|
| 1603 | if (enadsp && runtsk != schedtsk) {
|
---|
| 1604 | ã¿ã¹ã¯ãã£ã¹ãããå¦ç
|
---|
| 1605 | }
|
---|
| 1606 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çï¼calltexï¼
|
---|
| 1607 | ------------------------------------------------------------
|
---|
| 1608 |
|
---|
| 1609 |
|
---|
| 1610 | ï¼ï¼M68Kï¼68LC040ï¼ç¨ã®ã¿ã¼ã²ããä¾åé¨
|
---|
| 1611 |
|
---|
| 1612 | (1) åæ
|
---|
| 1613 |
|
---|
| 1614 | ãã¹ã¦ã®ã¿ã¹ã¯ãã¹ã¼ãã¼ãã¤ã¶ã¢ã¼ãã§å®è¡ãããã¨ã¨ãï¼ã¦ã¼ã¶ã¢ã¼ãã¯
|
---|
| 1615 | ç¨ããªãï¼
|
---|
| 1616 |
|
---|
| 1617 | (2) å®è¡ã³ã³ããã¹ãã¨CPUããã¯ç¶æ
|
---|
| 1618 |
|
---|
| 1619 |
|
---|
| 1620 | ã¿ã¹ã¯ã³ã³ããã¹ãã¯ãã¹ã¿ã¢ã¼ãï¼éã¿ã¹ã¯ã³ã³ããã¹ãã¯å²è¾¼ã¿ã¢ã¼ãã§
|
---|
| 1621 | å®è¡ããï¼sense_context ã¯ï¼SR ä¸ã®ãã¹ã¿ï¼å²è¾¼ã¿ã¢ã¼ãããããåç
|
---|
| 1622 | §ã
|
---|
| 1623 | ãæ¹æ³ã§å®ç¾ããï¼
|
---|
| 1624 |
|
---|
| 1625 | IPM ã 7 ã®æï¼NMI ãé¤ããã¹ã¦ã®å²è¾¼ã¿ãç¦æ¢ãããï¼ãã¤ãã®æã«éãï¼
|
---|
| 1626 | CPUããã¯ç¶æ
|
---|
| 1627 | ã§ãããã®ã¨ããï¼sense_lock ã¯ï¼SR ä¸ã® IPM ãåç
|
---|
| 1628 | §ããæ¹
|
---|
| 1629 | æ³ã§å®ç¾ããï¼NMI ã¯ã«ã¼ãã«ã®ç®¡çå¤ã®å²è¾¼ã¿ãªã®ã§ï¼CPUããã¯ç¶æ
|
---|
| 1630 | ã§
|
---|
| 1631 | NMI ãåãä»ããããã®ã¯å·®ãæ¯ããªãï¼
|
---|
| 1632 |
|
---|
| 1633 | chg_ipm ããµãã¼ããããã©ãããï¼SUPPORT_CHG_IPM ãå®ç¾©ãããã©ããã§
|
---|
| 1634 | å¤æ´ã§ããï¼ã¿ã¹ã¯ã³ã³ããã¹ã㧠IPM ãå¤æ´ããå ´åã«ã¯ï¼chg_ipm ã使
|
---|
| 1635 | ããªããã°ãªããªãï¼chg_ipm ããµãã¼ãããªãå ´åã«ã¯ï¼ã¿ã¹ã¯ã³ã³ããã¹
|
---|
| 1636 | ã㧠IPM ãå¤æ´ãããã¨ã¯ã§ããªãï¼ã¤ã¾ãï¼ã¿ã¹ã¯ã³ã³ããã¹ãã§ã¯ï¼IPM
|
---|
| 1637 | ã¯å¸¸ã« 0 ã«ãªã£ã¦ããï¼
|
---|
| 1638 |
|
---|
| 1639 | chg_ipm ããµãã¼ãããå ´åã§ãï¼chg_ipm ã使ã£ã¦ IPM ã 7 ã«å¤æ´ããã
|
---|
| 1640 | ã¨ã¯è¨±ããªãï¼ããã¯ï¼chg_ipm 㨠loc_cpuï¼unl_cpu ã®é¢ä¿ãè¤éã«ãªãã
|
---|
| 1641 | ãã§ããï¼ã¾ãï¼IPM ã 1ã6 ã®æã«ãï¼ã¿ã¹ã¯ãã£ã¹ãããã¯ä¿çãããªãï¼
|
---|
| 1642 | IPM ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã«ãã£ã¦ï¼æ°ããå®è¡ç¶æ
|
---|
| 1643 | ã«ãªã£ãã¿ã¹ã¯ã¸å¼ã
|
---|
| 1644 | ç¶ãããï¼ãã®ããï¼ã¿ã¹ã¯ãå®è¡ä¸ã«ï¼å¥ã®ã¿ã¹ã¯ã«ãã£ã¦ IPM ãå¤æ´ã
|
---|
| 1645 | ããå ´åãããï¼ããã¯ï¼ãã£ã¹ãããã£ãæ¹éBã§å®è£
|
---|
| 1646 | ããå ´åã«ã¯ç´ ç´ã«
|
---|
| 1647 | å®è£
|
---|
| 1648 | ã§ãããï¼æ¹éAã§å®è£
|
---|
| 1649 | ããå ´åã«ã¯ãã¡ãã¡ã« IPM ã®è¨å®å¦çãå
|
---|
| 1650 | ¥ãï¼
|
---|
| 1651 | æ¹éAã§å®è£
|
---|
| 1652 | ããå ´åã«ã¯ï¼IPM ã 1ã6 ã®æã«ãã¿ã¹ã¯ãã£ã¹ãããã¯ä¿ç
|
---|
| 1653 | ãããã¨ããæ¹ã楽ã§ããï¼
|
---|
| 1654 |
|
---|
| 1655 | (3) å²è¾¼ã¿ãã³ãã©åºå
|
---|
| 1656 | ¥å£å¦ç
|
---|
| 1657 |
|
---|
| 1658 | M68Kï¼M68020以ä¸ï¼ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®èµ·åã«ãã£ã¦ï¼ä½¿ç¨ããã¹ã¿ãã¯
|
---|
| 1659 | ãèªåçã«å²è¾¼ã¿ã¹ã¿ãã¯ã¸åãæããããï¼å²è¾¼ã¿ã¹ã¿ãã¯ã¸ã®åæãå¦ç
|
---|
| 1660 | ã¯å¿
|
---|
| 1661 | è¦ãªãï¼æãå¤å´ã®ãã³ãã©ã§ãããã©ããã¯ï¼ã¹ã¿ãã¯ä¸ã«ç©ã¾ãã
|
---|
| 1662 | SR ä¸ã®ãã¹ã¿ï¼å²è¾¼ã¿ã¢ã¼ãããããåç
|
---|
| 1663 | §ãã¦å¤å®ãã¦ããï¼ã¿ã¹ã¯ãã£ã¹
|
---|
| 1664 | ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼ret_int ã«ã¼ãã³ã«ä»»ãã¦ã
|
---|
| 1665 | ãï¼
|
---|
| 1666 |
|
---|
| 1667 | reqflg ããã§ãã¯ããåã«å²è¾¼ã¿ãç¦æ¢ããã®ã¯ï¼å²è¾¼ã¿ãç¦æ¢ããªãã¨ï¼
|
---|
| 1668 | reqflg ããã§ãã¯ããå¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
|
---|
| 1669 | ã§ãã£ã¹ããããè¦
|
---|
| 1670 | æ±ãããå ´åã«ï¼ãã£ã¹ããããè¡ãããªãããã§ããï¼
|
---|
| 1671 |
|
---|
| 1672 | interrupt_entry:
|
---|
| 1673 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
| 1674 | jsr <å²è¾¼ã¿ãã³ãã©> /* å²è¾¼ã¿ãã³ãã©ãå¼ã³åºã */
|
---|
| 1675 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1676 | btst.b #4, (%sp) /* æ»ãå
|
---|
| 1677 | ãå²è¾¼ã¿ã¢ã¼ããªã */
|
---|
| 1678 | jbeq 1f /* ããã«ãªã¿ã¼ã³ */
|
---|
| 1679 | ori.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
| 1680 | tst.l reqflg /* reqflg ã TRUE ã§ããã° */
|
---|
| 1681 | jbne ret_int /* ret_int 㸠*/
|
---|
| 1682 | 1: rte
|
---|
| 1683 |
|
---|
| 1684 | (4) CPUä¾å¤ãã³ãã©åºå
|
---|
| 1685 | ¥å£å¦ç
|
---|
| 1686 |
|
---|
| 1687 | M68Kã§ã¯ï¼CPUä¾å¤ãã³ãã©ã®èµ·åã«ãã£ã¦å²è¾¼ã¿ã¢ã¼ãã¸ã®ç§»è¡ã¯ããããï¼
|
---|
| 1688 | 使ç¨ããã¹ã¿ãã¯ã¯åãæãããªãï¼ãã®ããï¼CPUä¾å¤ãã³ãã©å
|
---|
| 1689 | ã§å²è¾¼ã¿
|
---|
| 1690 | ã¢ã¼ãã«åãæãã¦ããï¼ã¾ãï¼æãå¤å´ã®ãã³ãã©ã§ãããã©ãããå¤å®ã
|
---|
| 1691 | ãããã«ï¼å²è¾¼ã¿ã¢ã¼ãã«åãæããåã® SR ãã¹ã¿ãã¯ä¸ã«ä¿åããï¼ã¿ã¹
|
---|
| 1692 | ã¯ãã£ã¹ãããã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åå¦çã¯ï¼ret_exc ã«ã¼ãã³ã«
|
---|
| 1693 | ä»»ãã¦ããï¼
|
---|
| 1694 |
|
---|
| 1695 | CPUä¾å¤ãã³ãã©ã¸ã®å¼æ°ã¯ï¼ä¾å¤ã¹ã¿ãã¯ãã¬ã¼ã ã®å
|
---|
| 1696 | é çªå°ï¼ããªãã¡ï¼
|
---|
| 1697 | CPUä¾å¤ãã³ãã©ã®åºå
|
---|
| 1698 | ¥å£å¦çãå¼ã°ããç´å¾ã®ã¹ã¿ãã¯ãã¤ã³ã¿ï¼ã¨ãã¦ã
|
---|
| 1699 | ãï¼
|
---|
| 1700 |
|
---|
| 1701 | reqflg ããã§ãã¯ããåã«å²è¾¼ã¿ãç¦æ¢ããã®ã¯ï¼å²è¾¼ã¿ãç¦æ¢ããªãã¨ï¼
|
---|
| 1702 | reqflg ããã§ãã¯ããå¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
|
---|
| 1703 | ã§ãã£ã¹ããããè¦
|
---|
| 1704 | æ±ãããå ´åã«ï¼ãã£ã¹ããããè¡ãããªãããã§ããï¼
|
---|
| 1705 |
|
---|
| 1706 | exception_entry:
|
---|
| 1707 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
| 1708 | lea.l 16(%sp), %a0 /* ä¾å¤ãã¬ã¼ã ã®å
|
---|
| 1709 | é ã A0 ã« */
|
---|
| 1710 | move.w %sr, %d0 /* SR ã D0 ã« */
|
---|
| 1711 | and.w #~0x1000, %sr /* å²è¾¼ã¿ã¢ã¼ã */
|
---|
| 1712 | move.l %d0, -(%sp) /* å
|
---|
| 1713 | ã® SR ãã¹ã¿ãã¯ã«ä¿å */
|
---|
| 1714 | move.l %a0, -(%sp) /* A0 ãå¼æ°ã¨ãã¦æ¸¡ã */
|
---|
| 1715 | jsr <CPUä¾å¤ãã³ãã©> /* CPUä¾å¤ãã³ãã©ãå¼ã³åºã */
|
---|
| 1716 | addq.l #4, %sp /* å¼æ°ãæ¨ã¦ã */
|
---|
| 1717 | move.l (%sp)+, %d0
|
---|
| 1718 | and.w #0x1000, %d0 /* å
|
---|
| 1719 | ãå²è¾¼ã¿ã¢ã¼ããªã */
|
---|
| 1720 | jbeq 1f /* ããã«ãªã¿ã¼ã³ */
|
---|
| 1721 | or.w #0x1700, %sr /* ãã¹ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ */
|
---|
| 1722 | tst.l reqflg /* reqflg ã TRUE ã§ããã° */
|
---|
| 1723 | jbne ret_exc /* ret_exc 㸠*/
|
---|
| 1724 | 1: movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1725 | rte
|
---|
| 1726 |
|
---|
| 1727 | (5) æ¹éAã®ãã£ã¹ãããã£
|
---|
| 1728 |
|
---|
| 1729 | 以ä¸ã®ã³ã¼ãã§ã¯ï¼chg_ipm ã¯ãµãã¼ããã¦ããªãï¼ã¾ãï¼æ¡ç¨ããªãã£ãã³
|
---|
| 1730 | ã¼ãã§ããããï¼åä½ãã¹ãããã¦ããªãï¼
|
---|
| 1731 |
|
---|
| 1732 | CTXB ã¯ãVP mspãã®ã¿ãå«ãæ§é ä½ã¨ããï¼ã¿ã¹ã¯ã®ã³ã³ããã¹ãã¯ï¼æ¬¡ã®
|
---|
| 1733 | å³ã®ããã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ä¸ã«ä¿åããï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ï¼D0ãD1ï¼A0
|
---|
| 1734 | ãA1ï¼ã¨ãã®ä»ã®ã¬ã¸ã¹ã¿ãå¥ã
|
---|
| 1735 | ã«ç©ãã®ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å
|
---|
| 1736 | ã«é½åãããããã§ããï¼
|
---|
| 1737 |
|
---|
| 1738 | * å° +-----------------------------------+ â TCB ä¸ã«ä¿åããã¦ãã MSP
|
---|
| 1739 | * â | D2 |
|
---|
| 1740 | * +-----------------------------------+
|
---|
| 1741 | * . . . . . .
|
---|
| 1742 | * +-----------------------------------+
|
---|
| 1743 | * | D7 |
|
---|
| 1744 | * +-----------------------------------+
|
---|
| 1745 | * | A2 |
|
---|
| 1746 | * +-----------------------------------+
|
---|
| 1747 | * . . . . . .
|
---|
| 1748 | * +-----------------------------------+
|
---|
| 1749 | * | A6 |
|
---|
| 1750 | * +-----------------------------------+
|
---|
| 1751 | * | D0 |
|
---|
| 1752 | * +-----------------------------------+
|
---|
| 1753 | * | D1 |
|
---|
| 1754 | * +-----------------------------------+
|
---|
| 1755 | * | A0 |
|
---|
| 1756 | * +-----------------------------------+
|
---|
| 1757 | * | A1 |
|
---|
| 1758 | * +-----------------+-----------------+
|
---|
| 1759 | * | SR | PC (ä¸16bit) |
|
---|
| 1760 | * +-----------------+-----------------+
|
---|
| 1761 | * â | PC (ä¸16bit) | ä¾å¤æ
|
---|
| 1762 | å ± |
|
---|
| 1763 | * 大 +-----------------+-----------------+ â ãã£ã¹ãããã£èµ·ååã® MSP
|
---|
| 1764 |
|
---|
| 1765 | dispatch ã¯ï¼trap_dispatch ã TRAPå½ä»¤ã§å¼ã¶é¢æ°ã¨ããï¼
|
---|
| 1766 |
|
---|
| 1767 | exit_and_dispatch:
|
---|
| 1768 | or.w #0x1000, %sr /* ãã¹ã¿ã¢ã¼ã */
|
---|
| 1769 | jbra dispatch_1
|
---|
| 1770 |
|
---|
| 1771 | trap_dispatch:
|
---|
| 1772 | movem.l %d0-%d1/%a0-%a1, -(%sp) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãä¿å */
|
---|
| 1773 | movem.l %d2-%d7/%a2-%a6, -(%sp) /* æ®ãã®ã¬ã¸ã¹ã¿ãä¿å */
|
---|
| 1774 | move.l runtsk, %a0 /* ã³ã³ããã¹ããä¿å */
|
---|
| 1775 | move.l %sp, TCB_msp(%a0)
|
---|
| 1776 | dispatch_1:
|
---|
| 1777 | move.l schedtsk, %a0
|
---|
| 1778 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
| 1779 | jbeq dispatch_3 /* schedtsk ããããï¼ */
|
---|
| 1780 | move.l TCB_msp(%a0), %sp /* ã³ã³ããã¹ãã復帰 */
|
---|
| 1781 | movem.l (%sp)+, %d2-%d7/%a2-%a6 /* ã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1782 | btst.b #TCB_enatex_bit, TCB_enatex(%a0)
|
---|
| 1783 | jbeq dispatch_2 /* enatex ã FALSE ãªããªã¿ã¼ã³ */
|
---|
| 1784 | tst.l TCB_texptn(%a0) /* texptn ã 0 ãªããªã¿ã¼ã³ */
|
---|
| 1785 | jbeq dispatch_2
|
---|
| 1786 | jsr call_texrtn /* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºã */
|
---|
| 1787 | dispatch_2:
|
---|
| 1788 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1789 | rte
|
---|
| 1790 |
|
---|
| 1791 | dispatch_3:
|
---|
| 1792 | stop #0x2000 /* å²è¾¼ã¿å¾
|
---|
| 1793 | ã¡ï¼å²è¾¼ã¿ã¢ã¼ãï¼ */
|
---|
| 1794 | /*
|
---|
| 1795 | * ããã§å²è¾¼ã¿ã¢ã¼ãã«åãæããã®ã¯ï¼ããã§çºçããå²è¾¼ã¿å¦ç
|
---|
| 1796 | * ã«ã©ã®ã¹ã¿ãã¯ã使ããã¨ããåé¡ã®è§£æ±ºã¨ï¼å²è¾¼ã¿ãã³ãã©å
|
---|
| 1797 | ã§
|
---|
| 1798 | * ã®ã¿ã¹ã¯ãã£ã¹ãããã®é²æ¢ã¨ãã2ã¤ã®æå³ãããï¼
|
---|
| 1799 | */
|
---|
| 1800 | or.w #0x1700, %sr /* ãã¹ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ */
|
---|
| 1801 | tst.l reqflg /* reqflg ã FALSE ãªã */
|
---|
| 1802 | jbeq dispatch_3 /* dispatch_3 㸠*/
|
---|
| 1803 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
| 1804 | jbra dispatch_1
|
---|
| 1805 |
|
---|
| 1806 | ret_int:
|
---|
| 1807 | /*
|
---|
| 1808 | * ããã§ã¯ï¼å²è¾¼ã¿ã¢ã¼ãã»å²è¾¼ã¿ç¦æ¢ç¶æ
|
---|
| 1809 | ï¼
|
---|
| 1810 | */
|
---|
| 1811 | move.l %a1, -(%sp) /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ã«ä¿å */
|
---|
| 1812 | movec.l %msp, %a1 /* ã¿ã¹ã¯ã¹ã¿ãã¯ã A1 ã« */
|
---|
| 1813 | move.l (%sp)+, -(%a1) /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã«ç©ã */
|
---|
| 1814 | movem.l %d0-%d1/%a0, -(%a1) /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãç©ã */
|
---|
| 1815 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
| 1816 | move.l runtsk, %a0 /* A0 â runtsk */
|
---|
| 1817 | tst.l enadsp /* enadsp ã FALSE ãªã */
|
---|
| 1818 | jbeq ret_int_3 /* ret_int_3 㸠*/
|
---|
| 1819 | cmp.l schedtsk, %a0 /* runtsk 㨠schedtsk ãåããªã */
|
---|
| 1820 | jbeq ret_int_3 /* ret_int_3 㸠*/
|
---|
| 1821 |
|
---|
| 1822 | /* ãã£ã¹ãããå¦ç */
|
---|
| 1823 | movem.l %d2-%d7/%a2-%a6, -(%a1) /* ã¬ã¸ã¹ã¿ãä¿å */
|
---|
| 1824 | move.l %a1, TCB_msp(%a0) /* ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿å */
|
---|
| 1825 | ret_int_1:
|
---|
| 1826 | move.l schedtsk, %a0
|
---|
| 1827 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
| 1828 | jbne ret_int_2 /* schedtsk ããããï¼ */
|
---|
| 1829 | ret_int_1x:
|
---|
| 1830 | stop #0x2000 /* å²è¾¼ã¿å¾
|
---|
| 1831 | ã¡ï¼å²è¾¼ã¿ãã³ãã©å
|
---|
| 1832 | ï¼ */
|
---|
| 1833 | or.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
| 1834 | tst.l reqflg /* reqflg ã FALSE ãªã */
|
---|
| 1835 | jbeq ret_int_1x /* ret_int_1x 㸠*/
|
---|
| 1836 | clr.l reqflg /* reqflg ãã¯ãªã¢ */
|
---|
| 1837 | jbra ret_int_1
|
---|
| 1838 | ret_int_2:
|
---|
| 1839 | move.l TCB_msp(%a0), %a1 /* ã¿ã¹ã¯ã¹ã¿ãã¯ã A1 ã« */
|
---|
| 1840 | movem.l (%a1)+, %d2-%d7/%a2-%a6 /* ã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1841 |
|
---|
| 1842 | ret_int_3:
|
---|
| 1843 | btst.b #TCB_enatex_bit, TCB_enatex(%a0)
|
---|
| 1844 | jbeq ret_int_4 /* enatex ã FALSE ãªããªã¿ã¼ã³ */
|
---|
| 1845 | tst.l TCB_texptn(%a0) /* texptn ã 0 ã§ãªããã° */
|
---|
| 1846 | jbne ret_int_5 /* ret_int_5 㸠*/
|
---|
| 1847 | ret_int_4
|
---|
| 1848 | movem.l (%a1)+, %d0-%d1/%a0 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1849 | move.l (%a1)+, -(%sp) /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ã«ä¿å */
|
---|
| 1850 | movec.l %a1, %msp /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
| 1851 | move.l (%sp)+, %a1 /* A1 ãå²è¾¼ã¿ã¹ã¿ãã¯ãã復帰 */
|
---|
| 1852 | rte
|
---|
| 1853 |
|
---|
| 1854 | ret_int_5:
|
---|
| 1855 | move.w 16(%a1), %d0 /* æ»ãå
|
---|
| 1856 | ã® SR ã D0 ã« */
|
---|
| 1857 | move.l TCB_exinf(%a0), -(%a1) /* exinf ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
| 1858 | move.l TCB_texptn(%a0), -(%a1) /* texptn ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
| 1859 | move.l #ret_tex, -(%a1) /* #ret_tex ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
| 1860 | clr.l TCB_enatex(%a0) /* runtsk->enatex ãã¯ãªã¢ */
|
---|
| 1861 | clr.l TCB_texptn(%a0) /* runtsk->texptn ãã¯ãªã¢ */
|
---|
| 1862 | move.w #ä¾å¤æ
|
---|
| 1863 | å ±, -(%a1) /* ä¾å¤ã¹ã¿ãã¯ãã¬ã¼ã ãä½ã */
|
---|
| 1864 | move.l TCB_texrtn(%a0), -(%a1)
|
---|
| 1865 | move.w %d0, -(%a1)
|
---|
| 1866 | movec.l %a1, %msp /* A1 ãã¿ã¹ã¯ã¹ã¿ãã¯ã« */
|
---|
| 1867 | rte
|
---|
| 1868 |
|
---|
| 1869 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å¼åºãæã®ã¹ã¿ãã¯
|
---|
| 1870 |
|
---|
| 1871 | * å° +-----------------------------------+
|
---|
| 1872 | * â | ret_tex |
|
---|
| 1873 | * +-----------------------------------+
|
---|
| 1874 | * | texptn |
|
---|
| 1875 | * +-----------------------------------+
|
---|
| 1876 | * | exinf |
|
---|
| 1877 | * +-----------------------------------+
|
---|
| 1878 | * | D0 |
|
---|
| 1879 | * +-----------------------------------+
|
---|
| 1880 | * | D1 |
|
---|
| 1881 | * +-----------------------------------+
|
---|
| 1882 | * | A0 |
|
---|
| 1883 | * +-----------------------------------+
|
---|
| 1884 | * | A1 |
|
---|
| 1885 | * +-----------------+-----------------+
|
---|
| 1886 | * | SR | PC (ä¸16bit) |
|
---|
| 1887 | * +-----------------+-----------------+
|
---|
| 1888 | * â | PC (ä¸16bit) | ä¾å¤æ
|
---|
| 1889 | å ± |
|
---|
| 1890 | * 大 +-----------------+-----------------+
|
---|
| 1891 |
|
---|
| 1892 | ret_tex:
|
---|
| 1893 | addq.l #8, %sp /* å¼æ°ã¨ãªã¢ãæ¨ã¦ã */
|
---|
| 1894 | or.w #0x0700, %sr /* å²è¾¼ã¿ç¦æ¢ */
|
---|
| 1895 | jsr call_texrtn /* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å */
|
---|
| 1896 | movem.l (%sp)+, %d0-%d1/%a0-%a1 /* ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã復帰 */
|
---|
| 1897 | rte
|
---|
| 1898 |
|
---|
| 1899 | (6) æ¹éBï¼æ¡ç¨ï¼
|
---|
| 1900 |
|
---|
| 1901 | ã½ã¼ã¹ã³ã¼ããåç
|
---|
| 1902 | §ï¼
|
---|
| 1903 |
|
---|
| 1904 |
|
---|
| 1905 | ï¼ï¼ã¿ã¼ã²ããä¾åé¨å®è£
|
---|
| 1906 | ä¸ã®æ³¨æç¹
|
---|
| 1907 |
|
---|
| 1908 | 以ä¸ã¯ï¼ã¿ã¼ã²ããä¾åé¨ãå®è£
|
---|
| 1909 | ããä¸ã§ãã¹ããã¡ãªç¹ããªã¹ãã¢ãããã
|
---|
| 1910 | ãã®ã§ããï¼
|
---|
| 1911 |
|
---|
| 1912 | (1) ã¿ã¹ã¯çµäºæ
|
---|
| 1913 |
|
---|
| 1914 | ext_tsk ãå¼ã°ãã«ã¿ã¹ã¯ã®ã¡ã¤ã³é¢æ°ãããªã¿ã¼ã³ããå ´åï¼ext_tsk ãå¼
|
---|
| 1915 | ã³åºããã®ã¨åçã®å¦çãè¡ãããã«ããªããã°ãªããªãï¼ã¿ã¹ã¯èµ·åæã«ï¼
|
---|
| 1916 | ã¡ã¤ã³é¢æ°ããã®ãªã¿ã¼ã³ã¢ãã¬ã¹ã ext_tsk ã®çªå°ã«è¨å®ãã¦ããæ¹æ³ã
|
---|
| 1917 | æ¨å¥¨ããï¼
|
---|
| 1918 |
|
---|
| 1919 | (2) ã¿ã¹ã¯ã³ã³ããã¹ãã§ã®å²è¾¼ã¿ãã¹ã¯ã®å¤æ´
|
---|
| 1920 |
|
---|
| 1921 | chg_iXX ããµãã¼ãããå ´åï¼ã¿ã¹ã¯åæ¿ãã®éã«ï¼chg_iXX ã«ãã£ã¦è¨å®ã
|
---|
| 1922 | ãå²è¾¼ã¿ãã¹ã¯ã®å¤ï¼ã¿ã¹ã¯ã³ã³ããã¹ãã«ãããå²è¾¼ã¿ãã¹ã¯ã®å¤ï¼ãæ°ã
|
---|
| 1923 | ãã¿ã¹ã¯ã«å¼ãç¶ããã¨ãæ¨å¥¨ããï¼ç¹ã«ï¼å²è¾¼ã¿ã®åºå£ã§ã¿ã¹ã¯åæ¿ããè¡
|
---|
| 1924 | ãç®æã¯æ³¨æãå¿
|
---|
| 1925 | è¦ã§ããï¼å
|
---|
| 1926 | ·ä½çã«ã¯ï¼ä»¥åã«åãã¿ã¹ã¯ãåãã¦ããæã®
|
---|
| 1927 | å²è¾¼ã¿ãã¹ã¯ãã¹ã¿ãã¯ã«ç©ã¾ãã¦ããå ´åã«ï¼ããããã®ã¾ã¾æ¸ãæ»ãã¦ã¯
|
---|
| 1928 | ãªããªãï¼
|
---|
| 1929 |
|
---|
| 1930 | (3) ã¿ã¹ã¯ä¾å¤å¦çã®å®è¡ã³ã³ããã¹ã
|
---|
| 1931 |
|
---|
| 1932 | ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã¯ã¿ã¹ã¯ã³ã³ããã¹ãã§å®è¡ãããããï¼ã¿ã¹ã¯ä¾å¤
|
---|
| 1933 | å¦çã«ã¼ãã³å®è¡æã«ã¯ã¹ã¿ãã¯ãã¤ã³ã¿ãã¿ã¹ã¯ã¹ã¿ãã¯ãæãã¦ããå¿
|
---|
| 1934 | è¦
|
---|
| 1935 | ãããï¼ç¹ã«å²è¾¼ã¿ã®åºå£å¦çã§æ³¨æãããã¨ï¼ ï¼
|
---|
| 1936 |
|
---|
| 1937 | (4) CPUä¾å¤ãã³ãã©
|
---|
| 1938 |
|
---|
| 1939 | CPUä¾å¤ãã³ãã©å®è¡æã¯ï¼å²è¾¼ã¿ãã¹ã¯ã®å¤ãCPUä¾å¤çºçç´åã¨åãã«ãªã
|
---|
| 1940 | ããã«ãããã¨ï¼
|
---|
| 1941 |
|
---|
| 1942 | (5) å®è¡ãã¹ãã¿ã¹ã¯ããªãå ´åã®å¦ç
|
---|
| 1943 |
|
---|
| 1944 | å®è¡ãã¹ãã¿ã¹ã¯ããªãï¼schedtsk ã NULLï¼å ´åã«ï¼ããã»ããµãå¾
|
---|
| 1945 | ã¡ã¢ã¼
|
---|
| 1946 | ãï¼ã¹ãªã¼ãã¢ã¼ãï¼ã«ç§»è¡ãããå¦çã¨ï¼å²è¾¼ã¿ã許å¯ããå¦çã¨ã¯ï¼ä¸å¯
|
---|
| 1947 | åã«è¡ãªãå¿
|
---|
| 1948 | è¦ãããï¼ãããä¸å¯åã«è¡ãªããªãå ´åï¼å²è¾¼ã¿ã許å¯ããç´
|
---|
| 1949 | å¾ã«å²è¾¼ã¿ãå
|
---|
| 1950 | ¥ãï¼ãã®ä¸ã§ã¿ã¹ã¯ãå®è¡å¯è½ç¶æ
|
---|
| 1951 | ã«ãªãã¨ï¼å®è¡ãã¹ãã¿ã¹
|
---|
| 1952 | ã¯ãããã«ããããããããã»ããµãå¾
|
---|
| 1953 | ã¡ã¢ã¼ãã«ãªã£ã¦ãã¾ãï¼
|
---|
| 1954 |
|
---|
| 1955 | ã¾ãï¼å®è¡ãã¹ãã¿ã¹ã¯ããªãï¼å²è¾¼ã¿ã許å¯ãã¦å²è¾¼ã¿ãå¾
|
---|
| 1956 | ã¤éã¯ï¼runtsk
|
---|
| 1957 | ã NULL ã«è¨å®ããªããã°ãªããªãï¼ãã®ããã«è¨å®ããªãã¨ï¼å²è¾¼ã¿ãã³ã
|
---|
| 1958 | ã©ãã iget_tid ãå¼ã³åºããéã®åä½ãä»æ§ã«åè´ããªããªãï¼Î¼ITRON4.0
|
---|
| 1959 | ä»æ§ã§ã¯ï¼å®è¡ç¶æ
|
---|
| 1960 | ã®ã¿ã¹ã¯ããªãå ´åã«ï¼iget_tid 㯠TSK_NONE ãè¿ãã
|
---|
| 1961 | ã¨ã«ãªã£ã¦ããï¼iget_tid ã®ã³ã¼ãã¯ï¼runtsk ã NULL ã®æã« TSK_NONE ã
|
---|
| 1962 | è¿ãããã«ãªã£ã¦ããï¼ï¼
|
---|
| 1963 |
|
---|
| 1964 | m68k ã®å®è£
|
---|
| 1965 | ã¯ï¼config/m68k/cpu_support.S ããï¼ï¼
|
---|
| 1966 |
|
---|
| 1967 | dispatcher:
|
---|
| 1968 | move.l schedtsk, %a0
|
---|
| 1969 | move.l %a0, runtsk /* schedtsk ã runtsk ã« */
|
---|
| 1970 | jbeq dispatcher_1 /* runtsk ããããï¼ */
|
---|
| 1971 |
|
---|
| 1972 | ã¨ãªã£ã¦ããï¼schedtsk ã NULL ã®æã«ï¼runtsk ã NULL ã«ãã¦ããï¼å²è¾¼
|
---|
| 1973 | ã¿å¾
|
---|
| 1974 | ã¡ã«å
|
---|
| 1975 | ¥ãï¼ããããªããï¼ãã®å¦çãæãã¦ããã¨ï¼schedtsk ã NULL
|
---|
| 1976 | ã®æã«ã¯ï¼runtsk ãããã«æ´æ°ããªãï¼ãã®ããï¼å®è¡ç¶æ
|
---|
| 1977 | ã®ã¿ã¹ã¯ããªã
|
---|
| 1978 | å ´åã« iget_tid ãå¼ã¶ã¨ï¼åã«å®è¡ããã¦ããã¿ã¹ã¯ã®ID ãè¿ãï¼
|
---|
| 1979 |
|
---|
| 1980 | 以ä¸
|
---|