diff --git a/trunk/bootrom/build/libraries/init/ARM11/crt0.c b/trunk/bootrom/build/libraries/init/ARM11/crt0.c index 2aa2163..397c6bb 100644 --- a/trunk/bootrom/build/libraries/init/ARM11/crt0.c +++ b/trunk/bootrom/build/libraries/init/ARM11/crt0.c @@ -72,6 +72,16 @@ stupStartHandlerVeneer cmpne r12, #~0 LSYM(1) beq BSYM(1) + //---- enable performance monitor + mrc p15, 0, r0, c15, c12, 0 + ldr r1, =HW_C15_PMN_ENABLE | HW_C15_CYCLE_COUNT_RESET | HW_C15_COUNT01_RESET | \ + (HW_C15_EVT_INC_EACH_CYCLE << HW_C15_COUNT0_EVT_SFT) | \ + (HW_C15_EVT_INC_EACH_CYCLE << HW_C15_COUNT1_EVT_SFT) | \ + HW_C15_CYCLE_COUNT_D64 + orr r0, r0, r1 +// bic r0, r0, #HW_C15_CYCLE_COUNT_D64 + mcr p15, 0, r0, c15, c12, 0 + //---- check CPU-ID mrc p15,0, r0, c0, c0, 5 tst r0, #HW_C0_AP_CPU_ID_MASK diff --git a/trunk/bootrom/include/brom/os/common/tick.h b/trunk/bootrom/include/brom/os/common/tick.h index 78aaea8..81f2f99 100644 --- a/trunk/bootrom/include/brom/os/common/tick.h +++ b/trunk/bootrom/include/brom/os/common/tick.h @@ -40,14 +40,16 @@ extern void i_osSetTick( u64 ); //---- conversion tick count <-> real time count #ifdef SDK_ARM11 -#define OS_SYSTEM_CLOCK HW_CPU_CLOCK +#define OS_TICK_CLOCK HW_CPU_CLOCK +#define OS_TICK_PRESCALE 1 #define OS_TICK_HI_SHIFT 24 // 2の累乗単位でチック管理するのであれば32は指定できない(ロード値0では割り込みが発生しないため) #define OS_TICK_HI_LSB (1ULL<>1)) #define OS_TICK_LO_LIMIT OS_TICK_HI_LSB #else // SDK_ARM9 -#define OS_SYSTEM_CLOCK HW_SYSTEM_CLOCK +#define OS_TICK_CLOCK HW_SYSTEM_CLOCK +#define OS_TICK_PRESCALE 64 #define OS_TICK_HI_SHIFT 16 // ロード値0でも割り込み発生 #define OS_TICK_HI_LSB (1ULL<