Renode 仿真模拟
仿真配置文件
# @scripts/stm32f103.resc
cat stm32f103.resc
修改默认启动仿真程序
# 修改该行目标程序位置
$bin=@target/thumbv7m-none-eabi/debug/hello
启动 Renode CLI
打开终端,切换至项目根目录;
启动 Renode CLI 后会打开一个新的终端窗口;
renode
启动 STM32 仿真器
start @scripts/stm32f103.resc
Renode 在 GDB 连接后立即启动整个模拟。
machine StartGdbServer 3333 true
GDB 连接 Renode
# 启动 GDB
# 默认启动
# arm-none-eabi-gdb target/thumbv7m-none-eabi/debug/hello
# 指定当前目录下的.gdbinit配置文件启动
arm-none-eabi-gdb -iex 'add-auto-load-safe-path .' -q target/thumbv7m-none-eabi/debug/blinky
# 连接 Renode
target remote :3333
重启仿真器
machine Reset
清除仿真程序
Clear
查看所有外设
peripherals
系统总线挂钩
- 在访问特定外设进行读取后执行 Python 脚本
(machine) sysbus SetHookAfterPeripheralRead gpioPortA "print '%s peripheral has been accessed to read'"
- 在访问特定外围设备进行写入之前执行 Python 脚本
(machine) sysbus SetHookBeforePeripheralWrite peripheral "print '%s peripheral has been accessed to write'"
参考文档
renode 指南
renode 代码仓库
在 Renode 中使用 Python
Renode 开启 GDB 调试
使用 GDB 进行调