Embedded/Windows Kernel

>>>PXA320보드에 부트로더 올리기<<<

Mr.kkang 2011. 2. 16. 08:17
1. 실습자료에 xdb_v4.0_alpha.zip 압축풀고 설치를 해준다.
2. 설치를 하고 나면 인터넷 창이 열리면 거기서 왼쪽에 Software Development Tool Suite누르면 install now 버튼이 생긴다.
3. 설치시에 우리는 C\xdb 에다가 설치를 해준다.
4. 그리고 설치시에는 우리가 압축푼 디렉토리에서 시리얼을 잘 잡아준다...
5. 사용시에는 시리얼의 날짜가 되야 쓸수 있게 때문에 우리 컴퓨터의 날짜를 시리얼 보다 날짜가 앞에 되게 해준다.
6. 우리가 설치한 프로그램은 xdb를 이용해서 우리 보드의 Flash Memory에다가 BootRoader를 설치하기 위한 프로그램이다.
7. [시작]-[프로그램]-[Marvell(R) Software Development Tools]-[Marvell(R) eXtreme Debugger 4.0]-[XDB Configurations]-[JTAG_WinCE]-[PXA320_WinCE]
8. 위의 것을 실행 시키면 처음에 우리는 setting을 해줘야 한다.
setting
   [CPU-JTAG] 탭에 Target Connection 에 lpt1:1 을 usb0:0 으로 바꿔준다~! 나머지는 뭐 기본값임.
(이렇게 바꿔주는 이유는 우리가 사용하는 COM에는 페러렐포트가 없어서 usb를 쓴다...)
9. setting 설정이 끝나면 OK
10. 이제 우리는 xdb를 보드에 연결해 줘야 하는데 연결시에 보드의 전원을 끈다음에 연결해야 함을 잊지마라.
11. 위의 유의 사항을 잘 참조해서 프로그램을 키고서 우리는 [Start]를 해준다.
12. 그러면 프로그램이 켜지는데 거기서 우리는 위의 [Flash]-[Burn Flash]를 선택해준다.
13. 여기서 메모리 유형은 NAND Flash로 바꿔줘야함
14. 그리고 중간에 있는 탭들 중에서 4번째꺼에서 Flash를 initialize 선택하고서 exect해주고
그다음에는 Bab Block table 확인하는걸로 exect해준다.
15. 이제 중간에 있는 것중에서 1번째 탭으로 이동! ==> 이제 Flash메모리에 부트로더를 넣어줄껴!
[부트로더파일은 우리가 수업 자료로 받은 images.zip 파일을 압축해제하고 디렉토리 통체로 C\ 로 이동]
16. 부트로더를 검색해서 찾는데.. C\inmages\MOBM_bc.nb0 을 찾아주고서 0 번지에다가~ Burn 시켜줌!
17. 이번에는 C\images\EBOOT.nb0 를 찾아서 0x20000 번지에다가 Burn 시켜준다.

xdb를 연결할 경우에는 보드전원을 꺼야 한다.
맨처음 xdb를 COM에 연결 할때는 C\windows\wywtem32 로부터 설치를 하게 해준다..(디바이스 장치 연결 확인 떠서 설치해줘야 하니까-새하드웨어 발견)


보레이트 --> 이건 신호의 속도를 나타낸다 [비트/초]
비트 --> 기본 8비트이고 패러티 비트 1비를 쓰면 7로 해줘야 겠지?
패러티비트 -->
정지비트 --> 데이터 보낸다음에 0으로 신호를 유지하느냐 1로 신호를 유지하느냐
흐름제어 --> 흐름 제어를 쓴다는 것은 하프 듀플렉스 통신을 할때 사용하는데..
우리는 풀 듀플렉스이기 때문에 걍 없음으로 사용한다.

몹부트 -> 하드웨어적이 초기화를 해주는 부트로더이다.
이녀석으 0 번지에 구워준다. (시리얼과 cpu,timer 초기화)
E-BOOT -> 



시작하는 동안에 3초안에 space를 눌른다.
그러면 Eboot Main Menu 가 열린다...
!--- 이건 다음에...계속~!!!!!!!!!!



XHyper320TKU.zip 압축을 풀고서 디렉토리를 복사해서 PLATFORM에다가 복사해 넣는다.
그다음에 Platform Builder를 키고서 [File]-[Manage Catalog Item...]을 눌러서 카탈로그를 추가해주는데...
그 파일은 금방 우리가 옮겨놓은 디렉토리 안에 .cec 파일이 있다.
( cec 는 카탈로그 구성파일이다. [플랫폼 빌더에서 사용] )
이제 우리는 새 플랫폼을 만들어 주는데 이번에는 HYBUS XHYPER320TKU DEV PLATFORM:ARM 으로 만들어준다.
다 만든 다음에는...
카탈로그에서 Active Sync를 찾아서 추가해준다.
그리고 카탈로그에서 USB Function Client 에 Serial 을 추가 해준다.
((( USB Function Client에 RNDIS는 나중에 쓸꺼다 잘 봐둬라. )))

이제 보드를 실행 시키는데....
[시작]-[보조프로그램]-[통신]-[하이퍼터미널] 을 실행켜서 보드의 실행을 보는데...
보드를 리셋해서 실행 하는 중에 space눌러서 Eboot Main Menu나오게 한다.

0 : 보드의 IP
1 : 서브넷 마스크 255로 된 곳은 같아야 한다.
2 : 부트 딜레이가 얼마나 길게 해 줄 것이냐 하는거다....
3 : 보드 아이피를 다이나믹하게 받을것이냐 .. -> 공유기로 할때.... 이거 인에이블 하고 0번은 안줘도되
5 : 오토가 인에이블로 설정되면 EBOOT로 부팅할때마다 새 이미지 받는다.
6 : 꼭 인에이블해야 한다. 이건 매번 부팅할때마다 Disable이 된다
이거 켜야 램에 올린담에 올리 상황을 Flash에가다 올려서 기억하게 끔해주는 것이다.
그래야 다시 부팅할때마다 실행 되겠지
   !!!!17번 아래는 내일 설명해준다.!!!!!!!!
7 : 
8 : 
D : 
M : 
L : 
C : 
S : 
U : 
F : 
T : 


우선 지금 우리가 하고 싶은것은 NK.bin 파일을 Ethernet으로 받을것이다.
그러기 위해서 0으로 보드의 IP를 서브넷 마스크로 설정된 부분은 지금 COM의 IP와 같게 해주고 나머지 부분을 넣어준다.
(이때 마지막은 1 과 255 을 사용해서는 안된다)
그리고 6번을 Enable로 해준다. 그래야 플래쉬 메모리에 올라가서 Target에 NK.bin 파일이 올라가기 때문이다.
이렇게 하고나서 D를 눌러서 Donwload image now를 해준다 그러면
send BOOTME to 255.255.255.255 메시지가 뜬다.

Send BOOTME to 255.255.255.255 ==> 랑데뷰....
이건 보드가 보낸다... "나 부트준비 됬어~'
이 메시지가 나오는 동안(자신의 한계시간 동안...)에만 통신이 가능한 것이다.
spin forever 가 뜨는 경우는 자동으로 reboot이 안되기 때문이다.
그래서 우리는 HW reset을 해주는 것이다.

이렇게 만들어 준다음에 우리는 NK.bin파일을 Target으로 보내주려고 한 것이다.