<MCR|MRC>{cond}p#,<expression1>,Rd,cRn,cRm{,<expression2>}

MRC : coprocessor registerCPU register로 이동 (L=1)

MCR : CPU register coprocessor register로 이동 (L=0)

{cond} : Two character condition mnemonic

p# : coprocessor 번호

<opcode_1> : coprocessor-specific opcode. <opcode_1> 은 항상 0 이다.

Rd : CPU register number

cRn and cRm : coprocessor register numbers

<opcode_2> : coprocessor-specific opcode. 이 필드는 생략 할 수 있다.


< cpu/s5pc1xx/start.s 파일에서 >

/*
 *************************************************************************
 *
 * CPU_init_critical registers
 *
 * setup important registers
 * setup memory timing
 *
 *************************************************************************
 */
         /*
         * we do sys-critical inits only at reboot,
         * not when booting from ram!
         */
cpu_init_crit:
        /*
        * Invalidate L1 I/D
        */
        mov    r0, #0                      @ set up for MCR

        mcr    p15, 0, r0, c8, c7, 0   @ invalidate TLBs
// 1. 변환 참조 버퍼(Transition Lockaside Buffer: TLB)를 무효화

        mcr    p15, 0, r0, c7, c5, 0   @ invalidate icache
// 2. 명령어 캐시(instruction cache: I-cache) 무효화

출처 : http://blog.naver.com/serimo/50091160857

+ Recent posts