Lyubimov
Aug 27 2011, 14:32
Что посоветуете почитать, чтобы хорошо разбираться в тонкостях программирования ARM?
Есть ли что-то кроме datasheet
Существует несколько версий архитектур, имеющих как сходные черты, так и отличия. Если грубо, то для начала можно считать, что имеются всего две версии: с одной стороны, это микроконтроллеры на ядрах Cortex-M (версии архитектуры ARMv6-M и ARMv7-M; часто говорят "архитектура Cortex-M", но, строго говоря, это неправильно, поскольку это название именно ядер, а не архитектуры как таковой), а с другой -- все остальные АРМы (ARMv4, ARMv5, ARMv6 с различными буквенными индексами, кроме уже упомянутого ARMv6-M, а также ARMv7-R и ARMv7-A; все v7 имеют ядра семейства Cortex с соответствующими буковками). Строго говоря, первые не являются "настоящими" ARMами, поскольку не поддерживают оригинальную систему команд ARM и кардинально отличаются по системной архитектуре (иное управление прерываниями и т.п.).
Даташиты описывают особенности конкретного контроллера или семейства контроллеров, но никак не описывают собственно архитектуру АРМ. За соответствующими описаниями надо обращаться на сайт ARM, там всё выложено. Например, если хочется использовать микроконтроллер STM32F103RB, то нужно скачать даташит (усер мануал или как там ещё -- разные фирмы по-разному временами именуют) на семейство STM32F10xxx плюс описание архитектуры ARMv7-M; первый ищется на сайте STmicroelectronics, второй -- на сайте ARM. Если интересует NXP LPC2478, то скачивается даташит на семейство LPC24xx (с сайта NXP) и описание архитектуры ARMv4T, к которой относится данный контроллер (на сайте ARM имеется единое описание для архитектур ARMv4, ARMv5 с любыми буковками и ранних ARMv6, а также отдельные описания более новых архитектур).
Lyubimov
Aug 27 2011, 16:18
А существуют руководства на русском языке?
Информация на английском на этом сайте?
http://infocenter.arm.com/help/index.jsp
Именно этот сайт, если говорить про собственно АРМ.
На русском -- без понятия. Что-нибудь для начинающих, возможно, и имеется, ну а действительно серьёзная литература... вряд ли, но могу ошибаться: сам-то пользуюсь только справочниками, а посему не искал. Впрочем, если у Вас есть более-менее приличный опыт программирования на других архитектурах, то книжки для новичков вряд ли потребуются, ну а английской документацией в любом случае придётся пользоваться, так почему б сразу к ней не привыкать?
Lyubimov
Aug 27 2011, 17:17
Привык, наверное, к документации microsoft на русском.
Понятно, значит буду изучать по официальным материалам из первоисточника. Так надёжнее.
Спасибо за ответ
des333
Aug 27 2011, 20:11
Вот достаточно неплохая книжка для знакомства с Cortex-M3 (в аттаче).
На английском, но очень легко написана.
Lyubimov
Aug 29 2011, 08:19
Спасибо, действительно легко написана.
ARM System Developer’s Guide. Designing and Optimizing System Software - мне понравилась.