mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-11-16 12:34:33 +00:00
92 lines
2.3 KiB
Batchfile
92 lines
2.3 KiB
Batchfile
@echo off
|
|
cls
|
|
|
|
echo /*
|
|
echo * Copyright (c) 2006 - 2025, RT-Thread Development Team
|
|
echo *
|
|
echo * SPDX-License-Identifier: Apache-2.0
|
|
echo *
|
|
echo * Change Logs:
|
|
echo * Date Author Notes
|
|
echo * 2025/04/29 Wangshun first version
|
|
echo * 2025/05/14 Optimized Improved robustness and error handling
|
|
echo */
|
|
echo.
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
set "CONFIG_FILE=qemu_config.txt"
|
|
set "CPU_CONFIG_FILE=cpu_config.txt"
|
|
set "DEFAULT_QEMU_DIR=E:\XuanTieCore\6.QEMU"
|
|
set "ELF_PATH=%CD%\rtthread.elf"
|
|
|
|
:: Load QEMU directory from config file or set default
|
|
if exist "!CONFIG_FILE!" (
|
|
set /p QEMU_DIR=<"!CONFIG_FILE!"
|
|
if not defined QEMU_DIR set "QEMU_DIR=!DEFAULT_QEMU_DIR!"
|
|
) else (
|
|
set "QEMU_DIR=!DEFAULT_QEMU_DIR!"
|
|
)
|
|
|
|
:: Load CPU parameter from config file or set default
|
|
if exist "!CPU_CONFIG_FILE!" (
|
|
set /p CPU_PARAM=<"!CPU_CONFIG_FILE!"
|
|
if not defined CPU_PARAM set "CPU_PARAM=e901"
|
|
) else (
|
|
set "CPU_PARAM=e901"
|
|
)
|
|
|
|
:: Prompt for new QEMU directory
|
|
set /p "USER_INPUT=Enter new QEMU directory (Enter for default: !QEMU_DIR!): "
|
|
if defined USER_INPUT (
|
|
set "USER_INPUT=!USER_INPUT: =!"
|
|
if not "!USER_INPUT!"=="" (
|
|
set "QEMU_DIR=!USER_INPUT!"
|
|
echo !QEMU_DIR!>"!CONFIG_FILE!"
|
|
)
|
|
)
|
|
|
|
:: Validate QEMU path
|
|
set "QEMU_PATH=!QEMU_DIR!\qemu-system-riscv32.exe"
|
|
if not exist "!QEMU_PATH!" (
|
|
echo Error: QEMU executable not found at "!QEMU_PATH!".
|
|
echo Please verify the QEMU directory and try again.
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
:: Prompt for new CPU parameter
|
|
echo Current CPU parameter: !CPU_PARAM!
|
|
set /p "CPU_INPUT=Enter new -cpu parameter (Enter for default): "
|
|
if defined CPU_INPUT (
|
|
set "CPU_INPUT=!CPU_INPUT: =!"
|
|
if not "!CPU_INPUT!"=="" (
|
|
set "CPU_PARAM=!CPU_INPUT!"
|
|
echo !CPU_PARAM!>"!CPU_CONFIG_FILE!"
|
|
)
|
|
)
|
|
|
|
:: Validate ELF file
|
|
if not exist "!ELF_PATH!" (
|
|
echo Error: rtthread.elf not found at "!ELF_PATH!".
|
|
pause
|
|
exit /b 1
|
|
)
|
|
|
|
:: Display QEMU version
|
|
echo.
|
|
"!QEMU_PATH!" --version
|
|
|
|
:: Run QEMU
|
|
echo.
|
|
"!QEMU_PATH!" -machine smartl -kernel "!ELF_PATH!" -nographic -cpu !CPU_PARAM!
|
|
if !ERRORLEVEL! neq 0 (
|
|
echo Error: QEMU failed to run. Check configuration or paths.
|
|
pause
|
|
exit /b !ERRORLEVEL!
|
|
)
|
|
|
|
echo QEMU terminated.
|
|
pause
|
|
endlocal
|