도와주세요!!
글 수 15,339
2002.03.19 16:18:18 (*.186.45.116)
14053
[답변1]
네 부트로더 환경은 126K 부터 2K 만큼입니다.
[답변2]
헤더파일에 정의되지 않은것은 제가 게을러서 그렇습니다. 지성..
부트로더가 최초에 하는일은 메모리관련 레지스터를 설정하는 것이며
그다음에 플래시영역(0x0000 0000) 에 있는 부트로더 128K 만큼의 데이타를
SDRAM 영역(0xc000 0000)영역에 복사하는 일을 합니다.
자이제 0xc002 0000 주소는 SDRAM에 있는 부트로더의 마지막(-4) 번지이고
0x200 은 파라메타의 최대 크기이죠..
플래시는 쓰기 전에 지워야하는 디바이스입니다. 지우게 되면 모든 데이타는
0xff 을 갖습니다. 여기에 0xf8 을 쓰면 물론 0xf8 이 됩니다. 그럼 또 여기에
0x33 을 쓰면 0x30 이 됩니다. 즉 1 -> 0 으로 변경되지만 0 -> 1 로 변경되지
않습니다.
위에서 알아본바와 같이 환경을 저장하려면 플래시를 지워야 합니다.
당연히 부트로더도 다시 써야 겠죠..
[답변3]
memcpy 는 아시는대로 메모리 복사입니다. 플래시를 읽을 경우 이것은 메모리와
같습니다. 그래서 플래시를 읽을때는 이함수를 사용하지요..
하지만 플래시에 쓸경우는 특별한 방법으로 해야합니다. 아시겠지만,
플래시는 지우고->쓰고-> 프로그램(퓨징)이라는 과정을 거쳐야 써집니다.
그럼 memcpy함수를 쓰면 안되겠죠 이때 사용하는 것이 FlashWriteFull 입니다.
참고로 memcpy 나 FlashWriteFull, 기타 다른함수는 모두 저희가 포팅또는 작성한
것입니다.
네 부트로더 환경은 126K 부터 2K 만큼입니다.
[답변2]
헤더파일에 정의되지 않은것은 제가 게을러서 그렇습니다. 지성..
부트로더가 최초에 하는일은 메모리관련 레지스터를 설정하는 것이며
그다음에 플래시영역(0x0000 0000) 에 있는 부트로더 128K 만큼의 데이타를
SDRAM 영역(0xc000 0000)영역에 복사하는 일을 합니다.
자이제 0xc002 0000 주소는 SDRAM에 있는 부트로더의 마지막(-4) 번지이고
0x200 은 파라메타의 최대 크기이죠..
플래시는 쓰기 전에 지워야하는 디바이스입니다. 지우게 되면 모든 데이타는
0xff 을 갖습니다. 여기에 0xf8 을 쓰면 물론 0xf8 이 됩니다. 그럼 또 여기에
0x33 을 쓰면 0x30 이 됩니다. 즉 1 -> 0 으로 변경되지만 0 -> 1 로 변경되지
않습니다.
위에서 알아본바와 같이 환경을 저장하려면 플래시를 지워야 합니다.
당연히 부트로더도 다시 써야 겠죠..
[답변3]
memcpy 는 아시는대로 메모리 복사입니다. 플래시를 읽을 경우 이것은 메모리와
같습니다. 그래서 플래시를 읽을때는 이함수를 사용하지요..
하지만 플래시에 쓸경우는 특별한 방법으로 해야합니다. 아시겠지만,
플래시는 지우고->쓰고-> 프로그램(퓨징)이라는 과정을 거쳐야 써집니다.
그럼 memcpy함수를 쓰면 안되겠죠 이때 사용하는 것이 FlashWriteFull 입니다.
참고로 memcpy 나 FlashWriteFull, 기타 다른함수는 모두 저희가 포팅또는 작성한
것입니다.