登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
二手市场
外包服务
模飞软件
硬件设备
飞行体验
学院
云课堂
问答
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
资源
素材
下载
企业
无人机论坛
»
论坛
›
无人机DIY专区
›
飞控开发区
›
APM飞控
›
APM固件太大放不下,咋办?
返回列表
发新帖
查看:
1136
|
回复:
0
APM固件太大放不下,咋办?
[复制链接]
179262183
179262183
当前离线
积分
1704
窥视卡
雷达卡
33
主题
861
帖子
1704
积分
金牌飞友
金牌飞友, 积分 1704, 距离下一级还需 1296 积分
金牌飞友, 积分 1704, 距离下一级还需 1296 积分
积分
1704
飞币
841
注册时间
2017-9-3
发消息
发表于 2023-1-14 07:27:06
|
显示全部楼层
|
阅读模式
最近在定制一款基于STM32H743的飞控,一般在PCB布局前我都会根据原理图先移植一下APM固件,等到编译没有问题之后再布局布线,以防原理图有问题导致前功尽弃。昨晚花了半个小时完成了硬件定义文件的编写,直接用目前最新的Copter-4.3.1版本源代码进行编译,由于APM固件的移植已经比较熟练了,因此直接就编译通过了,不过最新版本固件的大小着实让我意外(如下图所示),2M的Flash竟然都快占满了。同时我也庆幸,土豪级的配置就是省心,这种情况要是Flash小一点的单片机就放不下了。
谁知道,今天下午在“怒飞垂云无人机交流群”里就有朋友在问一个固件编译报错的问题,经过讨论发现是由于Copter-4.3.1版本固件在默认配置情况下对于以STM32F405为主控的飞控来讲太大了,放不下,从而编译报错。解决方法也很简单:
关闭用不到的功能,不将其编译到固件中。
APM的多旋翼固件在这方便做的不错,只需要在“ArduCopter/APM_config.h”中将“xxx_ENABLED”宏定义改为“DISABLED”即可。如下图所示,我们关闭了“降落伞”控制功能:
重新编译后的输出如下:
对比本文的第一张图片可以发现,节省出来了248436 - 247132 = 1304字节的空间。节省出来的空间不大,可见“降落伞控制”功能的复杂度不高。
根据群里朋友的描述,他最终将“自动调参”功能禁用掉后成功将APM固件塞入了 “STM32F405”中,那么我们看看在我们的飞控中单独禁用“自动调参”功能可以节省出多少空间:
从上图可知,最终节省空间为:261996 - 247132 = 14864字节,远大于通过禁用“降落伞控制”功能带来的收益,这也从侧面说明“自动调参”功能的复杂度不低。同时我们也发现,裁剪完后固件还是大于1M字节,按理说STM32F405也应该依然放不下啊,其实这是由于APM源代码中已经有不少根据单片机容量自动裁剪功能的宏定义,如下图所示,如果Flash小于1M,则ADSB功能将自动地不会编译到固件中。
综上所述,得益于不断优化的代码结构,通过对APM固件功能的裁剪来适配小容量飞控的方法是可行的。固件太大放不下,就裁剪它的功能!
APM
,
放不下
,
太大
,
固件
,
不下
相关帖子
•
这段时间一直不怎么舒服,声音也是奇奇怪怪的。随便录一下出个简单的apm调参视频
•
飞控 APM/Ardupilot 简介,无人机开发实践 - 第 3 期 RISC-V Linux 系统开发公开课
•
【DIY大撕教程】准备篇 第三集 加速度计校准 实战零基础APM组无人机
•
飞蝶F4V3飞控与INAV5.1固件的固定翼焊接、调参教程
•
Ardupilot固件初级视频教程---做有价值的事情
•
一阶低通滤波(LPF)的原理及应用(以APM/PX4飞控为例)
•
第一讲:梦创飞控固件烧录教程
•
蓝易云 - Ubuntu搭建APM固件编译环境教程!
•
从零搭建自主pix无人车(四):Apm和ROS通信
•
新越700直升机+零一空天 X6飞控+ARDUPILOT固件,apm、PIX直升机
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表