- Timestamp:
- Jul 23, 2017, 2:29:40 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=UTF-8
r313 r315 13 13 * Copyright (C) 2013 by Mitsuhiro Matsuura 14 14 * 15 * ä¸è¨èä½æ¨©è 16 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 17 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 18 * å¤ã»åé 19 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 20 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 21 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 22 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 23 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 24 * ç¨ã§ããå½¢ã§åé 25 å¸ããå ´åã«ã¯ï¼åé 26 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 27 * è 28 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 29 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 30 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 31 * ç¨ã§ããªãå½¢ã§åé 32 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 33 * ã¨ï¼ 34 * (a) åé 35 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 36 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 37 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 38 * (b) åé 39 å¸ã®å½¢æ 40 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 41 * å ±åãããã¨ï¼ 42 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 43 * 害ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ããå 45 責ãããã¨ï¼ 46 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 47 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 48 ããã³TOPPERSããã¸ã§ã¯ãã 49 * å 50 責ãããã¨ï¼ 15 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 16 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 17 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 18 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 19 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 20 * スコード中に含まれていること. 21 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 22 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 23 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 24 * の無保証規定を掲載すること. 25 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 26 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 27 * と. 28 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 29 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 30 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 31 * 報告すること. 32 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 33 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 34 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 35 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 36 * 免責すること. 51 37 * 52 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 53 ã 54 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 55 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 56 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 57 * ã®è²¬ä»»ãè² ããªãï¼ 38 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 39 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 40 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 41 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 42 * の責任を負わない. 58 43 * 59 44 * @(#) $Id$ … … 61 46 62 47 /* 63 * ã¿ã¤ããã©ã¤ãï¼GR-SAKURAç¨ï¼48 * タイマドライバ(GR-SAKURA用) 64 49 */ 65 50 … … 72 57 73 58 /* 74 * ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ç»é²ã®ããã®å®æ°59 * タイマ割込みハンドラ登録のための定数 75 60 */ 76 #define INHNO_TIMER INT_CMT0_CMI /* å²è¾¼ã¿ãã³ãã©çªå· */ 77 #define INTNO_TIMER INT_CMT0_CMI /* å²è¾¼ã¿çªå· */ 78 #define INTPRI_TIMER -5 /* å²è¾¼ã¿åªå 79 度 */ 80 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* å²è¾¼ã¿å±æ§ */ 61 #define INHNO_TIMER INT_CMT0_CMI /* 割込みハンドラ番号 */ 62 #define INTNO_TIMER INT_CMT0_CMI /* 割込み番号 */ 63 #define INTPRI_TIMER -5 /* 割込み優先度 */ 64 #define INTATR_TIMER (TA_ENAINT | TA_EDGE) /* 割込み属性 */ 81 65 82 66 #ifndef TOPPERS_MACRO_ONLY 83 67 84 68 /* 85 * ã¿ã¤ãå¤ã®å 86 é¨è¡¨ç¾ã®å 69 * タイマ値の内部表現の型 87 70 */ 88 71 typedef uint16_t CLOCK; 89 72 90 73 /* 91 * ã¿ã¤ãå¤ã®å 92 é¨è¡¨ç¾ã¨ããªç§åä½ã¨ã®å¤æ 74 * タイマ値の内部表現とミリ秒単位との変換 93 75 * 94 * 1ms ã®ã¿ã¤ãã¼å²ãè¾¼ã¿ã使ç¨ããã®ã§ãã®ã¯ããã¯ãå®ç¾©ããï¼76 * 1msのタイマー割り込みを使用するのでそのクロックを定義する. 95 77 */ 96 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/ æä½åå¨æ¯8 = 6MHz */78 #define TIMER_CLOCK (FREQ_PCLK / 8U) /* PCLK/最低分周比8 = 6MHz */ 97 79 #define TO_CLOCK(nume, deno) ((CLOCK)(TIMER_CLOCK * (nume) / (deno))) 98 80 #define TO_USEC(clock) ((SYSUTM)((clock) * 1000U / TIMER_CLOCK)) 99 81 100 82 /* 101 * è¨å®ã§ããæ大ã®ã¿ã¤ãå¨æï¼åä½ã¯å 102 é¨è¡¨ç¾ï¼ 83 * 設定できる最大のタイマ周期(単位は内部表現) 103 84 */ 104 85 #define MAX_CLOCK ((CLOCK) 0xFFFFU) 105 86 106 87 /* 107 * æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåãåºãéã®å¦çæéã®è¦ç©ãå¤ï¼åä½ã¯å 108 é¨è¡¨ç¾ï¼ 88 * 性能評価用システム時刻を取り出す際の処理時間の見積り値(単位は内部表現) 109 89 */ 110 #define GET_TOLERANCE (100U) /* å¦çé 111 ãã®è¦ç©ãå¤ï¼åä½ã¯å 112 é¨è¡¨ç¾ï¼*/ 90 #define GET_TOLERANCE (100U) /* 処理遅れの見積り値(単位は内部表現)*/ 113 91 #define BEFORE_IREQ(clock) \ 114 92 ((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE)) 115 93 116 94 /* 117 * ã³ã³ãã¢ãããã¿ã¤ãã³ã³ããã¼ã«ã¬ã¸ã¹ã¿ã®è¨å®å¤95 * コンペアマッチタイマコントロールレジスタの設定値 118 96 */ 119 97 /* 120 * ã¯ããã¯é¸æããã98 * クロック選択ビット 121 99 * 122 * bit7 ã¯äºç´é åã§ãã, æ¸è¾¼ã¿ã¯1åºå®100 * bit7は予約領域であり, 書込みは1固定 123 101 */ 124 102 #define CMT_PCLK_DIV_8 (0x0080U) … … 128 106 129 107 /* 130 * ã³ã³ãã¢ãããã¿ã¤ãã³ã³ã¹ã¿ã³ãã¬ã¸ã¹ã¿ï¼CMCORï¼108 * コンペアマッチタイマコンスタントレジスタ(CMCOR) 131 109 * 132 * ã³ã³ãã¢ãããå¨æã1msã¨ããï¼133 * å¨è¾ºã¢ã¸ã¥ã¼ã«ã¯ããã¯ï¼PCLKï¼48MHzã8åå¨ããã®ã§ï¼134 * 1 å¨æããã166.7nsecã¨ãªãï¼6000å¨æã§1msï¼ã¿ã¤ã ãã£ãã¯ã®å¨æï¼ã¨ããï¼110 * コンペアマッチ周期を1msとする. 111 * 周辺モジュールクロック(PCLK)48MHzを8分周するので, 112 * 1周期あたり166.7nsecとなり,6000周期で1ms(タイムティックの周期)とする. 135 113 */ 136 114 #define CMCOR_PERIOD (TIMER_CLOCK) 137 115 138 116 /* 139 * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿è¦æ±å 140 è¨å®ã¬ã¸ã¹ã¿iï¼ISELRiï¼ï¼i= å²ãè¾¼ã¿ãã¯ã¿çªå·ï¼ 117 * コンペアマッチタイマ割り込み要求先設定レジスタi(ISELRi)(i= 割り込みベクタ番号) 141 118 */ 142 119 #define ICU_ISEL_CPU (0x00U) … … 146 123 147 124 /* 148 * ã¿ã¤ãã®èµ·åå¦ç125 * タイマの起動処理 149 126 * 150 * ã¿ã¤ããåæåãï¼å¨æçãªã¿ã¤ãå²è¾¼ã¿è¦æ±ãçºçãããï¼127 * タイマを初期化し,周期的なタイマ割込み要求を発生させる. 151 128 */ 152 129 extern void target_timer_initialize(intptr_t exinf); 153 130 154 131 /* 155 * ã¿ã¤ãã®åæ¢å¦ç132 * タイマの停止処理 156 133 * 157 * ã¿ã¤ãã®åä½ãåæ¢ãããï¼134 * タイマの動作を停止させる. 158 135 */ 159 136 extern void target_timer_terminate(intptr_t exinf); 160 137 161 138 /* 162 * ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®èªã¿åºã139 * タイマレジスタ値の読み出し 163 140 */ 164 141 Inline uint16_t rx630_cmt_getcount(void) … … 168 145 169 146 /* 170 * ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®æ¸ãè¾¼ã¿147 * タイマレジスタ値の書き込み 171 148 */ 172 149 Inline void rx630_cmt_setcount(uint16_t count) … … 176 153 177 154 /* 178 * ã¿ã¤ãã®ç¾å¨å¤ã®èªåºã155 * タイマの現在値の読出し 179 156 */ 180 157 Inline CLOCK 181 158 target_timer_get_current(void) 182 159 { 183 /* ã¢ããã«ã¦ã³ãã®ããã¿ã¤ãã¬ã¸ã¹ã¿å¤ããã®ã¾ã¾è¿ã*/160 /* アップカウントのためタイマレジスタ値をそのまま返す */ 184 161 return (rx630_cmt_getcount()); 185 162 } 186 163 187 164 /* 188 * ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ãã§ãã¯165 * タイマ割込み要求のチェック 189 166 */ 190 167 Inline bool_t … … 195 172 196 173 /* 197 * ã¿ã¤ãå²è¾¼ã¿ãã³ãã©174 * タイマ割込みハンドラ 198 175 */ 199 176 extern void target_timer_handler(void); -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.