Ищите АРМ АРМ, АРМ Архитектурный Справочник. Охватывает процесс загрузки, архитектуры, сборки (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 или что-то в этом роде я не помню.