Page 4 of 5
Re: Вопросы по эсуд
Posted: Mon May 15, 2017 10:27 pm
by AndreyB
Там даже фикс есть? Ну патчить можно хоть для прикола?
А там нет возможности проголосовать или как-то ещё их пнуть? Или сказать, что до сих пор проблема?
Re: Вопросы по эсуд
Posted: Mon May 15, 2017 10:51 pm
by andreika
У меня такой вопрос: можно ли скушать дополнительные 430 байт RAM под кольцевой DMA-буфер (тогда код проще)? Или нежелательно, и с памятью у нас напряг (тогда код сложнее)?
Re: Вопросы по эсуд
Posted: Mon May 15, 2017 11:23 pm
by AndreyB
да хоть 2К на благое дело!
Свободная память наивно живёт вот тут:
Code: Select all
static char UNUSED_RAM_SIZE[20100];
static char UNUSED_CCM_SIZE[9500] CCM_OPTIONAL;
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 6:36 am
by Dron_Gus
russian wrote:
Там даже фикс есть? Ну патчить можно хоть для прикола?
А там нет возможности проголосовать или как-то ещё их пнуть? Или сказать, что до сих пор проблема?
Так этот фикс как раз ломает поддержку CDC ACM с отсутствующей Interrupt EP на Control interface. Ну т.е. оно и до этого патча падало (обращение к null-pointer, т.к. не было соответствующей EP), а этим патчем они просто запретили такие устройства (fix такой, блин). Хотя стандартом это не возбраняется:
3.4.1 Communication Class Endpoint Requirements
The Communication Class interface requires one endpoint, a management element. It optionally can have an additional endpoint, the notification element. The management element uses the default endpoint for all standard and Communication Class-specific requests. The notification element normally uses an interrupt endpoint.
Ну и соответственно:
Code: Select all
[27582.572117] usb 3-3: new full-speed USB device number 14 using xhci_hcd
[27582.702151] usb 3-3: New USB device found, idVendor=0483, idProduct=5740
[27582.702157] usb 3-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[27582.702160] usb 3-3: Product: ChibiOS/RT Virtual COM Port
[27582.702162] usb 3-3: Manufacturer: STMicroelectronics
[27582.702164] usb 3-3: SerialNumber: 320
[27582.702876] cdc_acm: probe of 3-3:1.0 failed with error -22
[27582.703251] cdc_acm: probe of 3-3:1.2 failed with error -22
Видимо, нет таких устройств, которые бы были сломаны с этим драйвером. Похоже ни у кого нет проблем с лишней EP.
Пнуть можно. Отправив свой патч (там правок - строк 10). Но пока его рассмотрят, пока примут в одной ветке, пока смерджат в основной код. Бэкпортировать на старые ядра вряд ли кто-то будет. В общем, через годик-два это появится в самых свежих дистрибьютивах.
Есть еще вариант попробовать использовать одну Interrupt EP для обоих интерфейсов. Но это криво.
Остался вариант использовать кого-нить из
http://elixir.free-electrons.com/linux/latest/source/drivers/usb/serial . Будет /dev/ttyUSB* а не /dev/ttyACM*. Там куча драйверов для сериальников. Это базовый
http://elixir.free-electrons.com/linux/latest/source/drivers/usb/serial/generic.c с VID:PID 0x05f9:0xFFFF. Его FreeRTOS использует для тестов под Linux.
Под Linux заработает. Что делать с Виндами - не знаю, я в них не разбираюсь.
Очень хочется избавится от двух проводов, но видимо не с этим процом.
З.Ы. на следующих ревизиях не планируется вывести второй usb на разъем на основной плате?
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 6:50 am
by puff
о гуру из усб! объясните, а что оно делает? зачем вообще два интерейса на плате? как сейчас в дискавери: один для прошивки, второй для настройки? и вы хотите их в один объединить?
(я везде со своей траблой. терпеливо жду появления кода, который можно будет прошить в дискавери, в надежде на то, что глюк исправится)
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 8:03 am
by Dron_Gus
puff wrote:о гуру из усб! объясните, а что оно делает? зачем вообще два интерейса на плате? как сейчас в дискавери: один для прошивки, второй для настройки? и вы хотите их в один объединить?
(я везде со своей траблой. терпеливо жду появления кода, который можно будет прошить в дискавери, в надежде на то, что глюк исправится)
Да. На дискавери один интерфейс подключен к процу, второй к отладчику/прошивальщику.
Чтобы избавиться от прошивочного порта надо придумать загрузчик. Или хотя бы изучить вопрос со встроенным, может и он умеет по усб прошиваться.
Сам проц имеет два usb интерфейса: FS и HS.
Пока хочется избавится от
http://rusefi.com/wiki/index.php?title=Manual:Software:User/en#USB_TTL_cable . Ну и аналогичного конвертера USB-serial на основной борде. Т.е. чтобы можно было по одному проводку одновременно работать и с TunerStudio и, например, иметь отладочную консоль. Ну или ТюнерСтуди + накопитель (SD карта).
Проблема в том, что разработчики дискавери вывели на разъем USB более дохлый порт - FS. На котором не хватает ресурсов, чтобы сделать два (или даже три) полноценных виртуальных ком-портов. Т.е. ресурсов хватает, но работать это будет только под линуксом.
А второй интерфейс (более жирный) занят под другие задачи на плате RusEFI.
А что за трабла?
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 8:22 am
by puff
одновременно консоль и тюнерстудия - имхо сомнительная радость. а зачем? потом еще разгребать, если они вдруг будут синхронно обращаться к одним и тем же настройкам. sd - тоже на усб висит??
на плате дискавери дохлый порт - это микро? а второй порт в русефи подо что используется? (я так понял мини усб уже к процу отношения не имеет - это прошивальщик?)
про мою траблу (да простит модератор, как говорят в таких случаях):
я сижу под макосью и не хочу ни отдельный ноутбук, ни винду. все было ок до прошлого лета, когда вместе с заменой накопителя я махнул старую ось на самую свежую на тот момент (эль капитан, в котором полностью переработана работа с usb). на старых осях и консоль и тюнерстудия отлично работают (отключаю одно, включаю другое и вперед, с песней). в элькапитане та же самая плата дискавери в тюнерстудии продолжает отлично работать, в девконсоли оно толком не подключается.
тут, начиная с третьего сообщения, есть что-то по теме
http://rusefi.com/forum/viewtopic.php?f=10&t=442&start=870
плата при работе с консолью в элькапитане на больших пакетах каждый раз выдает на 192/256/384/512 байт больше (или меньше - могу путать), чем ожидает консоль.
есть подозрение, что в одном случае оно работает через ehci, а в другом - через uhci.
к тому же до смены версии чибиоса оно работало через хаб (в феврале), а в апреле я уже и через хаб не могу подключиться...
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 10:37 am
by Dron_Gus
Я привык дебажиться с помощью printf.
Как минимум дебажная консоль - полезно. А много проводов - не круто. К тому же надо что-то делать, пока плату свою не доделал и не приступил к bring-up'у.
Когда разберусь с этим можно будет и MSD прикрутить. Чтобы флешку из платы не дергать.
Или Audio интерфейс, чтобы детон слушать.
Или.. или...
Да.
micro USB - идет на FS интерфейс STM32.
mini USB - порт отладчика ST-Link
Полноразмерный USB B на плате RusEFI - это порт FTDI. Между FTDI и STM - uart интерфейс.
Девконсоль это какой порт? Микро или В?
Призвал на помощь гуру
https://electronix.ru/forum/index.php?showtopic=141935 . Мои опасения оправдались лишь частично.
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 10:44 am
by andreika
Лично мне нужен и бутлоадер с возможностью обновления прошивки, и мост Консоль-ТюнерСтудио. Если их никто не напишет, это сделаю я.
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 2:13 pm
by puff
ура! внятный юзкейс.
правда, когда говорили про еще один усб порт на дискавери - я думал, речь о физическом порте (разъем, провода), а тут - все же вроде про виртуальные речь.
возможность скачивать лог с sd карты без извлечения самой карты - вероятно, очень полезная плюшка!
прошивать плату тем же усб проводом (типа как ардуину?), по которому идет работа с тюнерстудией и консолью - на самом деле тоже было бы очень удобно (много проводов - зло!), но это все дело привычки.
про усб интерфейс для дебага (очевидно, программистского?) - как-то не подумал..
Re: Вопросы по эсуд
Posted: Tue May 16, 2017 11:58 pm
by AndreyB
Напоминаю про
https://github.com/rusefi/rusefi/issues/220 - это идея решения проблемы двух программ по одному порту на стороне консоли, а не на стороне прошивки ЭБУ.
Плюсы этого странного решения - будет работать даже по UART.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 7:28 am
by Dron_Gus
andreika wrote:Лично мне нужен и бутлоадер с возможностью обновления прошивки, и мост Консоль-ТюнерСтудио. Если их никто не напишет, это сделаю я.
Бутлоадер есть штатный через USB. И тула к нему вроде была. Надо только разобраться как этот бутлоадер запустить.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 9:46 am
by andreika
Dron_Gus wrote:Бутлоадер есть штатный через USB. И тула к нему вроде была. Надо только разобраться как этот бутлоадер запустить.
У кого-то он есть, а у кого-то - нет, как у меня, например. Да и для штатного бутлоадера нужен джампер на Boot0, что неудобно: я не хочу каждый раз вскрывать корпус ЭБУ для обновления прошивки. И вообще, обновлять прошивку хочу по Bluetooth!
Кроме того, можно сделать и обновление резервной прошивки с карты памяти. И наконец, свой функционал позволит не только обновлять прошивку, но и управлять конфигурациями (сохранение своего конфига в файл, выбор и загрузка из списка конфигов, сброс дефолтных настроек по выбранному engine_type и т.д.)..
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 12:22 pm
by Dron_Gus
andreika wrote:У кого-то он есть, а у кого-то - нет, как у меня, например. Да и для штатного бутлоадера нужен джампер на Boot0, что неудобно: я не хочу каждый раз вскрывать корпус ЭБУ для обновления прошивки. И вообще, обновлять прошивку хочу по Bluetooth!
Кроме того, можно сделать и обновление резервной прошивки с карты памяти. И наконец, свой функционал позволит не только обновлять прошивку, но и управлять конфигурациями (сохранение своего конфига в файл, выбор и загрузка из списка конфигов, сброс дефолтных настроек по выбранному engine_type и т.д.)..
В бутлоадер можно попасть и из основной софтины, насколько я помню.
Можно и по блютуз шиться штатным згрузчиком, только блютух надо на правильный уарт повесить.
SD карта, да, не поддерживается.
А вот работа с конфигурациями это не функционал для загрузчика. Обычно этим занимается основная прошивка.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 12:54 pm
by andreika
Dron_Gus wrote:В бутлоадер можно попасть и из основной софтины, насколько я помню.
afaik, можно разве что плясать с бубном, повесив на одну из ножек внешний транзистор с конденсатором, которые дёрнут ножку BOOT0 вниз, пока проц будет программно резетиться - и тогда, да, включится бутлоадер... Как бы то ни было, штатный бутлоадер доступен не для всех, т.к. конфигурации UART на разных платах разные. Или на плате есть только один USB-порт, который уже используется Консолью, и не хочется каждый раз отключать консоль и запускать DFU-программу для работы со штатным бутлоадером, и потом обратно запускать консоль.
Иными словами, нужно написать свой бутлоадер, даже если это вам не нравится...
Dron_Gus wrote:А вот работа с конфигурациями это не функционал для загрузчика. Обычно этим занимается основная прошивка.
Совершенно верно. Но этот функционал тоже нужно написать, т.к. его до сих пор нет - именно об этом я пытался рассказать, основываясь на опыте SECU-3. Для юзера нет разницы, что обновить конфигурацию, или обновить прошивку. Это должны быть, условно говоря, "две соседние кнопки", а о деталях реализации (где сидит код доступа к флеш-памяти) юзер не подозревает.
Строго говоря, для обновления прошивки и бутлоадер-то не требуется, т.к. можно исхитриться выполнить код из RAM прямо в прошивке (к тому же, сам бутлоадер тоже иногда придётся обновлять, и можно предусмотреть такую фичу). Но это уже отдельный разговор...
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 1:03 pm
by Dron_Gus
andreika wrote:Dron_Gus wrote:В бутлоадер можно попасть и из основной софтины, насколько я помню.
afaik, можно разве что плясать с бубном, повесив на одну из ножек внешний транзистор с конденсатором, которые дёрнут ножку BOOT0 вниз, пока проц будет программно резетиться - и тогда, да, включится бутлоадер...
Dron_Gus wrote:А вот работа с конфигурациями это не функционал для загрузчика. Обычно этим занимается основная прошивка.
Совершенно верно. Но этот функционал тоже нужно написать, т.к. его до сих пор нет - именно об этом я пытался рассказать, основываясь на опыте SECU-3. Для юзера нет разницы, что обновить конфигурацию, или обновить прошивку...
Еще раз. В бутлоадер можно "прыгнуть" из основной прошивки
Code: Select all
__ASM volatile ("movs r3, #0\nldr r3, [r3, #0]\nMSR msp, r3\n" : : : "r3", "sp");
((void (*)(void)) *((uint32_t*) 0x00000004))();
После обновления прошивки все равно надо перезапускать все. Так что все равно будет разрыв соединения.
Консоль отвалится в любом случае. Более того в той же отладочной консоли можно реализовать и сам протокол обновления. Для пользователя это произойдет прозрачно. Ну да устройство отвалится, появится как DFU, обновиться и снова появится.
А вот продолжать исполнять прошивку после обновления и без сброса... Это утопия. Надо все переинициализировать в любом случае.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 1:09 pm
by andreika
Dron_Gus wrote:Ну да устройство отвалится, появится как DFU, обновиться и снова появится.
Это будет только если используется встроенный в проц USB. А если через единственный UART-драйвер, то для компа USB по-прежнему виден как USB-COM мост. И COM-порт не отвалится, и даже соединение не будет разорвано. И Консоль будет продолжать долбить туда запросы, пока её не срубить (т.е. закрыть приложение). И если ещё и бутлоадер не видит этот UART, то никакие припарки не помогут. Только свой бутлоадер, встроенный в бинарный протокол псевдо-TS.
Dron_Gus wrote:А вот продолжать исполнять прошивку после обновления и без сброса...
Не представляю, откуда взялись подобные домыслы.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 2:23 pm
by Dron_Gus
andreika wrote:Это будет только если используется встроенный в проц USB. А если через единственный UART-драйвер, то для компа USB по-прежнему виден как USB-COM мост. И COM-порт не отвалится, и даже соединение не будет разорвано. И Консоль будет продолжать долбить туда запросы, пока её не срубить (т.е. закрыть приложение). И если ещё и бутлоадер не видит этот UART, то никакие припарки не помогут. Только свой бутлоадер, встроенный в бинарный протокол псевдо-TS.
В варианте с внешним преобразователе usb-serial - да. Но мне такой вариант не очень нравится. Зачем в проце аж два юсби.
andreika wrote:
Не представляю, откуда взялись подобные домыслы.
Не так интерпретировал фразу про выполнение из рам.
По мне самый правильный способ это по любому комункационному интерфейсу получить прошивку, положить ее на какое-то внешнее хранилище (SD, SPI flash), выставить флаг и после перезагрузки обновить бутлоадером прошивку уже в самом проце. Но это опять же требует написания своего кода.
Re: Вопросы по эсуд
Posted: Thu May 18, 2017 3:18 pm
by andreika
Dron_Gus wrote:По мне самый правильный способ это по любому комункационному интерфейсу получить прошивку, положить ее на какое-то внешнее хранилище (SD, SPI flash), выставить флаг и после перезагрузки обновить бутлоадером прошивку уже в самом проце. Но это опять же требует написания своего кода.
Да, как вариант. Поскольку мы с @darxfame этот вариант уже обсуждали в частной беседе, я кратко напишу здесь некоторые наши соображения - может, кому-то будет интересно...
В частности, понадобится также и аварийный режим восстановления прошивки и настроек (recovery) бутлоадером с карты памяти, в случае если залили глючную версию (актуально как раз для тех, кто пишет свой код
). Поскольку бутлоадер не может надёжно определить, насколько хорошая прошивка/параметры были залиты, и нет ли проблем с коннектом для штатного апдейта, то тут два варианта:
1) Простой в реализации: вручную записывать на карту памяти файл прошивки, и после рекавери прошивка файл удаляет. Метод по реализации идентичен штатному обновлению через карту памяти. Достоинство: простота. Недостатки: а) нужен доступ к блоку; б) нужно возиться с компом/планшетом (плохо в дороге) или нужна отдельная резервная карта памяти.
2) На старте бутлоадер проверяет "команду" юзера на прошивку с карты памяти. Например, проверять одновременно нажатую педаль газа (как для продувки) плюс отключенную фишку ДТВ (IAT) - и в этом случае делать рекавери с карты памяти. В этом случае заведомо рабочий файл рекавери всегда присутствует на карте памяти, и восстановление слетевшей прошивки не требует доступа к блоку..
Как я уже говорил, все эти вопросы бутлоадера требуют отдельной темы для обсуждения...
Re: Вопросы по эсуд
Posted: Thu Jun 15, 2017 10:18 pm
by darxfame
Кстати, а почему синхрометкой для 60-2 считается 3 интервала? (плюс-минус 25%)
Re: Вопросы по эсуд
Posted: Thu Jun 15, 2017 10:45 pm
by AndreyB
А как иначе? в общем случае skipped+1
Re: Вопросы по эсуд
Posted: Fri Jun 16, 2017 12:32 pm
by AndreyB
А логический анализатор - это не осциллограф, это более простое устройство. Осциллограф аналоговые сигналы смотрит, а логический анализатор - только цифровые - т.е. только межу max9926 и stm32 например.
Re: Вопросы по эсуд
Posted: Tue Jun 20, 2017 11:09 am
by darxfame
[quote="russian"][/quote]
А может составить хотя бы краткую инструкцию на русском где что в Tuner Studio находится и как настраивается? Потому как некоторые вещи не совсем понятны, то с чем я не сталкивался
Re: Вопросы по эсуд
Posted: Tue Jun 20, 2017 3:45 pm
by Abricos
darxfame wrote:russian wrote:
А может составить хотя бы краткую инструкцию на русском где что в Tuner Studio находится и как настраивается? Потому как некоторые вещи не совсем понятны, то с чем я не сталкивался
Полностью свами согласин ... но мне кажется russian
Пргграмист а не настроишик и тока учится и также как и я механик но не программист ...
А может у вас это получится "darxfame" Ну или начните а там уже скопом будем улучшать ???
Re: Вопросы по эсуд
Posted: Tue Jun 20, 2017 7:36 pm
by darxfame
Abricos wrote:darxfame wrote:russian wrote:
А может составить хотя бы краткую инструкцию на русском где что в Tuner Studio находится и как настраивается? Потому как некоторые вещи не совсем понятны, то с чем я не сталкивался
Полностью свами согласин ... но мне кажется russian
Пргграмист а не настроишик и тока учится и также как и я механик но не программист ...
А может у вас это получится "darxfame" Ну или начните а там уже скопом будем улучшать ???
Понимаете, если бы я владел английским и еще понимал что там в студии написано))) перевести я конечно могу, но я еще не понимаю логику, что и как работает, а это сможет рассказать только russian
Re: Вопросы по эсуд
Posted: Wed Jun 21, 2017 1:42 am
by AndreyB
С радостью отвечу на конкретные вопросы
Re: Вопросы по эсуд
Posted: Wed Jun 21, 2017 8:46 pm
by darxfame
russian wrote:С радостью отвечу на конкретные вопросы
Это придется спрашивать все что есть в ТС, начиная от тоготкак работает и как настраивать хх
Re: Вопросы по эсуд
Posted: Wed Jun 21, 2017 8:49 pm
by AndreyB
Хх работает не круто. Какой у тебя клапан и ручная ли коробка?
Лучше всего соленоид и ручная. Просто угадать скважность и радоваться. Какие цели машины? Нюанс в том, что с моими гонками хх не самое мне важное
Re: Вопросы по эсуд
Posted: Wed Jun 21, 2017 10:05 pm
by darxfame
russian wrote:Хх работает не круто. Какой у тебя клапан и ручная ли коробка?
Лучше всего соленоид и ручная. Просто угадать скважность и радоваться. Какие цели машины? Нюанс в том, что с моими гонками хх не самое мне важное
Ну а вот у меня гражданский авто, хочу норм поддержку хх с поддержкой оборотов. Рхх ваз, шаговый, кпп ручная, но если включить потребители в салоне или ехать на первой-второй без газа(а я практикую такое), то надо что бы хх стабильно держался плюс минус 100об максимум, уоз+регулятор добавочного воздуха
Re: Вопросы по эсуд
Posted: Wed Jun 21, 2017 10:08 pm
by AndreyB
Уоз хх стыдно сказвть вообще нет, можешь описать логику?
Шаговик может пид, но я без шаговика - про настроку ноль опыта