nusrobomaster / PX4-Autopilot

PX4 Autopilot Software
https://px4.io
BSD 3-Clause "New" or "Revised" License
2 stars 0 forks source link

Utilise FLASH memory as storage for param and dataman #7

Open chengguizi opened 3 years ago

chengguizi commented 3 years ago

Dev C board has no SD Card, we need a generic way to store persistent data, particularly the paramter data.

We plan to use the sector 1 and 2 of the Flash as the paramter space. This is because the later part of the flash is divided by 128K, which is too large and wasteful.

https://www.st.com/resource/en/reference_manual/dm00031020-stm32f405-415-stm32f407-417-stm32f427-437-and-stm32f429-439-advanced-arm-based-32-bit-mcus-stmicroelectronics.pdf

I propose to change the bootloader address from 0x08004000 to 0x0800C000 in this case.

chengguizi commented 3 years ago

image

Successful FLASH based param, done on Dev A. Bootloader is to be modified to allocate 32K space right after the bootloader. Refer to commit https://github.com/nusrobomaster/PX4-Bootloader/commit/0e448762034e070b217787d258ee56e7b4507e88

For PX4 Firmware, the main changes are (commit https://github.com/nusrobomaster/PX4-Autopilot/commit/90821e3fc7fdb6f3ba393e6bc774ba2bd5d708b0):

Note: current EKF2 initialisation logics require magnetometer and barometer, which makes it not usable at this stage. Enabling attitude_estimator_q and local_position_estimator instead to demostrate basic attitude estimator algorithm.