189 похожих чатов

Превед! Посоветуйте новичку, с чего начать с stm32 - регистры или

hal?

65 ответов

114 просмотров

SPL

Serg Sapov
SPL

Неподдерживаемые библиотеки HAl_LL же

Если стоит такой вопрос, то STM32 надо начинать с AVR. :) Это отличная модельная архитектура, на которой удобно понять, как контроллер вообще в принципе работает. А обучаться, конечно, надо на регистрах. Иначе не будет понимания внутренней структуры. А когда это понимание будет, то дальше можно использовать что лучше подходит в конкретном проекте.

Зависит от задач. Hal и cubeide - быстро и сердито Регистры. Долго, сложно, но позволят реализовывать более сложные программы, не выжирая все место халовскими библиотеками.

Владимир
Зависит от задач. Hal и cubeide - быстро и сердито...

Не сказал бы что регистры - сложно. Долго, муторно - это да.

Roman
Не сказал бы что регистры - сложно. Долго, муторно...

В stm32? В старых avr/pic еще туда сюда, в стмках рока вкуришь нормально, вся водка закончится. Но опять же, вопрос задач. У меня в свое время задачи стояли: срочно и вчера, поэтому до сих пор сижу на хале. Из минусов - раздутый код. Сейчас уже постоянная оптимизация в скорость стоит. В остальном даже говнокод стабильно крутится.

Electronics Designer
Если стоит такой вопрос, то STM32 надо начинать с ...

Все (многие) говорят про понимание, как работает микроконтроллер через понимание внутренней структуры. Одни пишут про работу с регистрами, другие пишут про работу с регистрами на ассемблере... Что вообще значит "понимание внутренней структуры"? Желательно на примерах, можно абстрактных.

Станислав Альбертович
Все (многие) говорят про понимание, как работает м...

Это значит что нужно как минимум раз даташит полностью прочитать

Станислав Альбертович
Все (многие) говорят про понимание, как работает м...

Понимание внутренней структуры предполагает понимание архитектуры вычислительных систем и принципов построения программируемых устройств на базе элементарной цифровой логики.

kimstik
Это значит что нужно как минимум раз даташит полно...

Читать его целиком смысла нет. Надо уметь понять любой произвольно взятый кусок даташита.

kimstik
Это значит что нужно как минимум раз даташит полно...

для STM придется перечитать целую пачку даташитов и мануалов, по которым разбросана инфа. Описание выводов в одном, регистров - в другом, тактирования - в третьем...

Juray Neskažu
для STM придется перечитать целую пачку даташито...

Именно по этой причине я рекомендую для начального ознакомления AVR - там все в одном документе. :) И читать его совместно с трудом H&H https://is.ifmo.ru/books/2016/digital-design-and-computer-architecture-russian-translation_July16_2016.pdf

Electronics Designer
Читать его целиком смысла нет. Надо уметь понять л...

И так вы поймёте структуру прочтенного куска

kimstik
И так вы поймёте структуру прочтенного куска

Если человек не знает, что такое регистр или SPI - он не поймет.

kimstik
Или пики! Еще проще и ортогональнее

Или MSP430. Ну, короче, что-то простое, где полтора порта и один таймер.

kimstik
Надеюсь он читать/писАть умеет?

Ну в чат же пишет. Так что с этим все в порядке.

Electronics Designer
Ну в чат же пишет. Так что с этим все в порядке.

А хрен знает. Сейчас время такое неоднозначное

Juray Neskažu
screenshot MCS51 !!!

У пичка инструкций меньше и все ровные

kimstik
У пичка инструкций меньше и все ровные

Да... особенно 16 серия прилизана очень хорошо

kimstik
Ну не так уж и много

Для начинающего это будет ад. Я сам долго привыкал после AVR. :)

Согласен. Стм для первоходов может быть смертелен

Это надо сначала простую логику и основные логические элементы изучать, потом триггеры на них собирать и т.д. Так можно до МК не дойти никогда. Можно же чуть проще понять о наличии шин адреса и данных и АЛУ, ОЗУ и т.д. И все равно ничего не понимать.

kimstik
Согласен. Стм для первоходов может быть смертелен

Ну как сказать. Ассемблер для STM32 он практически идентичен Ассемблеру PDP-11

Boris
Ну как сказать. Ассемблер для STM32 он практически...

Дело не в ассемблере, дело в миллиарде регистров по миллиону битов каждый.

kimstik
Шутишь?

Тут нет Очень похоже

Boris
Тут нет Очень похоже

Все ассеблеры Адинаковы кроме ADSP

Хал

Andrey Ermakov
Хал

И чему человек научится в итоге? Использовать HAL? :)

Daweed∞
буд то что то плохое

Да просто замечательное, ага. Стопроцентная привязка к одному вендору.

Daweed∞
а какие еще вендоры есть у st?

Кроме ST есть много вендоров, и очень хорошо, если человек может писать код так, чтобы перенос кода между разными МК требовал как можно меньше усилий.

Andrey Ermakov
Хал 0.5%в с составе работы с Мк)

Ну так это тогда придется писать HAL поверх HAL, чтобы безболезненно переносить код. Больше слоев абстракции богу абстракций!

Daweed∞
так человек про ст спросил конкретно

Иногда полезно говорить человеку не то, о чем он спросил, а то, что он хотел узнать. :)

Electronics Designer
Ну так это тогда придется писать HAL поверх HAL, ч...

Не понимаю что вы имеете ввиду, зачем писать и переносить, бизнес логика в принципе не связана с Мк)

Electronics Designer
Кроме ST есть много вендоров, и очень хорошо, если...

Это как? Создавать заготовленные с описанием регистров, а при необходимости их править под другой МК?

Andrey Ermakov
Не понимаю что вы имеете ввиду, зачем писать и пер...

Есть место, где бизнес-логика переходит в HAL, и если этот HAL завязан на конкретную реализацию - его придется болезненно выковыривать отовсюду.

Станислав Альбертович
Это как? Создавать заготовленные с описанием регис...

Делать свой HAL на регистрах и при необходимости править только его, не трогая логику вообще. :)

Daweed∞
инфоциганство какое то)

Это называется soft skills. :)

Станислав Альбертович
Это как? Создавать заготовленные с описанием регис...

Вариантов, думаю, много. Лично я пишу свои vendor-specific драйвера для разной периферии в виде классов, объекты которых затем подставляю в виде параметров конструктора каких-либо других периферийно-зависимых классов модулей. Таким образом при смене контроллера достаточно будет переписать свои vendor-specific драйвера. То же касается и работы с RTOS - также можно написать врапперы для основных функций, либо не париться и везде использовать FreeRTOS)

Станислав Альбертович
Все (многие) говорят про понимание, как работает м...

Понимание как оно внутри работает на уровне логических элементов

Electronics Designer
Ну так это тогда придется писать HAL поверх HAL, ч...

HAL это плохой пример С++, навязанная архитектура, которая в большинстсе случаев избыточна.

Andrey Ermakov
Не понимаю что вы имеете ввиду, зачем писать и пер...

Не связана, но завязана на возможности МК

Serg Sapov
HAL это плохой пример С++, навязанная архитектура,...

HAL - это аббревиатура для Hardware Abstraction Layer. Поделие от ST называется StdPeriphLib. :)

Electronics Designer
HAL - это аббревиатура для Hardware Abstraction La...

Начинающие этого не знают, для них HAL - это библиотека для STM32

Serg Sapov
Начинающие этого не знают, для них HAL - это библи...

Я понимаю. В частности, и для этого им надо читать Харриса и Харрис. :)

Serg Sapov
Ну для начала хотя бы Сквореня

Если человек читает Свореня, то за контроллеры ему браться рановато. Но да, тоже хорошая книжка.

kimstik
Согласен. Стм для первоходов может быть смертелен

Это если 32-й. А если стм8 - то в самый раз.

Иван-Музыка Автор вопроса
Electronics Designer
Если стоит такой вопрос, то STM32 надо начинать с ...

ну забыл уточнить, я тыкал авр с регистрами на уровне работы с i2c и всякими микросхемами потом посоветовали + самому стало интересно что там в stm говорят в нем посложнее

Иван Музыка
ну забыл уточнить, я тыкал авр с регистрами на уро...

если авр с регистрами и и2с кушал он и стм32 переваришь на ура

kimstik
если авр с регистрами и и2с кушал он и стм32 перев...

А если ужаленный и не боишься док на мандарине то попробуй что нить на риске пятом. Ch32v какой нить

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта