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

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    вопросики по существу мануала использования хала для новой платы.

    а как определять таргет для своей платы или выбирать плату по умолчанию для хала? (я пока поменяю значение  BOARD            ?= revomini_MP32V1F4  в существующем файле, не создавая свой)

    в случае если ошибся и что то не так с шиной или сенсором есть ли какой дебаг в юсарт или юсб?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-01-05 15:48:12] kozin писал(а): не так с шиной или сенсором есть ли какой дебаг

    В камень встроена отладка по SWD - разве недостаточно?

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    да без инструментов я,  надобы сделать.

    напрямую второй файл mk сделать со своим таргетом неполучилось, надо продумать как то субверсии  плат  по типу как у px4-v1 px4-v2

    в самом файле mk  много мест где надо поменять revomini_MP32V1F4 на имя платы.

    там же нашел определение проца, заменил 405 на 407  MCU_STM32F407VG

    и еще в папке ardupilot\libraries\AP_HAL_REVOMINI\support\ld  тоже есть пака которую надо скопировать под именем своей

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

    С ld скриптами там вообще мрак, по уму их тоже надо брать из папки платы, ибо объем памяти бывает разный.  Постараюсь припилить, и так уже 3 разные версии есть.  Те места в МК где revomini_MP32V1F4  надо менять на $(BOARD) а не на имя.

    Для смены субверсии можно добавить в корень ардупилота файл config.mk с дефайнами типа BOARD = чтототам_MP32V1F4, но мне милее вариант с разными таргетами, а их легче всего сделать через разные .mk файлы.

    PS. ужал исключения оптимизации до одной строки -  функции void  write(uint8_t value) класса REVOMINIDigitalSource -  но все равно не могу понять что же не так :(.  Что самое удивительное - начальная инициализация проходит, whoami читается - а потом затык...

     

    UPD. позабыл малость, скрипт линкера в /support/ld/$(BOARD)/flash.ld - может переложить в /wirish/boards/$(BOARD)/ld/flash.ld?

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-01-05 20:18:15] kozin писал(а): да без инструментов я

    В этом ХАЛ есть пара мест где сначала смОтрено через дебаггер как  оно реализуется, а потом пИсано. По отладочной печати поймать если там что пойдет не так - нереально. Смотреть Scheduler.cpp  функции _run_timers() и yield()

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-01-05 15:21:56] night_ghost писал(а): наикапризнейшая I2С  прекрасно работает с чистА софтверным драйвером, а типО беспроблемная SPI загадки загадывает...

    Ночер, вишневка, мысли дурные... а не запилить ли мне софтверный драйвер SPI ногодрыгом?

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

    Добавил файл 2_add_new_board.md

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    неудобно что привычный px4 файл не генерится...

    и с dfu-util что то возмущается

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    конвертнул в dfu залил через Dfuse demonstration. залилось. но даже юсб-сериал девайс не появился.... чтож неплохо ... для начала)

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-01-05 21:48:14] kozin писал(а): неудобно что привычный px4 файл не генерится...

    Может быть, но мне-то что с ним делать?  .opbl зато могу генерить  ;)

    [2017-01-05 22:00:39] kozin писал(а): даже юсб-сериал девайс не появился.

    Поддержка USB на голом железе это ад и израиль :( Шаг влево-вправо и либо вообще нету, либо есть но не работает.

     

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

    Поймал багу - systick_micros() неожиданно вернула время на ~час вперед, остановив все таймерные задачи. Т.к есть свободный 32-бит таймер то буду делать свою реализацию всяческих micros() и micros64() на нем. Но позже.

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    вот что я накромсал  https://github.com/kozinalexey/ardupilot/commit/a7fe0da3920ca37f4c049782a75ed83d2dc01f11

    посмотрел осцилом, думаю может хоть генерация на какой ноге есть... увы.. все стоит

     

  • Аватар профиля Night_Ghost Night_Ghost287 пунктов в 7 г., 3 мес. назад
    [2017-01-05 22:38:41] kozin писал(а): посмотрел осцилом, думаю может хоть генерация на какой ноге есть... увы.. все стоит

    Без пошаговой отладки ИМХО любые телодвижения бесполезны. Где-то инициализация не прошла, HardFault случился, UsageFault, еще какая причина - тысячи их... Я, имея на входе "типО готовый" ХАЛ под этот камень от товарисча Scenkov, месяц убил на эти Fault-ы :(

    Так что щасс прямая дорога за ST-Link-ом. Ну или спаять по-быстрому из платки LeafLabs

  • Аватар профиля kozin Алексей Козин в 7 г., 3 мес. назад

    да гдето в "завалах сокровищ" лежит discovery, говорят можно ее использовать в качестве отладчика

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

    Малость переделал:

    • упростил схему наименования файлов платы
    • перенес скрипты линкера в данные платы
    • отказался от systick_micros() в пользу отдельного 32-битного таймера на частоте 1МГц
    • исправил баг шедулера приводивший к зависанию задач
← Форум группы   Все форумы К последней записи
Постов на странице:

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

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

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