From 5d0ced34eab7adad45f45bfdddd5315608ccf5b7 Mon Sep 17 00:00:00 2001 From: nakasima Date: Tue, 27 Jan 2009 06:34:57 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=81=E3=83=83=E3=82=AF=E3=82=BF=E3=82=A4?= =?UTF-8?q?=E3=83=9E=E3=83=BC=E3=82=9232bit=E4=BD=BF=E7=94=A8=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-30%20-%20paladin.7z/paladin/ctr_firmware@216 b871894f-2f95-9b40-918c-086798483c85 --- trunk/bootrom/build/libraries/os/common/os_alarm.c | 9 +++++---- trunk/bootrom/build/libraries/os/common/os_tick.c | 8 ++++---- trunk/bootrom/include/brom/os/common/tick.h | 6 +++--- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/trunk/bootrom/build/libraries/os/common/os_alarm.c b/trunk/bootrom/build/libraries/os/common/os_alarm.c index 99cc1a0..a72a857 100644 --- a/trunk/bootrom/build/libraries/os/common/os_alarm.c +++ b/trunk/bootrom/build/libraries/os/common/os_alarm.c @@ -75,19 +75,20 @@ static void i_osSetTimer(OSAlarm *alarm) // osEnterTimerCallback(OSi_ALARM_TIMER, i_osAlarmHandler, NULL); //---- set count and let timer be enable - if (delta <= 0) + if (delta <= 1) { #ifdef SDK_ARM11 + // ARM11は0設定禁止 timerCount = 1; #else // SDK_ARM9 - // ARM9は0xFFFF設定禁止 + // ARM9は~0設定禁止 timerCount = (u16)~1; #endif // SDK_ARM9 } else if (delta < OS_TICK_LO_LIMIT) { #ifdef SDK_ARM11 - timerCount = delta; + timerCount = delta - 1; #else // SDK_ARM9 timerCount = (u16)(~delta); #endif // SDK_ARM9 @@ -95,7 +96,7 @@ static void i_osSetTimer(OSAlarm *alarm) else { #ifdef SDK_ARM11 - timerCount = OS_TICK_LO_LIMIT; + timerCount = OS_TICK_LO_MASK; #else // SDK_ARM9 timerCount = 0; #endif // SDK_ARM9 diff --git a/trunk/bootrom/build/libraries/os/common/os_tick.c b/trunk/bootrom/build/libraries/os/common/os_tick.c index 896efcc..07df67d 100644 --- a/trunk/bootrom/build/libraries/os/common/os_tick.c +++ b/trunk/bootrom/build/libraries/os/common/os_tick.c @@ -73,7 +73,7 @@ void osInitTick(void) #ifdef SDK_ARM11 osStopTimer(OSi_TICK_TIMER); osEnableTimerReload(OSi_TICK_TIMER); - osStartTimer(OSi_TICK_TIMER, OS_TICK_LO_LIMIT, OS_TICK_PRESCALE); + osStartTimer(OSi_TICK_TIMER, OS_TICK_LO_MASK, OS_TICK_PRESCALE); #else // SDK_ARM9 //---- setting timer osSetTimerControl(OSi_TICK_TIMER, 0); @@ -93,7 +93,7 @@ void osInitTick(void) osEnableInterruptID(OSi_TICK_IE_TIMER_ID); //---- need to reset - i_osNeedResetTimer = TRUE; + i_osNeedResetTimer = FALSE; } } @@ -130,7 +130,7 @@ static void i_osCountUpTick(void) { #ifdef SDK_ARM11 osStopTimer(OSi_TICK_TIMER); - osStartTimer(OSi_TICK_TIMER, OS_TICK_LO_LIMIT, OS_TICK_PRESCALE); + osStartTimer(OSi_TICK_TIMER, OS_TICK_LO_MASK, OS_TICK_PRESCALE); #else // SDK_ARM9 osSetTimerControl(OSi_TICK_TIMER, 0); #ifdef OS_TICK_USE_2TIMERS @@ -192,7 +192,7 @@ u64 osGetTick(void) #ifdef SDK_ARM11 // ARM11はダウンカウンタ、ARM9はアップカウンタの違いはここで補正される - countL = OS_TICK_LO_LIMIT - countL; + countL = OS_TICK_LO_MASK - countL; #endif // SDK_ARM11 countH = i_osTickCounter; diff --git a/trunk/bootrom/include/brom/os/common/tick.h b/trunk/bootrom/include/brom/os/common/tick.h index 5a279ce..c4ace78 100644 --- a/trunk/bootrom/include/brom/os/common/tick.h +++ b/trunk/bootrom/include/brom/os/common/tick.h @@ -65,7 +65,7 @@ extern void i_osSetTick( u64 ); #ifdef SDK_ARM11 #define OS_TICK_CLOCK HW_CPU_CLOCK #define OS_TICK_PRESCALE 2 -#define OS_TICK_HI_SHIFT 28 // 2の累乗単位でチック管理するのであれば32は指定できない(初期値0では割り込みが発生しないため、最大31) +#define OS_TICK_HI_SHIFT 28 // 最大32 #define OS_TICK_LO_MASK ((u32)(OS_TICK_HI_LSB-1)) #define OS_TICK_LO_MSB ((u32)(OS_TICK_HI_LSB>>1)) #define OS_TICK_HI_LSB (1ULL<>1)) #else // OS_TICK_USE_2TIMERS -#define OS_TICK_HI_SHIFT 32 // 初期値0でも割り込み発生 +#define OS_TICK_HI_SHIFT 32 // 最大32 #define OS_TICK_LO_MASK ((u32)(OS_TICK_HI_LSB-1)) #define OS_TICK_LO_MSB ((u32)(OS_TICK_HI_LSB>>1)) #endif // OS_TICK_USE_2TIMERS