도와주세요!!
글 수 15,339
2002.12.27 17:22:02 (*.105.26.44)
6681
blob소스는 두 부분으로 나누어지는데, 하나는 하드웨어 초기화 하는 부분과
모니터 프로그램 역활을 하는 부분입니다. start.s부분이 하드웨어 초기화하는
루틴이고 main.c가 모니터 프로그램 역활을 하는 부분일 겁니다.
blob소스는 자세히 분석하지 못해서 정확히 어떻게 링크를 하고 있는지는 모르
겠지만 ^^;
링커 스크립트에서 start.s 를 1k할당하고 나머지(main.c에 관련된 부분)를
그 뒤쪽에 붙이고 있을것입니다.
그걸 메모리에 로드하게 되는데 start.s부분은 하드웨어 초기화 루틴이기 때문
에 reset후에는 쓰일일이 없으므로 start.s 부분인 1k부분을 제외한 나머지부
분
즉, main.c인가 하는 부분만을 로드하기 때문에 1024만큼 skip하고 있는걸로
알고 있습니다.
ezboot 소스를 볼때는 1024만큼 필요없는 부분을 왜 로드하느냐가 문제가 되더
니 blob에서는 아예 그 부분을 로드하고 있지 않군요.^^*
모니터 프로그램 역활을 하는 부분입니다. start.s부분이 하드웨어 초기화하는
루틴이고 main.c가 모니터 프로그램 역활을 하는 부분일 겁니다.
blob소스는 자세히 분석하지 못해서 정확히 어떻게 링크를 하고 있는지는 모르
겠지만 ^^;
링커 스크립트에서 start.s 를 1k할당하고 나머지(main.c에 관련된 부분)를
그 뒤쪽에 붙이고 있을것입니다.
그걸 메모리에 로드하게 되는데 start.s부분은 하드웨어 초기화 루틴이기 때문
에 reset후에는 쓰일일이 없으므로 start.s 부분인 1k부분을 제외한 나머지부
분
즉, main.c인가 하는 부분만을 로드하기 때문에 1024만큼 skip하고 있는걸로
알고 있습니다.
ezboot 소스를 볼때는 1024만큼 필요없는 부분을 왜 로드하느냐가 문제가 되더
니 blob에서는 아예 그 부분을 로드하고 있지 않군요.^^*