Also, allow gadgets to have exactly one configuration only, which gives them a bit more real estate in the options page.
For gadgets to use this, call functions setIcon(QIcon) and setSingleConfigurationGadgetTrue()
in the constructor of the gadget factory, e.g.:
SystemHealthGadgetFactory::SystemHealthGadgetFactory(QObject *parent) :
IUAVGadgetFactory(QString("SystemHealthGadget"),
tr("System Health Gadget"),
parent)
{
setSingleConfigurationGadgetTrue();
setIcon(QIcon(":/core/images/openpilot_logo_64.png"));
}
The pipxtreme boards use a sector of the on-board flash
for configuration storage. Adjust the memory maps to
reflect this.
The board_info_blob is also extended to include the EE
bank definitions. This should be used by the pipxtreme
firmware rather than determining it based on chip size.
Macros for JTAG program and wipe for each target are now
provided in firmware-defs.mk.
The _wipe target for each firmware and bootloader image will
erase either the bootloader (bl_*_wipe) or firmware (fw_*_wipe)
bank.
Building all_<board> will build all available embedded
images for <board>. New targets:
- all_ahrs
- all_openpilot
- all_coptercontrol
- all_pipxtreme
- all_ins
and their associated _clean targets to remove the build output.
Now that every bootloader build has a board info blob,
make all fw and bl images use it.
The following MACROS are removed:
BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION,
START_OF_USER_CODE, HW_TYPE
These values are now ONLY available from the bootloader
flash via the pios_board_info_blob symbol. These values
must not be #defined or otherwise hard-coded into the
firmware in any way. The bootloader flash is the only
valid source for this information.
NOTE: To ensure that we have an upgrade path from an
old bootloader (without board_info_blob) to a
new bootloader (with board_info_blob), it is
essential that the bu_* targets do not depend
on (or validate) the board_info_blob being present
in the bootloader flash.
The USE_BOOTLOADER compile flag was only being used
to determine where the ISR vector table was located.
Provide this explicitly from the linker since it knows
exactly where it is putting the ISR vector table.
- New macros for fw, bl and bu rules in top-level make
- Per-board info factored into make/board/*/board-info.mk
- Per-board info now shared btw. fw, bl and blupd for each board
- BOARD_TYPE, BOARD_REVISION, BOOTLOADER_VERSION, HW_TYPE
- MCU, CHIP, BOARD, MODEL, MODEL_SUFFIX
- START_OF_BL_CODE, START_OF_FW_CODE
- blupd_* goals renamed to bu_*
- all_blupd goal renamed to all_bu
- firmware goals renamed to fw_*, board name goals are preserved
- bu_*_program now writes updater to correct address for all boards
- BL updater firmware builds now produce .opf format including
version info blob.
- BL updater firmware name now includes board name.
- INS makefile brought up to date w.r.t. linker scripts
CLEAN_BUILD=YES (default) - clean all, then build all
CLEAN_BUILD=NO - clean only multi-input targets (CC, OP), usually safe
CLEAN_BUILD=NEVER - no clean at all, invalid multi-input targes, but fast