simark1979 0 24 февраля, 2019 Опубликовано 24 февраля, 2019 · Жалоба На заметку, вдруг столкнетесь Нашелся-таки баг stm32f4xx_hal_rtc.c (версия 1.7) Есть вывод PC13, который я сконфигурировал как GPIO (использую для строчного экрана) Прикол в том, что мне нужно было установить время с помощью HAL_RTC_GetTime(...) и тут полезли кракозябры по экрану, причем перезапуск контроллера никак не помогал, заработал он только после полного отключения от питания со снятием батарейки часов. А дело в баге в функции установки часов, кроме установки времени, она пишет всякую ненужную фигню в регистр настройки RTC, из-за чего PC13 переводится на альтернативную функцию, связанную с часами. (какую именно уже не помню, сейчас не у рабочего компа) Короче как оказалось, это встречается не только в F2 https://community.st.com/s/question/0D50X00009XkWZ5SAN/behaviour-of-pc13-not-as-expected Дабы не ковырять драйвер, часы перевел на LL и написал свои функции для установки времени. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба Бог мой! Сорри за оффтоп, но... как этот hal/куб стал активно вылазить на нашем форуме...((( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=az=- 0 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба 2 часа назад, haker_fox сказал: Бог мой! Сорри за оффтоп, но... как этот hal/куб стал активно вылазить на нашем форуме...((( Пора этот кубострой в раздел ардуинщиков переводить ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба 3 hours ago, -=az=- said: Пора этот кубострой в раздел ардуинщиков переводить ... С одной стороны понимаю соблаз быстрее запустить проект, но с другой мне кажется, что теряется понимание МК... и как следствие, плодятся ошибки на ровном месте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=az=- 0 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба Совершенно верно! Если бы не было кубов и подобной чепухи, таких вопросов и не появлялось т.к. при работе с регистрами ты полностью контролируешь действия. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rudy_b 1 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба Зря вы ругаете куб, он абсолютно необходим. Это связано с тем, что периферия у STM32, мало того, что совершенно дебильная, так еще и не имеет подробных описаний. И ее можно заставить нормально работать только получив дополнительную информацию, которая есть только в исходниках HAL драйверов периферии куба. Естественно напрямую использовать HAL не стоит, слишком накладно и местами неграмотно, следует писать свое глядя на его исходники. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 6 марта, 2019 Опубликовано 6 марта, 2019 · Жалоба 2 hours ago, rudy_b said: которая есть только в исходниках HAL драйверов периферии куба. А если её там нет? Выкидывать микроконтроллер на помойку, и ставить другой фирмы? Ведь тогда получается ситуация безвыходная. 2 hours ago, rudy_b said: у STM32, мало того, что совершенно дебильная, Я бы сказал, что она особенная. В некоторых местах довольно усложнённая. Но, тем не менее, для stm32f051 я хоть и отлаживал драйвер i2c две (две) недели, но заставил его работать без всяких халов) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rudy_b 1 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 20 hours ago, haker_fox said: А если её там нет? Выкидывать микроконтроллер на помойку, и ставить другой фирмы? Ведь тогда получается ситуация безвыходная. Я бы сказал, что она особенная. В некоторых местах довольно усложнённая. Но, тем не менее, для stm32f051 я хоть и отлаживал драйвер i2c две (две) недели, но заставил его работать без всяких халов) Она именно там и есть. Иначе бы ХАЛ не работал. И только там можно найти жизненно важные подробности. Она не особенная, а именно дебильная. Проверьте как ваш i2c выкручивается из ситуации когда нет ack (однократно) без полного reseta. Про i2c dma тихо промолчу.А уж RTC... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 1 hour ago, rudy_b said: Иначе бы ХАЛ не работал. так я думаю, что он иногда и не работает. Не может же он быть без ошибок, либо не может удовлетворять на 100% ваши (мои) запросы. А если код нужно сертифицировать по SIL? 1 hour ago, rudy_b said: Она не особенная, а именно дебильная. Ну это субъективно) 1 hour ago, rudy_b said: Про i2c dma тихо промолчу Насколько я знаю, i2c вообще трудно через dma гнать. И, тем не менее, остаюсь при своём мнении, что (мне) лучше разобраться самому с периферией, чем потом искать ёжика в тумане (в чужом коде). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 5 hours ago, haker_fox said: И, тем не менее, остаюсь при своём мнении, что (мне) лучше разобраться самому с периферией, чем потом искать ёжика в тумане (в чужом коде). Я тоже не сторонник HAL и не использую его. Но, всякие printf, memcpy, memset, strlen и т.д., и т.п. тоже Ёжик в тумане ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
falling_stone 0 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба Работал недавно с stm32h7. Начал с куба, но потом взял всё, что нагенерил куб и немного переделал, хотя от функций хала и не отказался. Кстати, с функцией HAL_RTC_GetTime тоже немного пришлось повозиться. Как выяснилось, её можно применять только одновременно с HAL_RTC_GetDate. Это распромьраняется и на SetTime/Date. Причем написано об этом маленьким шрифтом в исходнике хала и только об одной из пар функций. Хал, на мой взгляд, действительно написан чересчур заумно. Не столько периферия, сколько сам хал. По сравнению с Силабз - мутная заумь. Из багов самого камня могу назвать непродуманность dma2d - двумерного дма, который, к примеру, в определенных режимах требует, чтобы область была выровнена по границе 4 байт и имела размер кратный 4 байта. Я писал gui, испольуя только внутреннюю память, поэтому использовал 8 бит цвет и значит все видеопримитивы у меня вынужденно были кратны 4 пикселям. I2c, spi, rtc, lcd контроллер - всё запустилось практически без проблем. Очень много сил отняла борьба с кэшем. Для этого чипа работать без него - существенное замедление, а с ним всё время зависает на dma2d,пришлось повозиться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 120 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба 26 минут назад, dimka76 сказал: Но, всякие printf, memcpy, memset, strlen и т.д., и т.п. тоже Ёжик в тумане ? Ну их-то грамотные люди пишут. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
falling_stone 0 7 марта, 2019 Опубликовано 7 марта, 2019 · Жалоба Это вопрос везения. Какие бы грамотные люди ни писали, сложность современного железа и софта такова, что всё проверить банально не удаётся. И если всё хорошо, то Вы берете сгенерировагные исходники или пример, копируете и это здорово экономит время. Но если есть необходимость в оптимизации или нестандартном подходе - действительно, приспособление и борьбы с чужими тараканами по времени может выйти дороже, чем сесть и рабобраться самому, если (!) Есть нормальная документация. Нет её - вилы эмалированые, как в случае со всякими квалкомами, бродкомами, и ёже с ними. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 8 марта, 2019 Опубликовано 8 марта, 2019 · Жалоба 7 hours ago, dimka76 said: Но, всякие printf, memcpy, memset, strlen и т.д., и т.п. тоже Ёжик в тумане ? Нет, не ёжик. Это часть стандартной библиотеки, поставляемой с компилятором. Компилятор, в моём случае, IAR. Имеет сертификаты. Можно доверять) Но именно доверять, и проверять. Ибо в соответствующей ветки в компиляторе этом уже не раз находили ошибки. В случае слишком ответственных применений, насколько мне известно, переписывают и эту библиотеку. Кстати, некоторые коммерческие, и не только, проекты не расчитывают на эти функции, а предлагают через дефайны выбрать, что использовать: их собственный вариант, или из стандартной библиотеки, ну или ваш собственный. Пример: файловая система Reliance Edge, LwIP. 7 hours ago, falling_stone said: чтобы область была выровнена по границе 4 байт и имела размер кратный 4 байта А это не ограничение периферии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 29 8 марта, 2019 Опубликовано 8 марта, 2019 · Жалоба 8 часов назад, dimka76 сказал: Но, всякие printf, memcpy, memset, strlen и т.д., и т.п. тоже Ёжик в тумане ? Так то и реализацию оператора присваивания кто-то написал и мог допустить ошибки. Только вероятность ошибки в случае с HAL, написанной индусом "закинувшимся" своим жевательным пакетиком, стремится к единице. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться