PX4开发指南-12.2.2.UAVCAN固件升级

电子调速器(ESC)矢量控制代码库 (Pixhawk ESC 1.6 and S2740VC)

下载ESC代码:

git clone https://github.com/thiemar/vectorcontrol

cd vectorcontrol

刷新UAVCAN启动引导程序

PIxhawk ESC 1.6在通过UAVCAN设备更新固件之前, 首先要求刷新UAVCAN的启动引导程序。为了生成启动引导程序,运行:

make clean && BOARD=px4esc_1_6 make -j8

启动引导程序生成之后,其image文件存放路径为 firmware/px4esc_1_6-bootloader.bin, OpenOCD的配置文档为 openocd_px4esc_1_6.cfg。可以通过 如下教程初始化ESC的启动程序。

编译主要的二进制(.bin)文件Compiling the Main Binary

BOARD=s2740vc_1_0 make && BOARD=px4esc_1_6 make

这将会生成两个UAVCAN的节点固件,它们都支持ESCs。它们固件image文件存放路径为com.thiemar.s2740vc-v1-1.0-1.0..bin 和org.pixhawk.px4esc-v1-1.6-1.0..binn。

Sapog 代码库 (Pixhawk ESC 1.4和 Zubax Orel 20)

下载Sapog代码库:

git clone https://github.com/PX4/sapog

cd sapog

git submodule update --init --recursive

烧写UAVCAN启动引导程序

在通过UAVCAN更新固件之前,ESC需要烧写UAVCAN引导加载程序。引导程序可以使用如下指令构建:

cd bootloader

make clean && make -j8

cd ..

启动引导程序的image文件存放路径为 bootloader/firmware/bootloader.bin, OpenOCD的配置文档为openocd.cfg。可以通过 此处教程初始化ESC的起始引导程序。

编译主要的二进制(.bin)文件

cd firmware

make RELEASE=1 # RELEASE is optional; omit to build the debug version

注意:一些较新版本的GCC导致链接期间的segfaults报错,4.9版本目前测试可用。该固件映像将位于路径firmware/build/io.px4.sapog-1.1-1.7..application.bin,其中是任意数字和字母序列。有两个版本的Zubax Orel20硬件(1.0和1.1版本)。确保将执行程序复制到后续描述中的正确文件夹。ESC固件将检查硬件版本并在两个产品(Pixhawk ESC

1.4和Zubax Orel 20)上工作。

Zubax GNSS

请参考 项目网页 去学习如何生成和刷新固件。Zubax GNSS 出厂时就带有支持UAVCAN的启动引导程序,因此其固件可以通过UAVCAN使用统一方式进行更新,具体更新方式如下所述。

Autopilot的固件安装

UAVCAN节点的文档命名遵循约定的命名方式,这种命名方式允许Pixhawk更新网络内所有的UAVCAN设备,无需考虑是哪个制造商生产的。上述步骤产生的固件文件必须要复制到SD卡或PX4 ROMFS的正确的位置,以确保设备能够很好的更新。

固件image名称通常是:

-.-...bin

例如:

com.thiemar.s2740vc-v1-1.0-1.0.68e34de6.bin

然而,由于空间和性能的限制(命名不能够超过28个字符),UAVCAN固件升级需要将这些文件名分割存储在下面的目录结构里:

/fs/microsd/fw//./-...bin

例如

s2740vc-v1-1.0.68e34de6.bin

/fs/microsd/fw/io.px4.sapog/1.1/sapog-1.7.87c7bc0.bin

基于ROMFS的更新遵循以下的模型,但是文件名中包含_前缀,因此我们添加的固件在:

/etc/uavcan/fw//./_-...bin

将二进制文件放入PX4 ROMFS

最终生成的文件的位置为:

S2740VC ESC: ROMFS/px4fmu_common/uavcan/fw/com.thiemar.s2740vc- v1/1.0/_s2740vc-v1-1.0..bin

Pixhawk ESC 1.6: ROMFS/px4fmu_common/uavcan/fw/org.pixhawk.px4esc-v1/1.6/_px4esc-v1-1.6..bin

Pixhawk ESC 1.4: ROMFS/px4fmu_common/uavcan/fw/org.pixhawk.sapog-v1/1.4/_sapog-v1-1.4..bin

Zubax GNSS v1: ROMFS/px4fmu_common/uavcan/fw/com.zubax.gnss/1.0/gnss-1.0..bin

Zubax GNSS v2: ROMFS/px4fmu_common/uavcan/fw/com.zubax.gnss/2.0/gnss-2.0..bin

注意ROMFS/px4fmu_common目录将会挂载在Pixhawk的/etc目录下。

开始固件升级过程

当使用的是 PX4飞行控制栈时, 在电源配置(Power Config)部分中启用UAVCAN,并在尝试升级UAVCAN固件之前要重启系统。

或者可以通过以下方式在NSH上手动启动UAVCAN固件升级进程:

uavcan start

uavcan start fw

px4 uavcan linux,PX4开发指南-12.2.2.UAVCAN固件升级相关推荐

  1. px4 uavcan linux,PX4开发指南-12.2.1.UAVCAN Bootloader

    PX4开发指南-12.2.1.UAVCAN Bootloader 安装UAVCAN启动程序 无人机控制器局域网络(Unmanned Aerial Vehicle Controller Area Net ...

  2. Linux SID 开发指南

    Linux SID 开发指南 1 前言 1.1 编写目的 介绍Linux 内核中基于Sunxi 硬件平台的SID 模块驱动的详细设计,为软件编码和维护提供基 础. 1.2 适用范围 内核版本Linux ...

  3. 全志Tina Linux MPP 开发指南

    全志Tina Linux MPP 开发指南支持百问网T113 D1-H哪吒DongshanPI-D1s V853-Pro等开发板 1 简述 整理 MPP sample 使用说明文档的目的是:使 MPP ...

  4. Linux 汇编语言开发指南

    Linux 汇编语言开发指南 肖文鹏 (xiaowp@263.net), 北京理工大学计算机系硕士研究生 本文作者 肖文鹏是北京理工大学计算机系的一名硕士研究生,主要从事操作系统和分布式计算环境的研究 ...

  5. linux epoll 开发指南-【ffrpc源码解析】

    linux epoll 开发指南-[ffrpc源码解析] 摘要 关于epoll的问题很早就像写文章讲讲自己的看法,但是由于ffrpc一直没有完工,所以也就拖下来了.Epoll主要在服务器编程中使用,本 ...

  6. Rockchip Linux PCIe 开发指南

    Rockchip Linux PCIe 开发指南 目录 文章目录 Rockchip Linux PCIe 开发指南 @[toc] 芯片资源介绍 RK3566 RK3568 RK3588 控制器 PHY ...

  7. Linux TWI开发指南

    文章目录 Linux TWI开发指南 1 前言 1.1 文档简介 1.2 目标读者 1.3 适用范围 2 模块介绍 2.1 模块功能介绍 2.2 相关术语介绍 2.2.1 硬件术语 2.2.2 软件术 ...

  8. 【正点原子Linux连载】第三十五章 Linux内核顶层Makefile详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

    1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...

  9. 【正点原子MP157连载】第一章 Ubuntu系统安装-摘自【正点原子】【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

最新文章

  1. JSON总结(java篇)
  2. C语言实现最大堆max_heap(附完整源码)
  3. mybaties总结+hibernate总结
  4. bzoj 1596 电话网络
  5. Jack Dorsey二度卸任推特CEO,原CTO接棒,立即生效!
  6. 04 ansible其他常见模块(yum模块、service模块、mount模块、cron模块、user模块、group模块)...
  7. 大型情感剧集Selenium:4_老中医教你(单/多/下拉框)选项定位 #华为云·寻找黑马程序员#
  8. React.js 小书 Lesson24 - PropTypes 和组件参数验证
  9. python写音乐_Python国产库推荐之musicpy:让你用代码来写音乐
  10. wkhtmltopdf中文显示空白或者乱码方框
  11. android手机api等级_Android Api级别
  12. Python实例练手项目源码 - 关不掉的窗口
  13. 如何获取某个网站IP地址?
  14. linux 服务配置 ppt,Linux网络服务器配置与管理.ppt
  15. zynq 移植ubuntu_ROS ZYNQ移植
  16. 软件测试技术之【自动化测试】
  17. C++ Armadillo矩阵库的安装与基本用法
  18. 用计算机问答,计算机应用基础问答题
  19. 常用的服务器操作命令
  20. 软考有意义吗?软考容易过吗?

热门文章

  1. 小白兔想的飞鸽传书(173dmba)安卓版
  2. 并植入QTE系统的局域网聊天程序
  3. 飞鸽传书软件很多人都会认为他已经做到了
  4. 分别标记区段的 飞鸽传书 左、右端
  5. 如何隐藏win32 console application的console窗口
  6. 学VBSCRIPT从学起
  7. 解开 Windows 下的临界区中的代码死锁
  8. 程序员上班都在做什么?
  9. 程序员职业自由6个阶段,你处于哪个?
  10. python测量血压_python距离测量的方法