hl1itj / nds-ide Goto Github PK
View Code? Open in Web Editor NEWThis project is to develop IDE for NintedoDS homebrew software. (Eclipse based IDE with gdb support, RTOS running on Nintendo DS, wifi download + usb download)
This project is to develop IDE for NintedoDS homebrew software. (Eclipse based IDE with gdb support, RTOS running on Nintendo DS, wifi download + usb download)
trampoline arm port가 대부분 osek feature중 Counter & Alarm을 지원 안하는 것처럼 보이는데 확인이 필요.
context switch 후 thumb bit가 set 되어야 하는데 되지 않아서 thumb instruction을 arm으로 동작해서 exception나는 문제
아마 task init을 할 때 pc에 +1을 해야하나 체크해야함
http://lshsblog.blogspot.kr/2011/04/hole-punching_18.html
위 문서를 보면 홀펀칭 기법에 대한 설명에 대해 나와있음
본문에 나와있지만 글쓴이가 해석을 하였어도 원문과 함께보길 권장함
믿에 참고할 만한 싸이트가 있다면 추가로 알려주세요
Branch is not directory. this is workspace for avoiding complict with other commitor's code.
Do not clean the branch when you make a new branch. otherwise you will make broken source code tree, if you are merging/rebasing to other branch.
매일 해야할일, 매일 한일 정리해서 로그처럼 이어보겠습니다.
NDS를 이용한 임베디드 개발환경 구축시 필요한 사항은
이상의 사항을 처음 리눅스 환경을 처음 접해서 설정하기 위해서는 별도의 교육이 필요한 관계로
수업시 원활한 수업 진행을 위해서 실습에 필요한 배경 사항을 사전에 설정하여 VMWare 이미지로 배포하고자 한다.
이를 통해 실습자가 해야 할 일은
이상으로 기타 제반사항을 깔끔하게 정리해줄 수 있게 된다.
다들 아시다시피 현재는 branch를 디렉토리처럼 쓰면서 branch가 엉망이 되어 버렸습니다.
git의 fast-forward 부분도 꼬여버려서 master에 타 branch를 merging하거나 rebase를 하기가 힘든 상황입니다.
해결 하기 위해서는 앞으로는 branch를 새로 만들 때 기존의 파일을 다 지우고 디렉토리처럼 쓰시면 안 됩니다.
branch의 용도는 큰 기능을 만들 때 남들과 코드 충돌을 막기 위해 잠시 분리하거나 다른 버전을 유지 (windows 7, windows 8 과 같이)할 때만 써주세요. 완전 다른 것을 만든다면 타 repository를 만들어서 link 하여 주시거나 directory를 만들어서 거기에 작업해주세요.
http://dogfeet.github.com/articles/2012/progit.html
이 document를 읽어주세요.
I have used prebuilt one I downloaded.
Surely, I tried to build GOIL. unfortunately I can't do this due to requiring M library.
if anyone know this, please let me know how to build GOIL
Thumb로 빌드 된 c function에서 arm으로 작성된 assembly function으로 점프하는데 자동적으로 thumb->arm으로 전환하지 않고 CPSR의 thumb bit가 체크된 체로 arm 코드를 실행 하려해서 이상 동작함.
빌드 옵션에는 -mthumb-interwork -mthumb가 포함 된 상황
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_action.c -o build/obj/tpl_os_action.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_error.c -o build/obj/tpl_os_error.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os.c -o build/obj/tpl_os.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_alarm.c -o build/obj/tpl_os_alarm.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_event.c -o build/obj/tpl_os_event.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_it.c -o build/obj/tpl_os_it.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_rez.c -o build/obj/tpl_os_rez.c.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../os/tpl_os_task.c -o build/obj/tpl_os_task.c.o
arm-none-eabi-gcc -E -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug ../../../machines/nds/nds_arm9_bootstrap_stage1.S -o build/obj/nds_arm9_bootstrap_stage1.S.i
arm-none-eabi-as -g -mthumb -mthumb-interwork build/obj/nds_arm9_bootstrap_stage1.S.i -o build/obj/nds_arm9_bootstrap_stage1.S.o
arm-none-eabi-gcc -E -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug ../../../machines/nds/nds_tpl_sleep.S -o build/obj/nds_tpl_sleep.S.i
arm-none-eabi-as -g -mthumb -mthumb-interwork build/obj/nds_tpl_sleep.S.i -o build/obj/nds_tpl_sleep.S.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c ../../../machines/nds/nds_tpl_stubs.c -o build/obj/nds_tpl_stubs.c.o
arm-none-eabi-gcc -E -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug ../../../machines/nds/tpl_machine_arm_generic.S -o build/obj/tpl_machine_arm_generic.S.i
arm-none-eabi-as -g -mthumb -mthumb-interwork build/obj/tpl_machine_arm_generic.S.i -o build/obj/tpl_machine_arm_generic.S.o
arm-none-eabi-gcc -E -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug ../../../machines/nds/tpl_stacks.S -o build/obj/tpl_stacks.S.i
arm-none-eabi-as -g -mthumb -mthumb-interwork build/obj/tpl_stacks.S.i -o build/obj/tpl_stacks.S.o
arm-none-eabi-gcc -E -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug ../../../machines/nds/tpl_switch_context.S -o build/obj/tpl_switch_context.S.i
arm-none-eabi-as -g -mthumb -mthumb-interwork build/obj/tpl_switch_context.S.i -o build/obj/tpl_switch_context.S.o
arm-none-eabi-gcc -g -Wall -O2 -march=armv5te -mtune=arm946e-s -fomit-frame-pointer -ffast-math -mthumb -mthumb-interwork -std=c99 -DARM9 -DTHUMB_INTERWORK -I/home/djjeon/projects/nds-ide/devkitARM/libnds/include -I../../../machines/nds -Inds_simple -I../../../os -I../../../com -I../../../debug -c nds_simple/tpl_app_config.c -o build/obj/tpl_app_config.c.o
arm-none-eabi-gcc -o nds_simple_exe build/obj/nds_simple.c.o build/obj/tpl_os_alarm_kernel.c.o build/obj/tpl_os_event_kernel.c.o build/obj/tpl_os_it_kernel.c.o build/obj/tpl_os_rez_kernel.c.o build/obj/tpl_os_task_kernel.c.o build/obj/tpl_os_timeobj_kernel.c.o build/obj/tpl_os_kernel.c.o build/obj/tpl_os_action.c.o build/obj/tpl_os_error.c.o build/obj/tpl_os.c.o build/obj/tpl_os_alarm.c.o build/obj/tpl_os_event.c.o build/obj/tpl_os_it.c.o build/obj/tpl_os_rez.c.o build/obj/tpl_os_task.c.o build/obj/nds_arm9_bootstrap_stage1.S.o build/obj/nds_tpl_sleep.S.o build/obj/nds_tpl_stubs.c.o build/obj/tpl_machine_arm_generic.S.o build/obj/tpl_stacks.S.o build/obj/tpl_switch_context.S.o build/obj/tpl_app_config.c.o -g -lnds9 -L/home/djjeon/projects/nds-ide/devkitARM/libnds/lib -Wl,-Map,.map -specs=ds_arm9.specs
arm-none-eabi-objcopy -O binary nds_simple_exe nds_simple_exe.arm9
ndstool -c nds_simple_exe.nds -9 nds_simple_exe.arm9
Nintendo DS rom tool 1.50.1 - Jun 19 2012
by Rafael Vuijk, Dave Murphy, Alexei Karpenko
rm build/obj/tpl_stacks.S.i build/obj/tpl_machine_arm_generic.S.i build/obj/nds_arm9_bootstrap_stage1.S.i build/obj/nds_tpl_sleep.S.i build/obj/tpl_switch_context.S.i
NDS를 이용한 임베디드 실습을 할 때,
위 작업을 할 경우 NDS와 실습자의 PC간의 연결이 필요한데,
NDS에서는 Wifi를 통한 소켓통신을 지원한다.
이 경우 실습자의 PC에서 무선랜을 이용하여 접속하지 않을 경우,
실습자의 PC에서 외부 AP에 접속되어 있는 NDS로의 소켓 접속을 어떻게 하는가의 문제가 생기게 된다.
이를 편리하게 해결할 수 있다면 NDS를 이용한 프로그램 개발시 편이성이 대폭 증대될 것으로 기대된다.
학과사무실 옆에 서버실에 서버를 설치하려고했으나
교내 서버 라우터와 서버실 라우터가 다르기때문에 접속이 되지 않음
고로 현재 서버 프로그램을 교내서버실에서 사용 불능
예로
ping을 서버실에서 연구실, 101호,102호로 보내봤지만 ping 보내기 실패
ap를 통해 nds에서 port번호를 connect 하는 것도 실패함
우선 임시로 연구실 내에 리눅스 pc 로 서버를 활용하기로 하였음
ps : 학과에서 사용하는 서버가 교내용이 아닌 사설 서버 ( 외부접속용 )로 포트를 차단한 것으로 보임
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.