Хочу разобраться с микроконтролерами. Не прям на каком-то серьёзном уровне, но чтобы писать любой код, который мне понадобится и знать, где что посмотреть. Сейчас про них особо ничего не знаю кроме общей эрудиции. Знаю 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 когда-то, или оно из другой области?