Что нужно для разработки на основе микроконтроллера?
Как минимум сам микроконтроллер. А лучше какую-нибудь плату с минимальной обвязкой к этому микроконтроллеру.
Но МК без программы — это просто кусочек кремния с вкраплениями металла. А для программирования микроконтроллера нужна среда разработки. Можно, конечно, обойтись набором утилит в стиле Unix-way, когда в командной строке запускаются компилятор, линковщик, вручную пишется скрипт make, а редактирование исходных текстов выполняется в каком-нибудь текстовом редакторе. Но лично я предпочитаю работать с комфортом. Поэтому я стал искать интегрированную среду разработки. Она должна:
- Иметь удобный редактор с подсветкой синтаксиса С/С++
- Уметь находить объявления функций, переменных и констант в других файлах.
- Автоматически генерировать шаблон проекта.
- Иметь возможность настраивать горячие клавиши для различных действий.
- Иметь интерфейс к отладчику.
- Быть быстрой, чтобы комфортно работать на ноутбуке.
- Очень желательно быть бесплатной или недорогой.
Я выбрал Em::Blocks — это IDE, построенная на основе Code::Blocks, но адаптированная для embedded разработки. То есть изначально предназначенная для разработки встраиваемых систем.

Она бесплатная, удовлетворяет всем перечисленным требованиям и очень гибко настраивается.
Описание и архив настроенной IDE