문제

FPU 지원이있는 266MHz와 32MB RAM을 사용하여 ARM 9 프로세서에서 작업 중입니다. Linux를 실행합니다. 사이클 수를 프로파일 링하고 에뮬레이터에서 직접 크로스 컴파일 된 실행 파일을 실행하고 싶습니다. 에뮬레이터를 쉽게 만들기 위해 사용 가능한 OpenSource 프로젝트가 있습니까? 커스텀 에뮬레이터를 만들기 위해 얼마나 많은 변경/코드/노력을 작성해야합니까? 킥 스타트를 얻기위한 다른 참조에 대해 튜토리얼을 제공한다면 좋을 것입니다.

감사합니다.

맑은.

도움이 되었습니까?

해결책

당신은 살펴 봐야합니다 QEMU. 그러나 이해가 안 돼요, 왜 완전한 에뮬레이터가 필요합니까?

에뮬레이터없이 이미 많은 프로파일 링을 할 수 있습니다. 시스템 에뮬레이터가있는 것으로 기대되는 이익은 무엇입니까?

다른 팁

프로세서 나 전체 컴퓨터 만 모방하고 싶습니까?

Emulate CPU는 매우 쉽고 모든 CPU 레지스터가 포함 된 구조를 정의하고 RAM을 시뮬레이션하기위한 배열을 작성한 다음 다음과 같이 모방합니다.

    cpu_ticks = 0;  // counter for cpu cycles 

    while (true) {

      opcode = RAM[CPU.PC++]; // Fetch opcode and increment program counter

      switch (opcode) {

        case 0x12: // invented opcode for "MOV A,B"
          CPU.A = CPU.B;
          cpu_ticks += 4; // imagine you need 4 ticks for this operation
          set_cpu_flags_mov();
          break;

        case 0x23: // invented opcode for "ADD A, #"
          CPU.A += RAM[CPU. PC++]; // get operand from memory
          cpu_ticks += 8;
          set_cpu_flags_add();
          break;

        case 0x45: // invented opcode for "JP Z, #"
          if (CPU.FLAGS.Z) CPU.PC=RAM[CPU.PC++]; // jump
          else CPU.PC++; // continue
          cpu_ticks += 12;
          set_cpu_flags_jump();
          break;
        ...
      }

      handle_interrupts();

    }

전체 머신 에뮬레이션이 훨씬 어렵습니다 ... LCD 컨트롤러, 메모리 매핑 레지스터, 메모리 뱅크 컨트롤러, DMA, 입력 장치, 사운드, I/O 물건을 모방해야합니다 ... 아마도 BIOS에서 덤프가 필요합니다. 작동 시스템 ... ARM 프로세서를 모르지만 파이프 라인, 캐시 및 그러한 것들이 있다면 타이밍이 더 복잡해집니다.

모든 하드웨어 부품이 완전히 문서화되어 있다면 문제가 없지만 Engineer를 역 엔지니어링하거나 에뮬레이션 된 기계의 작동 방식을 추측 해야하는 경우에는 어려움을 겪을 것입니다.

여기에서 시작하십시오 : http://infocenter.arm.com/help/index.jsp 프로세서의 "기술 참조 설명서"를 다운로드하십시오.

일반적인 에뮬레이션 질문 : http://www.google.es/search?q=how++write+ an+emulator

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top