PX4模块设计之十:PX4启动过程
Posted lida2003
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PX4模块设计之十:PX4启动过程相关的知识,希望对你有一定的参考价值。
PX4模块设计之十:PX4启动过程
- 1. 【硬件】飞控硬件上电
- 2. 【硬件】飞控硬件初始化
- 3. 【硬件+软件】飞控bootloader初始化
- 4. 【硬件+软件】飞控系统初始化
- 5. 【软件】飞控应用初始化
- 6. 【配置】SD卡配置文件
- 7. 参考资料
PX4飞控启动过程从逻辑的角度看,分为以下几个阶段:
- 飞控硬件上电
- 飞控硬件初始化
- 飞控bootloader初始化
- 飞控系统初始化
- 飞控应用初始化
通常来说,购买飞控板、外围传感器等,在正确组装和连线的情况下,需要最为关注的是飞控应用初始化阶段。作为购买的硬件,其他阶段只要正确按照使用手册操作,一般不会有太大的问题。
注1:硬件厂家对于开发的飞控板子调试,最重要的1、2、3、这几块的ICT测试,确保硬件质量OK。后面才是应用软件的移植(常说的porting)以及调优。
注2:这里我们作为使用者(非硬件制造厂家)对每个阶段做一个简单的介绍,并结合实际情况给出可能出现的问题,以及寻找答案的工种(硬件,软件)。
1. 【硬件】飞控硬件上电
这个阶段如果不注意,容易出现硬件损坏。最为重要的注意事项:
- 电源正负极不要接反;
- 电源输入/输出不要出现短路;
注:很多电脑的USB口子都有电源保护功能(即使短路也不会将板子和电脑烧坏,请先确认USB口是否有这个保护功能),可以先通过有保护功能的USB口进行上电检查,确保没有短路或者反接的问题。
后续只要新增硬件,都要进行相关检测,确保硬件上电瞬间冒烟损坏硬件,通常购买的硬件(电调、LED灯带、GPS、图传、摄像头等等)。
2. 【硬件】飞控硬件初始化
炸机或者出现冒烟等情况导致上电后无响应,就要注意硬件初始化到哪里(电池、电调、飞控、图传、接收机、传感器),那个部件出现什么问题了。这个时候尚未到bootloader阶段,最长使用的方法是全部断开链接,一段一段的检查。
电池
└──> 电调
├──> 电机
├──> 图传
└──> 飞控
├──> 灯带
├──> GPS
├──> 摄像头
└──> 接收机
3. 【硬件+软件】飞控bootloader初始化
通常这个部分主要是为了刷固件,因为bootloader+system+application是对应的一整套(比如:PX4的bootloader和betaflight的固件就不配套)。
注:如果bootloader启动卡住,请先检查板子上按钮(通常按钮长按进入烧录固件模式,是否有断路或者短路的情况)
4. 【硬件+软件】飞控系统初始化
通常来说这块是指bootloader将控制权交给系统(nuttx或者其他OS),进入idle任务,并正确调用系统启动脚本。
注:bootloader和固件烧录正确的情况下,通常这块不会出问题。
5. 【软件】飞控应用初始化
PX4的应用脚本:
- ROMFS/px4fmu_common/init.d: 该目录下的脚本用于NuttX,部分脚本也被使用在Posix系统。
- ROMFS/px4fmu_common/init.d-posix: 该目录下的脚本仅用于Posix系统。
PX4的启动文件:
- Nuttx系统:build//init.d/rcS
- Posix系统:build//init.d-posix/rcS
6. 【配置】SD卡配置文件
SD卡文件布局及配置文件(配置文件可以自定义应用初始化流程)。
/
├── etc //Extra config (+ mixers)
│ ├── rc.txt //If this file is present nothing in the system will be auto-started
│ ├── config.txt //used to modify shell variables. It is loaded after the main system has been configured and before it is booted
│ ├── extras.txt //used to start additional applications after the main system boot. Typically these would be payload controllers or similar optional custom components.
│ ├── mixers //Mixers
│ └── NAME_OF_MIXER //e.g. gimbal.aux.mix
├── log //Full flight logs
├── mission_log //Reduced flight logs
├── fw //UAVCAN firmware
├── uavcan.db //UAVCAN DB + logs
├── params //Parameters (if not in FRAM/FLASH)
├── dataman //Mission storage file
├── fault_<datetime>.txt //Hardfault files
└── bootlog.txt //Boot log file
6.1 extras 应用
e.g. etc/extras.txt
set +e
optional_app start # Will not result in boot failure if optional_app is unknown or fails
set -e
mandatory_app start # Will abort boot if mandatory_app is unknown or fails
6.2 mix自定义配置
e.g. gimbal.aux.mix with etc/config.txt
set MIXER_AUX gimbal
set PWM_AUX_OUT 1234
set PWM_AUX_DISARMED 1500
set PWM_AUX_MIN 1000
set PWM_AUX_MAX 2000
set PWM_AUX_RATE 50
7. 参考资料
【1】PX4开源软件框架简明简介
【2】PX4 System Startup
【3】PX4 Custom System Startup
【4】Nuttx nsh-start-up-script
以上是关于PX4模块设计之十:PX4启动过程的主要内容,如果未能解决你的问题,请参考以下文章