如何成功移植cleanflight、INAV到keil开发环境

现在常见的开源飞控已经有很多,穿越机的有CC3D兼容cleanflight、beatflight。但是如果追求先进导航体验 话可以下载cleanflight的一个分支iNav fork固件。INAV是专注导航、如多旋翼的定点、定高、返航、航线规划等。相对PIX、APM这样在复杂的操作系统上开发的开源系统,cleanflight、INAV版本中使用来比较简单的操作系统,从开发的人数上讲PIX4有14人,beatflight有9人,cleanfligt有5人,INAV有4人(截止2018年9月)。在特技飞行上beatflight是一种抢先版,在开源网站上也看出有大牛兼顾beatflight和cleanflight这两个版本的开发,而INAV的导航部分则是移植了PIX4的导航算法。

对于初学者来说,仅仅学习PIX这样开源代码风格需要很长一段时间、同时搭建它的开发环境也是很耗精力的一件事。大多数人对keil开发环境都比较熟悉、包括调试。而在Linux下的操作包括Makefile/交叉工具链的环境搭建都相对陌生,也比较复杂。最近琢磨实现了对开源代码cleanflight、INAV两种开源代码的移植,成功移植到keil开发环境下并设计相匹配的硬件,可实现JTAG在线调试、并且支持cleanflight-configurator/INAV-configurator两种地面站。

在移植之前我们先搭建cleanflight、inav在windows开发环境搭建。根据官网说明:
第一步安装cygwin软件
在这里插入图片描述
在这里插入图片描述

选择GCC相关工具
在这里插入图片描述

选定vim编译器

在这里插入图片描述
在这里插入图片描述

第二步:安装交叉工具链、设置环境变量以上这些图片在
https://github.com/cleanflight/cleanflight/tree/master/docs/development/assets


设置环境变量

第三步:检查交叉工具链版本、下载代码
检查交叉工具链版本

克隆源代码

在这里插入图片描述
如上图所示,下载完代码选择目标可进行编译。
可能你会疑惑搭建这个开发环境的意义是什么?
要完成移植需要了解编译某个目标的整个过程,最重要的是需要建立某个目标所需要的源文件,另外的方法是研读Makefile,看看整个源码的编译过程,方便移植。

我选择的的目标板是PORT103R,再次截图一部分编译过程。

在这里插入图片描述

在编译完后以后,在下载的源代码中找到在编译过程中出现的源代码待用。
第四部:搭建keil的开发环境
因为源代码在linux上开发的,所使用的是GCC交叉工具链,因此我们需要将keil的开发环境也配置成gcc交叉工具链,而非keil自带的ARM编译工具。使用自带的工具会出现很多的错误,因为很多汇编语言两者都不兼容。
这部分有很多相应博客教程,在此不再说明。
移植成功后可根据自己实际情况使用不同的传感器,包括mup6050、mup6000、mpu6500,以下是我移植好的cleanflight、INAV两个版本代码。

在这里插入图片描述

以上两部分截图,一是穿越机cleanflight的源码支持cleanflight的地面站,另一种是在导航方面表现强大的INAV代码,支持INAV-configuratorI,两种代码支持同一个硬件,都是支持mavlink协议。
注:第一次写博客,如有错误欢迎指正,感恩,谢谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值