5517의 부팅과정을 각 단계별로 설명할 것이다. 부팅과정을 이해함으로서, 듀얼부팅에서 필요한 정보를 얻는다.

이 부분은 두가지로 나누어서 설명한다. 하나는 DCU 를 이용할 때와 나머지는 Flash 를 이용할 때이다. 일단 우리가 원하는 것은 Flash 에 대한 부분이기 때문에 DCU 에 대한 내용은 간단히 설명하고 넘어가도록 한다.

일반적으로 DCU 를 이용해서 실행할 때,

st20run -l C:/STM/DACS1000/config/chip -l C:/STM/DACS1000/config/board -l C:/STM/DACS1000/config/platform -l /chip -l /board -l /platform -l \ 
C:/STM/DACS1000/config/platform -i C:/STM/DACS1000/config/board/mb382_um.cfg -t c2hw_jei top.lku

위와 같은 명령어로 실행한다. 그러면 아래와 같은 출력이 나온다.

Setup5517
 
proc setup_clock_gen
Clock_gen setup procedure for programmed PLL mode...
Device has booted in DEFAULT mode.
Switching back to X1 mode
Programming FS PLL with 540 MHz
C200  = 180 MHz
SMI   = 135 MHz
SMI/2 = 67 MHz
SMI/4 = 33 MHz
Audio = 54 MHz
COMMS = 54 MHz
STBUS = 90 MHz
FLASH = 90 MHz
SDRAM = 90 MHz
transitioning
CLOCKGEN Successfully setup
 
EMIpokes5517
alt settings
Testing Phase & lock
0xffbf1234
0x56781234
0x12345678
SDRAM locked on phase 2
SDRAM init has been successful

위의 메세지는 하드웨어를 초기화 하는 작업이다. PC로 말하자면, CMOS가 출력해주는 부분이다. 위의 작업은 DCU 로 실행할 때 .cfg 파일들의 세팅을 읽어들임으로서 하드웨어를 초기화한다.

이번에는 Flash 에서의 하드웨어 초기화 과정이다. .hex 파일을 만들 때, 반드시 참조해야할 오브젝트 파일이 있다. 바로 initfunc.tco 이다. 이것은 DCU 에서 하드웨어를 초기화해주는 함수 이다. 실제로 이 파일을 포함하지 않은 .hex 파일은 부팅이 되지 않는다. 그러므로 st 에서 받은 듀얼부트 소스코드 역시 initfunc 를 포함시켜야 할 것이다.

여기까지가 main() 함수를 호출하기 전까지의 대략적인 과정이다.

DCU 커맨드 명령의 옵션으로
FLASH initfunc.tco 의 포함으로

나의 생각으로 하드웨어 초기화 과정은 이미 가능하다고 생각한다. 문제는 main 함수안의

  • computer/digitalarena/부팅과정_개요.txt
  • Last modified: 3 years ago
  • by likewind