- Timestamp:
- Jul 3, 2020, 7:19:17 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/arch/arm_gcc/rza1/chip_timer.c
r321 r429 4 4 * Advanced Standard Profile Kernel 5 5 * 6 * Copyright (C) 2006-201 7by Embedded and Real-Time Systems Laboratory6 * Copyright (C) 2006-2018 by Embedded and Real-Time Systems Laboratory 7 7 * Graduate School of Information Science, Nagoya Univ., JAPAN 8 8 * … … 100 100 101 101 /* 102 * 高分解能タイマへの割込みタイミングの設定103 */104 void105 target_hrt_set_event(HRTCNT hrtcnt)106 {107 uint32_t cnt = hrtcnt * 33 + hrtcnt / 3 + 1;108 uint32_t current;109 110 /*111 * 現在のカウント値を読み,hrtcnt後に割込みが発生するように設定する.112 */113 current = sil_rew_mem(OSTM_CNT(OSTM0_BASE));114 sil_wrw_mem(OSTM_CMP(OSTM0_BASE), current + cnt);115 116 /*117 * 上で現在のカウント値を読んで以降に,cnt以上カウントアップしてい118 * た場合には,割込みを発生させる.119 */120 if (sil_rew_mem(OSTM_CNT(OSTM0_BASE)) - current >= cnt) {121 raise_int(INTNO_OSTM0);122 }123 }124 125 /*126 * 高分解能タイマ割込みの要求127 */128 void129 target_hrt_raise_event(void)130 {131 raise_int(INTNO_OSTM0);132 }133 134 /*135 102 * タイマ割込みハンドラ 136 103 */ … … 143 110 signal_time(); 144 111 } 112 145 113 /* 146 114 * オーバランタイマドライバ … … 183 151 184 152 /* 185 * オーバランタイマの停止186 */187 PRCTIM188 target_ovrtimer_stop(void)189 {190 uint32_t cnt;191 192 /*193 * OSタイマを停止する.194 */195 sil_wrb_mem(OSTM_TT(OSTM1_BASE), OSTM_TT_STOP);196 197 if (probe_int(INTNO_OSTM1)) {198 /*199 * 割込み要求が発生している場合200 */201 clear_int(INTNO_OSTM1);202 return(0U);203 }204 else {205 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));206 return((PRCTIM)((cnt + 34) / 5 * 3 / 20));207 }208 }209 210 /*211 * オーバランタイマの現在値の読出し212 */213 PRCTIM214 target_ovrtimer_get_current(void)215 {216 uint32_t cnt;217 218 if (probe_int(INTNO_OSTM1)) {219 /*220 * 割込み要求が発生している場合221 */222 return(0U);223 }224 else {225 cnt = sil_rew_mem(OSTM_CNT(OSTM1_BASE));226 return((PRCTIM)((cnt + 34) / 5 * 3 / 20));227 }228 }229 230 /*231 153 * オーバランタイマ割込みハンドラ 232 154 *
Note:
See TracChangeset
for help on using the changeset viewer.