mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-04 15:08:28 -04:00
9f5b4ffca4
(credit to Mitch Miers <mmiers@mmiers.com>): setup() is attempting to initialize the hardware, and while doing so is attempting to output some text via the console (and maybe mavlink data). The problem is, the output isn't going to complete once a write buffer is full, because LinuxUARTDriver::_timer_tick() doesn't perform work until _initialized is true. So, what happens is, setup() (and subroutines) call LinuxUARTDriver::_write(uint8_t c), which loops waiting for buffer space to become available (once the write buffer is full). The buffer never gets space, because the UART thread is waiting for initialization to complete before it will write out data and drain the buffer, but that doesn't happen until setup() returns (see AP_HAL_Linux_main.h). Refer to https://groups.google.com/forum/#!topic/beaglepilot/dQlxse11JNI |
||
---|---|---|
.. | ||
AnalogIn.cpp | ||
AnalogIn.h | ||
AP_HAL_Linux_Main.h | ||
AP_HAL_Linux_Namespace.h | ||
AP_HAL_Linux_Private.h | ||
AP_HAL_Linux.h | ||
GPIO.cpp | ||
GPIO.h | ||
HAL_Linux_Class.cpp | ||
HAL_Linux_Class.h | ||
I2CDriver.cpp | ||
I2CDriver.h | ||
RCInput.cpp | ||
RCInput.h | ||
RCOutput.cpp | ||
RCOutput.h | ||
Scheduler.cpp | ||
Scheduler.h | ||
Semaphores.cpp | ||
Semaphores.h | ||
SPIDriver.cpp | ||
SPIDriver.h | ||
Storage.cpp | ||
Storage.h | ||
UARTDriver.cpp | ||
UARTDriver.h | ||
Util.cpp | ||
Util.h |