02 NDS 및 ARM
소개
NDSL과 NDS 개발 관련 자료 및 ARM에 대한 내용을 모아 놓은 페이지다. NDS에 자작한 커널을 올려서 WIFI를 통해 웹서버를 구축하는 것이 목표이다.
- 현재( 2007/09/03 04:03:44 ) 시분할 멀티 태스킹 커널 제작 완료. 04 NDS 커널(Kernel) 만들기 참고
- 현재( 2007/09/28 01:39:45 ) NDS 노트패드 터치 스크린 문제 수정 완료. 아래 03 Advanced KKAMAGUI Notepad 참고
-
현재( 2007/10/03 17:50:29 ) libfat에 폴더 및 파일 명이 UNICODE로 표시되지 않는 문제 발견
- 고민 후에 조치 방안 결정( 아직은 미정 )
자작 홈브루(Homebrew) 및 라이브러리(Library)
- 00 KKAMAGUI Notepad : 순수하게 ARM9 코드만 이용하여 만듬
- 01 NDS 한글 출력 라이브러리 : NDS에서 한글 및 영문을 출력할 수 있도록 해주는 라이브러리
-
02 NDS 윈도우 시스템(Windows System) : NDS에 MFC와 같은 스타일의 윈도우를 사용할 수 있도록 해주는 라이브러리
- 02-1 NDS 에디트 박스(Edit Box) : 02 NDS 홈브루(Homebrew) - NDS 윈도우 시스템(Windows System)을 이용해서 NDS용 Edit Box를 구현함
- 03 Advanced KKAMAGUI Notepad : 위의 노트패드를 업그레이드 시킨 버전. ARM7과 ARM9 코드 같이 사용.
- 04 NDS 커널(Kernel) 만들기 : NDS에 타이머 인터럽트를 통한 멀티태스킹 기능을 추가한 간단한 커널
- 05 MP3 Player 만들기 : NDS에 Helix 라이브러리를 이용해서 만든 MP3 Player
- 06 소프트웨어 리셋 라이브러리(Software Reset Library) : 소프트웨어적으로 리셋을 할 수 있도록 해주는 라이브러리
- 07 KNG(KKAMAGUI NDS Graphic) File 변환 툴 : NDS 윈도우 시스템에서 사용되는 KNG 파일 포맷으로 이미지를 변환하는 프로그램
- 08 KKAMAGUI NDS Shell : NDS 윈도우 시스템 라이브러리를 이용해서 만든 Shell 프로그램
- 09 KKAMAGUI Defence Tower : Defence Tower 형식의 간단한 홈브루 게임
개발 툴
- devkitARM_r20-win32.exe : 현재( 2007/08/08 19:58:13 )까지 최신 버전의 Devkit Pro 설치 파일
- Devkit_설치_폴더.zip : 현재( 2007/08/08 20:33:31 )까지 최신 버전의 Devkit Pro 업데이터 + 설치파일
- libfat-src-20070127.tar.zip : 원래의 libfat 소스에 내 장비에 맞도록 파일을 추가하여 컴파일한 소스. 내 장비 소스가 최신임.
- dswifi-src-0.3.2.tar.tar : wifi 소스
- R4DS-IO-interface.rar : 내 장비에 맞는 libfat용 IO 함수 소스
- switchsetup.exe : MP3 or WAVE 파일을 Raw 파일 또는 다양한 파일 포멧으로 인코딩하는 프로그램
NDS 개발 관련 문서
- 00 NDS 개발 킷(Devkit Pro) 설치
- 00 NDS 홈브루 프로젝트 생성
- 01 libfat 업그레이드
- 02 NDS Hardware Spec And Memory Map
- 03 비디오 모드 제어(Video Mode Control)
- 04 인터럽트 제어(Interrupt Control)
- 05 파워 컨트롤(Power Control)
- 06 키패드(KeyPad) 및 터치스크린(Touch Screen) 제어
- 07 문쉘(Moon shell)의 터치스크린(Touch Screen) 소스
- 08 사운드(Sound) 제어
- 09 무선통신(WIFI) 제어
- 10 타이머(Timer) 제어
- 20 ARM7/ARM9 커스텀 프로젝트(Custom Project) 만들기
- 25 ARM7/ARM9 라이브러리 프로젝트(Library Project) 만들기
- 21 libnds 라이브러리 분석
- 22 타이머(Timer)를 이용한 프로파일러(Profiler) 만들기
- 23 Soft Reset 분석
- 24 WIFI 라이브러리 설치 및 사용방법
- 26 윈도우 라이브러리(Window Library) 사용을 위한 프로젝트(Project) 만들기
- 참고. 디버그 영역을 이용한 가상 IPC 통신 : ARM9과 ARM7이 공유하는 영역을 사용하여 가상의 IPC를 구현하는 방법
- 참고. 터치스크린(Touch Screen)의 튐 현상 해결방안 : 터치스크린 튐 문제의 해결
- 참고. 롬 파일에 데이터(사운드, 이미지 등등) 파일 포함 방법
- 참고. Software Reset 방법 : 홈브루 실행 후 다시 부트 메뉴로 돌아가는 방법
- 참고. NDS 속도에 대한 몇가지 테스트
- 참고. 3 in 1 Expansion Pack 사용법
NDS 사용 관련 문서 및 툴
- BatchDPG12KNew.zip : BatchDPG 1.2K 버전에 1.3 Beta 버전의 Library를 덮어 씌운것
- 참고. 동영상 인코딩(BatchDpg) : BatchDPG를 이용하여 동영상을 인코딩하는 방법
- 참고. DPG 파일 포맷
- 참고. DLDI 패치 방법
ARM 개발 관련 문서
롬(ROM) 파일 분석 및 생성 과정 분석
참고 문서
- 14128_ArchitectureManaual.pdf : ARM 메뉴얼
- DUI0041C_SoftwareDevelopment.pdf : ARM C Calling Convention에 대한 메뉴얼
참고 사이트
- http://palib.info/forum/index.php : NDS 홈 브루 개발을 편리하게 해주는 라이브러리. libnds의 기능을 확장해주는 역할을 하며 여러가지 기능 제공
- http://nocash.emubase.de/gbatek.htm : NDS에 대한 방대한 하드웨어적 자료 제공
- http://www.dev-scene.com/NDS : NDS 개발에 대한 좋은 자료들
- http://kineox.free.fr/DS/ : NDS용 Linux를 포팅하는 사이트
- http://www.disinterest.org/NDS/Python25.html : NDS용 파이썬
- http://drunkencoders.com/ : 수 많은 예제와 홈 브루들이 있는 개발 사이트
- http://forum.gbadev.org/index.php?c=8 : DSDev 포럼
- http://www.bottledlight.com/ds/ : NDS Tech Wiki
- http://leesix.idomz.net/blog/132 : NDS 개발에 대한 많은 링크들
- http://mdxonline.dyndns.org/archives/2007/03/moonshell_ver171_dl.shtml : Moon Shell 개발자 사이트
- http://blog.so-net.ne.jp/Rudolph/ : 3in1 Expansion Pack 을 만든 개발자 사이트
- 에뮬레이터
- http://spazioinwind.libero.it/linoma/ideas_pages/downloads.html : 에뮬레이터인 iDeas가 있는 사이트
- http://nocash.emubase.de/gba.htm : no$gba 에뮬레이터가 있는 사이트
- http://dualis.1emu.net/files/index.html : dualis 에뮬레이터가 있는 사이트
ToDo
-
Timer를 통한 Task Switching 과 User Call에 대한 Task Switching 처리 넣기
- User Call에 대한 Task Swiching은 Thumb 모드로 돌아올 수 있도록 Return Address + 1 만 해주면 될듯 한데... 나중에 테스트 해보자.
- 일단 먼저 User Call 에서 Next Task를 복원부터 해보자. 저장은 잘 되어있으니 복원이 성공한다면 끝난 것이다.
- DTCM, ITCM에 대한 정보 CP15 Cache에 대해서 보기
- Shared RAM 사용법 넣기
- libfat 유니코드 지원하도록 수정하기
History
Last edited on 05/15/2008 22:43 by kkamagui
Comments (0)