Как трудно это, чтобы разработчик программного обеспечения изучил, как программировать микроконтроллер?

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

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

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

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

Очень ценивший, поблагодарите Вас все.

14
задан Earlz 27 January 2010 в 23:37
поделиться

6 ответов

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

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

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

8
ответ дан 1 December 2019 в 14:44
поделиться

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

Простое место для начала (дешевое оборудование / программное обеспечение) http://www.arduino.cc/en/guide/homepage

2
ответ дан 1 December 2019 в 14:44
поделиться

Пытались ли вы уволить первого ответчика, когда текст становится неактивным, а не когда он становится активным?

-121--3414234-
char * oldname = new char[strlen(name) + 1];

    //memcpy(oldname,name,strlen(name) + 1);
    strcpy(oldname,name);

    name = new char[strlen(oldname) + strlen(r.name) + 1];
    //memset(name, '\0', strlen(name));
    name[0] = '\0';

    strcat(name,oldname);
    strcat(name," ");
    strcat(name,r.name);

Я понимаю это сейчас, просто хотел вставить этот код для всех будущих посетителей Закомментированные строки эквивалентны незакомментированным под ними. C комментирует, C++ не комментирует.

-121--3796803-

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

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

0
ответ дан 1 December 2019 в 14:44
поделиться

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

0
ответ дан 1 December 2019 в 14:44
поделиться

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

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

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

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

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

2
ответ дан 1 December 2019 в 14:44
поделиться

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

Чтобы быть компетентным в микроконтроллерах, вам нужно выучить C. Обходного пути нет.

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

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

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

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

0
ответ дан 1 December 2019 в 14:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: