우선 시작하기에 앞서 bl0 부분이 뭐하는 부분이고 뭘 담당하는지를 알아보고자 한다.
bl0 이라하면 iROM code section 을 의미하는 것으로써 internel Memory(iROM)에 상주 하면서 각종 하드웨어적인 초기화를 담당하게 된다.
이러한 초기화 과정에서 CPU의 상태를 인지하도록 되어있으며 부팅 저장소를 결정하도록 되어있다.
이러한 부팅 저장소로는 SD-Card / T-Flash, SATA, SSD 등이 될 수 있다.
자 !! 그럼 여기서 iRom이 뭔지 궁금할 수 있다.
각종 인터넷의 자료를 찾아보면 CPU의 내부영역 즉 Internal 영역에는 각각 작은 메모리 저장공간인 ROM과 RAM 이란것이 존재하며 이는 CPU내부에 존재한다 하여 Internal 을 축약해 iROM, iRAM 이라는 이름으로 불리게 된다.
이렇게 최조 전원이 인가되게 되면 CPU로 전원이 공급되고 iROM 내부에 저장된 코드를 이용하여 하드웨어적인 초기화를 진행하도록 되어있다.
이러한 각종 초기화를 진행한 뒤 부팅 모드를 설정하게 되어있는데 이는 특정 비트값을 셋팅하는것으로 모드를 전환하게 되어있다. 이를 (Operation Mode) OM pin 이라고 한다.
이러한 핀설정 상태에 따라 부팅모드가 달라지게 되는데 s5pv210 에서는 아무리 찾아봐도 OM pin 이 보이지 않는다.
이건 추후 회로도를 보고 작성하도록 하겠다.
하지만 이 iROM과 iRAM 이란 것이 저장가능한 용량이 작기때문에 이 속에 시스템의 제어부 전부를 집어 넣을 수 없어 이후 소스의 진행은 bl1 부분으로 점프하도록 되어있다.
여기서 여러가지를 축약하여 점프한다고 하였지만 bl1의 코드를 iSRAM 에 적제하여 그 시작코드 부분으로 Program Counter 를 넘겨주는 것을 의미한다.
다음에는 bl1의 정의에 대해 알아보고자 한다.
'운영체제 > ARM Core' 카테고리의 다른 글
ezboot bootloader의 뜻 그리고 분석의 시작 (0) | 2014.03.18 |
---|---|
s5pv210 ez-boot bootloader 분석 (0) | 2014.03.18 |
MCU s5pv210 대상으로 RTOS 제작 시작 (0) | 2014.03.17 |