Changeset 356 for ssp_aarch64/trunk/qemu_virt_gcc/target_serial.c
- Timestamp:
- Jun 8, 2018, 11:24:32 AM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ssp_aarch64/trunk/qemu_virt_gcc/target_serial.c
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r353 r356 10 10 * Nagoya Municipal Industrial Research Institute, JAPAN 11 11 * 12 * ä¸è¨èä½æ¨©è 13 ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 14 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 15 * å¤ã»åé 16 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 17 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 18 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 19 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 20 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 21 * ç¨ã§ããå½¢ã§åé 22 å¸ããå ´åã«ã¯ï¼åé 23 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 24 * è 25 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 26 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 27 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 28 * ç¨ã§ããªãå½¢ã§åé 29 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 30 * ã¨ï¼ 31 * (a) åé 32 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 33 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 34 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 35 * (b) åé 36 å¸ã®å½¢æ 37 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 38 * å ±åãããã¨ï¼ 39 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 40 * 害ãããï¼ä¸è¨èä½æ¨©è 41 ããã³TOPPERSããã¸ã§ã¯ããå 42 責ãããã¨ï¼ 43 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 44 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 45 ããã³TOPPERSããã¸ã§ã¯ãã 46 * å 47 責ãããã¨ï¼ 48 * 49 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 50 ã 51 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 52 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 53 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 54 * ã®è²¬ä»»ãè² ããªãï¼ 55 * 56 */ 57 58 /* 59 * ã·ãªã¢ã«ãã©ã¤ã 12 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 13 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 14 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 15 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 16 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 17 * スコード中に含まれていること. 18 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 19 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 20 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 21 * の無保証規定を掲載すること. 22 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 23 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 24 * と. 25 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 26 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 27 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 28 * 報告すること. 29 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 30 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 31 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 32 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 33 * 免責すること. 34 * 35 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 36 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 37 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 38 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 39 * の責任を負わない. 40 * 41 */ 42 43 /* 44 * シリアルドライバ 60 45 */ 61 46 … … 65 50 66 51 /* 67 * ã¬ã¸ã¹ã¿è¨å®å¤52 * レジスタ設定値 68 53 */ 69 54 #define PORT2SIOPID(x) ((x) + 1) … … 83 68 84 69 /* 85 * éä¿¡ãããã¡ã«ç©ºãããããï¼70 * 送信バッファに空きがあるか? 86 71 */ 87 72 Inline bool_t … … 92 77 93 78 /* 94 * åä¿¡ãããã¡ã«æåããããï¼79 * 受信バッファに文字があるか? 95 80 */ 96 81 Inline bool_t … … 101 86 102 87 /* 103 * åä¿¡ããæåã®ååºã88 * 受信した文字の取出し 104 89 */ 105 90 Inline char … … 110 95 111 96 /* 112 * éä¿¡ããæåã®æ¸è¾¼ã¿97 * 送信する文字の書込み 113 98 */ 114 99 Inline void … … 120 105 121 106 /* 122 * ã¿ã¼ã²ããã®ã·ãªã¢ã«åæå107 * ターゲットのシリアル初期化 123 108 */ 124 109 void target_low_output_init(ID siopid) … … 130 115 131 116 /* 132 * UART ããã£ã¹ã¨ã¼ãã«117 * UARTをディスエーブル 133 118 */ 134 119 sil_wrw_mem(UART_CR(inib->baseAddress), 0U); 135 120 136 121 /* 137 * ã¨ã©ã¼ãã©ã°ãã¯ãªã¢122 * エラーフラグをクリア 138 123 */ 139 124 sil_wrw_mem(UART_ECR(inib->baseAddress), 0U); 140 125 141 126 /* 142 * å²è¾¼ã¿ã¹ãã¼ã¿ã¹ãã¯ãªã¢127 * 割込みステータスをクリア 143 128 */ 144 129 sil_wrw_mem(UART_ICR(inib->baseAddress), 0U); … … 147 132 148 133 /* 149 * FIFO ã空ã«ãã134 * FIFOを空にする 150 135 */ 151 136 while (sio_getready(siopcb)) { … … 154 139 155 140 /* 156 * ãã¼ã¬ã¼ãã¨éä¿¡è¦æ ¼ãè¨å®141 * ボーレートと通信規格を設定 157 142 */ 158 143 sil_wrw_mem(UART_IBRD(inib->baseAddress), inib->ibrd); … … 161 146 162 147 /* 163 * UART ãã¤ãã¼ãã«148 * UARTをイネーブル 164 149 */ 165 150 sil_wrw_mem(UART_CR(inib->baseAddress), … … 168 153 169 154 /* 170 * SIO åæå155 * SIO初期化 171 156 */ 172 157 void sio_initialize(intptr_t exinf) … … 181 166 182 167 /* 183 * ã·ãªã¢ã«ãªã¼ãã³168 * シリアルオープン 184 169 */ 185 170 SIOPCB *sio_opn_por(ID siopid, intptr_t exinf) … … 196 181 target_low_output_init(siopid); 197 182 198 // åä¿¡ã³ã¼ã«ããã¯è¨±å¯183 // 受信コールバック許可 199 184 sio_ena_cbr(siopcb, SIO_RDY_RCV); 200 185 … … 203 188 204 189 /* 205 * ã·ãªã¢ã«ã¯ãã¼ãº190 * シリアルクローズ 206 191 */ 207 192 void sio_cls_por(SIOPCB *siopcb) 208 193 { 209 194 /* 210 * UART ããã£ã¹ã¨ã¼ãã«195 * UARTをディスエーブル 211 196 */ 212 197 sil_wrw_mem(UART_CR(siopcb->inib->baseAddress), 0U); … … 214 199 215 200 /* 216 * å²è¾¼ã¿ãã³ãã©201 * 割込みハンドラ 217 202 */ 218 203 void sio_isr(intptr_t exinf) … … 222 207 if (sio_getready(siopcb)) { 223 208 /* 224 * åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼209 * 受信通知コールバックルーチンを呼び出す. 225 210 */ 226 211 sio_irdy_rcv(siopcb->exinf); … … 228 213 if (sio_putready(siopcb)) { 229 214 /* 230 * éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼215 * 送信可能コールバックルーチンを呼び出す. 231 216 */ 232 217 sio_irdy_snd(siopcb->exinf); … … 235 220 236 221 /* 237 * 1 æåéä¿¡222 * 1文字送信 238 223 */ 239 224 bool_t sio_snd_chr(SIOPCB *siopcb, char c) … … 247 232 248 233 /* 249 * 1 æååä¿¡234 * 1文字受信 250 235 */ 251 236 int_t sio_rcv_chr(SIOPCB *siopcb) … … 258 243 259 244 /* 260 * ã³ã¼ã«ããã¯ã®è¨±å¯245 * コールバックの許可 261 246 */ 262 247 void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn) … … 280 265 281 266 /* 282 * ã³ã¼ã«ããã¯ã®ç¦æ¢267 * コールバックの禁止 283 268 */ 284 269 void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn) … … 302 287 303 288 /* 304 * 1 æååºåï¼ãã¼ãªã³ã°ã§ã®åºåï¼289 * 1文字出力(ポーリングでの出力) 305 290 */ 306 291 void sio_pol_snd_chr(char c, ID siopid) -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.