도와주세요!!
글 수 15,339
2003.02.04 14:26:41 (*.186.48.184)
6696
: 이지부트의 링크스크립트를 보면, 특별히 text, data, rodata, bss등의 정확
: 한 메모리위치를 정하지 않았잖아요??? 저는 보통 링크스크립트에서, 명확하
: 게 각 섹션의 어드레스를 정하는것들을 많이 봐왔는데, 이지부트처럼 명확히
: 정하지 않아도 되는건가요??? (단지, 램과 롬의 영역 시작어드레스만 정한거
: 같군요)
text data rodata bss 에서 data bss 는 램이 동작해야 하지요
하지만 초기 코드는 램이 없는 상태에서 동작해야 하죠..
왜냐하면 램설정 레지스터를 셋팅하기 이전이기 때문에 램을 쓸수 없죠
그러므로 text 와 rodata는 의미 없겠죠?
그리고 정하지 않으면 차곡차곡 뒤로 붙어 들어갑니다.
물론 바이트 정렬 옵션이 있으면 이에 대해서 처리하죠
: 이렇게 명확히 어드레스를 정하지 않았기 때문에, dd로 합치면서 위와 같은
: seek, conv 등이 정해져야 하는것인가요???
: 또 이 seek, conv의 의미를 잘 모르겠네요. dd --help해도 무슨 뜻인지 잘 모
: 르겠는데, 어떤의미로 bs= 1k, conv= sync seek=1 이러한 코드를 넣으셨는지
: 요???
저희 강좌에 보면 부팅 디스크 분해와 조립에 보면 dd 명령에 대한 설명이 있읍니
다.
: (램을 사용해도 dd를 쓰지 않고 링크스크립트에서 절대어드레스를 다 정하던
: 코드만 봐와서 dd를 사용해서 하는게 매우 경이롭게 보이는군요...._)
: 그럼 수고하십시요
C 코드는 램에서 동작합니다. 초기화 코드는 어셈블러로 구현됩니다.
두 부분은 영역이 틀리죠...
그래서 부트 코드를 잘 보시면 롬에 담겨 있는 램 이미지를 램에 옮긴후
해당 코드 주소로 점프하죠
그러므로 롬이지지 뒤에 램이미지를 붙여서 같이 굽는 겁니다.
이때 dd를 사용하는 것 뿐이죠
: 한 메모리위치를 정하지 않았잖아요??? 저는 보통 링크스크립트에서, 명확하
: 게 각 섹션의 어드레스를 정하는것들을 많이 봐왔는데, 이지부트처럼 명확히
: 정하지 않아도 되는건가요??? (단지, 램과 롬의 영역 시작어드레스만 정한거
: 같군요)
text data rodata bss 에서 data bss 는 램이 동작해야 하지요
하지만 초기 코드는 램이 없는 상태에서 동작해야 하죠..
왜냐하면 램설정 레지스터를 셋팅하기 이전이기 때문에 램을 쓸수 없죠
그러므로 text 와 rodata는 의미 없겠죠?
그리고 정하지 않으면 차곡차곡 뒤로 붙어 들어갑니다.
물론 바이트 정렬 옵션이 있으면 이에 대해서 처리하죠
: 이렇게 명확히 어드레스를 정하지 않았기 때문에, dd로 합치면서 위와 같은
: seek, conv 등이 정해져야 하는것인가요???
: 또 이 seek, conv의 의미를 잘 모르겠네요. dd --help해도 무슨 뜻인지 잘 모
: 르겠는데, 어떤의미로 bs= 1k, conv= sync seek=1 이러한 코드를 넣으셨는지
: 요???
저희 강좌에 보면 부팅 디스크 분해와 조립에 보면 dd 명령에 대한 설명이 있읍니
다.
: (램을 사용해도 dd를 쓰지 않고 링크스크립트에서 절대어드레스를 다 정하던
: 코드만 봐와서 dd를 사용해서 하는게 매우 경이롭게 보이는군요...._)
: 그럼 수고하십시요
C 코드는 램에서 동작합니다. 초기화 코드는 어셈블러로 구현됩니다.
두 부분은 영역이 틀리죠...
그래서 부트 코드를 잘 보시면 롬에 담겨 있는 램 이미지를 램에 옮긴후
해당 코드 주소로 점프하죠
그러므로 롬이지지 뒤에 램이미지를 붙여서 같이 굽는 겁니다.
이때 dd를 사용하는 것 뿐이죠