도와주세요!!
글 수 15,339
2003.11.21 01:39:37 (*.252.60.150)
6684
안녕하세요.
Bootloader를 이용해서 user application을 개발하고 있답니다.
즉 Linux커널을 사용하지 않고 C 프로그램을 작성하여 컴파일하고 Bootloader
를 이용하여 제가 원하는 영역에 다운로드를 받은다음 GO 명령을 사용하여
보드를 구동 시키려 하고 있습니다.
질문 사항은 아래와 같이 두가지 입니다.
첫째, Bootloader보니 GoFunction 이 주석처리 되어있더군요. 이부분 관련해서
PC에 점프하고 싶은 Address를 넣어주면 되는 건지 궁금합니다. 예제 같은건
없나요?
두번째는 , User application 프로그램 작성은 새로운 파일을 하나 만들어
Linux에서 컴파일 한후 m01보드의 Ram 영역에 올릴껍니다. 이때 User 프로그램
은 어떤 형식으로 작성해줘야 하는지 궁금합니다. void main(void)형식으로
개발을 하고 싶은데 방법을 몰라서 이렇게 질문 드립니다.
그럼..
PS: GoKernel 함수를 참고하여 아래와 같이 코드를 작성해 주었어요. 물론
DEFAULT_RAM_USERAPP_START는 헤더파일에 정의 를 했고요.
bootloader상에서 go를 치면 GoFunction이 실행되도록 했는데
DEFAULT_RAM_USERAPP_START에 플래쉬에 넣은 똑같은 부트로더 이미지를 올리
고 그쪽으로 점프하도록 하면 똑같이 부트로더가 떠야 하는거 아닌가요?
뜨질 않는군요. 점프프로그램이 잘못 작성되었나요?
int GoFunction(int argc, char **argv){
void (*prgstart)(int zero, int arch);
prgstart = (void (*)(int, int))DEFAULT_RAM_USERAPP_START;
//#define DEFAULT_RAM_USERAPP_START 0xC0000100
//Userapplication Program start address
prgstart( ( long ) 0 , (long) 200 );
printf( "Running Program!
"); //Debugging Code
return 0;
}
Bootloader를 이용해서 user application을 개발하고 있답니다.
즉 Linux커널을 사용하지 않고 C 프로그램을 작성하여 컴파일하고 Bootloader
를 이용하여 제가 원하는 영역에 다운로드를 받은다음 GO 명령을 사용하여
보드를 구동 시키려 하고 있습니다.
질문 사항은 아래와 같이 두가지 입니다.
첫째, Bootloader보니 GoFunction 이 주석처리 되어있더군요. 이부분 관련해서
PC에 점프하고 싶은 Address를 넣어주면 되는 건지 궁금합니다. 예제 같은건
없나요?
두번째는 , User application 프로그램 작성은 새로운 파일을 하나 만들어
Linux에서 컴파일 한후 m01보드의 Ram 영역에 올릴껍니다. 이때 User 프로그램
은 어떤 형식으로 작성해줘야 하는지 궁금합니다. void main(void)형식으로
개발을 하고 싶은데 방법을 몰라서 이렇게 질문 드립니다.
그럼..
PS: GoKernel 함수를 참고하여 아래와 같이 코드를 작성해 주었어요. 물론
DEFAULT_RAM_USERAPP_START는 헤더파일에 정의 를 했고요.
bootloader상에서 go를 치면 GoFunction이 실행되도록 했는데
DEFAULT_RAM_USERAPP_START에 플래쉬에 넣은 똑같은 부트로더 이미지를 올리
고 그쪽으로 점프하도록 하면 똑같이 부트로더가 떠야 하는거 아닌가요?
뜨질 않는군요. 점프프로그램이 잘못 작성되었나요?
int GoFunction(int argc, char **argv){
void (*prgstart)(int zero, int arch);
prgstart = (void (*)(int, int))DEFAULT_RAM_USERAPP_START;
//#define DEFAULT_RAM_USERAPP_START 0xC0000100
//Userapplication Program start address
prgstart( ( long ) 0 , (long) 200 );
printf( "Running Program!
"); //Debugging Code
return 0;
}