/* * ターゲットシステム依存の初期化 */ void sys_initialize() { /* * PLLの設定 * */ /* * SSELVAL, CSELVALはboard_config.hにて定義。 */ #ifndef FORCE_PLL_INITIALIZE // PLLが初期値のままであり、かつ、SDRAMが利用中でなければPLLを初期化する if ( ( *pPLL_CTL == 0x1400 ) && ( !(*pEBIU_SDBCTL & EBE ) ) ) #endif { *pSIC_IWR = IWR_ENABLE(0); // PLLのみIWRを許す #if CSELVAL == 1 *pPLL_DIV = CSEL_DIV1 | SET_SSEL(SSELVAL); #elif CSELVAL == 2 *pPLL_DIV = CSEL_DIV2 | SET_SSEL(SSELVAL); #elif CSELVAL == 4 *pPLL_DIV = CSEL_DIV4 | SET_SSEL(SSELVAL); #elif CSELVAL == 8 *pPLL_DIV = CSEL_DIV8 | SET_SSEL(SSELVAL); #else #error Wrong CSELVAL. Must be one of 1,2,4,8. #endif *pPLL_CTL = MSELVAL << 9; asm("cli r0; csync; idle; sti r0;": : :"R0"); *pSIC_IWR = IWR_ENABLE_ALL; }
/* * ターゲットシステム依存の初期化 */ void sys_initialize() { /* * スプリアス割り込みハンドラの設定 * * cpu_initialize()が行うダミーの割り込みハンドラの設定を上書きする。 * アプリケーションが割り込みハンドラを設定すると、以下の設定も上書き * される。 */ int i; for ( i=0; i<DEVICE_INTERRUPT_COUNT+3; i++ ) dev_vector[i] = &spurious_int_handler; exc_vector = &spurious_exc_handler; /* * PLLの設定 * */ /* * SSELVAL, CSELVALはboard_config.hにて定義。FORCE_PLL_INITIALIZEはsys_config.hで * 必要に応じて宣言する。 */ #ifndef FORCE_PLL_INITIALIZE // PLLが初期値のままであり、かつ、SDRAMが利用中でなければPLLを初期化する if ( ( *pPLL_CTL == 0x1400 ) && ( !(*pEBIU_SDBCTL & EBE ) ) ) #endif { *pSIC_IWR = IWR_ENABLE(0); // PLLのみIWRを許す #if CSELVAL == 1 *pPLL_DIV = CSEL_DIV1 | SET_SSEL(SSELVAL); #elif CSELVAL == 2 *pPLL_DIV = CSEL_DIV2 | SET_SSEL(SSELVAL); #elif CSELVAL == 4 *pPLL_DIV = CSEL_DIV4 | SET_SSEL(SSELVAL); #elif CSELVAL == 8 *pPLL_DIV = CSEL_DIV8 | SET_SSEL(SSELVAL); #else #error Wrong CSELVAL. Must be one of 1,2,4,8. #endif // PLLの分周器に値を設定する *pPLL_CTL = MSELVAL << 9; // PLLを起動する。 asm("cli r0; csync; idle; sti r0;": : :"R0"); *pSIC_IWR = IWR_ENABLE_ALL; }