The simulation engine had the ability to pause already and properly handled load spikes, however, it was not hardened against constant drift. This addition enables it to run at a constant slower-than-realtime rate successfully.
system_source - This battery status is for the brick that is
supplying VDD_5V_IN
priority - Zero based, This battery status is for the brick
that is connected to the Power controller's
N-1 priority input. V1..VN. 0 would normally be
Brick1, 1 for Brick2 etc
Battery now assigns connected from the api in the
updateBatteryStatus, as well as system_source and priority
This PR is preliminary ground work for FMUv5.
PX4 does not use the NuttX adc driver. But used the same format
for the data returned by the nuttx ADC driver.
There was a fixme:in src/platforms/px4_adc.h "this needs to be
a px4_adc_msg_s type" With this PR the need for
src/platforms/px4_adc.h goes away as the driver drv_adc.h now
describes the px4_adc_msg_t.
Current driver was copy pasted from a MS5611 driver.
The existing driver takes data from Simulator, not from
an actual device.
Signed-off-by: Nicolae Rosia <nicolae.rosia@gmail.com>
- Fixed V712
- The compiler can optimize this code by creating an infinite loop, or simply deleting it.
- There is need to add a volatile qualifier to the '_ExitFlag' and 'sim_delay' variables.
param_t is only used as an offset and we have <1000 params, so an uint16_t
is enough.
This saves roughly 1KB of RAM. We only do that on NuttX because normal
integers have better performance in general.
Previously on amd64, this was even 64bits because it was an uintptr_t.
We need to protect access to the param_values array. This is dynamically
allocated and resized (utarray_reserve() calls realloc). If some thread
was iterating the array while another was resizing the array, the first one
would iterate on a freed array, thus accessing invalid memory.
On NuttX this could lead to hardfaults in rare conditions.
Unfortunately we need to initialize the semaphore on startup, by calling
sem_init(). This adds a param_init() method called by every board/config
that uses the params (at least I think I've found all of them)
Remove the notion of legacy from the api. The board level code
will perform the traslation to lecacy format on the STM32.
new targets will not need to do this as there is no case
where the serial number were used by mfg for tracking.
Extend board common api to get mfguid and mfguid formatted
This adds an api that return the MFGUID as an array of bytes
or a string.
The data is returned with the MSD at index 0 and the LSD at
index PX4_CPU_MFGUID_BYTE_LENGTH-1.
Removed all reodering defines from the api and hal
This adds a src/board/<bebop|eagle|excelsior|rpi|sitl>/board_config.h
to configure the build as is done with the Nuttx targets
src/platforms/posix/include/board_config.h has been renamed to
src/platforms/posix/include/system_config.h to allow the common
posix defines to be included with the board specific defines.