Вопросы по iNav

jeka101

Добрый день. Хочу скомпилировать у себя прошивку для айнава, но не могу. Пользовался этими инструкциями на ГИТХАБЕ Проблему я получаю вот тут когда дохожу до пункта TEST

Test Run C:\devtools\shF4.cmd

If everything went according the manual you should be in mingw console window. (if not we need to update this manual)

Try command “arm-none-eabi-gcc --version” and output should be like in screenshot. (tab complete works here)

arm-none-eabi-gcc --version И ловлю текст что нету такой команды у меня.

Isami@Isami-PC MINGW64 /c/devtools $ arm-none-eabi-gcc --version bash: arm-none-eabi-gcc: command not found

Isami@Isami-PC MINGW64 /c/devtools $

Сначало я ставил все из инструкции, но уже установил 64 битку и нечего все равно. Операционка у меня Windows 7 x64. Можете подсказать как можно еще скомпилить прошивку?

EHOT

В инструкции неправильно указано, что нужно установить просто gcc. Это набор для сборки программ для инструментального компьютера. Для сборки прошивки для ПК нужен кросс “компилятор” arm-none-eabi-bla-bla Если собрались собирать не пожилые сборки, берите версию 10.3. Для старых версий нужна и версия кросс компилятора пониже (иначе полезут “ошибки”) 10.3

Вот еще про установку кросскомпиляторов habr.com/en/post/673522/

kasatka60

Я еще виртуалку ставил, а там в линуксе по инструкции собирал. Чисто альтернатива, если с виндой совсем не попрет.

jeka101
EHOT:

Если собрались собирать не пожилые сборки

5.0 с моими переделками. Хорошо спасибо за инфу буду пробовать!

EHOT

Да, виртуалка очень хороший способ. Если комп не старый и памяти достаточно, то замедления работы не вооруженным глазом не видно. Вчера пробовал собирать inav для Mtek F411-WTE V6.0 собралась без “танцев”, но в конфигураторе мультики отображаются с задержкой. Надо разбираться что тормозит. Стоковая прошивка на этих ПК V4.1. Пробовал собирать и ее. Без успеха, какието затычки. Однако в настоящий момент для ветки 4.1 нет таргета MATEKF411TE. Пришлось переключиться на новую ветку и утащить оттуда. Правда не добавлял новый таргет а заменил имеющийся MATEKF411.

То же самое делал для веток 2.6. Собирается, но аксель с гиро не работают. Скорее всего тогда не был реализован драйвер нового акселя.

Ага. И все еще не выяснил, начиная с какой ветки inav waypoints поддерживаются.

Еще. Кто знает как совсем отключать поддержку разных свойств, чтоб не занимало код? В старом baseflight все прозрачно, есть отдельный .h, где все вкл и выкл можно.

kasatka60
EHOT:

Ага. И все еще не выяснил, начиная с какой ветки inav waypoints поддерживаются.

Пока смотрю. В версии 1.2 уже были полеты по точкам.

jeka101

Какой-то идиотизм, вроде разобрался с arm-none-eabi-gcc пишу в

Isami@Isami-PC MINGW32 /c/devtools
$ arm-none-eabi-gcc --version
arm-none-eabi-gcc.exe (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824
(release)
Copyright (C) 2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Пишу cd inav make TARGET=NAZE и ловлю bash: make: command not found

UPD с make разобрался, теперь не понимаю что в директории айнава нету файла makefile… Как этот файл создать? Что для этого нужно?

jeka101

Какая-то странная инструкция на гитхабе. Вообще нечего не понятно, такое впечатление что она устарела или не работает совсем или ее не проверяли.

EHOT

Читайте параллельную статейку про более нативную сборку под Linux

Можно начать раздела “Using cmake”

*cd inav

# first time only, create the build directory

mkdir build

cd build

cmake …

# note the “…”, this is required as it tells cmake where to find its ruleset *

В более поздних версиях (c 2.6) сборка делается посредством cmake. Их есть у Вас?

Сначала запуск cmake …

Потом уже выполняете make:

# Build the MATEKF405 firmware make MATEKF405

Есть еще засада с тем, что target NAZE (а именно МК STM32F1xx) не поддерживается начиная с версии 1.73 Меня этот факт тоже много огорчает, придется мастырить, вкрячивать поддержку F1 в одну из более поздних версий. С какой? Несколькими сообщениями ранее я задавал этот вопрос - поддержка waypoints Антон ответил, что с V 1.2, но я позволю усомниться. Даже в V1.73 КМК ее нет. В CLI команда wp не выполняется.

kasatka60
EHOT:

В CLI команда wp не выполняется

Думаете в те времена была поддержка команд CLI для точек? У Юлиана есть ролик по полетам по точкам и там уже была версия 1.8. Но в ченжлоге по 1.8 не написано, что начиная с этой версии добавили полет по точкам.

jeka101

Дело в том что я не совсем понимаю как скомпилить прошивку, я как выше писал стал это делать по инструкции, в итоге с вашей помощью разобрался с gcc. Дальше дело не продвинулось, я немного удивлен что для сборки inav нужно на комп установить 10 программ, знаком с arduino(multiwii), vs studio(компилил dll). Там конечно то-же кое что нужно но не так. На счет cmake я так понял это то что делает подготовку к компиляции или определяет набор под конкретную задачу? Проблема в том что я скачал софтину, (cmake) но так и не понял что в ней делать, пытался это делать через gui, но там постоянно какие-то ошибки. Типа таких…

– found arm-none-eabi-gcc 10.3.1 at C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/arm-none-eabi-gcc.exe – expecting arm-none-eabi-gcc version 10.2.1, but got version 10.3.1 instead – downloading arm-none-eabi-gcc 10.2.1 from …arm.com/…/gcc-arm-none-eabi-10-2020-q4-major-win3… CMake Error at cmake/arm-none-eabi-checks.cmake:65 (file): file DOWNLOAD HASH mismatch

for file: [C:/devtools/inav/downloads/gcc-arm-none-eabi-10-2020-q4-major-win32.zip]
  expected hash: [5ee6542a2af847934177bc8fa1294c0d]
    actual hash: [d41d8cd98f00b204e9800998ecf8427e]
         status: [35;"SSL connect error"]

Call Stack (most recent call first): cmake/arm-none-eabi-checks.cmake:113 (arm_none_eabi_gcc_install) cmake/arm-none-eabi-checks.cmake:119 (arm_none_eabi_gcc_check) CMakeLists.txt:37 (include)

CMake Error at CMakeLists.txt:40 (project): Generator

Visual Studio 17 2022

could not find any instance of Visual Studio.

Configuring incomplete, errors occurred! See also “C:/Program Files/CMake/bin/CMakeFiles/CMakeOutput.log”.

То есть из логов мне надо vs 2017 поставить и еще чего-то с gcc не так ему…

EHOT

cmake - собственно делает Makefile из множества CMakeLists.txt Предварительно создаете папку сборки, напр buildб перемещаетесь в нее и запускаете cmake … Именно с 2 точками, что отсылает cmake на корневую папку проекта и соотв CMakeLists.txt В пред сообщении движок форума понавставлял лишних символов, которые я не смог удалить даже последущим редактированием сообщения. После успешного выполнения cmake в текущей папке сборке генерируется Makefile После чего запускаете make с указанием нужного target. Коза заржала и побежала… )))

cmake еще делает проверки наличия или отсутствия нужных ПО для сборки. Поройтесь по CmakeLists.txt и найдите где выполняется проверка наличия и версии кросскомпилятора. Можно и прямо в тексте подправить версию требуемого компилятора до 10.3.

Однако в документации упоминается, что можно отключить проверку версии компилятора в строке запуска cmake.

надеюсь понимаете что некоторые проблемы со сборкой под Win от того что разные компоненты в разных оболочках (командных, со своими настройками путей) и не могут найти остальные инструменты для сборки. Установка VS - лишнее. Попробуйте освоить сборку под Docker. Эта штука подтягивает нужные образы, которые уже содержат нужные пакеты (ПО) для сборки и настройки. Под убунту сборка через Docker запускается при помощи ./build.sh <TARGET>

jeka101

То есть скомпилить cmakelist я не могу без vs 17? Действительно убрал другие ошибки, но требует визуал. По моему проще виртуалку поставить если в ней скомпилить все просто.

20 days later
livenok

Доброго времени суток, уважаемые! Помогите с такой проблемой: полетник -matek F405-miniTE , приемник-GEPRC ELRS Nano. Полетник прошил под инав 5.0, приёмник прошил так же как и все остальные. В настройках выставил порты. GPS, магнитометр все заработало, а приёмник во вкладке “приёмник” признаков жизни не подаёт 😦 уже и провода rx, tx местами менял, и порты щелкал, все бестолку. Что такое понять не могу…

ironman80

А телеметрия с приемника на аппу идет? Связь-то есть?

livenok

Да, забыл сказать, передатчик приёмник судя по всему видео, т.к rssi скачет и когда включаешь, передатчик ругается что приёмник все ещё включен. Попозже скину скриншоты, может по ним будет ясно что к чему…

ironman80

При прошивке приемника галочка на Uart_inverted не стояла случаем? Model Match в луа скрипте глянуть еще, вдруг он там ON.

Вообще тут или прикладывать скрины всех настроек или идти в Телегу в группу “свидетели ELRS” и там проходиться поиском, постоянно такие вопросы всплывают.

livenok

Модел мач выключен. Передатчик 100% конектится с приёмником, с приёмника данные на пульт идут, во всяком случае rssi отображается. Такое чувство что сам полетник не видит приёмник. Вот фотка страницы портов и приёмника. Что за фигня не пойму. Может что то нужно ещё включить где-то?.. Вот ссылка на страницу полетника: www.mateksys.com/?portfolio=f405-minite Там в описании говорится про tx2

Multisoft
ironman80:

Телегу в группу “свидетели ELRS”

Только предупредить бы надо… Там упоротые в личку могут писать. Удалил этот канал.

livenok:

приемник-GEPRC ELRS Nano. Полетник прошил под инав 5.0, приёмник прошил так же как и все остальные. В настройках выставил порты. GPS, магнитометр все заработало, а приёмник во вкладке “приёмник” признаков жизни не подаёт

Если есть свободные UART’ы попробовать туда припаять, так же можно попробовать припаять RX на один, а TX на другой. Ещё можно без TX попробовать. Посмотрите так же настройки всяких дуплексов и инверсии. Проверить версии передатчика и приемника, зайти по WiFi, проверить инвертирован ли сигнал.

ironman80
Multisoft:

Только предупредить бы надо… Там упоротые в личку могут писать. Удалил этот канал.

Не знал. Мне никто не писал. Потому предупредить не могу)

ironman80
livenok:

Такое чувство что сам полетник не видит приёмник

Похоже. Что-то на сайте про него столько варнингов… стремный он какой-то, конечно. Может и есть какой-то подвох, который они не указали. Другой полетник есть для проверки?