2014-09-05 6 views
1

팔 어셈블리를 배우려고합니다. 실제로 알고 있다고 말할 수있는 첫 번째 프로그래밍 언어가 될 것입니다. 사실 저는 지금 당장 기계 언어를 처음 배우기 시작했습니다.ARM 어셈블리, 첫 번째 명령어 업로드

제 질문은 : 프로세서에 첫 번째 명령을 어떻게로드합니까?

실험 할 프로그래밍 플랫폼은 게임 보이 발전입니다. 그것은 arm7tdmi 프로세서가 있고 나는 플래시 포트가 없기 때문에 링크 포트 (칩의 d, di, do, dc 핀에 연결되어 있음)를 통해 코드를 업로드하는 데 arduino를 사용하려고합니다. 알아내는 데 도움이 필요합니다. 어떤 프로그램을 업로드하는 법. arduino 물건과 gameboy bios 이외의 다른 누군가의 소프트웨어를 사용하지 않고.

제 질문은 :BIOS 칩을 gba에서 꺼내면이 핀을 통해 지침을 업로드 할 수 있습니까? 아니면 프로세서가 일반적으로 한 번 지시 사항을 찾은 다른 장소가 있습니까? 또한 통신을 어떻게 받아 들일 수 있으며 한 번에 한 비트 씩 명령을 업로드 할 수 있습니까?

답변

3

이 포트를 사용하는 메커니즘을 멀티 부팅이라고하며, arduinio는 올바른 프로토콜을 준수해야만 해당 작업을 수행 할 수 있습니다. 당신은 당신이 그 다음 실행할 수 있도록 바이오스에 대한 데이터의 시작 부분에 바로 서명을 가지고 가지고 GBA 당신에게 좋은

을 wouldnt가 할 수 있다면

이제 첫 번째 명령을 실행하는 바이오스를 제거 당신이 거기에서 점프해야 할 그 기억의 첫번째 단어에.

기본적으로 gba는 베어 메탈을 배우기위한 훌륭한 플랫폼이지만,이 작업을 수행하는 방식이나 말하는 것은 이런 종류의 학습을 수행하는 최선의 방법은 아닙니다.

에뮬레이터/시뮬레이터의 visualboyadvance를 사용하고 부팅 할 때의 장애물을 극복하고 해당 환경에서 픽셀을 그릴 필요가있는 첫 번째 프로그램을 실행해야합니다 (gba에서 배터리가 부족할 때 깜박임). 가장 쉬운 방법이지만, 플래시 카트가 없으면 아직 신경 쓰지 마라.)

시각적 인 소년의 전진을 위해 올바른 서명이 있어야 할 수도 있고 그렇지 않을 수도 있지만 정보와 예제가 있습니다. 예를 들어 헤더가 작동해야하는 것을 보여주는 도구 및/또는 오른쪽 공간은 작동하도록 바이너리를 패치합니다.

실제 하드웨어의 경우 타이밍 및 풀업 및 해당 직렬 포트에 대한 권한이 있어야 할뿐만 아니라 실행할 멀티 부트 프로그램을 얻으려면 올바른 헤더가 있어야합니다. 그것은 확실히 gba를위한 초보자 물건이 아닙니다. 그들이 아직 밖에있는 플래시 카트를 찾으십시오, 잠시 동안 좋아하는 것은 ezflash 3 in 1 gba 크기가 아니라 ds 크기의 하나입니다. 그러나 ds 플래시 카트가있는 ds가 필요합니다. ds 플래시 카트는 훨씬 쉽게 도착할 수 있습니다 (단, 개발은 조금 어렵지만 그렇게 많이하지는 않습니다). 또한 m3 또는 무엇이든 sdcard 또는 micro sd 카드라고 불리는 사람들이 있습니다. 멋진 프로그래머가 필요하지 않습니다 (누구의 소프트웨어도 빨리 나오지 않습니다).

당신은 그들이

에 의해 온 또는 단지 TIVA의 C 런치 패드 또는 다른 $ 5 $ (10) 팔 보드

최선을 쉽게 얻을 수 있는지에 대한 DS 라이트 (하나 이상) 및 카트를 고려해 볼 수 있습니다 먼저 명령어 세트 시뮬레이터를 무료로 사용하기 만하면됩니다.이 글을 읽은 후 몇 분 동안 개발할 수 있습니다. 예를 들어 github에서 thumbulator를 검색하십시오. 또는 gdb에서 armulator를 사용하십시오.

짧은 대답 당신은 당신이하려고하는 것과 같은 종류의 하드웨어가 잘못되었습니다. 베어 메탈 프로그래밍을 배우기에 아주 좋은 하드웨어입니다 (사용하기에 힘든 플래시 카트를 얻을 수있는 한). 필자가 선호하는 솔루션은 플래시 카트에 부트 로더를 설치 한 다음 상단 포트를 8n1 직렬 포트로 바꾸는 것입니다.이 포트는 링크 케이블을 반으로 줄여서 전선에 연결하고 직렬 케이블을 ftdi USB에 연결합니다. 광산이나 다른 사람을 찾았을 때 부트 로더를 한 번만로드하면됩니다. 오랜 시간 동안 카트리지를 제거하거나 다시 프로그램 할 필요가 없습니다. 전원을 껐다가 다시 켜거나 (리셋 버튼을 추가 한 경우 재설정) 순차적으로 프로그램을 다운로드하여 실행하십시오.

+0

양자 택일로 당신이 그것을 제거하고 그것을 소켓으로 대체 할 수있는 prom prom를 찾을 수 있다면, prom를위한 prom 프로그래머를 얻으십시오 (조건을 벗어나는 경우에 다른 prom를 구매해야 할 수도 있고, otp이거나), 그 소켓은 아주 오래 지속되지 않습니다. arduino는 관련이 없습니다. –

+0

arduinos는 3.3V가 아닌 5V이며, 포트가 3.3V 인 gba 모드이기 때문에 전압 변환기없이 5v arduino를 사용하면 gba 또는 arduino에 약간의 손상을 줄 수 있다는 것을 기억하십시오. 한 핀이 양방향이라고 생각합니다. 전압 전환을 시도 할 때 삶을 더욱 고통스럽게 만드는 멀티 부팅 모드에서 3.3v arduino를 구입하는 것이 더 쉽습니다. –

+0

글쎄, 나는 바이오스 칩을 제거하는 것에 대해 생각하고 있었다. 왜냐하면 나는 프로세서 자체에 더 관심이 있었고, 내 자신의 종류의 바이오스를 작성했기 때문이다. 아마도 그 가치보다 더 많은 번거 로움. 네, 거기에 전압 차이가 있고 회로를 나누는 전압을 이미 설정했습니다 –