pixhawk新增编译选项、板级配置的方法

来源:互联网 发布:美工刀片生锈了怎么办 编辑:程序博客网 时间:2024/06/17 18:45
origin: http://blog.csdn.net/qiuzhizhecsd/article/details/68938597

pixhawk本身的硬件资源有限,咱们可能需要将pixhawk移植到咱们自己的板子上,但是又想不影响原版pixhawk的使用,这就需要增加编译命令了。可是网上查不到如何增加编译命令的帖子,所以本人只有自己研究,经过几天的各种实验,终于成功的新增了新板子的编译命令。

以下讲解基于pixhawk1.0.1版本


先讲原理:


编译命令是否存在取决于makefiles文件夹中的config_*.mk文件是否存在:
    例如我们编译pixhawk的命令是:px4fmu-v2_default ,之所以有这个命令是由于存在文件Firmware/makefiles/config_px4fmu-v2_default.mk,这个文件删了这个命令就无效了.

config_px4fmu-v2_default.mk中包含这句话:

    ROMFS_OPTIONAL_FILES =$(PX4_BASE)/Images/px4io-v2_default.bin  #这句话制定了所对应的IO处理器文件

makefile会根据.mk文件的名称寻找io芯片的mk文件:

    例如:config_px4fmu-v2_default.mk对应的是config_px4io-v2_default.mk,就算将ROMFS_OPTIONAL_FILES的值设置为别的,也改变不了对应关系。

config_*.mk文件中包含应用层模块的裁剪信息,nuttx操作系统的配置是在board_*.mk中:

    敲命令"makearchives",就会将每个board_*.mk编译出来,例如board_px4fmu-v2.mk就是v2版本硬件的fmu芯片的操作系统配置。

具体选择哪个board_*.mk文件是由config_*.mk文件的名字决定的:

    例如config_px4fmu-v2_default.mk对应着board_px4fmu-v2.mk

makefile会根据board_*.mk文件的名字去寻找板子的配置两个文件夹:

    1.Firmware/nuttx-configs/             #例如board_px4fmu-v2.mk对应其中的px4fmu-v2文件夹

    2.Firmware/src/drivers/boards/          #例如board_px4fmu-v2.mk对应其中的px4fmu-v2文件夹

Firmware/Image文件夹中的*.prototype与board_*.mk文件名称对应:

    例如,board_px4fmu-v2.mk与px4fmu-v2.prototype对应


再讲步骤:


1.例如新增命令,make px4fmu-makekam_default

2.在Firmware/makefiles文件夹中新增config_px4fmu-makekam_default.mk与config_px4io-makekam_default.mk,修改其中的bin文件名称,和drivers/boards/模块的包含。

3.在Firmware/makefile文件夹中新增board_px4fmu-makekam.mk与board_px4io-makekam.mk

4.在Firmware/Image文件夹中新增px4fmu-makekam.prototype与px4io-makekam.prototype

5.在Firmware/src/drivers/boards/中增加px4fmu-makekam与px4io-makekam文件夹

6.同理在Firmware/nuttx-configs中增加两个文件夹

7.修改src/module/px4iofirmware/module.mk,因为其中由编译命令条件分支,而我们的分支是新的
8.rcs脚本和px4io.cpp中会命令fmu烧写IO,烧写时选择的bin文件名需要修改为"px4io-makekam_default.bin". 
9.给nutttx-config/我们的目录/nsh/defconfig中增加我们自己的宏定义,于是就可以形成分支了。   
    关于defconfig,其实这个文件是nuttx的配置文件,所有的硬件信息都在这个文件中配置,值得好好研究,我们也可以在里面增加自己的宏。

原创粉丝点击