본문 바로가기
NDS Inside

DSerial2 Demo

by irmus 2007. 8. 22.
DSerial2는 8051 프로세서를 내장하고 있으며, 이 프로세서에 어떤 펌웨어를 올리느냐에 따라 다양한 기능을 하도록 설정할 수 있다. 펌웨어를 직접 작성하면 좋겠지만 우선 간단히 동작여부를 테스트 해 보기 위해 Natrium42가 공개한 데모 코드를 다운로드 받아 돌려보기로 한다.

데모 코드는 natrium42의 wiki에 가면 다운로드 받을 수 있다. 우선 가장 최신 버젼인 1.1 beta 2를 다운로드 받아 컴파일 해 보았다.
참고로 현재 개발환경은 devkitARM R20 버젼이다.
압축을 풀면 mcu, nds, tools 3개의 폴더가 나온다. mcu는 앞에서 말한 8051용 펌웨어이고, nds는 NDS용 코드, tools는 hex2bin 유틸리티를 포함하고 있다.
nds 폴더에서 make 하면 다음과 같은 에러가 나온다.
d:/MyDocuments/NDS/DSerial/dserial-1.1-beta2/nds/arm9/source/card_spi.c:58: error: 'REG_EXEMEMCNT' undeclared (first use in this function)
찾아보면 REG_EXEMEMCNT 라는 레지스터는 없고, 대신 REG_EXMEMCNT 라는 녀석이 있다. devkitPro 최신 버젼에서 오자가 수정된 것이 아닐까 싶다. 일단 오류 수정하고 빌드하면 잘 수행된다.

빌드 결과물은 dserial.ds.gba, dserial.nds 파일이 만들어진다. SuperCard에서는 dserial.ds.gba 파일을 dserial.sc.nds로 이름을 바꿔서 사용하면 된다.
이 데모를 수행하려면 다음의 절차를 거쳐야 한다.
  1. 이 바이너리를 micro SD에 저장한다. micro SD는 FAT-16으로 포맷되어 있어야 하며 저장하는 폴더 위치는 어느 곳이어도 무관하다.
  2. micro SD를 SuperCard에 삽입하고, NDS에 SuperKey, SuperCard를 끼운 상태로 부팅한다.
  3. 화면에 SuperCard 메뉴가 나타나면 SuperKey를 뽑아내고 DSerial2 카트를 끼운다.
  4. SuperCard 메뉴에서 dserial.sc.nds 파일을 선택하고 수행한다.
사용자 삽입 이미지

초기화면. 초기화가 잘 되었슴을 보여준다.

사용자 삽입 이미지

가속도 센서 값을 읽은 모습. Y 버튼을 누르면 한번씩 읽는다.