Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 16:10:50

Я не думаю что именно прям необходимы. Если пишут на С, значит там всё имеется что нужно. Но и на ассемблере когда то тоже писали, чаще чем сейчас.

Добавлено after 11 minutes 26 seconds:
С другой стороны я фиг с этим всем разберусь когда мало чего на С++ для МК есть.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 16:11:18

Как так получилось что для С фреймворк уже написан, а для С++ не написан?

А вот так и получилось. Большинство пишут на С, поэтому и сниппеты, и "библиотеки" - на сях. Единственное исключение - абдурина. Но там такой "С++", что и врагу не пожелаешь! Абсолютно неоптимально и через одно место.
На форумах (на этом тоже есть они) я встречал всего лишь двух человек, пишущих под микроконтроллеры на С++. И они написали свой фреймворк (классы, шаблоны), так что в итоге у них получается вполне легкочитаемый компактный код. А на выходе генерится такой бинарник, что и на асме не каждый напишет!
Теперь сравните это с тем дерьмом, что генерируется под абдурину. И вы поймете, как нужно и как не нужно программировать.

P.S. Еще в качестве контрпримера "как не нужно программировать" могу привести библиотеки SPL и HAL для STM32. Это просто лютый адов трешняк! Оверхед на оверхеде и оверхедом погоняет: куча ненужных ассертов, дурацкие структуры описания периферии…

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 16:15:20

я встречал всего лишь двух человек, пишущих под микроконтроллеры на С++.

кто же эти гуру ?

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:04:57

Так бы сразу и написали)) Перехожу на С.
Второй раз за день меняю языки программирования не зная ни одного))

Добавлено after 13 minutes 39 seconds:
Какую IDE используете? Для С и STM32
Может библиотеки какие обязательно нужно подключить типа CMSIS, HAL?

Добавлено after 35 minutes 17 seconds:
Visual Studio подойдёт ведь?

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:06:07

Некоторые обходятся вообще без оных, через обращение к регистрам. Но так можно и кукухой поехать. На работе у меня принято пользоваться HAL-ом.
О среде. Есть eclipse, к ней можно прицепить тулчейн, и получится неплохая бесплатная и, кстати, универсальная среда. Если же с другими ARM-ами работать нет планов, то можно качнуть у ST на сайте Cube IDE. Эта среда поможет разобраться с периферией - она всю инициализацию сама сделает. Был неплохой китайский Coocox, но он периферию настраивать сам не будет. Это я назвал только те, которыми сам пользовался.
Последний раз редактировалось mickbell Сб авг 14, 2021 17:10:39, всего редактировалось 1 раз.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:09:58

Или есть специальные IDE для МК?

Добавлено after 1 minute 50 seconds:
Этот HAL можно к Visual Studio подключить?

Добавлено after 1 minute 31 second:
Не гуглится ничего по этому поводу.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:11:12

Я чуть дописал свой пост.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:18:49

VIsual Studio не пользовались? Я просто её качаю сейчас.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:35:54

кто же эти гуру ?

VladislavS, например.
После того, как я увидел, насколько оптимальный бинарник у него на выходе получается, перестал сомневаться, что на С++ можно писать под МК!
Но я - неосилятор, я не могу понять С++. Поэтому пишу на С.

Но однозначно могу сказать: всяким дерьмом, вроде HAL'а, SPL'я, "куба" и т.п. вменяемые люди не пользуются! Как и не пишут код в "ардуино-стиле".
Если специалист не может осилить документацию и написать вменяемый код без всяких этих калокубов, гнать его надо ссаными тряпками, т.к. это - не специалист, а кусок дерьма!

P.S. По поводу IDE со своей стороны посоветую Qt-creator. Лично мне нравится. Я в нем практически все пишу (кроме веба и латеха: для веба у меня bluefish, а для латеха - texstudio).

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 17:43:24

Кубом пользуются, почему бы нет? Ебаться с настройками периферии вручную называется заниматься мастурбацией. Неее, я так тоже умею... :))) Халом тоже пользуются - хотя бы чтобы читаемость хоть какая-то была. Можно, конечно, изобразить свой "хал" в виде
#define some_pin_1() HAL_GPIO_WritePin(GPIOx, GPIO_PIN_y, GPIO_PIN_SET)
Последний раз редактировалось mickbell Сб авг 14, 2021 18:32:04, всего редактировалось 1 раз.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 18:19:00

На ютюбе кошмар, а не гайды по изучению С.
Что можно почитать из популярного по С? Не из известного и старого!!А из популярного.

Добавлено after 13 minutes 15 seconds:
P.S. По поводу IDE со своей стороны посоветую Qt-creator. Лично мне нравится. Я в нем практически все пишу (кроме веба и латеха: для веба у меня bluefish, а для латеха - texstudio).

Платная версия?

Добавлено after 6 minutes 49 seconds:
https://progerlib.ru/c-books

Добавлено after 1 minute 7 seconds:
Хочется без перевода, а то иногда переводчики так перемудрят... что читать не хочется. Лишь бы наукообразие было.

Добавлено after 58 seconds:
Программирование на C в примерах и задачах. Алексей Васильев

Добавлено after 42 seconds:
Курс программирования на языке СИ. Сергей Фомин, Вадим Подбельский
Одна голова хорошо, а две ...некрасиво.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 18:35:18

Можно посмотреть исходники какого-нибудь готового не сильно навороченного проекта, как он сделан. Думаю, многое станет понятно.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 18:57:36

Ничего себе как интересно. Правда толком не объяснено что такое этот идентификатор)
Имена присваиваемые переменным что ли? Как будто книга в переводе честное слово. ОМГ

Идентификаторы могут иметь любую длину, но компилятор учитывает не более 31 символа от начала идентификатора. В некоторых
компиляторах это ограничение еще более жесткое, и учитываются
только первые 8 символов любого идентификатора. В этом случае
идентификаторы NUMBER_OF_ROOM и NUMBER_OF_TEST
в программе будут неразличимы.

Добавлено after 9 minutes 46 seconds:
Есть тема куда можно сбрасывать мой поток мыслей при чтении? Когда пишешь что читаешь, запоминается быстрее)

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 19:32:19

Вроде нынче 2021-й год. :)))

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 19:36:45

Типа пиши в блокнот?
Здесь включается другая теория. То что информация связанная с каками либо чувствами, историей, запоминается лучше.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 20:04:52

Типа восьми значащих символов идентификаторов для компилятора. Ещё первые бэйсики вспомните, с их одной буквой и, кажется двумя цифрами максимум в идентификаторах.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 21:09:37

[uquote="koeltrad",url="/forum/viewtopic.php?p=4075698#p4075698"]Начну тогда с ардуино. Писать на нём код на С++, а там может уже и будущее подтянется и все перейдут на С++))[/

На абдурине мк не изучишь. Там все спрятано. А вот получить лживые представления получить можно. Потом переубедить будет сложно.

Добавлено after 2 minutes 31 second:
Что можно почитать из популярного по С?

Керниган и Ричи.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 21:24:09

Платная версия?

Нет, естественно. СВОБОДНАЯ! Еще не хватало за ПО платить - я что, на идиота похож?
И да, сразу же советую: выкинь мастдайку и забудь про нее навсегда! Поставь себе линукс. Ну или хотя бы бубунту какую. И работай в свободном ПО. Проприетарщина хороша только для совсем уж недалеких умом...

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

Жаль, STM32 нынче на полтора порядка в цене взлетели, а то дал бы классический совет: покупаешь десяток STM32F072CBT6 на али, делаешь для них девборду (или впаиваешь вместо F103 в "синюю таблетку" с некоторыми изменениями), скачиваешь сниппеты для STM32F0 и… И работаешь!

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 22:19:06

Пффф
https://learnc.info/c/namespaces.html
Одной из больших проблем си является отсутствие пространств имён или системы модулей.

Добавлено after 6 minutes 46 seconds:
Платная версия?

Нет, естественно. СВОБОДНАЯ!

Вылеченная что ли?
На офф сайте триал вроде бы только на 30 дней. И платная.

Re: С чего начать программировать микроконтроллеры?

Сб авг 14, 2021 22:24:56

koeltrad,
Код:
eix qt-creator
[?] dev-qt/qt-creator
     Available versions:  ~4.15.1^t **9999*l^t {android +autotest autotools baremetal bazaar beautifier boot2qt +clang clearcase cmake cppcheck ctfvisualizer cvs +designer doc git glsl +help lsp mcu mercurial modeling nim perforce perfprofiler python qbs +qmldesigner +qmljs qmlprofiler qnx remotelinux scxml serialterminal silversearcher subversion systemd test valgrind webassembly webengine L10N="cs da de fr hr ja pl ru sl uk zh-CN zh-TW"}
     Installed versions:  4.12.3-r1^t(22:22:53 26.04.2021)(autotest baremetal cmake -android -beautifier -boot2qt -clang -clearcase -cppcheck -ctfvisualizer -cvs -designer -doc -git -glsl -help -ios -lsp -mcu -mercurial -modeling -nim -perforce -perfprofiler -python -qbs -qmldesigner -qmlprofiler -qnx -remotelinux -scxml -serialterminal -silversearcher -subversion -systemd -test -valgrind -webassembly -webengine -winrt L10N="ru -cs -da -de -fr -ja -pl -sl -uk -zh-CN -zh-TW")
     Homepage:            https://doc.qt.io/qtcreator/
     Description:         Lightweight IDE for C++/QML development centering around Qt

Просто ставлю из репозитория. Свободная. Я уж не знаю, что там за "офсайт" такой, где за нее деньги просят... И вообще, быть вендузятником - это как на нуль делить свою жизнь!!!
Ответить