- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/common/tUartPL011.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r270 r321 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * 9 * ä¸è¨èä½æ¨©è 10 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 11 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 12 * å¤ã»åé 13 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 14 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 15 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 16 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 17 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 18 * ç¨ã§ããå½¢ã§åé 19 å¸ããå ´åã«ã¯ï¼åé 20 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 21 * è 22 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 23 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 24 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 25 * ç¨ã§ããªãå½¢ã§åé 26 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 27 * ã¨ï¼ 28 * (a) åé 29 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 30 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 31 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 32 * (b) åé 33 å¸ã®å½¢æ 34 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 35 * å ±åãããã¨ï¼ 36 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 37 * 害ãããï¼ä¸è¨èä½æ¨©è 38 ããã³TOPPERSããã¸ã§ã¯ããå 39 責ãããã¨ï¼ 40 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 41 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 42 ããã³TOPPERSããã¸ã§ã¯ãã 43 * å 44 責ãããã¨ï¼ 45 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 9 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 10 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 11 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 12 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 13 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 14 * スコード中に含まれていること. 15 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 16 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 17 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 18 * の無保証規定を掲載すること. 19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 20 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 21 * と. 22 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 23 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 24 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 25 * 報告すること. 26 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 27 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 28 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 29 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 30 * 免責すること. 31 * 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * $Id$ … … 55 40 56 41 /* 57 * ARM PrimCell UART ï¼PL011ï¼ç¨ ç°¡æSIOãã©ã¤ã42 * ARM PrimCell UART(PL011)用 簡易SIOドライバ 58 43 */ 59 44 … … 63 48 64 49 /* 65 * ããªããã£ããªéä¿¡ï¼åä¿¡é¢æ°66 */ 67 68 /* 69 * åä¿¡ãããã¡ã«æåããããï¼50 * プリミティブな送信/受信関数 51 */ 52 53 /* 54 * 受信バッファに文字があるか? 70 55 */ 71 56 Inline bool_t … … 76 61 77 62 /* 78 * éä¿¡ãããã¡ã«ç©ºãããããï¼63 * 送信バッファに空きがあるか? 79 64 */ 80 65 Inline bool_t … … 85 70 86 71 /* 87 * åä¿¡ããæåã®ååºã72 * 受信した文字の取出し 88 73 */ 89 74 Inline char … … 94 79 95 80 /* 96 * éä¿¡ããæåã®æ¸è¾¼ã¿81 * 送信する文字の書込み 97 82 */ 98 83 Inline void … … 103 88 104 89 /* 105 * ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³90 * シリアルI/Oポートのオープン 106 91 */ 107 92 void … … 111 96 112 97 /* 113 * UART ããã£ã¹ã¨ã¼ãã«98 * UARTをディスエーブル 114 99 */ 115 100 sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U); 116 101 117 102 /* 118 * ã¨ã©ã¼ãã©ã°ãã¯ãªã¢103 * エラーフラグをクリア 119 104 */ 120 105 sil_wrw_mem(UART_ECR(ATTR_baseAddress), 0U); 121 106 122 107 /* 123 * FIFO ã空ã«ãã108 * FIFOを空にする 124 109 */ 125 110 while (uart_pl011_getready(p_cellcb)) { … … 128 113 129 114 /* 130 * ãã¼ã¬ã¼ãã¨éä¿¡è¦æ ¼ãè¨å®115 * ボーレートと通信規格を設定 131 116 */ 132 117 sil_wrw_mem(UART_IBRD(ATTR_baseAddress), ATTR_ibrd); … … 135 120 136 121 /* 137 * UART ãã¤ãã¼ãã«122 * UARTをイネーブル 138 123 */ 139 124 sil_wrw_mem(UART_CR(ATTR_baseAddress), … … 142 127 143 128 /* 144 * ã·ãªã¢ã«I/Oãã¼ãã®ã¯ãã¼ãº129 * シリアルI/Oポートのクローズ 145 130 */ 146 131 void … … 150 135 151 136 /* 152 * UART ããã£ã¹ã¨ã¼ãã«137 * UARTをディスエーブル 153 138 */ 154 139 sil_wrw_mem(UART_CR(ATTR_baseAddress), 0U); … … 156 141 157 142 /* 158 * ã·ãªã¢ã«I/Oãã¼ãã¸ã®æåéä¿¡143 * シリアルI/Oポートへの文字送信 159 144 */ 160 145 bool_t … … 171 156 172 157 /* 173 * ã·ãªã¢ã«I/Oãã¼ãããã®æååä¿¡158 * シリアルI/Oポートからの文字受信 174 159 */ 175 160 int_t … … 185 170 186 171 /* 187 * ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯172 * シリアルI/Oポートからのコールバックの許可 188 173 */ 189 174 void … … 206 191 207 192 /* 208 * ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ¢193 * シリアルI/Oポートからのコールバックの禁止 209 194 */ 210 195 void … … 227 212 228 213 /* 229 * ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ããå²è¾¼ã¿å¦ç214 * シリアルI/Oポートに対する割込み処理 230 215 */ 231 216 void … … 236 221 if (uart_pl011_getready(p_cellcb)) { 237 222 /* 238 * åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼223 * 受信通知コールバックルーチンを呼び出す. 239 224 */ 240 225 ciSIOCBR_readyReceive(); … … 242 227 if (uart_pl011_putready(p_cellcb)) { 243 228 /* 244 * éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼229 * 送信可能コールバックルーチンを呼び出す. 245 230 */ 246 231 ciSIOCBR_readySend();
Note:
See TracChangeset
for help on using the changeset viewer.