系统:ubuntu 16.10
硬件:pixhawk
这个时间点pixhawk的原生固件tag应该更新到了1.6.0rc1.本篇都是基于这个时间点的版本进行操作.
有的时候我们不希望编译一个较新版本的固件,比如带rc后缀的版本往往都是测试版,那我们应该怎么将版本退回到以前的版本呢?
一开始我以为把master克隆下来然后checkout到对应的版本号就行了,比如我想转换到1.4.1版本:
git checkout v1.4.1
git submodule update --init --recursive
很不幸,这时候如果编译会出现新的修改未提交的错误而导致不能编译.
我还试了在较新版本(比如当前tag为1.6.0rc1时)更新子模块再降级回去,依然有同样的问题.
那么问题来了,我想对特定版本的固件进行编译到底该怎么操作呢
git clone --branch v1.4.1 https://github.com/XXXXXXXXXXXX.git
此时你下载的就是对应的1.4.1的版本咯.如果不确定tag的名子,可以在已经克隆的最新版本的固件下使用
git tag
进行tag的检索,或者直接在github网站上进行查看.
然后再在较低版本的固件下使用
git submodule updata --init --recursive
现在再进行
make px4fmu-v2_default
此时就不会出现修改未提交的错误了~