Хорошая книга для начинающих по ARM [закрыто]

26

Я ищу хорошую книгу для начинающих ARM микроконтроллеров. Он должен охватывать архитектуру процессора и последовательность загрузки, в идеале также ассемблер, C и периферию.

У меня есть такая книга для AVR, и кажется, есть несколько хороших вариантов для чипов Atmel. Пейзаж ARM является более сложным с несколькими поставщиками и несколькими классами чипов. Взгляд на Amazon не выявил явного фаворита. Буду признателен за некоторые рекомендации.

KWO
источник
Какая у тебя книга для AVR? Мне любопытно. Кроме того, у меня есть пакет курсов из моего университета для ARM, но я боюсь, что он никогда не увидит публикацию ...
Кевин Вермеер
1
@ kevin-vermeer Это немецкая книга: Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie, написанная отставным профессором. Она охватывает все темы, которые я упомянул в своем вопросе, включая некоторые интересные вещи, такие как подсчет инструкций ассемблера, чтобы определить, сколько времени потребуется циклу на одну итерацию.
2
Думаю, мне нужно выучить немецкий язык ...
Кевин Вермеер
Это выглядит интересной книгой, позор, я не очень хорошо знаю немецкий, чтобы читать и понимать.
Дин
@kwo Я думаю, что нет надежды получить переведенную версию правильно?
NickHalden

Ответы:

3

Я предлагаю вам пойти в информационный центр ARM. Это хорошее начало, насколько я понимаю. Он предоставляет много информации, даже когда вы переходите с одного MCU на ARM. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dai0211a/index.html Также сайт ATMEL на своих чипах ARM будет очень полезен. Хорошая документация и много замечаний по применению. Всего наилучшего.

Пол А.
источник
Спасибо. На сайте также есть несколько рекомендуемых книг.
Kwo
13

Ищите АРМ АРМ, АРМ Архитектурный Справочник. Охватывает процесс загрузки, архитектуры, сборки (ARM, thumb и thumb2), все. ARM ARM является общим, для конкретного интересующего вас ядра также будет TRM, Техническое справочное руководство. Все эти документы доступны бесплатно на веб-сайте ARM. TRM подробно расскажет об этом ядре, в частности, если вы хотите использовать один из более новых микроконтроллеров на базе Cortex-M3, последовательность загрузки или, скажем, таблица исключений отличается от традиционной ARM, и вам нужен TRM для Cortex-M3, чтобы найти информацию.

Если у вас получится рука с кешем или MMU, вам также может понадобиться получить TRM для этого на веб-сайте ARM. Вам необходимо знать конкретное ядро, встроенное в чип конкретного производителя, например, PL310 r2p0 может / может отличаться от r3p0. Поставщик должен иметь эту информацию и может предоставлять ссылки или, возможно, документы для рук напрямую, обычно они не встраивают документы рук в свою документацию. Я думаю, что ARM предпочитает это так.

Что касается C, то это просто C, ничего особенного, ARM поддерживается основными компиляторами, gcc, llvm, Keil (в настоящее время принадлежит ARM), IAR, зеленые холмы и т. Д. У Microsoft даже есть / была одна (избегать это хоть). Ничего особенного для ARM, но вам нужно знать нюансы для конкретного компилятора и его ссылок. В наши дни Code Sourcery - это готовый к использованию компилятор ARM на основе gcc, LITE-версия бесплатна для скачивания и использования, и есть платные версии, если вам нужна поддержка (больше бесплатной поддержки gcc arm на google.com, чем у вас есть время, чтобы прочитать). До создания исходного кода emdebian был подходящим решением, для некоторых вещей у yagarto, devkitarm и winarm были / были готовы к использованию решения (для встроенных и не обязательно linux, Code Sourcery или emdebian, если вы хотите кросс-компиляцию для linux).

У меня есть несколько блогов, которые на самом деле не являются блогами, но в которых можно разместить несколько примеров программ и информацию о том, как вывести несколько разных микроконтроллеров на основе ARM. Некоторые как C, более старые блоги, которые я показываю, как создать свой собственный кросс-компилятор на основе gcc. У меня также может быть информация llvm (у thumbulator есть несколько примеров, хотя и не документированных), из коробки llvm может использоваться в качестве кросс-компилятора для ряда платформ, вам не нужно создавать его для цели, такой как gcc. И генерация кода llvm догнала gcc 4.x (gcc 4.x не обязательно лучше, чем gcc 3.x, и ни gcc, ни llvm не так хороши, как другие дорогостоящие средства, такие как собственные компиляторы ARM).

http://stm32stuff.blogspot.com/

Оттуда вы можете нажать на мой профиль и найти похожую информацию для lpc, lmi (luminary micro, части stellaris, теперь принадлежащие ti) sam7. Я не такой большой поклонник семейства lpc, mbed2 в порядке, кроме болезненных синих светодиодов. прямо сейчас есть доска на основе stm32 за $ 12, кое-что открытое, готовое к игре "из коробки". У coridium есть доска, которая соответствует размеру следа ардуино, как и клен, может получить один или оба на sparkfun (много вкусностей на sparkfun). если вы ищете что-то более мощное, то beagleboard было больно из-за отсутствия интерфейсов, китайская версия по той же цене лучше (была обнаружена через неделю или две, но никакой информации для отслеживания), имеет Ethernet и не завинченный последовательный порт. Мне нравится hawkboard, но я думаю, что они не следовали руководству по дизайну, и у них могут быть проблемы с omap. Понравился openrd от разработчиков плагинов, но ненавидел версию плагинов. У openrd есть разъем питания sata и разъем для передачи данных на плате, просто подключите жесткий диск, другие платы этого класса заставят вас использовать флэш-память (читай: очень медленно). в любом случае ядра Марвелла бегают по кругу вокруг тиампа.

или попробуйте мой имитатор набора инструкций большого пальца (github) бесплатно, но без большого пальца, без рук (хотя вы можете перенести свой код с него на платы stm32, например, за $ 12). Аргулятор, который находится в gdb и в других местах, вероятно, более болезнен в использовании, но поддерживает руку и большой палец, и qemu прост в использовании, если вам не интересно видеть, что делает ваш код, кроме вывода через последовательный порт. QEMU поддерживает руку, большой палец и большой палец2, я думаю, что там смоделирована пара звезд.

Если вы уже знаете ассемблер AVR, который не так уж хорош для набора команд (лучше, чем некоторые, хуже, чем другие), у вас не должно быть проблем с ARM или большим пальцем, немного чище, немного проще. Аналогично, если вы сделали встроенный C (вне песочницы) с AVR, то ARM будет таким же или более простым. Вы можете пойти с mbed или кленом, где у них есть песочницы, которые должны облегчить начало работы, а затем, если вы хотите рискнуть самостоятельно, вы можете без особых проблем. mbed вы просто копируете .bin на виртуальную флешку, клен вы используете их загрузчик или dfu-util или что-то в этом роде я не помню.

Старожил
источник
Фантастический ответ.
NickHalden
3

Хорошие книги по ARM:

"ARM SOC Architecure" Стив Фербер

«Руководство для разработчиков систем ARM» Эндрю Слосса, Доминика Саймса и Криса Райта

«Справочник по архитектуре ARM» от ARM

Последний доступен бесплатно на сайте ARM .

Sloss, Symes и Wright отлично подходят, если вы хотите отойти от деревьев, чтобы увидеть лес, особенно если у вас есть встроенные системы.

Фербер - один из первых архитекторов ARM, он отлично справляется с задачей разработки ARM и работы процессорных ядер ARM в целом.

Конечно, все вышеперечисленное является лишь рекомендацией, основанной на моем личном / субъективном мнении, и не может рассматриваться как плагин для конкретного продукта или автора.

darbehdar
источник
Было бы полезно отформатировать список книг в виде списка, а также включить ссылки на эти книги.
Trygve Laugstøl