Ардупилот на платах OpenPilot Revolution / RevoMini (записей: 1756)

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад
    [2017-09-28 11:09:30] night_ghost писал(а): Насколько это критично - не знаю.

    Мне кажется - не критично. Если в воздухе пропадает питание, то сохранность eeprom не самая большая проблема ..

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад
    [2017-09-28 11:27:35] m-s писал(а): Если в воздухе пропадает питание, то сохранность eeprom не самая большая проблема ..

    А если питание пропадает из-за краша? А мы какой-нибудь Autotune делали... Лучче пусть будет выбор

    Сделал скринкаст, где видно что данные с акселя обнуляются на время. И пока не понимаю как это ловить :(

    UPD. Пересобрал с теми же стандартными драйверами, но не по таймеру а в рамках мультитаска - снова все покривилось.. Может приравнять семафор к критической секции и если задача владеет семафором то пусть дорабатывает пока не отдаст...

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад
    [2017-09-28 11:33:04] night_ghost писал(а): Может приравнять семафор к критической секции и если задача владеет семафором то пусть дорабатывает пока не отдаст...

    Идеально, конечно, причину найти )

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад
    [2017-09-28 11:33:04] night_ghost писал(а): Может приравнять семафор к критической секции

    сделал. НЕ ПОМОГЛО :-/ "Я опечален" (С)

    [2017-09-28 15:10:14] m-s писал(а): Идеально, конечно, причину найти )

    дык не ищется.

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад
    [2017-09-29 04:38:52] night_ghost писал(а): НЕ ПОМОГЛО

    Мистика какая-то. 

    P.S. На rcgroups хотят отдельный тагет для omnibus f4 pro v3. Это тоже самое что и airbot v2 , за исключением косметических изменений в layout. Например, вместо 0om резисторов пады для пайки. Зоопарк этих омнибасов знатный.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад
    [2017-09-29 06:52:19] m-s писал(а): P.S. На rcgroups хотят

    Я видел, но нет там софтверных различий

    [2017-09-29 06:52:19] m-s писал(а): Мистика какая-то.

    Именно что. Прерывание происходит в случайные моменты, но все работает. Контекст переключается на другую задачу только по системным вызовам, а после захвата задачей первого семафора вообще перестает переключаться, то есть драйверы, которые исполняются с захваченным семафором шины, вообще работают "одним куском" - и при этом глюки.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад

    Хотите прерываний - будет вам прерываний :) Сделал новое API шедулеру для однократного запуска коллбэка в контексте таймера с проверкой семафора без захвата, теперь можно вернуть все драйверы обратно в таймерное прерывание, запланировав выполнение обработчика из прерывания IO_Complete.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад

    Даже без этого починилось. По факту захвата семафора нужен не флаг а счетчик, тогда все ОК. Интересно, а как оно работает в случае преемптивного мультитаска в той же Наттикс?

    Но я таки вернул обработку данных с МПУ в таймерное прерывание, дабы уменьшить выделяемую под FIFO память

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад
    [2017-09-29 10:10:17] night_ghost писал(а): Даже без этого починилось. По факту захвата семафора нужен не флаг а счетчик, тогда все ОК. Интересно, а как оно работает в случае преемптивного мультитаска в той же Наттикс?

    Возможно, там как раз рекурсивный семафор используется.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад

    я про то что факт захвата семафора там не мешает переключению контекста, а если его переключить невовремя то у меня все портится. Но на самом деле все драйверы для PX4 совсем не похожи на обычные, обработкой железа драйверы ОСи занимаются, так что вопрос риторический скорее

    UPD. пустил сборку, через час будут бинарники. Наконец-то вмешательство во время цикла не превышает 500uS

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад

    Последняя сборка.

    Плата revo. Завис контроллер при калибровке акселерометра. 

    Плата airbot v2. Откуда-то определился датчик воздушной скорости на i2c шине. Ошибки компаса в qgc. При попытке откалибровать компасс тоже зависает контроллер. Ну и логи..

    Upd. Прочитал rcgroups - про зависания уже известно похоже.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад
    [2017-09-30 15:53:42] m-s писал(а): Завис контроллер при калибровке акселерометра.

    тут все плохо, известно про сам факт но не про то что его вызывает. Я ловил только Panic() на стадии калибровки барометра (и не понял почему, после перезагрузки все было ОК), но не зависания. Предположив что это может быть вызвано неатомарным доступом к счетчику семафоров задачи, оградил его изменение запретом прерываний - не помогло, RCG рапортует о продолжении зависаний. Моя же плата работает как часы, так что я не могу поймать проблему

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад

    Словил. HardFault из-за битых значений в регистрах. Причем совершенно спорадически - то сразу же, то вот уже час работает, подключенное к МП. И я без понятия что это и как это отлаживать :-/

  • Аватар профиля m--s s s6 пунктов в 6 г., 6 мес. назад

    Жаль у процессора ног нет для трассировки. ETM помог бы наверное.

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 6 г., 6 мес. назад

    Да, помог бы, вот только я даже отдаленно не представляю что для этого надо. Хотя глюк вроде прошел после увеличения стека задачи, то есть похоже что имело место быть периодическое переполнение стека в прерывании. Эт не ардуина, тут могут все 16 уровней прерывания вложиться, отожрав только на прерывания 32*16=512 байт памяти...                                    

← Форум группы   Все форумы К последней записи
Постов на странице:

Вы автоматически вступите в эту группу, когда ответите в теме.

Добавить ответ:

-
Рейтинг@Mail.ru