;======================================================================= ; crt0_arm.s ; スタートアップルーチン(ARMASM用) ; ; Copyright (C) 2002-2003 NINTENDO Co.,Ltd. ;======================================================================= AREA Init, CODE, READONLY INCLUDE IrisDefineArm.s INCLUDE IrisMemoryMapArm.s INCLUDE IrisSystemCallArm.s INCLUDE IrisMacroArm.s INCLUDE IrisMonDefineArm.s INCLUDE IrisMonMempryMapArm.s ;----------------------------------------------------------------------- ; システム制御コプロセッサ リセット(r0=パラメータ) ;----------------------------------------------------------------------- GLOBAL reset_cp15 ALIGN CODE32 reset_cp15 ; プロテクションユニット/キャッシュ/TCM セット mcr p15, 0, r0, c1, c0, 0 ; キャッシュ無効化 mov r0, #0 mcr p15, 0, r0, c7, c5, 0 ; 命令キャッシュ mcr p15, 0, r0, c7, c6, 0 ; データキャッシュ ; ライトバッファ エンプティ待ち mcr p15, 0, r0, c7, c10, 4 bx lr ;----------------------------------------------------------------------- ; システム制御コプロセッサ 初期化 ;----------------------------------------------------------------------- GLOBAL init_cp15 ALIGN CODE32 init_cp15 mov r12, lr ; プロテクションユニット/キャッシュ/TCM ディセーブル ldr r0, =C1_EXCEPT_VEC_UPPER | C1_SB1_BITSET bl reset_cp15 ; データTCM 設定 ldr r0, =MON_DTCM :OR: C9_TCMR_16KB mcr p15, 0, r0, c9, c1, 0 ; システム制御コプロセッサ マスター設定 mrc p15, 0, r0, c1, c0, 0 ldr r0, =C1_DTCM_ENABLE | C1_EXCEPT_VEC_UPPER | C1_SB1_BITSET mcr p15, 0, r0, c1, c0, 0 bx r12 END