QEMU로 Raspberry Pi64bit+ 실시간 OS(TOPERS/FMP) 시뮬레이션


QEMU에서 실시간 운영 체제 실행


다음 Raspberry Pi3AArch64 모드 + TOPPERS/FMP 코어의 환경을 QEMU로 시뮬레이션합니다.
https://qiita.com/toshinaga/items/672c41a1f390922d5bae
무실기의 동작은 검증이 가능하다.

필요한 기재

  • Linux PC만
    구축 및 동작에 사용됩니다.
    VirtualBox+Ubuntu16.04 를 사용합니다.
  • 개발 환경의 구축

  • 컴파일러
    다음은 자유 ARMv8AArch64용 컴파일러입니다.
    https://www.linaro.org/downloads/
    Version이 사용됩니다gcc-linaro-6.3.1-2017.02-xxx_aarch64-elf.
    xxx는 PC 환경에 따라 적합한 것을 선택합니다.
    다운로드 후 적당한 곳으로 펼친 후 다음은path를 통과합니다.<解凍したディレクトリ>/gcc-linaro-6.3.1-2017.02-xxx_aarch64-elf/bin
  • 구성기
    아래에서 설정기를 시작합니다.
    https://www.toppers.jp/cfg-download.html
  • QEMU
    다음을 수행하여 QEMU를 설치하고 ~/opt/qemu/bin path를 통과합니다.
  • git clone git://git.qemu.org/qemu.git
    cd qemu
    # git checkout stable-2.12  # 2018/10/26時点の最新stableにはUART割込みにバグがありmasterを使用する
    git submodule init
    git submodule update --recursive
    cd ..
    mkdir qemu_build
    cd qemu_build
    ../qemu/configure --prefix=~/opt/qemu --target-list=aarch64-softmmu
    make
    make install
    

    구축


    정보 라이브러리를 가져와 fmp를 구축합니다.
    git clone https://github.com/YujiToshinaga/RPi64Toppers.git
    cd RPi64Toppers/fmp
    mkdir -p cfg/cfg
    mv <コンフィギュレータを解凍したディレクトリ>/cfg cfg/cfg
    chmod 755 cfg/cfg/cfg
    mkdir build
    cd build
    perl ../configure -T rpi_arm64_gcc
    make fmp
    

    부팅


    구축된 fmp를 인수로 지정하고 다음 작업을 수행합니다.
    qemu-system-aarch64 -M raspi3 -m 256 -serial null -serial mon:stdio -kernel fmp -nographic -smp 4
    
    QEMU를 종료할 때 Ctrl-a, x를 실행합니다.

    GDB(디버거)를 사용하여 시작


    GDB에서 QEMU에 연결하여 GDB 명령에 기반한 단계 실행, 중단, QEMU 명령에 기반한 레지스터 내용의 참조 등 디버깅을 할 수 있습니다.
    터미널을 열고 QEMU를 시작합니다.
    qemu-system-aarch64 -M raspi3 -m 256 -serial null -serial mon:stdio -S -gdb tcp::1234 -nographic -smp 4
    
    다른 터미널을 열고 GDB를 실행하고 FMP를 실행합니다.
    aarch64-elf-gdb fmp
    (gdb) target remote localhost:1234
    (gdb) load
    (gdb) monitor system_reset
    (gdb) continue
    

    좋은 웹페이지 즐겨찾기