Прерывания отключаете во время обмена по 1-Wire. Или задействовали Timer1 для отсчета временных интервалов?ARV писал(а):мне ни DMA не требуется, ни UART...
STM32 новичку в ARM что к чему
Re: STM32 новичку в ARM что к чему
- Реклама
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18649
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 новичку в ARM что к чему
это к теме топика не относитсяМурик писал(а):Прерывания отключаете во время обмена по 1-Wire. Или
ну так на то и прогресс!Eddy_Em писал(а):А хочет решать проблемы не эффективным способом, а экстенсивным!
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, а чем SPL/SPI/DMA не устроило?
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ЧОрД! Опять я эти два слова перепутал. Надо усиленно лечить мозг ☺ARV писал(а):на то и прогресс!
В данном случае, естественно, интенсификация имелась в виду. Потому как вместо нормального адекватного подхода используется подход "[censored]-[censored] — и в продакшн!" — так любимый абдуринщиками и недотепами.
Во-первых, SPL == кал. Во-вторых, оно еще и deprecated!ПростоНуб писал(а):Eddy_Em, а чем SPL/SPI/DMA не устроило?
Нет уж, если писать правильно, то только на голых CMSIS.
Ну, а вообще, понятно, что можно было бы даже из SPL выдрать нужный алгоритм. Был бы он. Когда я вижу код, разбросанный по 2-3 файла в туче директорий, я воспринимаю это как издевательство! И даже makefile отсутствует, чтобы посмотреть, что да как — это уж совсем ни в какие ворота не лезет...
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, оригинально. SPL предоставляет все необходимые определения во включаемых файлах и рабочие примеры, позволяя а любой момент работать с железом напрямую, чего не скажешь о CMSIS, предлагающий существенно более высокий уровень абстракции. Тогда понятно, почему 100КГц на STM32 вам кажется много, а до четырех мегагерц на Ардуине для анимации на LCD вполне нормален )))
- Реклама
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ПростоНуб, жуть в полоску! Вам SPL кажется нормальным? Ну-ну...
Там ужасный оверхед. Одно дело - использовать эти функции на стадии инициализации (но ведь работа двойная: и даташит читать, и исходники SPL!), и совсем другое — во время работы. Я уже выше упоминал, как мучился с opencm3, не понимая, почему оно мне лишние импульсы на 1-wire дает. А все оказалось просто: библиотека "не успевала" вопремя сделать нужные присваивания. Напрямую все заработало прекрасно.
Посмотрите в код у меня на гитхабе: без SPL/калокуба/прочей дряни все получается намного эффективней + читать (а значит и поддерживать) это проще. Разве что USB не было — на основе набросков кода, которым поделился товарищ на mcu.goodboard.ru, я сделал USB-HID (эмуляция клавиатуры и мыши) и эмуляцию PL2303. Начал было делать классический USB ACM, но как-то все некогда добить его. Да и не нужен мне он: мне эмуляция pl2303 больше нравится, т.к. в системе появляется /dev/ttyUSBx, а не поганый /dev/ttyACMx (во втором случае в некоторых недоработанных дистрибутивах на появление этого устройства откликается modemd и "захватывает" его, не позволяя открыть порт напрямую).
Там ужасный оверхед. Одно дело - использовать эти функции на стадии инициализации (но ведь работа двойная: и даташит читать, и исходники SPL!), и совсем другое — во время работы. Я уже выше упоминал, как мучился с opencm3, не понимая, почему оно мне лишние импульсы на 1-wire дает. А все оказалось просто: библиотека "не успевала" вопремя сделать нужные присваивания. Напрямую все заработало прекрасно.
Посмотрите в код у меня на гитхабе: без SPL/калокуба/прочей дряни все получается намного эффективней + читать (а значит и поддерживать) это проще. Разве что USB не было — на основе набросков кода, которым поделился товарищ на mcu.goodboard.ru, я сделал USB-HID (эмуляция клавиатуры и мыши) и эмуляцию PL2303. Начал было делать классический USB ACM, но как-то все некогда добить его. Да и не нужен мне он: мне эмуляция pl2303 больше нравится, т.к. в системе появляется /dev/ttyUSBx, а не поганый /dev/ttyACMx (во втором случае в некоторых недоработанных дистрибутивах на появление этого устройства откликается modemd и "захватывает" его, не позволяя открыть порт напрямую).
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, я почти не пользуюсь функциями SPL, я пользуюсь ее включаемыми файлами и смотрю исходники функций, для лучшего понимания даташит. И очень часто это мне экономит уйму времени, так как какой-то ERRATA могу и пропустить. А вот с CMSIS есть смысл общаться только если важна кроссплатформенность (возможность переноса кода на другой МК, обычно, более производителный). Хотя исходники CMSIS изучаю так же с удовольствием )
Re: STM32 новичку в ARM что к чему
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704006#p3704006"]я почти не пользуюсь функциями SPL, я пользуюсь ее включаемыми файлами и смотрю исходники функций, для лучшего понимания даташит.[/uquote]
Те кто совсем не пользуются SPL подключают один CMSIS хедер и все, что, кстати, не мешает им просматривать исходники функций чего угодно.
Те кто совсем не пользуются SPL подключают один CMSIS хедер и все, что, кстати, не мешает им просматривать исходники функций чего угодно.
Re: STM32 новичку в ARM что к чему
А ваши сообщения как к теме относятся?ARV писал(а):это к теме топика не относится
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Reflector, а смысл? CMSIS более высокоуровневый, чем SPL. Поэтому в качестве примера работы непосредственно с аппаратными средствами МК он менее удобен, чем SPL. Дольше продираться до нужного кода. А включаемые файлы SPL меня вполне устраивают, занимая существенно меньший объем, чем включаемые файлы CMSIS, что только положительно влияет на время сборки.
Понятно, что зависит от проекта. На младших STM32 толку от CMSIS мало. На старших он вполне востребован. Но необходимость в старших STM32 возникает очень редко, а в младших - часто. А чаще всего необходимость возникает вообще в STM8/AVR )
Понятно, что зависит от проекта. На младших STM32 толку от CMSIS мало. На старших он вполне востребован. Но необходимость в старших STM32 возникает очень редко, а в младших - часто. А чаще всего необходимость возникает вообще в STM8/AVR )
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Чегооо???ПростоНуб писал(а):А вот с CMSIS есть смысл общаться только если важна кроссплатформенность
Чегооо???ПростоНуб писал(а):CMSIS более высокоуровневый, чем SPL.
Блин, ну просто перманентное деление на нуль! А ничего, что заголовки SPL включают (автоматом) еще и заголовки CMSIS?ПростоНуб писал(а):включаемые файлы SPL меня вполне устраивают, занимая существенно меньший объем, чем включаемые файлы CMSIS
Опять деление на нуль.ПростоНуб писал(а):На младших STM32 толку от CMSIS мало
Сейчас между STM32F030 и STM8S105 разница в цене столь несущественная, что для мелких серий проще ARM взять, чем восьмибитник. А аврки в наше время только уж совсем динозавры используют (т.к. у аврок слишком скудный набор периферии + они намного дороже тех же STM8).ПростоНуб писал(а):А чаще всего необходимость возникает вообще в STM8/AVR
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, Сравните потребление STM8L152 с потреблением любого STM32 и расслабьтесь )))
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
ПростоНуб, у меня нет потребности в изготовлении питающихся от батарейки устройств! Рядом всегда есть розетка, большой аккумулятор или генератор.
Но и STM32 бывают L-серии. Правда, дорогущие жутко. Здесь — да, выгодней может быть STM8 взять.
Ну а вам, дорогой, я советую-таки погуглить, что такое CMSIS. А то такое невежество показываете...
Но и STM32 бывают L-серии. Правда, дорогущие жутко. Здесь — да, выгодней может быть STM8 взять.
Ну а вам, дорогой, я советую-таки погуглить, что такое CMSIS. А то такое невежество показываете...
Re: STM32 новичку в ARM что к чему
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3704130#p3704130"]Но и STM32 бывают L-серии. Правда, дорогущие жутко.[/uquote]
Где они дорогущие? STM32L151C8T6 - $1.17 поштучно на али, 5 шт. STM32L011D3P6 - $4.81.
Где они дорогущие? STM32L151C8T6 - $1.17 поштучно на али, 5 шт. STM32L011D3P6 - $4.81.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Eddy_Em, у Вас переполение, как Вы сами выразились, так что войду в положение.
CMSIS включает в себя кроме драйверов переферии еще кучу кода, например, для того же RTOS. Он откровенно избыточен, если я не собираюсь вообще пользоваться стандартными библиотеками. Тогда как SPL ограничивается только CMSIS-Core и драйверами переферии, занимая в два раза меньше места, чем CMSIS. А значит grep по нему ищет в два раза быстрее.
Если же говорить о непосредственно коде для работы с переферией, то, по крайней мере у ST, я различий между CMSIS и STL еще ни разу не обнаружил. Код идентичен. И если он Вам не нравится в SPL, то почему тот же самый код нравится в CMSIS - для меня загадка )))
CMSIS включает в себя кроме драйверов переферии еще кучу кода, например, для того же RTOS. Он откровенно избыточен, если я не собираюсь вообще пользоваться стандартными библиотеками. Тогда как SPL ограничивается только CMSIS-Core и драйверами переферии, занимая в два раза меньше места, чем CMSIS. А значит grep по нему ищет в два раза быстрее.
Если же говорить о непосредственно коде для работы с переферией, то, по крайней мере у ST, я различий между CMSIS и STL еще ни разу не обнаружил. Код идентичен. И если он Вам не нравится в SPL, то почему тот же самый код нравится в CMSIS - для меня загадка )))
- Eddy_Em
- Собутыльник Кота
- Сообщения: 2516
- Зарегистрирован: Пт июл 12, 2019 22:52:01
- Контактная информация:
Re: STM32 новичку в ARM что к чему
Дорогущие — если сравнивать с STM8S003 или ARM'ами (посмотрите, почем на али STM32F030 в 20-ногом корпусе).Reflector писал(а):5 шт. STM32L011D3P6 - $4.81.
Но с точки зрения энергопотребления — да, из маложрущих они почти самые дешевые.
Где здесь ртось? Что за чушь?ПростоНуб писал(а):CMSIS включает в себя кроме драйверов переферии еще кучу кода, например, для того же RTOS.
Естественно, под CMSIS имеется в виду базовый набор заголовочных файлов для ARM, безо всяких там ртосей и прочего мусора!
Ну ничего ж себе: есть разница между REG1 = VAL1,… REGN=VALN или struct.field1 = x,… struct.fieldn = y, initSMTH(&struct)?ПростоНуб писал(а):я различий между CMSIS и SPL еще ни разу не обнаружил
Re: STM32 новичку в ARM что к чему
[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3704171#p3704171"]Дорогущие — если сравнивать с STM8S003 или ARM'ами (посмотрите, почем на али STM32F030 в 20-ногом корпусе).[/uquote]
И зачем сравнивать STM32L с STM8S? $1.17 - это фактически цена по которой продают F103 или F072, с мелкими корпусами похуже, то мелкий STM8L тоже стоит ~$0.5, так что на любительском уровне я никакой особой дороговизны не вижу.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704146#p3704146"]CMSIS включает в себя кроме драйверов переферии еще кучу кода, например, для того же RTOS. Он откровенно избыточен, если я не собираюсь вообще пользоваться стандартными библиотеками. Тогда как SPL ограничивается только CMSIS-Core и драйверами переферии, занимая в два раза меньше места, чем CMSIS. А значит grep по нему ищет в два раза быстрее.[/uquote]
SPL не просто юзает только CMSIS-Core, если списать SPL от ST, то там кроме CMSIS-Core есть разве что один мелкий хедер для RTOS. Более того в том-же visualgdb, которым я пользуюсь, все то же самое, потому после удаления HAL/SPL остается лишь CMSIS-Core. Дальше я обычно еще удаляю лишние файлы и в типичном проекте остается ~4 файла:
И зачем сравнивать STM32L с STM8S? $1.17 - это фактически цена по которой продают F103 или F072, с мелкими корпусами похуже, то мелкий STM8L тоже стоит ~$0.5, так что на любительском уровне я никакой особой дороговизны не вижу.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3704146#p3704146"]CMSIS включает в себя кроме драйверов переферии еще кучу кода, например, для того же RTOS. Он откровенно избыточен, если я не собираюсь вообще пользоваться стандартными библиотеками. Тогда как SPL ограничивается только CMSIS-Core и драйверами переферии, занимая в два раза меньше места, чем CMSIS. А значит grep по нему ищет в два раза быстрее.[/uquote]
SPL не просто юзает только CMSIS-Core, если списать SPL от ST, то там кроме CMSIS-Core есть разве что один мелкий хедер для RTOS. Более того в том-же visualgdb, которым я пользуюсь, все то же самое, потому после удаления HAL/SPL остается лишь CMSIS-Core. Дальше я обычно еще удаляю лишние файлы и в типичном проекте остается ~4 файла:
Код: Выделить всё
stm32f3xx.h
stm32f303xc.h
cmsis_gcc.h
core_cm4.h- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Reflector, я не знаю о чем Вы, но если скачать, для пример SPL и CMSIS для STM32F10x, то в содержимое директорий STM32F10x_StdPeriph_Driver\inc и STM32F10x_StdPeriph_Driver\src в SPL идентично содержимому директорий StdPeriph_Driver\inc и StdPeriph_Driver\src в CMSIS.
А разбираться с конкретным железом через SPL код намного проще, чем через код RTE драйвера.
А вот содержимое STM32F10x_StdPeriph_Driver\inc (или идентичного StdPeriph_Driver\inc) очень удобно и полезно при написании собственного кода. Совершенно зря Вы его выкидываете.
А разбираться с конкретным железом через SPL код намного проще, чем через код RTE драйвера.
А вот содержимое STM32F10x_StdPeriph_Driver\inc (или идентичного StdPeriph_Driver\inc) очень удобно и полезно при написании собственного кода. Совершенно зря Вы его выкидываете.
Re: STM32 новичку в ARM что к чему
ПростоНуб, а Вы случаем CMSIS и HAL не перепутали ? CMSIS - это набор низкоуровневых библиотек от ARM.
Иван Сусанин - первый полупроводник 
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 новичку в ARM что к чему
Myp3ik, читайте внимательней. Я именно это и писал, что в SPL и CMSIS стандартные переферийные драйвера идентичны, но в CMSIS так же есть RTE драйвера, RTOS, DSP и NN. HAL тут вообще при чем?


