2017-04-24 69 views
1

我与分布式嵌入式系统,一个是在射频通信,并位于相距甚远的工作。由于这个原因,我想在开发时自动刷新这些新固件,它们都连接到一个linux盒子和一个stlink编程器,它有swd连接获取手臂 - 无 - EABI-gdb来加载ELF,继续,然后退出命令行

我想要做的是加载固件在bash脚本 arm-none-eabi-gdb file.elf -ex "target extended-remote ip:3333" -ex "load" -ex "continue" -ex "quit" 每一台设备上使用的命令,这个问题是我不能让程序运行,而试图退出GDB重新启动,并连接到另一个。

任何建议是非常赞赏,我会优选像GDB一个命令,做负载,继续,然后退出完全。使设备运行新的固件。

回答

1

我找到了解决这个。 “kill”命令将重置设备,在这种情况下,它将在没有附加调试器的情况下启动,这很好,因为如果需要的话,稍后可以将其附加。

最后的命令变成了: arm-none-eabi-gdb $bin -q -ex "set confirm off" -ex "target extended-remote $ip:3333" -ex "load" -ex "kill" -ex "quit"

这将加载路径$ bin中的二进制文件,在与地址$ IP设备。 -q将删除版本信息,稍微清理终端。设置确认关闭将删除gdb有时要求提出的问题。

希望这是对别人有用!

相关问题