Подтвердить что ты не робот

Насколько сложно разработчику программного обеспечения научиться программировать микроконтроллер?

Я разработчик программного обеспечения. Я программировал языки высокого уровня в течение нескольких лет.

Я хотел бы знать, как сделать первый шаг в программировании. Не что-то сумасшедшее, но, может быть, какое-то обычное устройство CE? Предполагая, что мне не нужно ставить PCB вместе с различными компонентами, а просто запрограммировать крошечный процессор?

Как низкоуровневый я должен идти? КАК М? C? манипулировать регистрами? или набор dev достаточно высокого уровня сейчас? Является ли Java даже на картинке? OO-кодирование в аппаратном обеспечении, это даже мечта или реальность? Нужна проверка реальности.

Я также стараюсь учиться лучше с книгами или сайтами, которые написаны в формате учебника. Что-то, что направляет мне путь от чего-то простого к чем-то более сложному. Любые рекомендации? Может быть, что-то, что представит мне популярное оборудование (микропроцессор/микроконтроллер), доступное сегодня?

Большое спасибо, спасибо всем.

4b9b3361

Ответ 1

Фактическое программирование не имеет большого значения. Разочарующая, раздражающая часть - это настройка вашей среды разработки и работа с инструментами. Как только вы это сделаете, вы наполовину закончили.

Я бы предложил купить комплект разработчика ('dev kit'), который имеет встроенный USB и работает с выбранной вами ОС. Получите эту работу, и вы на полпути сделали.

Если вам не хватает знаний, важно также знать основы работы процессора. Вы будете программировать на гораздо более низком уровне, чем любое другое программирование, поэтому основные принципы немного важнее.

Ответ 2

Если вы знаете C, это только вопрос изучения шагов цепочки инструментов для загрузки кода.

Легкое место для запуска (дешевое оборудование/программное обеспечение) http://www.arduino.cc/en/Guide/HomePage

Ответ 3

Я кодировал в C как хобби и профессионально около 16 лет, но всегда для кода пользовательского кода (т.е. программ, а не для ядра или драйверов). Большинство моих заданий занимали языки высокого уровня (я сделал много для программирования Perl и Ruby, причем между ними иногда встречаются скрипты Java, Python и shell). Я действительно много развивался для MS-DOS (который, вероятно, был близок к программированию на простом железе, поскольку вы попадаете на машину x86), но моя последняя работа включала в себя 5-летнюю разработку Perl и Ruby on Rails.

Сказав это, я теперь являюсь старшим инженером для разработки встроенных Linux, разрабатывая драйверы (включая эмулятор для старого микропроцессора внутри модуля ядра) для uClinux на платформе Blackfin. Бывают моменты, когда моя неопытность в связанных с аппаратными средствами проблемах (то есть уровни плавающего сигнала из-за отсутствия подтягивания/выталкивания на штыре) мешала, но это было в основном очень приятным и захватывающим опытом. Как было сказано другими, понимание ваших инструментов очень важно - для uClinux это означало GNU Toolchain, к счастью, я уже был знаком с мой опыт использования технологий FOSS.

Blackfin вряд ли является микропроцессором начального уровня (в частности, он не имеет MMU, у которого есть соответствующие эффекты для разработки Linux), но, как уже было сказано, вы можете купить Beagleboard стоимостью около 200 долларов США со всеми необходимыми аксессуарами и начать работать с ним всего за несколько дней. Если вам нужно что-то более простое, существует множество Arduino вариантов, хотя, если у вас есть реальный опыт разработки под вашим поясом, я считаю, что вы найдут, что их среда разработки немного ограничена (я знаю, что знаю).

После того, как вы освоите свои инструменты, вы можете потратить немного денег на внутрисхемный эмулятор (или ICE). Они, как правило, очень специфичны для платформы (как с точки зрения архитектуры объекта, так и с точки зрения разработки), но настоятельно рекомендуется для чего-либо помимо обычных мигающих светодиодов после нажатия кнопки. Я уверен, что вы быстро перерастут.

Через несколько месяцев вы создадите собственные изображения для хакерских клиентских устройств, используя Buildroot и очень весело. Все, что я могу сказать, это для вас, это очень захватывающее и не особенно дорогое в настоящее время.

Ответ 4

Также необходимо изучить Microsoft Robotics Studio. Они поддерживают довольно много аппаратных плат (включая CE), и с ним довольно легко получить небольшой робот и запустить его. И какой еще классный проект для изучения встроенного программирования?

Все это прекрасно сочетается с Visual Studio (экспресс), и их devkit также поставляется с бесплатным экспресс-выпуском.

Ответ 5

Получите beagleboard. Дешево, много пользователей (поддержка сообщества будет ключевой), многие варианты ОС. http://beagleboard.org/

Ответ 6

Ну, если вы хотите знать, что вы делаете, вам нужно понять язык ассемблера процессора и архитектуру процессора.

Вам нужно научиться C быть компетентным в микроконтроллерах. Нет никакого способа обойти это.

На встроенных системах есть несколько языков уровня VM. Время от времени я вижу исключение из памяти вне памяти на моем мобильном телефоне (что также помогает дать мне хорошее мнение о встроенных языках на уровне VM).

ARM поддерживает некоторую поддержку Java-байт-кодов аппаратного уровня.

Лучше всего подобрать что-то вроде PIC или чипов Atmel и начать взламывать их.

Если вы хотите сделать это с помощью своего существующего оборудования, получите гипервизор для своего ПК и начните писать основное ядро.