도와주세요!!
글 수 15,339
2003.02.17 18:52:08 (*.46.61.51)
6802
아는데로 설명해 보자면.
스트롱암은 스윗치나 파워온에 의해 리셋이 내려갔다 올라오면 메모리 맵중에
서 0번지를 엑세스 하게 됩니다. 하드와이얻 메모리 맵에서 보면, nCS0에 연결
된 component가 0번지를 가리키게 되는다, sram 혹은 flash가 이곳에 연결되
죠.;
지금 상황은 flash에 연결된것 같네요..
그렇담 flash의 0번지부터 부트로더를 jtag을 이용하여 올려놓습니다.그리고
나서 보드를 리셋하면, sa1110 mpu는 플래시의 0번지부터 instruction을 fetch
하게 됩니다.
ㄱ명령어가 수행되면서(arm-linux-objdump -D imagesfilename > obj-data 를
수행하여 보면, asm source code냉요을 볼 수 있져) 진행되다가, 아..순서를
대충 보면, 보통 arm이 이런식으로 부팅되는데
1.intr mask clear
2.cpu 속도 지정
3.led를 통해 정상적으로 파워가 들어왔음을 표시
4.메모리 컨피규레이션 :sdram(첨엔 disable시킴),각종 sram,vlio등의 레지스
터에 값을 넣어줌
5.sdram 리프레쉬 시작
6.sdram enable시킴
7.1~6 과정의 asm내용을 제외한, stack설정및 main()이후의 내용들을 몽땅
sdram의 0xC02------ 로 복사
8.복사한 0xC02------의 시작부분으로 점프
9.복사된 스택 초기화 실행
10.main()수행
11.main()이 끝나면 다시 9번으로 점프...
이런식이져..
맞나몰러..
김필수 wrote..
: 예전에 JTAG이 안된다고 보드들고 찾아갔었는데 기억하실런지요..^^
: 프린터도 작동하는데 이상하게 제 노트북이 JTAG이 안먹더라구요...그래서
: 아예 데스크탑으로 바꾸어서 열심히 하고있죠~~^^ 이건 질문하고 무관한 얘 기
: 고 ....
:
: 질문)
: 제공시디의 sw/ezboot.v22/ 에보면 start 와 main 디렉토리가 있는데
: 아마 스타트업코드와 부트로더를 위한 파일들이겠죠......
: 그런데 제가 궁금한것은 컴파일된 이두가지를 스타트업코드의 경우에는
: 플래시(0x00000000)에 써넣으니깐 동작이 되던데~~
: 부트로더는 어디에 써넣어야 하는겁니까? 보니깐 부트로더는
: 0xC0F00400 의 램영역에서 동작하는것같은데...............
: 그리고 스타트업코드에서도 부트로더를 동작시키기 위해서 이 영역으로
: 옮겨가는것 같구요....
: 여기서 이해가 안되는부분이........... 그럼 컴파일된 부트로더를
: 어디에 어떻게 써넣어야 하는것입니까?
:
: 일단 제가 설명드린 부분이 이해가 가졌는져~~제가 잘몰라서 제가
: 이해한부분도 잘못된것일수도 있는데요~~
: 아주`~이해하기 쉽게 설명좀 해주셨으면~~^^
:
: 수고하세요^^
스트롱암은 스윗치나 파워온에 의해 리셋이 내려갔다 올라오면 메모리 맵중에
서 0번지를 엑세스 하게 됩니다. 하드와이얻 메모리 맵에서 보면, nCS0에 연결
된 component가 0번지를 가리키게 되는다, sram 혹은 flash가 이곳에 연결되
죠.;
지금 상황은 flash에 연결된것 같네요..
그렇담 flash의 0번지부터 부트로더를 jtag을 이용하여 올려놓습니다.그리고
나서 보드를 리셋하면, sa1110 mpu는 플래시의 0번지부터 instruction을 fetch
하게 됩니다.
ㄱ명령어가 수행되면서(arm-linux-objdump -D imagesfilename > obj-data 를
수행하여 보면, asm source code냉요을 볼 수 있져) 진행되다가, 아..순서를
대충 보면, 보통 arm이 이런식으로 부팅되는데
1.intr mask clear
2.cpu 속도 지정
3.led를 통해 정상적으로 파워가 들어왔음을 표시
4.메모리 컨피규레이션 :sdram(첨엔 disable시킴),각종 sram,vlio등의 레지스
터에 값을 넣어줌
5.sdram 리프레쉬 시작
6.sdram enable시킴
7.1~6 과정의 asm내용을 제외한, stack설정및 main()이후의 내용들을 몽땅
sdram의 0xC02------ 로 복사
8.복사한 0xC02------의 시작부분으로 점프
9.복사된 스택 초기화 실행
10.main()수행
11.main()이 끝나면 다시 9번으로 점프...
이런식이져..
맞나몰러..
김필수 wrote..
: 예전에 JTAG이 안된다고 보드들고 찾아갔었는데 기억하실런지요..^^
: 프린터도 작동하는데 이상하게 제 노트북이 JTAG이 안먹더라구요...그래서
: 아예 데스크탑으로 바꾸어서 열심히 하고있죠~~^^ 이건 질문하고 무관한 얘 기
: 고 ....
:
: 질문)
: 제공시디의 sw/ezboot.v22/ 에보면 start 와 main 디렉토리가 있는데
: 아마 스타트업코드와 부트로더를 위한 파일들이겠죠......
: 그런데 제가 궁금한것은 컴파일된 이두가지를 스타트업코드의 경우에는
: 플래시(0x00000000)에 써넣으니깐 동작이 되던데~~
: 부트로더는 어디에 써넣어야 하는겁니까? 보니깐 부트로더는
: 0xC0F00400 의 램영역에서 동작하는것같은데...............
: 그리고 스타트업코드에서도 부트로더를 동작시키기 위해서 이 영역으로
: 옮겨가는것 같구요....
: 여기서 이해가 안되는부분이........... 그럼 컴파일된 부트로더를
: 어디에 어떻게 써넣어야 하는것입니까?
:
: 일단 제가 설명드린 부분이 이해가 가졌는져~~제가 잘몰라서 제가
: 이해한부분도 잘못된것일수도 있는데요~~
: 아주`~이해하기 쉽게 설명좀 해주셨으면~~^^
:
: 수고하세요^^