„Embedded” to trochę załadowany termin.
Pod pewnymi względami każdy system przeznaczony do uruchamiania jednej aplikacji można nazwać systemem wbudowanym, o ile istnieje pewien sprzęt do kontrolowania. Prawdopodobnie możesz zadzwonić na PPC604 400 MHz z 2 GB pamięci RAM, na której działa aplikacja java na Linuksie, w systemie osadzonym, jeśli zdarza się, że kontroluje proces za pośrednictwem lokalnych modułów I / O. Z drugiej strony, arduino z uruchomioną jakąś minimalną aplikacją sieciową nie byłoby zbytnio systemem osadzonym. Ale prawdopodobnie „wbudowane” sprawia, że większość ludzi myśli o kontrolerach opartych na pamięci flash z zaledwie kilkuset bajtami pamięci RAM, bez systemu operacyjnego, o których mowa, i mnóstwem urządzeń peryferyjnych na chipie.
To powiedziawszy, prawdopodobnie dwie największe przeszkody, które nie są wbudowane w programistów, zwykle napotykają uczenie się systemów wbudowanych, to rejestry I / O i przerwania.
Przerwania mogą być łatwiejsze do opanowania z dwóch koncepcji dla niewbudowanych programistów, ponieważ główne problemy z nimi, programowanie współbieżne i oparte na zdarzeniach, często występują w aplikacjach głównego nurtu. To, co sprawia, że przerwanie jest uciążliwe, to uświadomienie sobie niezwykłej wrażliwości systemu na jakość obsługi przerwań oraz zawiłości w radzeniu sobie ze sprzętem w celu usunięcia stanu przerwania i skonfigurowania go na następny. Dzięki GUI impas zabija tylko aplikację. W przypadku obsługi przerwań zakleszczenie powoduje zablokowanie całego systemu.
Urządzenia I / O wydają się być obszarem, który powoduje najwięcej trudności. Dla niewtajemniczonych może być zaskoczeniem odkrycie, że czytanie tego rejestru tutaj ma wpływ na ten rejestr tam . Zapisywanie 1 w celu wyczyszczenia bitów. Bity statusu, które same się usuwają podczas odczytywania rejestru danych itp. Sprzęt I / O ma tak wiele możliwości, że nie ma ogólnej zasady radzenia sobie z nim, z wyjątkiem uczenia się, jak znaleźć i interpretować arkusze danych urządzenia. Napisanie sterownika urządzenia dla portu szeregowego nauczy Cię wiele na temat programowania niskiego poziomu we / wy.
Naprawdę nie ma substytutu dla uczenia się tych rzeczy niż zwijanie rękawów i programowanie prostego języka C i / lub asemblera na gołym metalu. Nawet wyżej wspomniany system osadzony oparty na Javie ostatecznie potrzebuje sterownika urządzenia dla I / O, a to ostatecznie oznacza radzenie sobie z niektórymi C. Doświadczenie jest najlepszym nauczycielem. Wybierz mikrokontroler, czy to MSP430, TMS320, AVR, ARM, PIC, 68HC11, cokolwiek, znajdź zestaw ewaluacyjny i zbuduj kilka systemów.