四、pixhawk default.cmake

前几天说道,买的乐迪的pixhawk内存只有1M大小,不够装下pixhawkv的所有固件,在调试光流的时候由于固件里没有编译光流的代码进去而导致光流的这一部分参数没有,所以需要自己去改PX4-Autopilot/boards/px4/fmu-v2/default.cmake的东西。
得益于OURB等程序解耦
真的非常佩服PX4程序的整个框架,任务之间耦合度非常低,OURB确实是个好东西,消息发布订阅的服务器,这让我想到了ROS的消息机制和MQTT通信协议,不过目前还没看到移植它到其它开发板的。所以在整个程序里,少了某些文件的情况下,先不提功能实现问题,编译起来是不会报错就对了,我觉得这种编程的思维和习惯非常好,十分值得我去学习和思考。PX4程序的解耦貌似一直在不断进行,这可能是它固件更新的方向之一吧,还有一点不得不提的是之前看过一个博客,具体链接我忘了,是关于PX4后台程序与前台程序的看法,他认为基本的驱动啊姿态解算啊是属于后台程序,然后可以通过nsh终端调用的用户任务属于前台程序,我觉得这个想法也很有意思。以后有时间一定要折腾一下。
default.cmake决定了那些东西被编译
关于如何实现的,可以看看PX4-Autopilot/cmake文件夹下面的配置,看不太懂,前面配置好的总的编译模块添加了,编译路径之后,实际上编译器是去寻找子模块下面的CmakeList.txt去进一步编译。。。反正改这个.cmake文件就对了。
关于编译了那些东西,我们可以看PX4-Autopilot/boards/px4/fmu-v2文件夹下面的.cmake文件,比如default.cmake就运行make px4_fmu-v2_default
这个东西修改了可以随时去gaythub上看源码改回来

然后我们打开这个文件
在这里插入图片描述大概是这个样子的
分别来看看
BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin
他的bootloader是直接链接的编译后文件,这个bootloader确实比较有意思,他的源码在gaythub上,bootloader涉及到启动一些初始化程序之类的东西,这个以后有遇到相关问题的时候再做研究,目前还未怎么接触过。

刷固件后,QGC里打开nsh终端输入help可以看到命令,改.cmake的配置后通过那个来分析,对比一下就知道啦

试了一下,BOOTLOADER ${PX4_SOURCE_DIR}/ROMFS/px4fmu_common/extras/px4fmuv3_bl.bin这句话可有可无的样子,可以节省一点内存空间,链接的是给diy板子的玩家的bootloader引导程序(然而如果没有提前烧入这个是下不了程序的),一般我们买来的都是刷好了bootloader的,自己搞板子就要自己刷bootloader了,不然连不上
ROMFSROOT指向px4fmu_common,包含启动脚本的文件夹
TESTING也试了一下是部分测试的程序,对应src/modules下部分模块的测试文件
CONSTRAINED_FLASH字面意思是内存限制,去掉后固件大小会变大很多,也就是内存优化吧,不知道指向哪里
UAVCAN_INTERFACES,UAVCAN是一个机器人的通信框架,具体怎么实现什么的我也不了解https://blog.csdn.net/handsomehong/category_10675064.html?utm_source=&spm=1001.2101.3001.4235这个博客有教学,不过收费。。。这个的意思是选择接口的意思,不会对固件大小产生影响,应该是有一个默认值

其它的也懒得说,没什么好说的,慢慢看,包含的大部分是src文件夹的内容,src就是主要源码咯。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值