Skip to content

远程烧录程序

liuzikai edited this page Jan 17, 2022 · 3 revisions

要实现远程烧录程序,需要机器人装载 Jetson Nano 并连接 ST-Link 到开发板上。远程烧录程序的原理并不复杂:Jetson Nano 运行的是完整 Ubuntu 系统,在局域网内,通过 ssh 将本地编译的 elf 文件复制到 Jetson,再从 Jetson 调用 OpenOCD。相关脚本放置与另一个工程 Meta-Remote 中。

硬件要求

  • 机器人装载 Jetson Nano 并上电
  • Jetson Nano 连接到实验室局域网
  • Jetson Nano 连接 ST-Link 到开发板上

配置 SSH Key

Meta-Remote 通过 SSH 连接到 Jetson,配置 SSH Key 后则不需要每次连接时手动输入密码。

如果之前没有在本地生成过 SSH Key,在终端中运行以下命令:

ssh-keygen -t rsa -C "你的邮箱"

Passphrase 可留空(一路回车即可)。该命令会在 $HOME/.ssh 中生成一对 RSA 密钥,其中 id_rsa 是私钥,id_rsa.pub 是可以分发的公钥。如果你之前已经生成过 SSH Key,则可以跳过此步,直接复用现有的 SSH Key 即可。

使用以下命令将 SSH Key 部署至 Jetson Nano。

ssh-copy-id -i ~/.ssh/id_rsa.pub <Jetson Nano User>@<Jetson Nano IP>

<Jetson Nano User> 替换为对应 Jetson Nano <Jetson Nano IP> 的用户名和 IP。已经配置过的 Jetson Nano 可以在战队 ONES Wiki 中找到相关信息。

CLion 工程设置

Meta-Remote 作为 Meta-Embedded 的一个 Submodule。Clone Meta-Embedded 后,运行以下命令:

git submodule update --init

CLion - Edit Configurations... - 将 Executable 更改为 Meta-Remote 文件夹下的 local_openocd.sh,Program argument 设置为:

<Jetson Nano User>@<Jetson Nano IP> flash <elf 文件路径>

点击运行即可。

Jetson Nano 侧配置

安装 OpenOCD:

sudo apt-get install -y openocd

用户目录下 clone Meta-Remote

更新历史

  • 2021.02.11 初次发布。liuzikai
  • 2022.01.17 将 Meta-Infantry 修改为 Meta-Embedded。liuzikai
Clone this wiki locally