도와주세요!!
글 수 15,339
2011.05.02 19:47:04 (*.125.250.101)
29355
안녕하세요.
NOR Flash 관련하여 질문이 있습니다.
현재 AU1380(MIPS) Reference Board에서 작업하고 있구요
보드 구매시 제공되는 Autoboot Source 를 수정하여 사용중입니다.
단순히 NOR Booting 하여 NOR의 Text Section에서 동작하고 있습니다.
이때 NOR(256Mb) Flash의 사용하지 않는 맨 마지막 Sector에 임의의 데이터를 지우고 쓰고 싶은데요.
Source Code안에 NOR Flash Erase/Write Driver를 구현하여 동작시키는게 가능한가요?
즉, 다시 말해 NOR Flash 안에서 코드가 동작하며 같은 Flash의 다른 Sector를 지우고 쓰는게 가능한가? 를 알고 싶습니다.
현재 그렇게 구현하여 동작시켜 보니 Erase/Write command를 날리는 순간 Code 영역의 데이터가 깨져서
(Read가 잘못 동작, Board를 Reset하여 다시 접근해보면 원래 데이터로 읽혀짐)
전혀 엉뚱한 곳으로 점프하는 현상이 나타나고 있습니다.
이와 관련하여 고수님들의 조언 부탁 드립니다.
그럼 즐거운 하루 보내세요.. ^^
당연히 안됩니다.
자기가 동작하는 영역을 지우고 쓰는 것은 안됩니다.
말씀하신 것중에 의문은...
보통 Nor 부팅을 하더라도 ram 상에 올려서 동작을 시키는 것이 보통입니다.
stack 이 필요하니까요.
nor text section 에서 동작한다는 것은 섹션을 나눠서 text 는 nor 에 스택은 memory 상에서 동작시키시는 건가요?
cpu 에서 코드를 읽을때... 퓨징중이면 어디를 읽더라도 상태값이나 쓰기중인 데이타나 어드레스 값이 나오므로
바로 죽을겁니다. 램으로 옮기셔서 동작을 시켜주셔야 합니다.