В общем, на старости лет, ударило мне в голову контроллеры программировать . В давние времена программировал AVR и то на ASM Сейчас же, есть желание изучить архитектуру ARM (ядра Cortex M0 M3...) Соответственно программировать на ASM тут уже не айс. Нужен С/С++ А вот опыта общения с ним у меня.... несколько "лаб" в универе + 12 лет прошло.... Можно сказать, что ноль. В идеале, конечно, сначала изучить язык, а потом его плавно применять в программировании контроллеров. Но это все долго Хотелось бы изучать язык непосредственно в русле применения его в контроллерах. Для начала, можно даже реальные железяки не мучить, а моделировать все в PROTEUS Но вот найти нужную литературу, или ресурсы не могу. Полно ресурсов и книг по контроллерам. Но там, по умолчанию - типа вы должны знать Си. А вот, что бы рассказывать о о контроллерах и параллельно синтаксис языка описывать - такого не нашел. Может кто в курсе, есть такое? Как вариант - хватило бы описания команд, применимо к какой нибудь библиотеке. По типу, что записать в порт D значение 0x00 нужна команда DDRD=0x00 Ну и т.д.
ИМХО C++ тут лишним будет, только с толку собъёт своей сложностью и применимостью всех его сильных сторон в контексте железа. По Си берите классику - Кернигана и Ритчи, а по контроллерам думаю тут и без меня найдутся советчики. Ещё как вариант, ищите литературу по Raspberry Pi, как ни странно, её любят начинающие эмбеддеры.
А почему именно ARM? Можете также на С пописать для AVR - тем более архитектура знакомая - полегче пойдет, да и примеров и книг найдете поболее. Среду разработки можете выбрать одинаковую для AVR и ARM (например IAR C) - затем свои проекты на AVR попробуете портировать для ARM. ИМХО - заниматься программированием ARM "с нуля" на голом С/С++, без операционной системы - тяжкий труд и изобретение "велосипедов". Современные ARMы заточены под использование c Linux и там у вас будет гораздо меньше проблем с привязкой различных периферийных устройств используя готовые драйверы, не говоря уже об организации многопоточных процессов в устройстве и поддержке файловой системы. Поэтому если цель изучить АРМ чтобы "дрыгать" его ногами на СИ - то лучше наверное это делать на более мелких камнях (типа AVR, MCS51, PIC). Скорости и тактовые частоты в этой группе тоже сейчас неслабые. Хотя есть и "мелкие" ARMы, в свое время тоже баловался такими от Philips - еще те "дрыгалки" получались Пока писал, вспомнил, что есть еще STM32 (кстати Cortex M3) и видел на него уроки для начинающих на С - вот ссылочка, может поможет: http://cxem.net/mc/mc131.php Если будете сильно углубляться в тему, то зарегистрируйтесь на форуме разработчиков электроники: http://electronix.ru/forum/ Новичков там правда не очень балуют, но если правильно задавать вопросы, на которые несколько дней сам искал ответ и не нашел, то помогут. Я там "свой", если понадобится какой либо софт для разработки, то смогу для вас скачать из закрытого архива. Ну и литература там по ARM есть кое-какая, правда все более на англ.