도와주세요!!
글 수 15,339
2009.02.23 15:38:53 (*.110.91.31)
7420
안녕하세요. 주말은 잘들 보내셨습니까?
스캐터쪽 질문좀 드립니다.
U-boot 부팅 후 램영역( 0xA0000000) 으로 OS 이미지를 복사해주고 해당번지(0xA0000000)를 GO(실행) 해주었습니다.
이때 OS 이미지의 스캐터 시작번지가 0x0으로 되어 있습니다. OS Image에도 예외벡터테이블이 있어서
계속 U-boot의 0x0번지로 Jump를 하여 무한 리셋이 걸리고 있습니다.
부분적으로 벡터 테이블만 수정해서는 안되는것 같아요.. 아예 스캐터의 base를 0x0으로 안 잡고 0xA0000000으로 잡으면 되긴 되는데
그렇게 안하고 0xA0000000 번지를 Go했을때 계속 0xA0000000 번지대의 코드를 진행 시킬 수 있는 방법이 없을까요?
좋은 하루되세요~
스캐터쪽 질문좀 드립니다.
U-boot 부팅 후 램영역( 0xA0000000) 으로 OS 이미지를 복사해주고 해당번지(0xA0000000)를 GO(실행) 해주었습니다.
이때 OS 이미지의 스캐터 시작번지가 0x0으로 되어 있습니다. OS Image에도 예외벡터테이블이 있어서
계속 U-boot의 0x0번지로 Jump를 하여 무한 리셋이 걸리고 있습니다.
부분적으로 벡터 테이블만 수정해서는 안되는것 같아요.. 아예 스캐터의 base를 0x0으로 안 잡고 0xA0000000으로 잡으면 되긴 되는데
그렇게 안하고 0xA0000000 번지를 Go했을때 계속 0xA0000000 번지대의 코드를 진행 시킬 수 있는 방법이 없을까요?
좋은 하루되세요~
메모리에 올리고 그 시작번지 주소로 점프하셔야 합니다.
아마도 ld-script 파일에
SECTIONS
{
. = 0xA0001000;
이런 주소를 넣으신후 컴파일 하셔야 하지 않을까요
예외 벡터가 0xA0000000 로 들어가야 하겟죠
그리고 jump 를 0xA0001000 ...
흠 머 어쨋든 링커와의 싸움, 삽질이죠