Tak w nawiązaniu do jednej ze wcześniejszych dyskusji:
Naukę programowania MCU zaczynałem od AVR, w międzyczasie przyjrzałem się trochę Arduino i ESP8266, teraz eksperymentuję z PIC32. W każdym przypadku korzystam z C/C++.
Po zapoznaniu się z tymi kilkoma przykładami odnoszę coraz większe wrażenie, że tak naprawdę nie ma wielkiej przepaści. Oczywiście - trzeba nauczyć się rzeczy charakterystycznych dla danej rodziny (taktowanie, timery, system przerwań, obsługa GPIO i interfejsów komunikacyjnych) ale tutaj można podeprzeć się datasheetami i podręcznikami. Potem na dobrą sprawę wygląda to całkiem podobnie - nawet biblioteki są te same albo opierają się na podobnych schematach - co najwyżej trzeba im tylko dostarczyć kilka niskopoziomowych funkcji.
Tak się zastanawiam - czy w przypadku korzystania z kompilatora C (załóżmy, że w ogóle nie bierzemy pod uwagę nauki asemblera) w pewnym momencie mogą pojawić się jakieś mocno specyficzne, sprzętowe różnice? Pomijam kwestię podstaw, np. wyrównywania zmiennych w pamięci albo rozmiarów typów. Czy jednak programowanie AVR, PIC, ARM7/ARM9 (od różnych producentów) czy STM32 nie różni się aż tak bardzo między sobą, gdy używa się C/C++?