Serial ports now have a new HW setting called DebugConsole
which can be used to dump internal state to a serial port
for debug.
To enable this feature, you need to:
- make fw_coptercontrol_clean
- make fw_coptercontrol ENABLE_DEBUG_CONSOLE=YES
- configure one of the serial ports as DebugConsole in the GCS
- save settings
- power-cycle your board
Things to note:
- The console is at 57600,8N1.
- This is not currently configurable via the GCS.
- You can only have a single console enabled at a time.
The SET_LINE_CODING request contains data and must be
handled as such.
Previously, the only requests that had data were IN
requests. SET_LINE_CODING is an OUT request so it
required additional changes to support a new type of
data request.
The CDC interface is always advertised in the FW USB
descriptors. It is NOT always enabled/initialized at
runtime. Specifically, it can be Disabled in HwSettings.
Previously, any CDC-related query that the host would send
resulted in an assert and a watchdog.
Now, a suitable return code indicating that the request is
unsupported is returned in this scenario.
EF images were missing the firmware info blob that describes
which firmware is installed on the board. The EF image is now
padded out to fill the firmware bank and the info blob is
properly placed at the tail end of the firmware bank.
These compiler options place each function and each global variable
into its own ELF section in each .o file. This, combined with the
linker option --gc-sections allows the linker to evict unused functions
and variables from the final ELF file.
On CC, the firmware flash bank is only 118784 bytes in total.
This commit reduces the .text segment from 114120 to 83536 and .data
from 572 bytes to 560 bytes. That frees up a grand total of 30596 bytes
of flash and 12 bytes of RAM.
The event dispatcher thread is started differently than most other
threads so it was missed in the taskinfo tracking information. Now
it's also included.
Scales each channel only based on max and min calibrated values.
The neutral value is now ignored so the joystick sees a linear
range between min and max.
This is particularly useful to allow the full range of values for
throttle to be passed through to the joystick.