Wyszukaj instrukcję ARM ARM, ARM Architectural Reference. Obejmuje proces uruchamiania, architekturę, montaż (ARM, thumb i thumb2), wszystko. ARM ARM jest ogólny, dla konkretnego rdzenia, który Cię interesuje, będzie również TRM, Technical Reference Manual. Wszystkie te dokumenty są dostępne bezpłatnie na stronie internetowej ARM. TRM zapozna się ze szczegółowymi szczegółami dla tego rdzenia, w szczególności jeśli chcesz użyć jednego z nowszych mikrokontrolerów opartych na Cortex-M3, sekwencja rozruchowa lub powiedzmy, że tabela wyjątków różni się od tradycyjnego ARM i potrzebujesz TRM dla Cortex-M3, aby znaleźć informacje.
jeśli skończysz z ramieniem z pamięcią podręczną lub mmu, może być konieczne uzyskanie TRM ze strony ARM. Musisz znać konkretny rdzeń wbudowany w układ konkretnego dostawcy, na przykład PL310 r2p0 może / może różnić się od r3p0. Sprzedawca powinien mieć te informacje i może udostępniać linki do dokumentacji zbrojnej lub być może bezpośrednio, zwykle nie osadza dokumentów zbrojnych we własnej dokumentacji. Myślę, że ARM woli to w ten sposób.
Jeśli chodzi o C, jest to tylko C, nic specjalnego, ARM jest obsługiwany przez kompilatory głównego nurtu, gcc, llvm, Keil (teraz własnością ARM), IAR, zielone wzgórza itp. Microsoft nawet go posiadał (unikałby to). Nic specjalnego dla ARM, ale musisz znać niuanse dla konkretnego kompilatora i jego łączenia. Code Sourcery to obecnie droga do gotowego do użycia kompilatora ARM opartego na gcc, wersję LITE można pobrać i używać bezpłatnie, a za wersje można płacić za wsparcie (więcej darmowego wsparcia arm gcc na google.com niż masz czas na czytanie). Przed sourcery kodu emdebian był miejscem, do którego można się udać, ponieważ niektóre rzeczy yagarto, devkitarm i winarm miały / miały gotowe do użycia rozwiązania (dla wbudowanego i niekoniecznie linuksa, Code Sourcery lub emdebian, jeśli chcesz przejść kompilację dla Linuksa).
Mam kilka blogów, które tak naprawdę nie są blogami, ale są miejscami, w których można umieścić przykładowe programy i informacje o tym, jak wywołać kilka różnych mikrokontrolerów opartych na ARM. Niektóre asm niektóre C, starsze blogi pokazuję, jak zbudować własny kompilator krzyżowy oparty na gcc. Mogę też mieć informacje o lvvm (thumbulator ma kilka przykładów, choć nieudokumentowanych), po wyjęciu z pudełka llvm może być używany jako kompilator krzyżowy dla wielu platform, nie musisz budować go do celu takiego jak gcc. Generowanie kodu przez llvm osiągnęło poziom gcc 4.x (gcc 4.x niekoniecznie jest lepszy niż gcc 3.x i ani gcc, ani llvm nie są tak dobre, jak inne drogie produkty takie jak kompilatory ARM).
http://stm32stuff.blogspot.com/
Stamtąd możesz kliknąć mój profil i znaleźć podobne informacje o lpc, lmi (luminary micro, części stellaris, teraz posiadane przez ti) sam7. Nie jestem zbytnio fanem rodziny lcc, mbed2 jest w porządku, oprócz bolesnych niebieskich diod LED. w tej chwili jest płyta oparta na 12 $ STM32, coś odkryć, gotowe do gry od razu po wyjęciu z pudełka. coridium ma planszę pasującą do śladu arduino, podobnie jak klon, może otrzymać jedno lub oba w Sparkfun (wiele gadżetów w Sparkfun). jeśli szukasz czegoś mocniejszego, beagleboard był bolesny z powodu braku interfejsów, chińska wersja w tej samej cenie jest / była lepsza (pojawiła się za tydzień lub dwa, ale nie ma żadnych informacji o śledzeniu), ma ethernet i nieskręcony port szeregowy. Lubię deskorolkę, ale myślę, że nie zastosowali się do przewodnika projektowego i mogą mieć problemy z omapem. Podobał mi się openrd od osób przetwarzających wtyczki, ale nienawidziłem wersji wtyczki. Openrd ma złącze zasilania i danych SATA na płycie, po prostu podłącz dysk twardy, inne płyty w tej klasie zmuszą cię do czegoś opartego na flash (czytaj: bardzo wolno). W każdym razie rdzenie Marvell krążą wokół ti-omapów.
lub wypróbuj mój kciuk (github) zestaw instrukcji kciuka za darmo, ale ograniczony do kciuka, bez ramienia (możesz jednak zabrać swój kod z niego na tablice STM32, jak ten za 12 USD). armulator, który jest w gdb i gdzie indziej, jest prawdopodobnie bardziej bolesny w użyciu, ale obsługuje ramię i kciuk, a qemu jest łatwy w użyciu, jeśli nie jesteś zainteresowany zobaczeniem, co robi twój kod poza wyjściem portu szeregowego. qemu obsługuje ramię, kciuk i kciuk2, myślę, że modelowana jest tam tablica Stellaris lub dwie.
Jeśli znasz już asembler AVR, który nie jest tak świetny z zestawu instrukcji (lepszy od niektórych, gorszy od innych), nie powinieneś mieć problemu z ARM lub kciukiem, trochę czystszym, trochę prostszym. Podobnie, jeśli wykonałeś osadzoną C (poza piaskownicą) w AVR, ARM będzie taki sam lub łatwiejszy. Możesz iść z mbedem lub klonem, gdzie mają piaskownice, które powinny ułatwić rozpoczęcie pracy, a jeśli chcesz zaryzykować samodzielnie, możesz bez większych problemów. mbed, po prostu skopiuj .bin na wirtualny dysk flash, klon, którego używasz, program ładujący lub dfu-util lub coś takiego, czego nie pamiętam.