现在常见的开源飞控已经有很多,穿越机的有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软件



第二步:安装交叉工具链、设置环境变量以上这些图片在
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协议。
注:第一次写博客,如有错误欢迎指正,感恩,谢谢!

如何成功移植cleanflight、INAV到keil开发环境相关推荐

  1. 移植MPL库(基于STM32CubeIDE开发环境)

    移植MPL库(基于STM32CubeIDE开发环境) 目前在开发利用MPU9250做9轴的应用的时候,查到的资料基本上都是基于STM32F4平台,MDK开发环境.MDK需要license,STM32前 ...

  2. 【MM32F5270】Keil开发环境搭建

    本文完整记录了--如何从零搭建MM32F5270 Keil开发环境以及如何编译运行MM32F5270 SDK中的hello_world示例.本文写作过程中参考了一些链接,具体可以在本文末尾找到,感兴趣 ...

  3. 在win7系统 Keil 开发环境下 Jlink 仿真器连不上解决办法

    Keil 开发环境下 Jlink仿真器,在win7系统下,仿真器连不上解决办法 进入设备管理器,发现黄色问号,即windows不识别设备,分别右键点击属性,更新驱动程序.在安装keil目录下自动查找, ...

  4. 第6章 C语言和Keil开发环境

    通过上一章中的汇编例子可以看到:使用汇编语言编写程序需要对计算机硬件非常熟悉,并且一种计算机汇编语言的程序很难在另一种计算机中运行,再有汇编语言程序结构不是特别清晰,可阅读性比较差,因此人类又开发了高 ...

  5. 熊磊:成功移植 OpenHarmony 到多套开发板,是最开心的事

    编者按:在 OpenHarmony 生态发展过程中,涌现了大批优秀的代码贡献者,本专题旨在表彰贡献.分享经验,文中内容来自嘉宾访谈,不代表 OpenHarmony 工作委员会观点. 熊磊 华为技术有限 ...

  6. 首发 成功移植OpenHarmony到龙芯开发板,代码开源

    通过一周的时间,我们成功地将OpenHarmony 3.0移植到智龙开发板上,板载芯片1C300B. 1C300是龙芯基于 GS232 处理器核的高性价比单芯片系统,内置浮点处理单元,支持多种类型内存 ...

  7. ARM开发(6)系统移植初步(搭建交叉开发环境)

    先和大家聊一聊我对于系统移植学习的感悟,之前在老师的带领,我们移植系统的时候执行了一条条指令,但是总感觉哪里有一些问题又说不出来,这些指令都解决了很多问题:但是说到底,自己却不明白这些指令到底是怎么去 ...

  8. Keil开发环境的搭建送安装包

    文章目录 交叉编译简介 编译工具链MDK 安装MDK 安装软件keil 激活keil 安装固件库 交叉编译简介 在开发ARM应用程序时,产生的目标代码是要运行在ARM指令架构的CPU/MCU 上的,但 ...

  9. NXP LPC1768最小系统板Keil开发环境流程演示

    关键字:NXP LPC1768 最小系统 Keil MDK 开发环境 J-Link 仿真器 概述:以 MDK4.74版本配合 J-Link 仿真器为例演示一下最小系统板的调试过程. 首先运行 J-Li ...

  10. 搭建keil开发环境,完成一个基于STM32汇编程序的编写

    一.环境配置与搭建 1.准备安装 下面附上百度网盘链接,请自行下载: mdk531的安装: 链接:https://pan.baidu.com/s/1ttrDhv6kXgAvPiYINf9iGw 提取码 ...

最新文章

  1. Ubuntu10下MySQL搭建Amoeba_读写分离
  2. Week1 Team Homework #2 from Z.XML-Introduction of team member with photos
  3. [Swift]LeetCode673. 最长递增子序列的个数 | Number of Longest Increasing Subsequence
  4. 批量备SAP中CBO ABAP 程序代码为TXT文件备份
  5. Why SAP SQL view is not recommended to use in SQL ?
  6. python的循环语句机制_Python-for循环的内部机制
  7. NS2相关学习——可靠的MANET应用程序的Gossip协议分析
  8. java数组大小界限,Java数组索引超出界限
  9. Python爬取新浪英超曼联文章内页--bs4,json,txt和csv以及编码
  10. html菜单栏向左展开与收起,网页左侧固定菜单栏的展开与收起
  11. 中国各民族名称的罗马字母拼写法和代码-GBT 3304-1991
  12. 表格,表单,文本域,下拉框,单选框,复选框,按钮
  13. C++实现费氏数列算法
  14. 从源码分析Redis分布式锁的原子性保证
  15. 计算机格式化为ntfs,如何将u盘重新格式化为NTFS格式
  16. AutoCAD系统变量和环境变量
  17. Unity il2cpp LinuxInterop_dlopen Error
  18. 帝国时代3如何快速实现低成本训练领事馆其它兵种
  19. 【techQA】如何在Mac OS 11 Big Sur or M1芯片Mac下开启蓝牙Apt-X
  20. Java基础语法——选择排序、冒泡排序以及二分查找法和Arrays类的使用

热门文章

  1. 最新云优YUNUCMS企业网站管理系统
  2. vue实现下载pdf文件
  3. php聊天功能界面,php实现聊天室功能完整代码
  4. android 读取图片字节流,Android屏幕截图直接读取screencap流来实现
  5. matlab 2010 win10,win10系统运行matlab2010找不到指定的程序的教程介绍
  6. Unity3d 技巧(9) 游戏上线必备 适配Steam 安装包需要用到的资料
  7. lumion自动保存_全是踩过的坑,20条新人必看的Lumion良好操作习惯
  8. CCNA考试题库中英文翻译版及答案2
  9. QUIC协议是如何做到0RTT加密传输的(addons)
  10. 高德地图 热力图 清空地图