Если воспринимать эту тему как выбор devboard "для новичков", добавлю следующие рекомендации (возможно банальные).
1) Изучать ради самого arm довольно сложно, поэтому стоит заранее сосредоточиться на каком нибудь решении с использованием процессора arm.
2) Когда известно с задачей, нужно определиться что ещё нужно кроме самого arm процессора, т.к. процессор поддерживает много периферийных устройств, но количество ножек ограничено, поэтому если выбрать devboard с готовым доп оборудованием может получиться так что "ножек" на ваши нужды не хватит, или они уже будут заняты.
Например для ST32F103VCT6, USB и CAN используют одну и туже область памяти и одновременно работать не могут.
Так же как нельзя использовать SDIO и TIM8 в режиме "продвинутого ШИМ", т.к. они висят на одних и тех же ножках.
Да и сами процессоры Cortex -M3 довольно сильно различаются по функционалу, а в документации всё в кучу и в добавок введены "идиотские" градации Value, Access, Performance, Connectivity + градации по объёму памяти внутри каждой группы.
3) Прежде чем заказывать контроллер желательно прочитать доступную документацию,
Например для STM32 есть хороший обзор "Обзорное описание STM32 на русском языке."
http://easyelectronics.ru/img/ARM_kurs/CMSIS/stm32.pdf Не сочтите за рекламу, это единственное что я нашёл на русском языке
http://easyelectronics.ru/category/arm-uchebnyj-kurs (читать с конца)
Многое в Cortex не как у "других", поэтому после прочтения вы будете другими глазами смотреть на эти контроллеры.
Лично мне понравилось то что можно сделать управление BLDC практически полностью "хардварно".
Стыкуем таймеры, одни считают сигналы от датчиков hall и выдают управляющие сигналы на другие таймеры (без использования CPU), которые задают управляющие ШИМ сигналы и сами коммутируют силовые ключи в нужной последовательности, программе остаётся опрашивать "скорость" от датчиков hall и выдавать необходимое значение ШИМ.
Эти контроллеры способны решать задачу векторного управления двигателями.
4) Только исходя из полученных знаний и поставленной задачи выбирать devboard.
Желательно сначала посмотреть схему и оценить насколько она "удобна" для решения вашей задачи, и чего "не хватает".
5) По поводу ПО. Функций в arm огромное количество и программировать используя прямую запись в регистры достаточно трудоёмко, поэтому есть "обёртки" в которых используется упрощённый подход к конфигурированию.
От ST есть библиотека FWLib
Есть CMSIS
Но они обе закрытые, т.е. вы не можете их изменять и распространять.
Для STM32 и "фанатов" всего открытого см
http://sourceforge.net/projects/libopenstm32/develop6) по поводу прошивки. Помимо заливки через Jtag часто есть альтернативные способы.
Например для STM32F103-107 , прошивка по rs-232 (UART), загрузка с флешкарты, и, если записать свой дополнительный загрузчик, можно сделать чтобы контроллер виделся как "флешка" в ОС, и кидать прошивку как обычный файл, подробнее тут
http://easyelectronics.ru/proshivka-arm ... c1300.html