e-puck2快速入门-13.Epuck2机器人(STM32)固件更新
机器人可能会时不时地进行官方固件更新,重要的是让机器人使用最新的固件进行更新,以获得可能的新功能、改进和错误修复。
板载编程器运行GDB服务器,因此我们使用GDB命令上传新固件,因此需要工具链将新固件上传到机器人。
以下步骤说明了如何更新主微控制器固件:
1.下载包含对机器人进行编程所需的工具链和脚本的软件包:
2.下载主微控制器出厂的最新版本固件(26.04.23), 或使用您的自定义固件
3.解压软件包并将固件文件(带elf扩展名)放入上述步骤1中下载的软件包目录中;请注意,此目录中只能存在一个elf文件
4.连接 USB 电缆并打开机器人
5.从上述步骤1中下载的软件包目录里运行脚本(.bat文件或者.sh文件):
Windows:双击program.bat
Linux/Mac:在终端中发出以下命令./program.sh。如果您遇到权限错误,请发出sudo chmod +x program.sh命令让脚本可执行。请注意脚本需要pyserial模块,所以通过发出安装它pip3 install pyserial
上传完成后,您将看到如下图所示的输出: 最后几行应包含条目".data",
这意味着上传成功。如果终端窗口仍然打开,您可以关闭它。
故障处理
如果遇到问题,请尝试拔下并重新插入USB数据线并重启机器人,然后重试。program_manual_conf.bat如果仍有问题,请尝试在文件(Windows) 或(Linux/Mac)顶部手动指定串行端口program_manual_conf.sh,然后运行此脚本而不是program.bat/program.sh.
如果您收到类似 的错误./program.sh:
line 27: gcc-arm-none-eabi-7-2017-q4-major/bin/arm-none-eabi-gdb: Permission denied,
请尝试发出sudo chmod -R +x gcc-arm-none-eabi-7-2017-q4-major(对于Linux/Mac用户)然后重试。
固件更新下载失败问题解决方案
问题:You can’t do that when your target is ‘exec’\n
参考此文,进行驱动更新,http://rosrobot.cn/?id=203
查看设备管理器,
问题分析:从设备管理器里面可以看到,GDB调试端口是COM4,而不是咱们上面错误显示的COM3,COM口选择错误,导致了下载失败。
解决方案就只需要改对COM 端口即可。
方案:
用记事本打开program.bat文件
修改COM口,将%port%改为COM4
关闭记事本,再次双击program.bat进行固件下载
下载成功
通过上位机测试,显示连接成功。