Crazy无人机固件编译过程(Ubuntu18.04)

2021-06-25 15:24:58 浏览数 (1)

我们来看一下编译的过程,我的机器是Ubuntu18.04

代码语言:javascript复制
https://www.bitcraze.io/documentation/repository/crazyflie-firmware/master/building-and-flashing/build/
代码语言:javascript复制
sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
sudo apt-get update
sudo apt install gcc-arm-embedded

可以看到最重要的还是交叉的编译工具,apt下载一下

代码语言:javascript复制
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm

更新的机器是,Ubuntu20.4是执行的下面的命令

安装的编译器是这个,编译ARM构架的裸机系统

代码语言:javascript复制
sudo apt-get install make gcc-arm-none-eabi
代码语言:javascript复制
https://www.cnblogs.com/deng-tao/p/6432578.html

在上面的哪个博客上面归类的不错,可以你去看看

我去找了一下关于ARM编译器的资料,当然是去官网看啦

支持的芯片,M系列的就可以

因为不管是STM32 还是NRF都是M得ARM芯片

代码语言:javascript复制
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads

编译器资料下载的地方,其实也不是资料,其实就是最新的gcc下载得地方

代码语言:javascript复制
git clone --recursive 用于循环克隆git子项目

项目里包含的一些库或者一些模块是存在了别的仓库,可以用递归来克隆回来。一次性就能解决所有的依赖模块,这里就选择这个命令参数来clone

代码语言:javascript复制
https://www.cnblogs.com/love-zf/p/13192734.html
代码语言:javascript复制
git clone --recursive https://github.com/bitcraze/crazyflie-firmware.git

我线clone一下,因为子库比较大,所以有点费时间

code在提示这个,可不是嘛,三分钟前都在提交代码

稍等片刻,colne完成

一个多g

代码语言:javascript复制
cd crazyflie-firmware
git submodule init
git submodule update

如果一些库没有递归克隆的标志,那就自己手动安排一下

代码语言:javascript复制
make PLATFORM=cf2

然后运行这个,打开编译的选项目录

代码语言:javascript复制
全部:构建快捷方式
编译:编译cflie.hex。警告:请勿更新version.c
build:更新version.c并编译cflie.elf / hex
clean_o:仅清除对象文件,保留可执行文件(即.elf,.hex)
clean:清理所有编译文件
mrproper:清除每个编译文件和经典编辑器备份文件

cload:如果crazyflie-clients-python放在同一目录级别,并且
              插入Crazyradio / Crazyradio PA,它将尝试刷新固件
              使用无线引导程序。
flash:使用OpenOCD的Flash .elf
暂停:使用OpenOCD暂停目标
reset:使用OpenOCD重置目标
openocd:启动OpenOCD

如果需要自定义config的内容,需要修改这个地方

编译之前的文字菜单就是这个文件

代码语言:javascript复制
make clean
make 
make cload

之后在进行编译的时候,要先清理目录,然后编译。然后尝试自动上传,可以看上面的命令。

0 人点赞