기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.
안녕하세요, 질문 올립니다..
s3c6410을 쓰는 보드로 standalone application을 만들어 u-boot에서 go 명령어로 실행하려고 합니다.
과정은 컴파일->이미지(mkimage)만들기->tftp로 u-boot 상에서 memory로 로드->go 커맨드로 실행..
오류가 발생하는 메시지는 data abort, undefined instruction 두가지 입니다.
검색 등을 통해서 비슷한 경우를 보니 tftp로 올리는 load address 와 관계가 있지않나 생각이 듭니다.
간단히 u-boot /example에서 hello world 예제를 컴파일하여 실행하여도 오류가 발생하여 고생끝에 메시지는
봤습니다만 완전치는 않았습니다. (0x50300000 에 올려서 0x50300018 에서 실행했습니다..)
구글에서도 비슷한 상황인 경우가 있는거 같습니다만 어디가 문제점인지 확실히 짚을수가 없어서 질문을 올립니다.
go 명령은 단순히 PC값만 이동하는 명령 입니다.
따라서, 제대로 사용하시려면 GNU 링커 스크립트를 공부하셔야 합니다.
그래야, 프로그램 내에서 코드 배치를 마음대로 할 수 있습니다.
또한, 스텍 및 BSS 영역에 대한 확인도 필요할 것이라고 생각 합니다.
적어도 F/W에서는 앞의 두가지 사항이 상당히 중요 합니다.