From ee2e31dfb8589df6713c810677d32720c9d05c5a Mon Sep 17 00:00:00 2001 From: nakasima Date: Wed, 17 Dec 2008 01:13:35 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=B9=E3=82=AD=E3=83=A3=E3=83=83=E3=82=BF?= =?UTF-8?q?=E3=83=AD=E3=83=BC=E3=83=89=E3=82=92=E6=9C=89=E5=8A=B9=E6=99=82?= =?UTF-8?q?=E3=81=ABmain=E3=81=8B=E3=82=89=E6=88=BB=E3=81=A3=E3=81=A6?= =?UTF-8?q?=E4=BE=8B=E5=A4=96=E3=81=8C=E8=B5=B7=E3=81=93=E3=82=89=E3=81=AA?= =?UTF-8?q?=E3=81=84=E3=82=88=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3=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@110 b871894f-2f95-9b40-918c-086798483c85 --- .../build/libraries/init/ARM11/crt0_scat.c | 5 +- .../build/libraries/init/ARM9/crt0_scat.c | 5 +- .../build/libraries/os/ARM11/os_timer.c | 51 +++++-------------- .../build/libraries/os/common/os_init.c | 12 ++++- trunk/bootrom/include/brom/os/ARM11/timer.h | 5 +- 5 files changed, 35 insertions(+), 43 deletions(-) diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0_scat.c b/trunk/bootrom/build/libraries/init/ARM11/crt0_scat.c index 4715430..3fbd566 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0_scat.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0_scat.c @@ -45,6 +45,9 @@ ASM void $Sub$$stupInitSections(void) int main( void ) { BromMain(); - return 0; + while (1) + { + } + // never return } diff --git a/trunk/bootrom/build/libraries/init/ARM9/crt0_scat.c b/trunk/bootrom/build/libraries/init/ARM9/crt0_scat.c index 601c1ba..fac0db9 100644 --- a/trunk/bootrom/build/libraries/init/ARM9/crt0_scat.c +++ b/trunk/bootrom/build/libraries/init/ARM9/crt0_scat.c @@ -45,6 +45,9 @@ ASM void $Sub$$stupInitSections(void) int main( void ) { BromSpMain(); - return 0; + while (1) + { + } + // never return } diff --git a/trunk/bootrom/build/libraries/os/ARM11/os_timer.c b/trunk/bootrom/build/libraries/os/ARM11/os_timer.c index 51f8b7f..13882b3 100644 --- a/trunk/bootrom/build/libraries/os/ARM11/os_timer.c +++ b/trunk/bootrom/build/libraries/os/ARM11/os_timer.c @@ -16,12 +16,7 @@ *---------------------------------------------------------------------------*/ #include -void timer_handler(void); -#if 0 // miya -static void i_osTimerInterruptHandler(void); -static void i_osWatchdogInterruptHandler( void ); -#endif static void i_osStartTimer( u32 count, u8 preScale, OSTimerRepeat repeat, OSTimerIntrReq ireq ); static void i_osStartWatchdog( u32 count, u8 preScale, OSTimerRepeat repeat, OSTimerIntrReq ireq, OSWatchdogMode watchdogMode ); @@ -45,49 +40,22 @@ void osInitTimer( void ) if ( isInit == FALSE ) { + OSIntrMode intr = osDisableInterrupts(); + isInit = TRUE; osTimerClock = OS_TIMER_CLOCK_DEFAULT; osStopTimer(); osStopWatchdog(); + osResetWatchdog(); + osDisableWatchdog(); + + osRestoreInterrupts( intr ); } } -/*---------------------------------------------------------------------------* - Name: i_osTimerInterruptHandler - - Description: Timer interrupt handler - - Arguments: None. - - Returns: None. - *---------------------------------------------------------------------------*/ -#if 0 // miya -static void i_osTimerInterruptHandler( void ) -{ - reg_OS_CPUTM_EVT = HW_CPUTM_EVT_FLAG; -} - -/*---------------------------------------------------------------------------* - Name: i_osWatchdogInterruptHandler - - Description: Watchdog interrupt handler - - Arguments: None. - - Returns: None. - *---------------------------------------------------------------------------*/ - - -static void i_osWatchdogInterruptHandler( void ) -{ - reg_OS_CPUWD_EVT = HW_CPUWD_EVT_FLAG; -} -#endif - - /*---------------------------------------------------------------------------* Name: osStartTimerWithUSec @@ -292,7 +260,12 @@ void osResetWatchdog( void ) void osDisableWatchdog( void ) { - reg_OS_WD_DIS = TRUE; + OSIntrMode intr = osDisableInterrupts(); + + reg_OS_WD_DIS = OSi_WATCHDOG_DISABLE_CODE_0; + reg_OS_WD_DIS = OSi_WATCHDOG_DISABLE_CODE_1; + + osRestoreInterrupts( intr ); } #include diff --git a/trunk/bootrom/build/libraries/os/common/os_init.c b/trunk/bootrom/build/libraries/os/common/os_init.c index db61d86..9934bd0 100644 --- a/trunk/bootrom/build/libraries/os/common/os_init.c +++ b/trunk/bootrom/build/libraries/os/common/os_init.c @@ -20,6 +20,10 @@ //#define FIRM_ENABLE_JTAG_AT_INIT +static void handler(void) +{ +} + /*---------------------------------------------------------------------------* Name: osInitBROM @@ -51,8 +55,14 @@ void osInitBROM(void) //---- Init Tick osInitTick(); +#if 1 //---- Init Alarm -// osInitAlarm(); + osInitAlarm(); + { + static OSAlarm alarm; + osSetPeriodicAlarm(&alarm, 0x1000, 0x1000, (OSAlarmHandler)handler, NULL); + } +#endif } } diff --git a/trunk/bootrom/include/brom/os/ARM11/timer.h b/trunk/bootrom/include/brom/os/ARM11/timer.h index c02ac7a..056feb7 100644 --- a/trunk/bootrom/include/brom/os/ARM11/timer.h +++ b/trunk/bootrom/include/brom/os/ARM11/timer.h @@ -24,7 +24,10 @@ extern "C" { #endif -#define OS_TIMER_CLOCK_DEFAULT HW_CPU_CLOCK +#define OS_TIMER_CLOCK_DEFAULT HW_CPU_CLOCK + +#define OSi_WATCHDOG_DISABLE_CODE_0 0x12345678 +#define OSi_WATCHDOG_DISABLE_CODE_1 0x87654321 //----------------------------------------------------------------------