Changeset 386 for ssp_rpi3/trunk/arch/arm64_gcc/common/core_timer.c
- Timestamp:
- Apr 17, 2019, 12:13:00 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ssp_rpi3/trunk/arch/arm64_gcc/common/core_timer.c
-
Property svn:mime-type
set to
text/plain; charset=utf-8
r384 r386 8 8 * Nagoya Municipal Industrial Research Institute, JAPAN 9 9 * 10 * ä¸è¨èä½æ¨©è 11 ã¯ï¼ä»¥ä¸ã®(1)ã(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 12 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 13 * å¤ã»åé 14 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 15 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 16 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 17 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 18 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 19 * ç¨ã§ããå½¢ã§åé 20 å¸ããå ´åã«ã¯ï¼åé 21 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 22 * è 23 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 24 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 25 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 26 * ç¨ã§ããªãå½¢ã§åé 27 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 28 * ã¨ï¼ 29 * (a) åé 30 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 31 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 32 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 33 * (b) åé 34 å¸ã®å½¢æ 35 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 36 * å ±åãããã¨ï¼ 37 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 38 * 害ãããï¼ä¸è¨èä½æ¨©è 39 ããã³TOPPERSããã¸ã§ã¯ããå 40 責ãããã¨ï¼ 41 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 42 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 43 ããã³TOPPERSããã¸ã§ã¯ãã 44 * å 45 責ãããã¨ï¼ 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 46 32 * 47 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 48 ã 49 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 50 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 51 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 52 * ã®è²¬ä»»ãè² ããªãï¼ 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 53 38 * 54 39 * $Id$ … … 56 41 57 42 /* 58 * ã¿ã¤ããã©ã¤ãï¼Generic Timerï¼43 * タイマドライバ(Generic Timer) 59 44 */ 60 45 #include "kernel_impl.h" … … 63 48 64 49 /* 65 * ã¿ã¤ãã®å¨æ³¢æ°(åä½: kHz)50 * タイマの周波数(単位: kHz) 66 51 */ 67 52 static uint32_t timer_clock; 68 53 69 54 /* 70 * ã¿ã¤ãã®è¨å®å¤(æ¯è¼å¯¾è±¡ã¨ããå¤)55 * タイマの設定値(比較対象とする値) 71 56 */ 72 57 static uint64_t timer_cval; 73 58 74 59 /* 75 * ã¿ã¤ãã®éå§60 * タイマの開始 76 61 */ 77 62 Inline void … … 86 71 87 72 /* 88 * ã¿ã¤ãã®åæ¢73 * タイマの停止 89 74 */ 90 75 Inline void … … 98 83 99 84 /* 100 * ã¿ã¤ãã®èµ·åå¦ç85 * タイマの起動処理 101 86 */ 102 87 void … … 107 92 108 93 /* 109 * ã¿ã¤ãã®åæ¢94 * タイマの停止 110 95 */ 111 96 target_timer_stop(); 112 97 113 98 /* 114 * ããªã¹ã±ã¼ã©(=2^31 --> divider=1)99 * プリスケーラ(=2^31 --> divider=1) 115 100 */ 116 101 sil_wrw_mem((uint32_t *)(0x40000008), 0x80000000); … … 120 105 121 106 /* 122 * 1 ãã£ãã¯ã®ã¯ããã¯æ°107 * 1ティックのクロック数 123 108 */ 124 109 cyc = (timer_clock * (TIC_NUME) / (TIC_DENO)); 125 110 126 111 /* 127 * ã¿ã¤ãã®éå§112 * タイマの開始 128 113 */ 129 114 clock_write_tval((uint32_t)cyc); … … 131 116 132 117 /* 133 * ã¿ã¤ãã®è¨å®å¤118 * タイマの設定値 134 119 */ 135 120 timer_cval = clock_read_cval(); … … 137 122 138 123 /* 139 * ã¿ã¤ãã®åæ¢å¦ç124 * タイマの停止処理 140 125 */ 141 126 void … … 143 128 { 144 129 /* 145 * ã¿ã¤ãã®åæ¢130 * タイマの停止 146 131 */ 147 132 clock_write_ctrl((uint32_t)0); … … 149 134 150 135 /* 151 * ã¿ã¤ãå²è¾¼ã¿ãã³ãã©136 * タイマ割込みハンドラ 152 137 */ 153 138 void … … 158 143 159 144 /* 160 * ã¿ã¤ãã®åæ¢145 * タイマの停止 161 146 */ 162 147 target_timer_stop(); 163 148 164 149 /* 165 * 1 ãã£ãã¯ã®ã¯ããã¯æ°150 * 1ティックのクロック数 166 151 */ 167 152 cyc = (timer_clock * (TIC_NUME) / (TIC_DENO)); 168 153 169 154 /* 170 * ã¿ã¤ãã®è¨å®å¤155 * タイマの設定値 171 156 */ 172 157 timer_cval = timer_cval + (uint64_t)cyc; 173 158 174 159 175 // ã«ã¦ã³ã¿ããèªã¿åºã160 // カウンタから読み出し 176 161 pct = clock_read_counter(); 177 162 … … 184 169 185 170 /* 186 * ã¿ã¤ãã®è¨å®171 * タイマの設定 187 172 */ 188 173 clock_write_cval((uint64_t)timer_cval); 189 174 190 175 /* 191 * ã¿ã¤ãã®éå§176 * タイマの開始 192 177 */ 193 178 target_timer_start(); 194 179 195 180 i_begin_int(INTNO_TIMER); 196 signal_time(); /* ã¿ã¤ã ãã£ãã¯ã®ä¾çµ¦*/181 signal_time(); /* タイムティックの供給 */ 197 182 i_end_int(INTNO_TIMER); 198 183 } -
Property svn:mime-type
set to
Note:
See TracChangeset
for help on using the changeset viewer.