LINUX.ORG.RU
ФорумTalks

От ардуины к ассемблеру

 , , ,


1

1

Хочу разобраться с микроконтролерами. Не прям на каком-то серьёзном уровне, но чтобы писать любой код, который мне понадобится и знать, где что посмотреть. Сейчас про них особо ничего не знаю кроме общей эрудиции. Знаю C, сто лет назад знал 8086 язык ассемблера. Конечная цель - писать на ассемблере под STM32 (привет, ув. Assembler). Т.е. не факт, что я буду именно писать на ассемблере конечный продукт, в целом мне хотелось бы писать на Rust, но для этого считаю, что надо уметь писать на ассемблере в первую очередь, чтобы быть способным разобраться. Попутно научиться читать датащиты.

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

В чём смысл темы - хочу понять примерный путь освоения всего этого.

Пока я зашёл в местный магазинчик и купил там набор ардуины с кучей датчиков и на всякий случай Raspberri Pi. Планирую поставить Arduino IDE и потыкать привет-миры по обучалкам, чтобы хотя бы с чего-то начать. В целом хотелось бы побыстрей уйти на обычный консольный проект с Makefile, gcc, vim, в таком наборе мне комфортней работать, т.е. после этого буду пытаться разобраться, как перейти с Arduino IDE на консоль. И после этого хочу постараться сделать примерно то же, что уважаемый товарищ Assembler делает на протяжении последних месяцев, то бишь пытаться писать минимальные примеры на ассемблере, раскуривая спецификации на тот китайский заменитель ардуины, который мне продали. Пока это всё будет происходить, мне может быть доставят плату разработчика STM, на которую я в итоге планирую перейти и я повторю тот же путь уже с STM, предположительно пройдя его быстрей за счёт того, что общие концепции, наверное, будут схожи.

Вопрос по STM: есть ли существенная разница между разными линейками? Есть STM32L, которая вроде как потребляет мало, есть STM32F, которая вроде как более мощная. В чём суть отличий между всеми этими линейками? Просто небольшие отличия в наборе поддерживаемых инструкций? Т.е. если я разберусь с STM32L, остальное понять будет относительно несложно?

И попутно вопрос. Я очень мало знаю про Raspberri Pi, но в целом я правильно понимаю, что это тупо полноценный ARM компьютер с линуксом и вся разработка там это тупо разработка на любом языке под линукс, хоть на джаве, если она уже умеет в такой ARM? Т.е. ничего особо микропроцессороспецифичного там нет и уж точно нет смысла пытаться в какие-то ассемблеры, по крайней мере смысла не больше, чем пытаться в ассемблеры на десктопе.

Есть ли какие-то альтернативные линуксу ОС для Raspberri Pi, которые разумно изучить? Какие-то ОС реального времени, например. Интересуют не академические проекты, а что-то, что реально используется, при этом как минимум должно быть бесплатно для коммерческого применения, в идеале опен сорс, конечно. Слышал про QNX когда-то, или оно из другой области?

★★★★★

Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Почему я не могу использовать маркетинговый термин?

Когда хочешь что-то сказать - лучше использовать слова, которые что-то значат, IMXO.

Больше элементов, тоньше техпроцесс, выше частоты - это всё минусы, абсолютно не перекрываемые такой бесполезной вещью, как большая производительность. А ведь там ещё уже диапазон допустимого питания, в разы меньше мощность сигналов...

Anonymous ★★★★★
()
Ответ на: комментарий от James_Holden

микропроцессор Atmega 328P Сильно устаревшая платформа

Для самоделок AVR вполне себе подходит. К тому же STM32 в настоящее время просто нет в продаже. У меня сейчас в новом синтезаторе для трансивера работает AVR и нормально тянет монохромный OLED экран с векторным шрифтом. Да, в AVR нет некоторых удобных фич STM32, но для хобби он вполне подходит.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

У меня аналог пентиума 1 в работе до сих пор, и я бы сказал что если приспичит то я могу на нем делать вообще всю работу (когда-то же и делал). Но это не значит что он 1) не устаревший, 2) в 2021 году надо сажать новичков в компах сразу за него.

James_Holden ★★★★
()
Ответ на: комментарий от DarthVadimius

А сейчас назревает необходимость поменять прошивку устройств на Atmega8, которые делают кое-какие вычисления, и меня коробит от одной только мысли что придется опять возиться с этими дикими костылями в коде для имитации дробных чисел на восьмибитнике. Ну и зачем оно надо?

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

К новичку как раз 8-битники более дружественные, чем STM32, где портом управляет 20 регистров, и без вспомогательных библиотек работать тяжко.

DarthVadimius ★★★★
()
Ответ на: комментарий от James_Holden

Ну я тоже не от хорошей жизни вернулся обратно на 8-битники. Сейчас STM32 просто нет. А так да, я не отрицаю, что AVR устаревшая архитектура. Тем не менее оно массово производится, снимать с производства их не собираются, и имеется смысл их осваивать.

DarthVadimius ★★★★
()
Ответ на: комментарий от James_Holden

Стоит всё одинаково (около 5 евро), что STLINK, что AVR USBISP и берётся на Ебее. Это же не PIC, который прошивается только их фирменным программатором от Microchip и проприетарным софтом.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

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

James_Holden ★★★★
()
Ответ на: комментарий от Harald

Нужно сначала найти LPT. Ну у меня есть первый пень, а у новичка даже COM порта не будет. Более того, он первый раз услышит что есть COM порты.

James_Holden ★★★★
()
Ответ на: комментарий от DarthVadimius

с пиками да весело, но сами пики похоже станут совсем легаси

SAM серия интереснее у микрочипа нынче, при наличии DBGU достаточно иметь уарт, чтоб получить программатор и отладку

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

Morin ★★★★★
()
Последнее исправление: Morin (всего исправлений: 1)
Ответ на: комментарий от James_Holden

видимо это было в до-ардуиновскую эпоху. когда китайцы массово не наклепали дешевых клонов $2-3 платок и програматоров для всего и вся.

n_play
()
Ответ на: комментарий от James_Holden

вообще можешь хоть другой отдельной ардуиной прошить. (т.е. в ардуину заливается скеч «програматор» и на этом все).

так что имея две ардуины можешь запрограмировать чуть менее чем все

n_play
()
Ответ на: комментарий от n_play

Ну сейчас да, для новичков с ардуиной просто стало. А то вспомню как бодался, трендец.

У моего коллеги тогда факап был нереальный, до сих пор ржу. Он в Attiny2313 зашивал неверные фьюз-биты «пятью проводками» и контроллер настраивался на кварц, или какой-то такой режим который без спец обвязки не стартует. А кварца у него в схеме не было, в результате все окирпичивалось. И настроенный на кварц контроллер уже пятью проводками не шился.

Он же во всем обвинил продавцов в магазине, типа у вас чипы бракованные. Устроил там ругань, а потом ему популярно объяснили в чем суть.

Потом я сваял чудо техники - программатор, подающий 1 МГц на вход тактового генератора. Им перешить с любыми фьюзами чип можно.

Сейчас на фоне stm32 смешно про этот детский сад вспоминать.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Потом я сваял чудо техники - программатор, подающий 1 МГц на вход тактового генератора. Им перешить с любыми фьюзами чип можно.

тоже так и делал. даже более того, собрал генератор сигналов с регулироемой частотой. благо там всеголишь инвертор 74’ и переменный резиcтор и пару конденсаторов.

но это была середина нулевых. тогда и lpt порты и прочее все было.

n_play
()
Ответ на: комментарий от n_play

тогда и lpt порты и прочее все было

Проводки колхозить меня сразу задолбало. Через LPT дудка почему-то шила со второго раза. Не знаю уж почему. А через клон stk500 без проблем.

К тому же эти порты горят легко, мы этими проводками их на нескольких машинах пожгли.

James_Holden ★★★★
()
Ответ на: комментарий от n_play

А как мы пытались сколхозить USB программатор на атмеге с программным USB, до сих пор флешбеки. Нифига оно не работало, комп не видел контроллер 9 раз из 10. Хрен знает почему.

James_Holden ★★★★
()
Ответ на: комментарий от Harald

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

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

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

а внутрисхемно выводы на программатор было делать лень )))

я их изначально в схему закладывал, отдельный разъём для программатора выделялся )

Harald ★★★★★
()
Ответ на: комментарий от Harald

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

Потом любопытство победило и оказалось что первое впечатление обманчиво. Не особо сложнее, зато намного мощнее.

James_Holden ★★★★
()
Ответ на: комментарий от Harald

Ну понятно, сейчас у меня на stm32 и выхода другого нет, ее же не вынешь для прошивки ))

А тогда я брал DIP версию и гордо перетыкивал, выводы с платы на оси вертел.

Плюс у DIP версии преимущество - хороший ток с ножек отдает, семисегментник светодиодный запитывает прямо напрямую, а я их часто тогда втыкал.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Самодельные программаторы по-моему после 2010 года вымерли в связи с вымиранием компов с COM и LPT. Я когда начинал знакомство с МК серии PIC в универе, то паял самодельный программатор. Но уже в конце универа купил PICKit.

DarthVadimius ★★★★
()
Ответ на: комментарий от Morin

ПИКи по-моему сгубило отсутствие нормального C-компилятора на основе GCC, а по железным характеристикам они были лучше, чем AVR. У меня есть запасы PIC16F873, но куда их приспособить, я не придумал, так как ни с ассемблером, ни с проприетарным mikroC возиться нет желания.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

Самодельные программаторы по-моему после 2010 года вымерли в связи с вымиранием компов с COM и LPT.

Да. Мой последний самодельный использовался чуть дольше, потому что был с USB-COM на FT232. А потом была куплена STM32 DISCOVERY и прости-прощай.

James_Holden ★★★★
()
Ответ на: комментарий от DarthVadimius

ни с проприетарным mikroC возиться нет желания

Вот для меня компилятор тоже очень веский аргумент. Я тут одну девайсину на STM32F103 на плюсах зашурупил недавно так, что без -std=c++2a не компилируется. А корячится на древнем обрезанном C проприетарных или нестандартных компиляторов желание как-то вообще пропало.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

«Пять проводков» на СОМ делаются, диоды, резисторы и один транзистор, а СОМ в компах есть, шланга только с планкой нет с мамы.

ilovewindows ★★★★★
()

мне хотелось бы писать на Rust, но для этого считаю, что надо уметь писать на ассемблере в первую очередь, чтобы быть способным разобраться. Попутно научиться читать датащиты.

Пока не сделаете свою замену ассемблеру на Rust, с чужими ассемблерами лучше не связываться. Для чтения даташитов ассемблеры не нужны.

А вот хорошие диагностические средства для изучения устройства неоценимы. От отладчиков и симуляторов до электроизмерительных приборов. И средства управления устройством «извне». Максимум интерактива, минимум писательства на начальном этапе.

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

Судя по всему, уважаемый товарищ Assembler в душе – писатель, а не программист. Изучать языки и писать тексты (в т.ч. «минимальных» примеров) ему важнее, чем собственно программировать машину.

vM ★★
()
Ответ на: комментарий от James_Holden

Повезло, что вовремя закупил. А я запасами STM32 не располагаю. Весной мне китайцы продали чип с погнутыми ножками, по-моему откуда-то выпаяный. Это были последние остатки, что можно было купить.

DarthVadimius ★★★★
()
Ответ на: комментарий от James_Holden

Изделие в виде кросс-платы, в которую вставляется отладка, не очень хочется делать. Такую городушку можно собрать и с BluePill. Хотелось бы собрать культурно. Кстати там рядом Али предлагает сам STM32 уже по 10 евро за штуку с доставкой.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

Ну да, есть и отдельно. За 20 баксов штука вот тут вообще отсыпят

https://lcsc.com/product-detail/ST-Microelectronics_STMicroelectronics-STM32F103C8T6_C8734.html

это конечно трендец, раньше по паре баксов стоили. У меня отсюда пачка и лежит.

James_Holden ★★★★
()
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Или заниматься добыванием изюма из булок. Покупать отладку и выпаивать из него МК, а потом запаивать в своё изделие.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

блюпиллов на али хватает по нормальной цене. И лучше чем те что у нас закуплены, с type C уже.

https://www.aliexpress.com/item/32721093906.html?spm=a2g0o.productlist.0.0.543a612cYBcnKB&algo_pvid=d8af3b76-3f85-414f-93ad-64ceae8efc77&algo_exp_id=d8af3b76-3f85-414f-93ad-64ceae8efc77-1

Срок поставки конец сентября у меня, но ко мне всегда оно так и доходило. Может для москвичей это и долго, для меня обычно.

James_Holden ★★★★
()
Ответ на: комментарий от James_Holden

Я живу в загнивающей Европе. У нас тоже BluePill можно найти у местных перекупов примерно по такой же цене. Этих плат наделали с запасом. Из Китая у нас посылки идут от 2 недель до 2 месяцев.

DarthVadimius ★★★★
()
Ответ на: комментарий от James_Holden

Ну для самоделки для дома ещё можно купить отладку и выпаять с неё МК, хотя это и жуткое извращение. А для какой-то профессиональной деятельности такое уже не пройдёт.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

Восьмибитки тоже смели или продавцы воспользовались ситуацией, цена в 6 раз и 4-5 недель, следом улетел по цене атмел. Хрен знает на что теперь ориентироваться, с атмегами ,кста, такая же хрень была- пропадали.

ilovewindows ★★★★★
()
Ответ на: комментарий от DarthVadimius

И если например нужен STM32F072, а не F103, то с ним такой фокус не пройдёт. Его только покупать за дикую цену.

DarthVadimius ★★★★
()
Ответ на: комментарий от DarthVadimius

Раза в два выше, по любимой atmega162, если за 3-4 дня. Пофиг на самом деле на цену, гемора и так полно еще и долбаный рынок.

ilovewindows ★★★★★
()
Ответ на: комментарий от DarthVadimius

ну насчет сгубило это слишком сильно, микрочип цветет и пахнет, как и прежде скупает конкурентов и патенты. кстати SAM можно и на gcc

Morin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.