Код дійшов туди, куди ніколи не мав дійти
Що пише ArduPilot:
- Internal errors 0x100000 (flow_of_control)
- Internal errors 0x20000 (bitmask_range)
- Internal errors 0x200000 (switch_full_sector_recursion)
- Internal errors 0x10000 (gcs_bad_missionprotocol_link)
- Internal errors 0x40000 (gcs_offset)
Програмісти лишають запобіжники в місцях, яких «не може бути». flow_of_control — загальний, його піднімають із приблизно п'ятдесяти місць: детектор посадки коптера бачить високий газ, хоча ще вважає, що стоїть на землі; збереження параметра втрачено, бо заармованим зберігали забагато одразу; режим або тип EKF, якого код не знає. bitmask_range — індекс за межами списку, gcs_bad_missionprotocol_link — завантаження місії без прив'язаного каналу зв'язку, switch_full_sector_recursion — флеш-сховище викликало саме себе. gcs_offset у цих версіях не піднімається ніде.
Що робити: найімовірніше спершу
Рідкісний шлях у прошивці, якого її автори не передбачили.
ПеревіртеЧи можете ви викликати помилку знову, зробивши те саме? Число l: каже розробникам, котре з п'ятдесяти місць це було.
ВиправтеПерезавантажте. Якщо помилку можна повторити — повідомте про неї, навівши рядок повністю, послідовність дій і лог, і уникайте цих дій у польоті.
Скрипт або інструмент наземної станції зберіг багато параметрів разом, коли було заармовано.
ПеревіртеПомилка з'явилася, коли працював скрипт або екран тюнінгу записував значення.
ВиправтеПеречитайте параметри, які тоді зберігалися: якийсь із них міг не записатися. Масово зберігайте параметри лише коли дизармовано.
Хтось надіслав тестову команду розробників, яка навмисно створює внутрішню помилку.
ПеревіртеБезпосередньо перед нею в повідомленнях є «Creating internal error».
ВиправтеПерезавантажте; усе гаразд.
Де це зробити:Налаштування й тюнінгНалаштування й тюнінг