도와주세요!!
글 수 15,339
2012.04.03 14:38:30 (*.148.23.122)
16920
2012.04.03 17:48:57 (*.148.23.122)
음..그럼 메모리는 사용하고 있는건 맞죠?
즉 저 부분까지 bootstrap에서 올렸다는 것은 sdram을 bootstrap에서 사용하고 있다는 것은 맞죠?
2012.04.04 11:17:18 (*.137.10.239)
네.
부팅절차를 보면 cpu가 본능적으로 처음에 bootstrap code를 nand 로부터 읽어와 cpu내부의 sram으로 복사하고 실행시킵니다.
이때까진 외부 sdram이 초기화가 안되어 있겠죠. 내부램에서 동작하는 bootstrap은 외부장치(sdram)을 초기화 합니다.
이후 nand를 읽어서 정해진 sdram주소로 복사하고 그곳으로 점프를 해줌으로 생을 마감하죠.
이때 초기화가 잘 된건지는 장담못합니다. 기계적으로 레지스터설정으로 하니까요. 복사절차도 기계적으로 합니다. 그리고 복사가 잘 되었던말던 그냥 점프하고 맙니다.
복사가 반만 되었더라도 실행은 되겠죠. 멈추겠지만요. 혹시 nand도 바꾸셨는지...
부트스트렙이 하는일이 난드의유부트를 메모리로 복사후 그곳으로 점프시키는데요..
메모리초기화가 잘못된거아닌가 싶은데요.
test로 sam-ba에접속하여 ram쪽에 주소별로 0x1 ~ 듬성듬성 쓰기를 시도하여(천만단위로)
잘 써지면..
또는 bootstrap에서 sdram초기화 후 메모리test하는 루틴으로 확인해도...