@proembedded

Страница 38 из 975
Alexey
25.07.2016
19:07:31
Ilya
25.07.2016
19:10:56
Позволю сказать - HAL не нужен
сказать, конечно, позволяю, но лично для меня HAL сильнj упростил что жизнь, что конкретно порог вхождения

Dmitry
25.07.2016
19:11:21
Google
Dmitry
25.07.2016
19:11:46
Постоянно юзаю SPL и то, около трети функций мной дописаны

Ilya
25.07.2016
19:12:03
А, вы просто этим пользуетесь гораздо дольше меня

ну тогда вам сам Бог велел топить за SPL

Dmitry
25.07.2016
19:13:00
отчего же?
Отбирает понимание контроллера. Те же прерывания заменили на коллбеки, а NVIC, имхо, одна из самых интересных плюшек STM32

IDDQD
25.07.2016
19:13:32
эцсамое

Dmitry
25.07.2016
19:13:36
ну тогда вам сам Бог велел топить за SPL
Я не топлю за SPL. Топлю я за CMSIS, просто SPL хорош для быстрого написания и отладки. Затем можно всё заменить на CMSIS

IDDQD
25.07.2016
19:13:38
а чо такое HAL?

?

Dmitry
25.07.2016
19:14:19
High Access Level

Библиотека для STM32, хуже которой уже ничего не придумают

Kirill
25.07.2016
19:14:50
High Access Level
ШОБЛЯДЬ?))))

hardware abstraction level

это термин устоявшийся в мировом сообществе программистов со времен мамонтов

Google
Dmitry
25.07.2016
19:15:45
Упс. Ошибочка вышла

IDDQD
25.07.2016
19:15:56
а там типа функция pwmmodeGOD(pin3, 50%, 10MHz, iposkoree)?

Kirill
25.07.2016
19:16:15
если что, просто хал есть везде, а стмщики назвали свою либу просто и без выкрутасов, хал)

IDDQD
25.07.2016
19:16:47
в чем приемущество?

Dmitry
25.07.2016
19:16:57
Больше абстракций богу абстракций

А по факту - больше ненужной херни и больше времени на отладку, если что-то не работает

IDDQD
25.07.2016
19:17:23
типа платформонезависимый код?

Tema
25.07.2016
19:17:35
Когда следующий митап?

Kirill
25.07.2016
19:17:47
выглядит как Hal_gpiotypedef это типо структура с иницализационными данными, дальше функция инита которой даешь указатель на эту структуру

сама функция везде на каждом камне разная

Ilya
25.07.2016
19:17:59
я вижу HAL в первую очередь как хороший способ избежать множества ошибок на начальном этапе. Да и поддерживать продукт, написанный при его помощи легче гораздо

Kirill
25.07.2016
19:18:03
вот таким способи достигается абстракция

Ilya
25.07.2016
19:18:31
Dmitry
25.07.2016
19:18:32
Баги и в SPL есть

И да, как ни странно, баги есть и в железе

Ilya
25.07.2016
19:18:51
я встречал баги в хале, так что это палка о двух концах)
HAL довольно активно поддерживается, баги исправляются)

Kirill
25.07.2016
19:18:52
в спл не встречал, но видимо я везучий)

Dmitry
25.07.2016
19:18:54
Я недавно дико фалломорфировал от того, насколько криво сделали I2C в F1

Google
Dmitry
25.07.2016
19:19:12
Ilya
25.07.2016
19:19:38
а что там такого?

Dmitry
25.07.2016
19:19:42
Извечная проблема флага BUSY, сбросить который сможет, вроде, только реинит модуля

После 1 стопа флаг BUSY вывешивается навечно. До перезапуска модуля

Kirill
25.07.2016
19:20:49
я делаю так, инит через хал, работа через регистры

Dmitry
25.07.2016
19:20:55
в спл не встречал, но видимо я везучий)
Из того что вспомнил - глянь работу с флеш-памятью. Во всех функциях там ожидается флаг Busy. Что неверно, ибо по сбросу флага Busy, если верить RM, операция не факт, что завершена. Для проверки завершения операции есть флаг EOP.

Kirill
25.07.2016
19:21:12
надо все libopencm3 попробовать и stm32 template library

Dmitry
25.07.2016
19:21:20
Так что, в данном случае, всего лишь пришлось сменить проверяемый флаг

Kirill
25.07.2016
19:21:32
вторая кстате русскоязычным сообществом написана, чему я был несказанно рад

Dmitry
25.07.2016
19:23:19
Таким образом, при быстрой записи во флеш из программы, без оптимизации будет работать, возможно, а вот с ней - нет)

Dmitry
25.07.2016
19:24:18
сейчас поищу статью, в которой это описывалось
Если ты про ту, что на хабре, я её читал и ей руководствовался, когда SPL переписывал

Я просто уже не помню, давно с ним работал и весь RM не получается в голове держать

Ilya
25.07.2016
19:26:57
А у SPI что там?
там все буферы для передачи данных по 2-м флагам проверяются

Dmitry
25.07.2016
19:31:07
Эх, мне бы решить сначала проблему с непонятными зависаниями. Контроллер из серии F1 раз в день-два да зависнет, да так, что RESET не выводит из этого состояния, только отключение-включение питания

В основном зависание идёт при софтварном ресете

Ilya
25.07.2016
19:33:34
а это не железячная проблема?

Google
Kirill
25.07.2016
19:33:42
ватчдог это конечно не правильно, но вай нот)

Pavel
25.07.2016
19:33:45
Ilya
25.07.2016
19:34:02
ну там непропай где-то, допустим

из-за этого даже резет на кропке не рабоатет

*кнопке

Pavel
25.07.2016
19:35:14
А сохранять статус можно в оперативной памяти, даже после резет она будет сохранять значения ибо питание то остаётся. Нужно только инит предусмотреть без обнуления и по указанному адресу.

Там все логи хранить для дебага

Dmitry
25.07.2016
19:36:46
Ах, да, что сделано: 1. Ватчдог запущен. Но ватчдог бы просто ресетнул контроллер, а не повесил намертво. Пинать ватчдог не забываю. 2. Ресет в кнопке работает. Спокойно контроллер перезагружаю с кнопки. 3. Плата проверена 100500 раз. 4. Хардфолт и прочие неприятности я бы увидел. Светодиоды заморгали бы. 5. CSS включена, ошибку генератора я увидел бы. 6. Мощные потребители есть, но отключены. 7. Зависания крайне редки, порядка 1 в день-два-неделю

Сначала думал на flash, ибо включена защита, а если попробовать постучать в МК извне со включенной защитой, то он как раз повиснет до передёргивания питания(защита такая). Но отладчик отключен физически.

Kirill
25.07.2016
19:42:01
крайне странно, может свд вытащить и смотреть логи в реалтайме

Dmitry
25.07.2016
19:42:30
Так говорю же, отладчик отключен именно физически. Он не подключен к плате, а лежит на столе

Все неиспользуемые выводы, кстати, включил как вход с подтяжкой к +

Kirill
25.07.2016
19:45:34
Так говорю же, отладчик отключен именно физически. Он не подключен к плате, а лежит на столе
дак подключить только swd трейс, может он и не виснет вовсе, а ловит ассерт и тупит там

Dmitry
25.07.2016
19:45:53
Так у меня assert не врублен же в дефайнах

И да, два дня девайс с отладчиком провисел - ничего не вылетело

Kirill
25.07.2016
19:46:42
отладчик просто получал по свд инфу или реально дебаг был?

если первое, то может отладчик добавил земли

Dmitry
25.07.2016
19:48:33
Отладчик в режиме дебага был. Инфа по SWD получается краааайне медленно

USART и то быстрее будет, так что SWO не юзаю, хоть и выведен

Kirill
25.07.2016
19:49:58
я всегда думал что swo это и есть юарт

Google
Dmitry
25.07.2016
19:50:50
Ниет. Он крайне медленный. То, что UART выводит на скорости 115200 секунду, SWO выводит секунд 6-7

Kirill
25.07.2016
19:51:15
оке, надо тогда себе трейс переделать будет

Dmitry
25.07.2016
19:52:34
Ощущение такое, что какая-то ошибка в железе...

Gregor
25.07.2016
19:56:49
И да, хал таки нужен

Dmitry
25.07.2016
19:57:22
Цмсис — это название стандарта кодирования, если чо
А мне сдаётся, что это Cortex Microcontroller Software Interface Standard

Dmitry
25.07.2016
19:58:52
Насколько я помню, там коллбеки. И это мне не нравится.

Gregor
25.07.2016
19:59:08
Как писать код

Dmitry
25.07.2016
19:59:35
А вот и не угадал

Это стандарт описания ресурсов, не более

Gregor
25.07.2016
20:03:26
Насколько я помню, там коллбеки. И это мне не нравится.
Никто не заставляет их юзать, они объявлены как weak

Это стандарт написания апи

Я просто не понимаю, что значит топить за цмсис

Artem
25.07.2016
20:04:57
Я вызов колбека под себя переписал и удобно

Gregor
25.07.2016
20:05:02
Хал тоже в соответствии с цмсис написан

Artem
25.07.2016
20:05:05
Всем привет

Страница 38 из 975