- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/target/gr_citrus_gcc/target_serial.c
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-csrc
totext/x-csrc;charset=UTF-8
r388 r389 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 責ãããã¨ï¼ 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 * 免責すること. 45 31 * 46 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 47 ã 48 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 49 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 50 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 51 * ã®è²¬ä»»ãè² ããªãï¼ 32 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 33 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 34 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 35 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 36 * の責任を負わない. 52 37 * 53 38 * @(#) $Id$ … … 55 40 56 41 /* 57 * ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾åé¨ï¼GR-CITRUSç¨ï¼42 * シリアルインタフェースドライバのターゲット依存部(GR-CITRUS用) 58 43 */ 59 44 … … 69 54 70 55 /* 71 * SIO ãã¼ãåæåãããã¯ã®å®ç¾©56 * SIOポート初期化ブロックの定義 72 57 */ 73 58 typedef struct sio_port_initialization_block { 74 char *path; /* ãã¡ã¤ã«ã®ãã¹å*/59 char *path; /* ファイルのパス名 */ 75 60 } SIOPINIB; 76 61 77 62 /* 78 * SIO ãã¼ã管çãããã¯ã®å®ç¾©63 * SIOポート管理ブロックの定義 79 64 */ 80 65 struct sio_port_control_block { 81 const SIOPINIB *p_siopinib; /* SIOãã¼ãåæåããã㯠*/ 82 intptr_t exinf; /* æ¡å¼µæ 83 å ± */ 84 bool_t opened; /* ãªã¼ãã³æ¸ã¿ãã©ã° */ 85 struct termios saved_term; /* å 86 ã®ç«¯æ«å¶å¾¡æ 87 å ± */ 88 89 int_t read_fd; /* èªåºãç¨ãã¡ã¤ã«ãã£ã¹ã¯ãªãã¿ */ 90 bool_t rcv_flag; /* åä¿¡æåãããã¡æå¹ãã©ã° */ 91 char rcv_buf; /* åä¿¡æåãããã¡ */ 92 bool_t rcv_rdy; /* åä¿¡éç¥ã³ã¼ã«ããã¯è¨±å¯ãã©ã° */ 93 94 int_t write_fd; /* æ¸è¾¼ã¿ç¨ãã¡ã¤ã«ãã£ã¹ã¯ãªãã¿ */ 95 bool_t snd_flag; /* éä¿¡æåãããã¡æå¹ãã©ã° */ 96 char snd_buf; /* éä¿¡æåãããã¡ */ 97 bool_t snd_rdy; /* éä¿¡éç¥ã³ã¼ã«ããã¯è¨±å¯ãã©ã° */ 66 const SIOPINIB *p_siopinib; /* SIOポート初期化ブロック */ 67 intptr_t exinf; /* 拡張情報 */ 68 bool_t opened; /* オープン済みフラグ */ 69 struct termios saved_term; /* 元の端末制御情報 */ 70 71 int_t read_fd; /* 読出し用ファイルディスクリプタ */ 72 bool_t rcv_flag; /* 受信文字バッファ有効フラグ */ 73 char rcv_buf; /* 受信文字バッファ */ 74 bool_t rcv_rdy; /* 受信通知コールバック許可フラグ */ 75 76 int_t write_fd; /* 書込み用ファイルディスクリプタ */ 77 bool_t snd_flag; /* 送信文字バッファ有効フラグ */ 78 char snd_buf; /* 送信文字バッファ */ 79 bool_t snd_rdy; /* 送信通知コールバック許可フラグ */ 98 80 }; 99 81 100 82 /* 101 * SIO ãã¼ãåæåãããã¯83 * SIOポート初期化ブロック 102 84 */ 103 85 const SIOPINIB siopinib_table[TNUM_SIOP] = { … … 106 88 107 89 /* 108 * SIO ãã¼ã管çãããã¯ã®ã¨ãªã¢90 * SIOポート管理ブロックのエリア 109 91 */ 110 92 SIOPCB siopcb_table[TNUM_SIOP]; 111 93 112 94 /* 113 * SIO ãã¼ãIDãã管çãããã¯ãåãåºãããã®ãã¯ã95 * SIOポートIDから管理ブロックを取り出すためのマクロ 114 96 */ 115 97 #define INDEX_SIOP(siopid) ((uint_t)((siopid) - 1)) … … 117 99 118 100 /* 119 * SIO ãã©ã¤ãã®åæå101 * SIOドライバの初期化 120 102 */ 121 103 void … … 126 108 127 109 /* 128 * SIO ãã¼ã管çãããã¯ã®åæå110 * SIOポート管理ブロックの初期化 129 111 */ 130 112 for (i = 0; i < TNUM_SIOP; i++) { … … 136 118 137 119 /* 138 * SIO ãã©ã¤ãã®çµäºå¦ç120 * SIOドライバの終了処理 139 121 */ 140 122 void … … 144 126 145 127 /* 146 * ãªã¼ãã³ããã¦ããSIOãã¼ãã®ã¯ãã¼ãº128 * オープンされているSIOポートのクローズ 147 129 */ 148 130 for (i = 0; i < TNUM_SIOP; i++) { … … 152 134 153 135 /* 154 * SIO ãã¼ãã®ãªã¼ãã³136 * SIOポートのオープン 155 137 */ 156 138 SIOPCB * … … 173 155 } 174 156 else { 175 fd = STDIN_FILENO; /* æ¨æºå 176 ¥åºåã使ã */ 157 fd = STDIN_FILENO; /* 標準入出力を使う */ 177 158 p_siopcb->read_fd = STDIN_FILENO; 178 159 p_siopcb->write_fd = STDOUT_FILENO; … … 197 178 198 179 /* 199 * SIO ãã¼ãã®ã¯ãã¼ãº180 * SIOポートのクローズ 200 181 */ 201 182 void … … 218 199 219 200 /* 220 * SIO ã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³201 * SIOの割込みサービスルーチン 221 202 */ 222 203 bool_t … … 240 221 241 222 /* 242 * SIO ã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³223 * SIOの割込みサービスルーチン 243 224 */ 244 225 bool_t … … 260 241 261 242 /* 262 * SIO ãã¼ãã¸ã®æåéä¿¡243 * SIOポートへの文字送信 263 244 */ 264 245 bool_t … … 284 265 285 266 /* 286 * SIO ãã¼ãããã®æååä¿¡267 * SIOポートからの文字受信 287 268 */ 288 269 int_t … … 306 287 307 288 /* 308 * SIO ãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯289 * SIOポートからのコールバックの許可 309 290 */ 310 291 void … … 322 303 323 304 /* 324 * SIO ãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ¢305 * SIOポートからのコールバックの禁止 325 306 */ 326 307 void
Note:
See TracChangeset
for help on using the changeset viewer.