Dobra książka dla początkujących na temat ARM [zamknięte]

26

Szukam dobrej książki dla początkujących dla mikrokontrolerów ARM. Powinien obejmować architekturę procesora i sekwencję rozruchową, a najlepiej także asembler, C i urządzenia peryferyjne.

Mam taką książkę dla AVR i wydaje się, że istnieje kilka dobrych wyborów dla układów Atmel. Krajobraz ARM jest bardziej złożony z wieloma dostawcami i kilkoma klasami układów. Spojrzenie na Amazon nie ujawniło wyraźnego faworyta. Byłbym wdzięczny za niektóre rekomendacje.

kwo
źródło
Jaka jest twoja książka na temat AVR? Jestem ciekawy. Mam też pakiet kursów z mojego uniwersytetu dla ARM, ale obawiam się, że nigdy nie zobaczy publikacji ...
Kevin Vermeer
1
@ kevin-vermeer To niemiecka książka: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie napisana przez emerytowanego profesora. Omawia wszystkie tematy, o których wspomniałem w moim pytaniu, a nawet fajne rzeczy, takie jak liczenie instrukcji asemblera, aby określić, ile czasu zajmie pętla na iterację.
kwo
Chyba muszę nauczyć się niemieckiego ...
Kevin Vermeer
To wygląda na interesujący wstyd książkowy. Nie znam tak dobrze niemieckiego, żeby móc go przeczytać i zrozumieć.
Dean
@kwo Chyba nie ma nadziei na przetłumaczoną wersję, prawda?
NickHalden,

Odpowiedzi:

3

Proponuję udać się do centrum informacyjnego ARM. Dla mnie to dobry początek. Wiele informacji, które udostępnia, nawet podczas migracji z jednego MCU do ARM. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0211a/index.html Również strona ATMEL na swoich układach ARM zrobi wiele dobrego. Dobra dokumentacja i wiele notatek aplikacyjnych. Wszystkiego najlepszego.

Paul A.
źródło
Dzięki. Na stronie jest też kilka polecanych książek.
kwo
13

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.

old_timer
źródło
Fantastyczna odpowiedź.
NickHalden
3

Dobre książki na temat ARM to:

„ARM SOC Architecure” Steve'a Furbera

„ARM System Developers Guide” Andrew Slossa, Dominic Symes i Chrisa Wrighta

„ARM Architecture Reference Manual” autorstwa ARM

Ostatnim z nich jest dostępna za darmo na ARM miejscu .

Sloss, Symes i Wright są doskonałe, jeśli chcesz odsunąć się od drzew i zobaczyć las, szczególnie jeśli masz wbudowane systemy.

Furber jest jednym z oryginalnych architektów ARM i wykonuje doskonałą robotę, przeprowadzając Cię przez uzasadnienie projektu ARM i ogólne działanie rdzeni procesorów ARM.

Oczywiście wszystkie powyższe są jedynie rekomendacją opartą na mojej osobistej / subiektywnej opinii i nie należy ich postrzegać jako wtyczki do konkretnego produktu lub autora.

darbehdar
źródło
Przydatne byłoby sformatowanie listy książek jako listy, przydatne są również linki do tych książek.
Trygve Laugstøl,