Calibration base module of ground control station(GCS) for PX4 FMUv2/ Pixhawk flight controller.
Calibration base module of ground control station(GCS) for PX4 FMUv2/ Pixhawk flight controller. Refer to QGroundControl GCS
本程序针对的是pixhawk,PX4 FMU版本的飞控。
固件更新的提示及更新进度等信息显示在 “/SetupWizard/FirmwarePage” 页面中。
固件更新部分的程序在 “/FirmwareUpgrade” 文件夹中:
固件更新示意图
固件更新主流程
_startFindBoard的流程
命令格式:[命令字]([参数])[结束符],结束符为0x20
protocal bytes | ||
---|---|---|
0x20 | end of command | PROTO_EOC |
0x12 | ‘in sync’ byte sent before status | PROTO_INSYNC |
1. 可向board发送的命令字如下:
Command bytes | enum name in Bootloader | |
---|---|---|
0x21 | NOP for re-establishing sync | PROTO_GET_SYNC |
0x22 | get device ID bytes | PROTO_GET_DEVICE |
0x23 | erase program area and reset program address | PROTO_CHIP_ERASE |
0x24 | set next programming address | PROTO_LOAD_ADDRESS |
0x27 | write bytes at program address and increment;command: 0x27 0xNN….. 0x20 , 其中0xNN是4的整数倍,用于SRAM地址对齐,且不大于256 | PROTO_PROG_MULTI |
0x29 | compute & return a CRC | PROTO_GET_CRC |
0x30 | boot the application | PROTO_BOOT |
2. sync时发送的命令字为 0x21,返回的响应类型如下:
Reply bytes | description | enum name in Bootloader |
---|---|---|
0x10 | INSYNC/OK - ‘ok’ response | PROTO_OK |
0x11 | INSYNC/FAILED - ‘fail’ response | PROTO_FAILED |
0x13 | INSYNC/INVALID - ‘invalid’ response for bad commands | PROTO_INVALID |
0x14 | ‘bad silicon’ response |
响应状态前会添加’in sync’字节 0x12
response | description |
---|---|
0x12 0x10 | 成功时返回的数据 |
0x12 0x11 | 失败命令返回的数据 |
0x12 0x13 | 非法命令返回的数据 |
0x12 0x14 | 错误silicon返回的数据(FMUv4) |
3. 向board请求board信息时发送的命令字——0x22,后面紧跟的是参数
command | get Info | enum name in Bootloader |
---|---|---|
0x22 0x01 0x20 | bootloader version | INFO_BL_REV=1 |
BL_REV_MIN= 2, Minimum supported bootlader protocol | ||
BL_REV_MAX= 5, Maximum supported bootloader protocol | ||
0x22 0x02 0x20 | board ID | INFO_BOARD_ID=2 |
0x22 0x03 0x20 | board version | INFO_BOARD_REV=3 |
0x22 0x04 0x20 | size of flashable area | INFO_FLASH_SIZE=4 |
0x22 0x05 0x20 | contents of reserved vectors |
下载的.px4 firmware文件是JSON文件格式,以px4fmu-v2_default.px4为例,主要包括:
key | type | |
---|---|---|
board_id | double | required |
airframe_xml | string | |
airframe_xml_size | double | |
parameter_xml | string | |
parameter_xml_size | double | |
image | string | |
image_size | double | required |
mav_autopilot | double | required |
build_time, summary, version, image_maxsize, git_identity, board_revision, magic, description |
其中board_id,image_size,image是firmware文件必需的key。
要确保board_id和所连接board的id匹配,解压并保存image为.bin文件,这就是最终刷写到board中的文件。