* ensure that return altitude is not negative with current height mode
* Update src/main/flight/gps_rescue.c
* Update src/main/flight/gps_rescue.c
* Update src/main/flight/gps_rescue.c
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Add uartWriteBuf() to improve performance
Optimised transmit buffer space check
Tidy up group duration calculations
Add uartBeginWrite, uartEndWrite and serialWriteBufNoFlush
Remove OSD grouping and check on the fly. Implement multi-pass artificial horizon rendering.
Fix rendering of camera frame
Fix stick overlay background rendering
Fix channel rendering
Fix ESC information rendering
Make Spec Prearm Display deterministic
Co-authored-by: Petr Ledvina <ledvinap@gmail.com>
* Fix openocd makefile target by using TARGET_MCU_FAMILY
The condition before this commit in mk/openocd.mk
ifeq ($(TARGET_MCU),STM32F4)
OPENOCD_CFG := target/stm32f4x.cfg
else ifeq ($(TARGET_MCU),STM32F7)
OPENOCD_CFG := target/stm32f7x.cfg
else
endif
ifneq ($(OPENOCD_CFG),)
OPENOCD_COMMAND = $(OPENOCD) -f $(OPENOCD_IF) -f $(OPENOCD_CFG)
endif
resulted in a not defined OPENOCD_COMMAND, because TARGET_MCU does not
contain the MCU family such as STM32F4, but e.g. STM32F411xE.
Thus executing e.g (note: CONFIG=BLACKPILL411 is a custom config I created for the Blackpill Board)
$ make DEBUG=GDB CONFIG=BLACKPILL411 openocd-gdb
make: *** No rule to make target 'openocd-gdb'. Stop.
whereas after the patch:
$ make DEBUG=GDB CONFIG=BLACKPILL411 openocd-gdb
...
...
Linking STM32F411_BLACKPILL411
Memory region Used Size Region Size %age Used
FLASH: 7680 B 16 KB 46.88%
FLASH_CONFIG: 0 GB 16 KB 0.00%
FLASH1: 329297 B 480 KB 67.00%
SYSTEM_MEMORY: 0 GB 29 KB 0.00%
RAM: 62612 B 128 KB 47.77%
MEMORY_B1: 0 GB 0 GB
text data bss dec hex filename
331757 5220 56980 393957 602e5 ./obj/main/betaflight_STM32F411_BLACKPILL411.elf
openocd -f interface/stlink-v2.cfg -f target/stm32f4x.cfg & ./tools/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gdb ./obj/main/betaflight_STM32F411_BLACKPILL411.elf -ex "target remote localhost:3333" -ex "load"
Open On-Chip Debugger 0.12.0
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
WARNING: interface/stlink-v2.cfg is deprecated, please switch to interface/stlink.cfg
Info : auto-selecting first available session transport "hla_swd". To override use 'transport select <transport>'.
Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
Info : Listening on port 6666 for tcl connections
Info : Listening on port 4444 for telnet connections
Info : clock speed 2000 kHz
...
...
[stm32f4x.cpu] halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x08009014 msp: 0x2001fff0
Start address 0x08009014, load size 336977
Transfer rate: 37 KB/sec, 11232 bytes/write.
(gdb) c
Continuing.
^C
Program received signal SIGINT, Interrupt.
0x08021a1c in scheduler () at ./src/main/scheduler/scheduler.c:695
695 task->taskAgePeriods = (cmpTimeUs(currentTimeUs, task->lastExecutedAtUs) / task->attribute->desiredPeriodUs);
(gdb) quit
works as expected.
In addition add also G4 and H7 TARGET_MCU_FAMILY support. When installing openocd the config files for G4 and H7, should
be provided in directory: /usr/share/openocd/scripts/target
$ grep -r TARGET_MCU_FAMILY | awk '/ STM32/{print $3}' | sort | uniq && find /usr/share/openocd/scripts/target -type f | grep "stm32f4x.cfg\|stm32f7x.cfg\|stm32g4x.cfg\|stm32h7x.cfg"
STM32F4
STM32F7
STM32G4
STM32H7
/usr/share/openocd/scripts/target/stm32g4x.cfg
/usr/share/openocd/scripts/target/stm32h7x.cfg
/usr/share/openocd/scripts/target/stm32f4x.cfg
/usr/share/openocd/scripts/target/stm32f7x.cfg
* Remove useless else
* Override failsafe when MSP_OVERRIDE active
Fixes#13374
Set `rxSignalReceived = true` If MSP_OVERRIDE is active, so that it can be checked later. Otherwise, MSP controls are not considered in failsafe checks.
* Do override only if BOXMOODEOVERRIDE box is active as well
* Update msp.h
* Update msp.c
* Make sure that failsafe works when there is no signal from MSP
* Introduce rxMspOverrideFrameStatus to make a clear separation from rxMspFrameStatus
* Update src/main/rx/msp.c
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* add msp_override_failsafe
* Update src/main/pg/rx.h
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Update src/main/rx/rx.c
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
* Log the standard deviation of gyro cycle time in SCHEDULER_DETERMINISM and TIMING_ACCURACY
* Update src/main/scheduler/scheduler.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Update src/main/scheduler/scheduler.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Use cpu_late_10ths_percent_limit to set limit on % of late tasks in 10th of a %
Set CPU load late limit to 1% based on testing
* Update src/main/cli/settings.c
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Update src/main/scheduler/scheduler.h
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
* Update src/main/fc/core.c
* Update src/test/unit/arming_prevention_unittest.cc
* Update src/main/scheduler/scheduler.c
---------
Co-authored-by: Mark Haslinghuis <mark@numloq.nl>
Co-authored-by: Jan Post <Rm2k-Freak@web.de>
There was a report of glitches on the raw gyro output of an icm42688
which were resolved by reducing the the SPI clock speed. I don't think
a single report justifies changing the default speed or even adding a
CLI command to make it configurable, but it's relatively low impact to
allow the speed to be set at compile time by passing the value via
EXTRA_FLAGS and this will make it easier to see if changing the speed
solves any future cases that might turn up. Passing the original macro
name caused the cloud builds to fail, so this PR introduces a new, shorter
macro for setting the override value; ICM426XX_CLOCK
When passing a value for a macro through EXTRA_FLAGS for a manual compile
we need to use single quotes, e.g. to set 12MHz we could use
-D'ICM426XX_CLOCK=12000000'
When using the configurator to start a cloud build the value can be placed
in the "Custom Defines" text box as
ICM426XX_CLOCK=12000000
(or whatever value is desired)
change voltage detection method and is voltage stable flag to make it resilient and synced to update battery task
Co-authored-by: Eike Ahmels <ea@weslink.de>