아이지 시스템에서 나온 아이스 장비인 OPENICE32 A-900 을 이용해서 smdk2410 보드에 flash 를 r/w 하는 방법을 설명하고 있다.
ARM 에서 realview ice 가 있듯이, 아이지 시스템에서 자체개발한 디버거 장비라고 할 수 있다. 또한 smdk2410 보드가 아이지 시스템에서 제작된 보드이기 때문에 특별한 설정 없이도 손쉽게 flash 에 write 가 가능하다.
smdk 2410 보드 포팅하기 문서에서도 언급했지만, AMD flash 에 저장되어 있는 s3c2410x USB Downloader 부트로더가 지워질 경우에는 타겟보드를 부팅시킬 방법이 없다. 내가 만져봤던 보드들의 경우, 거의 jtag 포트를 제공해주었기 때문에 프린터 포트에 연결해서 부트로더를 올릴 수 있었다.
smdk2410 보드의 경우에는 따로 제공되는 jtag 포트가 없기 때문에, 부트로더를 올릴 수 있는 유일한 방법은 OPENICE 를 이용하는 방법 뿐이다.
http://www.aijisystem.com/english/product/download/openice32_A900_download.htm#A900 에서 A-900 의 Install Package 를 다운받아 설치한다.
설치하면 자동으로 생성되는 메뉴얼 PDF 파일을 잘 참고하기 바란다.
설치 후에 OPENICE 와 PC 를 USB 로 연결하여 드라이버를 설치한 후, RomUp.exe 실행시켜서 OPENICE 의 펌웨어 업그레이드를 한다.
타겟보드와 OPENICE 를 케이블로 연결하고, OPENICE 와 PC 를 USB 로 연결한다. 모두 전원을 연결한 뒤, FlashUp.exe 파일을 실행한다.
flash write 할 준비를 한다. 몇가지 옵션들을 지정해 주어야 하는데, 다음은 중요한 몇가지들이다.
Device | smdk2410 |
RAM information Base | 30000000 |
RAM information Size | 04000000 |
Flash device | Am29LV800BB |
Data Width | 16 bit |
Erase | Chip |
Target Image file | u241mon.bin |
Set SMU | 체크 |
Download | 체크 |
옵션을 지정해주었다면, 'Flash → Program' 을 눌러서 write 한다.
이것은 순전히 필자의 경험을 바탕으로 작성한 글이다.
OPENICE 의 IDE 툴인 스파이더를 사용해서 디버깅을 하려고 디버깅 이미지를 (0x0) 번지에 올려보고 여러가지고 시도를 하던 중에, NOR Flash 에 있던 VPOS 이미지가 지워져 버렸다. 나는 다시 VPOS 이미지를 쓰기 위해, 점퍼 설정을 하고, 2410 테스트 프로그램을 이용해서 NOR Flash Write 를 시도했지만, Erase 하는 과정에서 에러가 발생해 버렸다.
Erase the sector : 0x80000000. E : 80000000 = ffff0006 Blank Check Error!!!
몇 번을 다시 시도해보고, 심지어 AMD Flash 에 있는 프로그램을 다시 Write 해봤지만, 소용이 없었다.
지금 현재는 이 문제를 해결한 상태이긴 하지만, 아직도 정확히 어떤 원인으로 발생한 것인지는 잘 모르겠다.
단지 내가 시도해 본 것들을 적을 것이고, 이것 중에 아마 답이 있지 않을까 싶다.
모든 작업이 끝났다. 제대로 NOR Flash 가 동작하는지 확인해보자!!
어느날 잘 사용하다가, NOR Flash 에 Write 하기 위해, 점퍼세팅을 바꾸고, AMD 로 부팅했다. 그런데, 알 수 없는 문자들과 키보드 입력이 먹지 않는 것이었다. 혹시 데이터가 깨졌나 싶어, OPENICE 로 새로 Write 를 했지만 결과는 마찬가지였다.
결국 문제는 파워(SMPS)가 문제였다. 다른 SMPS 로 연결 후에 켜보니 잘 동작했다. 기존의 쓰던 파워를 청소해주고 코드를 곧게 펴주니, 제대로 동작했다.