MinimOSD-Extra固件源码的编译

844 阅读3分钟

很多朋友在刷MinimOSD固件的时候都会选择某位大神汉化的中文版OSD固件,但我在使用的时候发现这个版本精简了一个比较重要的功能:RSSI显示。

RSSI(Received Signal Strength Indication),接收的信号强度指示,指接收机接收遥控器的信号强弱。RSSI显示在无人机远航飞行中非常重要的作用,能有效防止飞丢。因此我决定再改进一下这一版固件。

关于MinimOSD固件源码的结构,可以搜到两篇文章讲的比较清楚,这里不叙述。链接如下,请大家自行学习:

Pixhawk OSD二次开发,实现界面定制

每天读一点儿APM(PIX)代码之四:minimosd

本文主要介绍编译流程。

环境

源码:github.com/diydrones/M…

Git Clone地址:github.com/diydrones/M…

Arduino IDE: Arduino 1.5.6-r2(由于该固件项目在2015年左右便不再维护,因此如使用最新版Arduino IDE版本如1.8.13编译时会由于GCC标准不一致造成一大堆warning和error,同理过老的版本也不行。另一个选择这个版本的原因是00xx和1.0.x以及后续部分版本都会出现"could not create a folder to store your sketchbook"的问题,这个问题我猜测可能是因为老版本IDE在发布时Win 10系统还没有发布,因此找不到Win 10系统的”文档“文件夹位置。解决"sketchbook"的一种办法是在IDE的文件夹下新建一个"portable"文件夹,但我试了很多版本,只有1.5.6-r2版本成功了)

流程

1.下载源码或使用Git Clone指令

2.导入libraries库

如准备编译MinimOsd-Extra_Copter等版本固件,将MinimOSD-Extra文件夹下libraries或librariesOK文件夹中所有内容复制进Arduino IDE的文件夹下的libraries中。注意,应在打开IDE前导入库,因为IDE只有在启动时会检测库的更新。

如准备编译MinimOsd-Alternate by Airmamaf等版本固件,应将其Source文件夹下的libraries导入。

3.设置Arduino IDE输出hex文件

这里引用了arduino ide输出hex文件的方法这篇文章:

Arduino IDE默认是不输出hex文件的,要输出hex文件保存到文件夹需要如下操作:

  1. 在Arduino IDE的File(文件)->Preferences(首选项)中找到preferences.txt文件;
  2. 用记事本打开preferences.txt,选择hex文件存放的路径(不要与源码路径相同),在最后行加入build.path=D:\Arduino\MyHexDir(可以复制此行并粘贴,存放在D盘该文件夹下,也可以存放在其他盘)
  3. 关闭Arduino IDE;
  4. 保存并关闭preferences.txt;
  5. 以上操作时不要连接Arduino开发板。
  6. 编译生成2个hex文件。一个包含Arduino引导程序,另一个不包含Arduino引导程序。
  7. 每次编译的文件都会存在这个路径下,应及时将导出的hex文件保存到其他文件夹,以免在编译其他的程序时被覆盖。

4.编译固件源码

以MinimOsd-Extra_Copter版本固件为例,在Arduino中打开ArduCAM_OSD.ino,会提示你需要将该文件单独放到一个文件夹中,点击确定即可,并手动将文件夹下其他文件都拖入这个自动新建的文件夹。

选择好开发板、处理器、编程器,点击文件下方的”对号“开始验证,编译成功后即可在上面设置好的路径下找到hex文件,并可使用ArduCAM OSD config软件刷入OSD。

注意,一个版本的hex文件对应一个版本的mcm字符文件。字符库修改可以使用Tools文件夹下的MAX7456Charwizard.jar,也可以下载AT7456字库编辑工具。但应注意使用AT7456字库编辑工具另存为新的mcm文件后,应使用MAX7456Charwizard.jar打开并保存一次,这样才能在ArduCAM OSD config中打开。