2007년 10월 29일 월요일

redboot configuration (in eCos)

eCos에서 redboot를 configuration 하는 것은, eCos가 지원하는 보드에 올린다면 매우 쉬운 일이다.

내가 사용하고 있는 보드는 trace32를 테스팅하기 위해 사용하던 IMO보드이다.

이름은 조금 다르지만, 일단 코어는 s3c2410이므로, eCos가 지원하는 smdk2410에 맞춰 주면 된다.


eCos에서 configration 방법은 두가지가 있다. tool을 사용하는 것과, command를 날리는 방법.

일단은 두가지 다 해보도록 하겠다.


우선, tool을 사용하는 것.

tool을 사용하는 것이 더 빠르고 쉽다.

하지만 tool을 사용해서 에러가 난다면 command를 추천한다; 왠지 tool은 불신감이 솟구쳐서-_-;;



1. tool 실행

$ configtool

의 command를 치면 조금 많이 심플한 tool이 하나 보인다.


2. hardware선택

tool의 메뉴에서 build->template를 클릭하면 하드웨어를 선택할 수 있다.

eCos에서 지원하는 하드웨어들이 죽 list로 보여지는데 거기서 Samsung의 smdk2410을 선택하고,

그 아래 보면 package라는 부분이 있다.

default라고 되어있지만, redboot를 configuration할 것이기 때문에 redboot를 선택해준다.

그리고 "확인"

그리고 나서 보면 tool의 configuration 옵션이 바뀌어 있는 것을 볼 수 있다.

확인해 주어야 할 것은 architecture와 redboot 부분이다. 활성화 된 내용을 확인하고, 바꿀 옵션이 있다면 바꾼다.

하지만, 그냥 save해도 잘 돌아간다.

옵션을 다 바꾸었다면 save.


3. 이미지 만들기

redboot 이미지를 만들어야 한다.

build->Gernerate Build Tree를 선택해서 우선 트리를 생성한 후에,

build->library를 선택한다. (컴파일과 비슷한 것.)


그러면 완성-_-)b 이 되는데-_-!

smdk2410에 올릴때 중요한 것이 하나 빠졌으니,

이렇게 만든 이미지를 flash에 구워 부팅을 시키면 jump vector가 엉뚱한데를 가르키며 부팅이 제대로 되지 않는다.

해서 삽질을 엄청나게 했지만,

file->import를 선택하고

/opt/ecos/eocs-2.0/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm 을 포함시켜주어야만 함을 알았다.

'왜?' 인지는 아직 알아내지 못했지만;



그럼 다음으로 terminal창에서 configuration 하는 법.

일단, 해주는 일은 같지만 interface에서 쉽게 하느냐 못하느냐의 차이다.


terminal창에서 다음 command를 순서대로 날리면 된다.


$ ecosconfig new smdk2410 redboot

(새로만드는데, architecture와 package를 지정해준다)

$ ecosconfig import /opt/ecos/ecos-2.0/packages/hal/arm/arm9/smdk2410/current/misc/smdk2410_redboot_ROMRAM.ecm

(역시 파일을 import 해준다)

$ ecosconfig tree

(tree 생성)

$ make OLDGCC=1

(책에는 'make'라고만 해도 된다고 했는데, OLDGCC는 뭘까요-_-;)




tool로 했든 command로 했든지 간에 아무튼 make가 성공한다면, 여러개의 파일이 생긴다.

그 중에서 install폴더를 찾아 들어가면 bin폴더 아래에 이미지 파일이 생성된 것을 볼 수 있다.

binary파일과 elf파일 srec파일 img파일.

img파일은 안써봤고-_-; srec파일은 eCos보드에 올릴 때 쓰는 것이다.

하지만 redboot은 부트로더니까, binary파일로 올렸다.

(trace 32로 올렸음; flash날려먹어서)

댓글 2개:

  1. Hi there would it be ok if we used some info from your blog to use on one of our websites? cheers buddy.

    답글삭제