Commit Graph

23 Commits

Author SHA1 Message Date
Michael Keller bbdc1bd586
Merge pull request #9489 from mikeller/move_targets_into_legacy_for_4_1_6
Move targets into legacy targets for 4.1.6.
2020-03-17 22:05:11 +13:00
mikeller 9a3ae13038 Added some more legacy targets. 2020-03-11 12:54:52 +13:00
mikeller f6dcc09f65 Reduced the number of target groups to build in CI from 6 to 3. 2020-02-18 00:42:08 +13:00
Michael Keller 0ea28638c8 Move targets into legacy targets for 4.1.6. 2020-02-17 08:21:09 +13:00
Michael Keller b4191b02e0 Move targets into legacy targets for 4.1.5. 2020-01-24 13:28:14 +13:00
Michael Keller ff1df466f3
Merge pull request #9369 from mikeller/add_unified_target
Added 'unified' target to Makefile.
2020-01-23 13:24:45 +13:00
mikeller 5ac2114b75 Added 'unified' target to Makefile. 2020-01-17 01:33:18 +13:00
mikeller 378bb26e36 Move targets into legacy targets for 4.1.4. 2019-12-23 23:34:41 +13:00
Michael Keller c9674fd488
Move targets into legacy targets for 4.1.3. (#9181)
Move targets into legacy targets for 4.1.3.
2019-12-23 23:25:49 +13:00
Michael Keller 365ecaae9c
Removed the outdated official target list. (#9220)
Removed the outdated official target list.
2019-11-25 19:02:48 +13:00
mikeller a302b5bae2 Removed ATOMIC_BARRIER check, fixed ITCM_RAM overflow. 2019-11-25 01:16:08 +13:00
mikeller 1a2b9f422a Removed the outdated official target list. 2019-11-24 19:18:47 +13:00
mikeller 333425f419 Move targets into legacy targets for 4.1.3. 2019-11-17 14:46:15 +13:00
mikeller 0aeece6b36 Move targets into legacy targets for 4.1.2. 2019-10-28 16:49:57 +13:00
Michael Keller b83e10481f
Removed legacy targets from the list of targets built in CI. (#9049)
Removed legacy targets from the list of targets built in CI.
2019-10-28 16:46:28 +13:00
mikeller 00149dbf96 Reduced list to only MATEKF405 for 4.1.1. 2019-10-28 10:51:04 +13:00
jflyper cb1bdfe204 Add Nucleo-F303RE support 2019-10-18 00:19:52 +09:00
mikeller 971ded14e4 Removed legacy targets from the list of targets built in CI. 2019-10-17 02:36:25 +13:00
jflyper 4e9923569a NUCLEOF103RG target
NUCLEOF103RG is a target for Nucleo-F103RG (Nucleo-F103RB transplanted
with STM32F103RG which has 1MB of FLASH).
Such hardware with this target comes in handy when a firmware that
doesn't fit in smaller FLASH variant when compiled with DEBUG option.

The target definition files are straight copy of NAZE, except LED0_PIN
has been redefined to use Nucleo's LD2 (User LED).

It is also easy to convert exisiting F1 targets to be built to run on
the Nucleo-F103RG board:

- Add
    #define FLASH_PAGE_SIZE 0x800
    to target.h

- Also add
    #undef USE_DSHOT
    #undef USE_LED_STRIP
    #undef USE_TRANSPONDER
    #undef USE_CAMERA_CONTROL
    to target.h to avoid non-F1 compatible code from getting in.

- Add
FLASH_SIZE  = 1024
    to target.mk
2019-09-23 23:58:03 +09:00
Dominic Clifton a0d8b57fd4 SPRACINGH7EXTREME - First STM32H750 betaflight target.
SPRACINGH7EXTREME - Disable requirement for custom gyro alignment and
dual gyro.

Requires custom gyro rotation code to be merged first, see:

https://github.com/betaflight/betaflight/pull/7845
https://github.com/betaflight/betaflight/pull/8474

SPRACINGH7EXTREME - Add boards documentation and images.

Add SPRacingH7EXTREME to the list of official targets.

SPRACINGH7EXTREME - Add unified target config.

Note: untested as no unified target exists for STM32H750+EXST yet.

SPRACINGH7EXTREME - Use correct gyro settings now that #8474 is merged.

SPRACINGH7EXTREME - Combine target files.

SPRACINGH7EXTREME - Update unified target config.
2019-07-14 14:04:27 +12:00
Dominic Clifton 0632eeb934 Support compilation of EXST (EXTERNAL STORAGE) targets
- Initial

- Adjust load address of EXST firmware.

- Add helper script to pad an EXST binary to the expected size.

Padded firmware currently required due to a bug in the flash/dfu code
which causes anything less than a flash page size to be truncated when
uploading new firmware via the bootloader DFU.

- Minor linker script cleanups.

- STM32H7.mk change hardcoded TARGET_FLASH (384) to FIRMWARE_SIZE

- Delete unused configuration section entries from linker
scripts.

- Increase EXST firmware size to 448K.
It turns out 384K wasn't enough for a feature-complete firmware.

- Update pad-exst.sh to use 448K by default.

- Move the EXST file generation to the makefile.

[EXST] Embed firmware hash in ELF

- Add debug marker at end of CODE_RAM section.

It was found when transferring firmware to the H7 RAM via a BMP probe
using the 'gdb load' command, that the last few bytes were not
transferred, this debug marker is present to ensure all needed parts of
the firmware are present.

Example memory view of corrupted bytes at end of transfer:
0x2407DFAE  DEB90000 DEB9DEB9 DEB9DEB9 DEB9DEB9  ..¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ
0x2407DFBE  000000B9 00000000 00000000 00000000  ¹...............

should be:
0x2407DFAE  DEB9DEB9 DEB9DEB9 DEB9DEB9 DEB9DEB9  ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ¹Þ
0x2407DFBE  00000000 00000000 00000000 00000000  ................

- Remove debug marker in EXST firmware.

STM32H750_EXST - Provide space for empty hash.

* Bootloader will run firmware if hash is empty, without re-verifying
RAM content against hash.
* CODE_RAM always shows as 100% usage.

STM32H750_EXST - Use a specific ELF section for a hash.

Two benefits:
1) CODE_RAM no-longer shows 100% full, since it is no-longer
padded/filled.
2) Prepares the code so that objcopy can be used to inject the hash
into the ELF.

STM32H750_EXST - Patch MD5 into ELF.

Process is now as follows.

* Binary generated (via make target dependency) so there is something to
hash.
* Binary copied (and padded).
* MD5 Hash computed.
* xxd patch file generated from hash.
* xxd hash patch applied to copy of binary at correct address.
* elf .exst_hash section dumped.
* hash injected into into dumped section.
* elf .exst_hash section updated with updated dumped section.

Replace EXST with USE_EXST.

Add documentation for the EXST firmware format.

Add table formatting to EXST documentation.

Update bootloader block.

Update H750 EXST linker script to use block format 0x00.

Use .exst.elf and .exst.bin on the exst files.

Add 'no checksum' to list of checksum hash methods.

Update EXST build system so it generates the following sets of files

obj/main/betaflight_TARGET.elf
obj/main/betaflight_TARGET.map
obj/main/betaflight_TARGET_EXST.elf
obj/betaflight_VERSION_TARGET.bin
obj/betaflight_VERSION_TARGET.bin.md5
obj/betaflight_VERSION_TARGET_EXST.bin

Update EXST build system to be more user-friendly.

* user-flashable files are generated in the normal place.
* Intermediate files are generated in `obj/main/...`
* Removes the `exst` goal.
* Adds .hex generation for EXST builds based on the patched .elf.

To build EXST targets, simply use `make TARGET=x` as normal and flash
the resulting `.hex/.bin` files rather than the .exst.bin file.

Developers can use either the `.elf` or patched `_EXST.elf` file as is
appropriate for their needs.

EXST documentation updated to match changes to build system.
2019-06-07 09:14:49 +12:00
mikeller 2bed36b659 Make F3 targets unsupported to improve build times. 2019-04-14 19:31:24 +12:00
Andrej Podzimek 17b66067bb Adding a reusable mapping function between alt and base targets. 2018-09-11 06:06:50 +02:00