QEMU로 Raspberry Pi64bit+ 실시간 OS(TOPERS/FMP) 시뮬레이션
2832 단어 RaspberryPiQEMURTOSTOPPERS
QEMU에서 실시간 운영 체제 실행
다음 Raspberry Pi3AArch64 모드 + TOPPERS/FMP 코어의 환경을 QEMU로 시뮬레이션합니다.
https://qiita.com/toshinaga/items/672c41a1f390922d5bae
무실기의 동작은 검증이 가능하다.
필요한 기재
구축 및 동작에 사용됩니다.
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를 설치하고
~/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
Reference
이 문제에 관하여(QEMU로 Raspberry Pi64bit+ 실시간 OS(TOPERS/FMP) 시뮬레이션), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshinaga/items/1af5948b45d62cc20509텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)