Giter VIP home page Giter VIP logo

hl1itj / nds-ide Goto Github PK

View Code? Open in Web Editor NEW
17.0 17.0 5.0 146.66 MB

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)

Shell 0.10% C 33.28% Objective-C 1.75% Assembly 3.82% C++ 51.36% Python 0.56% Logos 0.02% Java 0.13% Vim Script 0.01% Makefile 1.73% Batchfile 0.01% HTML 0.12% XC 0.02% XS 0.02% SourcePawn 0.02% Groff 6.57% GDB 0.01% Objective-C++ 0.05% Smarty 0.43%

nds-ide's People

Contributors

fred22 avatar uessie avatar yukult400 avatar yukult400g avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nds-ide's Issues

context switching후 cpsr 잘 못 되는 이슈

context switch 후 thumb bit가 set 되어야 하는데 되지 않아서 thumb instruction을 arm으로 동작해서 exception나는 문제

아마 task init을 할 때 pc에 +1을 해야하나 체크해야함

Branch usage is not correct.

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.

What to do & What did

매일 해야할일, 매일 한일 정리해서 로그처럼 이어보겠습니다.

Construct NDS Development Enviroment - Using VMWare

NDS를 이용한 임베디드 개발환경 구축시 필요한 사항은

  • NDS 어플리케이션을 개발하기 위한 DevkitPro 설치(라이브러리, 컴파일러, 링커 등등 포함)
  • 코딩과 빌드를 편하게 하기 위한 IDE(통합 개발 환경) 설치
  • 코드의 버전 관리를 위한 Git 설치, 설정

이상의 사항을 처음 리눅스 환경을 처음 접해서 설정하기 위해서는 별도의 교육이 필요한 관계로
수업시 원활한 수업 진행을 위해서 실습에 필요한 배경 사항을 사전에 설정하여 VMWare 이미지로 배포하고자 한다.

이를 통해 실습자가 해야 할 일은

  1. VMWare 설치
  2. 실습을 위해 작성된 VMWare 이미지 다운로드
  3. VMWare를 이용해 이미지 플레이
  4. Github에서 프로젝트 clone
  5. 실습 시작!

이상으로 기타 제반사항을 깔끔하게 정리해줄 수 있게 된다.

브랜치 이용 문제

다들 아시다시피 현재는 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를 읽어주세요.

How to build GOIL??

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

ARM/THUMB interwoking 이 되지 않음

Thumb로 빌드 된 c function에서 arm으로 작성된 assembly function으로 점프하는데 자동적으로 thumb->arm으로 전환하지 않고 CPSR의 thumb bit가 체크된 체로 arm 코드를 실행 하려해서 이상 동작함.

빌드 옵션에는 -mthumb-interwork -mthumb가 포함 된 상황

Build log

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

TCP Connect to external AP : Between PC-DS Connect by Wifi

NDS를 이용한 임베디드 실습을 할 때,

  • 작성한 NDS 롬 파일을 NDS로 전송하는 작업
  • 디버거를 이용한 원격디버깅

위 작업을 할 경우 NDS와 실습자의 PC간의 연결이 필요한데,
NDS에서는 Wifi를 통한 소켓통신을 지원한다.

이 경우 실습자의 PC에서 무선랜을 이용하여 접속하지 않을 경우,
실습자의 PC에서 외부 AP에 접속되어 있는 NDS로의 소켓 접속을 어떻게 하는가의 문제가 생기게 된다.

이를 편리하게 해결할 수 있다면 NDS를 이용한 프로그램 개발시 편이성이 대폭 증대될 것으로 기대된다.

교내 서버실 이용문제

학과사무실 옆에 서버실에 서버를 설치하려고했으나

교내 서버 라우터와 서버실 라우터가 다르기때문에 접속이 되지 않음

고로 현재 서버 프로그램을 교내서버실에서 사용 불능

예로

ping을 서버실에서 연구실, 101호,102호로 보내봤지만 ping 보내기 실패

ap를 통해 nds에서 port번호를 connect 하는 것도 실패함

우선 임시로 연구실 내에 리눅스 pc 로 서버를 활용하기로 하였음

ps : 학과에서 사용하는 서버가 교내용이 아닌 사설 서버 ( 외부접속용 )로 포트를 차단한 것으로 보임

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.