Перейти к содержанию

    

SapegoAL

Свой
  • Публикаций

    2 715
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о SapegoAL

  • Звание
    Гуру
  • День рождения 06.08.1966

Контакты

  • Сайт
    https://alphamera.by
  • ICQ
    0

Информация

  • Город
    Беларусь, Витебск, Строителей 18-4-220
  1. Я уже писал. Проблема не с системой, а со скоростью компа. На медленных всё ок. На скоростных тоже по факту можно добится. Только порой приходится поковырятся... ))
  2. Какое поведение? Что выдаёт? Есть ещё вариант. Почитайте доку, по моему, programing manual. Там описываются разные камни. Выберите свой. Смысл в том, что попытка загрузки осуществляется из разных источников. В доке будет описываться из каких. Камень "смотрит" активность на них. Если у вас там что-то болтается, то он может пытаться туда переходить на загрузку и торчать там. Такое предположение...
  3. Я с 407 работаю. На ряде камней постоянные проблемы. Определил что из-за времянок. По крайней мере на медленных компах проблем вообще нет. Проблемы возникают на скоростных компах. Предполагаю, что у uriy проблемы ушли не из-за ОСи, а из-за более медленной работы на виртуалке. Проблемы как с Flashloader так и с их консольной утилитой. Чаще всего проблемы возникают на уже прошитых камнях. По первому разу как правило пишутся влёт. Экспериментально (лазя осциллографом) нашёл, что можно небольшой ёмкостью (примерно 22 пФ) по ноге RxD заставить работать. Ну и сброс обязательно. Физический механизм не знаю - не спрашивайте... ))
  4. STM32СubeMX и подобные

    Цитата(juvf @ Mar 20 2018, 13:26) нет там хамства, а по поводу квалификации - тоже есть сомнения.... ни чего не скажу про квалификацию кого-либо, но пугает следующее .... К Вам претензий никаких. Всё по теме. Хамство я увидел в посте halfdoom. ЦитатаНе совсем так.... клокирование - галочки в кубе наставил и забыл про клоки. Без кала - там адское клокирование... ковырять битики, вчитываться в описание регистров.... UART - в кубе галкой разрешил - нужные GPIO подсветились, тут же в гуях перекинул на нужные (да и вообще прикинул куда можно прокинуть уарт), на соседней вкладке задал 115200, 8bit, 1stop - и забыл. А без хала крути клоки, gpio, alt_gpio, uart, nvic.... там только задать правильно 115200, при условии что 8МГц кварц, всякие плл и прескалеры.... с халом в лет инит уарта. И не нужно изучать как задается 115200 в уарте, какими регистрами и по каким формулам считается. Вот именно, что не совсем так... Галочки в кубе это хорошо конечно. Но я у себя в проекте, к примеру, запускаю кварц - проверяю - не запустился - запускаю HSI настраиваю PLL - выставляю признак ошибки оборудования. Аналогично поступаю с RTC кварцем. По крайней мере, на момент написания проекта, в библиотеках ST этого не было. Работать с портами через библиотеку ST вообще для меня непонятная вещь. Это уже обсуждалось 10 раз. Есть ряд красивых решений и ST под них ниразу не подходит. Всякие там nvic буквально макросами пишутся CMSIS и хидеров. Но ещё раз говорю - я же не возражаю. Просто это надо изучать. Причём нормально времени потратить. И тогда, правильно, проблем с USART не будет. Если реально это изучить, включая листинги... Ну так извините. Приём с передачей модбаса строк 20 вместе с обработкой регистров. Передача через DMA тоже 10 строк вместе с двумя прерываниями. Работы день... Два вместе с отладкой. Ну скажем, для меня. На изучение HALа, у меня уйдёт больше. Причём при подключении он подтянет 5 библиотек. Возьмём пример. Начал писать bootloader. Решил дабы время не тратить задействовать HAL. Там было буквально пару функций. В результате штук 5 библиотек подтянулось. Глянул даташит... Просто обалдел. Там всего то занести ключ да записать. Короче самописанных 3 процедуры по 5 строчек. Как говорится каждому своё. У одного разбор чужого и изучение нового занимает мало времени и тогда ему HAL просто песня. Для меня , зачастую, это прямая потеря времени. Мне проще самому накропать.
  5. STM32СubeMX и подобные

    Цитата(Quasar @ Mar 16 2018, 18:59) Судя по тому что вы написали, проблема у вас в уровне именно вашей квалификации, а не тех, кто пишет HAL... Судя теме, человек приводит описание ошибок с которыми он сталкивался, а также видно, что он их устранял, доводя проект до конца именно с использованием HAL. То есть не просто накидал, изменённую модификацию тестового примера от ST. Топикстартер просит поделится своим опытом, и картошка делится. А вы, извините, просто переходите на личности, и ссылаетесь при этом на "многих". Вас бы забанить за хамство. Напишите ... я использовал HAL реализовал 500 проектов такойто сложности. Хомутов не встречал. Тогда будет по теме топика. ЦитатаЕсли подитожить, многие здесь на форуме используют HAL, многие в МИРе используют HAL, обсуждений в интернете море. Но есть какой-то процент несостоявшихся гениев, у которых HAL не работает ВООБЩЕ, и поэтому они все пишут сами. Пишут они исключительно самый лучший, безглючный, эффективный и красивый код. Я уверен, это только их проблема, индивидуальная. Давайте будем точны. На самом деле вы не знаете сколько разработчиков в МИРе используют HAL, насколько они его изменяют, насколько они довольны результатами использования. То есть цена данному пассажу = 0. А далее опять банальное хамство. А ведь вас не оскорбляли. Здесь никого не отговаривают использовать HAL, тем более FreeRTOS и прочие вещи входящие в куб. Здесь просто обсуждают плюсы и минусы. На мой взгляд плюс один - достаточно быстрое вхождение. Минус - обратная сторона плюса. HAL является промежуточным уровнем, со всеми вытекающими. А именно: 1. Это новая сущность. Его надо изучить. Иначе как применять? Причём изучение само собой не вытекает из CPU, CPU ВСЁ равно изучить придётся, иначе применять будете коряво. Вот прямо простой пример по тексту обсуждения. По UARTу вам надо знать как он работает (какие режимы, как DMA обслуживается, как обработка ошибок осуществляется и так далее). Кроме того вам надо почитать как работает HAL (чем отличается один вызов от другого. Есть переменные и макросы специфичные). Иногда дополнительные данные ПРЯМО указаны в комментах на HAL, но далеко не всегда. Иногда они дублирующие. Иногда полностью не закрывают твои потребности. Чем лучше ты знаешь HAL - тем грамотнее и удачнее будет его применение. 2. HAL вещь универсальная. Он таким и должен быть. Причём к нему 2 прямо противоположных требования. Быть универсальным и быть простым. А так не бывает. В результате он становится всё более сложным и навёрнутым. Соответственно требует всё больше времени на изучение (см. п. 1). С другой стороны становится всё более громоздким, а значит медленным. И это неизбежно. Это противоречие, которое никогда не будет решено. 3. HAL это составная часть коммерческого продукта. Это маркетинговая программа. Это просто очевидно. ST заплатила нормальную сумму SEGGERу. Что просто так? Из любви к программистам? Заплатила пишущим индусам. Просто так? Ну это даже обсуждать не хочется. При этом одна из целей маркетинга - привязать клиента к своему продукту насмерть. Эта задача решается за счёт выполнения 2 условий: a) Простота использования решений только ST. б) Высокая сложность перехода с решений ST на решения других фирм. Куб справляется с этим заданием на 100%. Я уверен в сделке с SEGGER присутствует прямой запрет аналогичного использования их GUI с другими производителями на аналогичных условиях.
  6. Keil uVision ARM v 5.16a странное поведение

    Странно. Использовал _REV16 и аналогичные и в KEIL и в IAR - не замечал никаких глюков. Оптимизация максимальная по скорости. В кейле я сейчас не работаю. Проект был на старом месте работы. Как меняет IAR эти макросы - могу посмотреть, если хотите.
  7. STM32СubeMX и подобные

    Тоже метрологией занимаюсь. Спорить не буду, но считаю, что гарантом качества и безопасности может выступать только производитель. А всё остальное от лукавого. Все эти сертификаты - лишь бумажки. И лучше разработчика никто не оттестирует изделие. Понятно, что вылизывание - это самая длительная и, соответственно, самая дорогостоящая операция. Любой производитель всегда будет пытаться её минимизировать. Иначе возрастает, цена, неоправданно растут сроки и т.д. Любой производитель может сделать продукт лучше и надёжнее. Вот только вопрос - нужен ли он рынку. По теме вопроса - личное мнение я уже озвучивал. Считаю, что тема не особенно актуальна. Если рассматривать чисто обработку железа - то бишь драйвера - то это несколько процентов от общего объёма проекта. Если рассматривать всякие там GUI, OS и прочие входящие компоненты, то надо понимать, что это совершенно независимые разработки. Применение каждой из них должно рассматриваться в отрыве. Как правило драйвера, в том виде, в котором они написаны - просто не нужны. Я бы сказал бессмысленны и явно избыточны. Например, мне трудно представить проект, где органично бы вписался драйвер USART от ST. Возможно у меня фантазия слабая. Что ещё нехорошо, это то, что все библиотеки завязаны друг на друга. В результате, при использовании одного устройства благополучно подключается несколько других. Таким образом весьма проблематично использовать микс из своих и чужих дров и т.п. Есть проблемы и со своими. Я не заморачивась. Как правило пишу всётаки драйвера под конкретную задачу/ проект. А универсальность чуть повыше обеспечиваю. Правильно тут отмечали - часы должны идти независимо от того, откуда ты получаешь данные. Это же касается и всего прочего. Например, при изменении типа флэши, не должно быть существенного изменения проекта. Добавление нового протокола, не должно менять логику работы устройства и так далее..
  8. Многопроцессорность на STM32f4 STM32f7

    По моему, даже при наличии аппаратного порта (параллельного) с реализацией доступа из нескольких источников, при условии, что источников будет 10.... Ну и учитывая, что хотя бы один из них плотно сидит, то возникнут задержки на арбитраж, которые всю картину попортят. Поэтому напрашивается какой-то аппаратный арбитр с высокоскоростным последовательным интерфейсом на N каналов источников. Он должен обеспечить обмен и арбитраж. Я имею ввиду потратить один камень на разруливание и обмен... ))
  9. Работа с медленной периферией

    По АЦП в принципе согласен. У меня примерно та же картина была и я расчитывал, оказалось, что при spi 2MHz нет смысла городить огород. Накладные расходы по усложнению обработки режут всё в 0. То есть придётся смирится. Можно попробовать организовать аппаратно... Я не пробовал, если честно. У меня правда лишь один АЦП. Это упрощает. По 1820 картина попроще на самом деле. Если почитаете, то там диаграмма по всем слотам может в 2 раза отличаться, так что там критичного ничего нет. Формируйте диаграмму по прерыванию от таймера. 1820 уже не рекомендуют к применению. Это раньше был чудо прибор. Лет 10 назад. А сейчас лучше применять TI. И дешевле и точнее и удобнее. А в целом, тоже склоняюсь к варианту с периферийным процессором. Такие решения делал.
  10. LwIP обработка ошибок

    Давайте упрощу вопрос. Вот здесь http://www.ecoscentric.com/ecospro/doc/htm...h-callback.html вижу, что в событие NETCONN_EVT_RCVPLUS с длиной 0 приходят разные события... и ошибки, открытие и закрытие соединений. Открытие я определяю, так как идёт обращение к коннекту сервера. А как определить закрытие соединения? Кто подскажет?
  11. LwIP обработка ошибок

    Доброго времени суток. В приложении (FreeRTOS + LwIP) обрабатываю TCP/Modbus. Сделал несколько коннектов. Неблокирующее соединение + callback функция. Всё работает, пока всё корректно. Бывает, что при некорректном закрытии соединения (например вис сервера) у меня в callback функцию возвращается ошибка. Что с ней делать - ума не приложу. Глубоко стек копать не могу. У меня ещё, кроме того, если остановку проца в дебаге делаю, то ethernet отваливается. Пытаюсь закрыть соединение, но lwip возвращает ошибку (ERR_VAL -6 /* Illegal value.*/). Порывшись - вижу что pcb = 0, отсюда и ошибка. Собственно вопрос состоит в том, как обработать ошибку, чтобы я смог закрыть коннект и освободить память. Кто сталкивался?
  12. DMA2D в stm32f4хх

    Там можно было бы многое, но нет отрицательного смещения, нет дробного смещения. Иначе можно было бы выводить произвольные линии. А так только вертикальные и горизонтальные.
  13. DMA2D в stm32f4хх

    Цитата(Шаманъ @ Apr 21 2017, 13:26) Могу посоветовать перейти на RGB565, Сразу 2 зайца. И объём вдвое уменьшится и и выборка точки за раз будет осуществлятся. ) Цитататем более Ваш экран 24битный цвет скорее всего не поддерживает. Ну скорее не "не поддерживает", а "реально не отображает"... )
  14. IAR 8.10

    С вылетом разобрался. Короче вылет с крушением происходит в случае, если какой-то символ в файле есть. Скорее какой-то символ завершения файла. Скорее всего при редактировании внешнем редактором такое получилось. Открыл файл notepad-ом обрезал пару строк - сохранил - после этого всё заработало в родной среде. Решил пока не удалять его. Пишу небольшой проект новый. Решил попробовать от начала до конца написать его.
  15. Библиотеки для STM32

    Цитата(Forger @ Apr 19 2017, 09:56) На момент создания всего этого у меня было две задачи: убрать кучу кода инициализации пинов, спратав это внутрь одного файла (Pin.hpp), сохранить скорость работы ногодрыга. Оптимизация - это вторично. Главное - user-код изолирован от реализации Pin, который впоследствии можно безболезненно переделать. Какую кучу инициализации? Вы что бредите? Я пишу свой файл local где детально описываю все ноги, включая неиспользуемые. Описываю оборудование применяемое на ногах. Но не потому, что нет другого выхода. Потому что это способ сразу видеть схему, глазами программиста. Даже через несколько лет, я смогу восстановить схему, с точки зрения программиста. Это очень удобно, в том числе при отладке. То есть этот подход ничего общего не имеет к стилю написания, а имеет прямое отношение к стилю проектирования. Порты инициализирую сразу, а не попиново, но инициализация всё равно имеет мнемонику пинов, что не ухудшает переносимость. "Куча кода инициализации портов" получается 5/6 регистров на порт. Плюс не более 20 макросов управления ногодрыгом. И это на 144 ножный корпус. Причём макросы это не обязательно ногодрыг. Например подключен АЦП на SPI. DIN/DOUT(RDY). Я передаю, потом переключаю линию разрешаю прерывания по готовности и так далее. То есть это уже к класу ногодрыга не совсем относится, но по логике работы общая. Я не ратую за макросы. Сейчас это не рекомендуется. Можно оформить процедурами либо классами. Но зачем увязывать это с портами? И главное, мне не ответили в чём выигрыш? Если класс получается непереносимый, и его нельзя заимствовать? Зачем? Вот главный вопрос.