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

Встроенное программирование... очень начало

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

Я могу программировать как C, так и С++, но я просто не знаю, с чего начать с встроенного программирования, должен ли я покупать какое-то устройство для тренировки, использовать эмулятор микропроцессора (если это так, какой?) - что любые советы или ресурсы о том, с чего начать, очень приветствуются.

4b9b3361

Ответ 1

По-моему, пропустите Arduino. Я всегда рассматривал это как тупиковую систему для не-программистов. Пойдите для чего-то, что позволит вам применить свои знания C до самого низкого уровня, насколько это возможно. Вы хотите понять, как работают векторы прерываний, как ваша ограниченная RAM ограничивает ваш стек, как отлаживать.

Проверьте Freescale 8-битные и 16-битные микроконтроллеры, особенно HCS08 или HCS12. Существует около 100-200 долларов США и некоторые системы разработки под $100 с встроенным интерфейсом отладки (Background Debug Mode). Это также более высокая производительность и память, чем Arduino. Программное обеспечение CodeWarrior является бесплатным (ограничения размера кода, но в большинстве случаев количество ограничений больше, чем количество вспышек на этих устройствах) и полностью функционально. Я не знаю, можете ли вы установить точки отладки кода с помощью Arduino, но вы можете с ними. Для CodeWarrior есть еще одно преимущество - в то время как сначала вы хотите вникать в таблицы данных, чтобы понять, как работают регистры памяти для различных модулей (например, как очистить флаг, как установить режим, что угодно), CodeWarrior поставляется с Processor Expert, который будет генерировать функции для вас для конкретных семейных производств HCSxx и их конкретных модулей. Поскольку большинство этих продуктов повторно используют логику между производными, с некоторыми незначительными отличиями, имеет смысл повторно использовать код. Процессор-эксперт прошел долгий путь с момента его создания примерно 10 лет назад. В долгосрочной перспективе это огромная экономия времени разработки, так как эти функции заботятся о написании очень низких действий (например, сконфигурируйте выходной вывод таймера PWM для рабочего цикла xx/yy с одним вызовом функции C).

Затем вы можете использовать некоторые из ОС, которые будут работать на них, или вы можете перейти на ARM или ePPC. Я знаю, по крайней мере, одну демонстрационную плату HCS12, которая поставляется с Linux и веб-сервером, который вы всегда можете уничтожить для своей первой разработки, а затем верните, когда будете готовы. Freescale также очень хорош с предоставлением учебников, заметок приложений и документации, за исключением того, что их сайт иногда трудно ориентироваться. Я полагаю, что это всего лишь симптом большой экосистемы. Удачи!

Ответ 2

Есть несколько встроенных платформ, которые популярны у любителей и очень просты в использовании. Ардуино, вероятно, самый популярный. Доски дешевы ($ 20-30) и просты в использовании, и там много хорошего программного обеспечения. Основной веб-сайт для платформы Arduino - http://arduino.cc. Вы найдете много ссылок на другие ресурсы, которые помогут вам начать работу.

Возможно, вы захотите проверить SparkFun, который в первую очередь является поставщиком компонентов электроники на хобби (в том числе Arduino и другие полезные платы ) и инструментов. Они получили много отличного контента на своем веб-сайте, чтобы помочь вам начать работу с оборудованием и программным обеспечением.

Ответ 4

Можно разделить встроенные системы на два класса:

  • Те, которые запускают полную ОС. Если есть документированный способ получить ОС и загрузить ее, то на самом деле они не обрабатываются ничем иным, чем рабочими столами, за исключением того, что вам нужно будет создать или загрузить кросс-компилятор. Разумеется, для таких вещей, как телефоны, сложные среды разработки с отладчиками предоставляются спонсором среды.

  • Те, кто запускает программу на том, что называется "голый металл". Они будут иметь немного больше, чем ваша программа, и загружается языковая среда. (Некоторые из них очень просты и работают либо с простым языком интерпретатора, либо с ассемблером, что имеет преимущество в том, что не требуется сложное программирование для настройки встроенных периферийных устройств.)

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

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

Существует множество платформ, которые приходят с разумной поддержкой. Последней яростью (из-за ее замечательной ценовой точки в 35 долларов США) является "Малина Пи" ,, однако это не сразу доступный в настоящее время.

Ответ 5

У вас есть множество вариантов! Думаю, вы начнете с эмулятора (неважно, какой тип встроенной ОС вы будете использовать, возможно, вы не будете использовать процессор x86). Если вы будете работать с процессором X86, вам не нужен какой-либо эмулятор, но вам может понадобиться виртуальная машина.

Вы отметили свой вопрос с помощью "руки", поэтому я предполагаю, что вы хотите использовать ARM-процессор (тогда вам понадобится эмулятор). Начните искать здесь, вы найдете руководства и ресурсы для начала встроенного программирования.

Ответ 6

Я бы предложил попробовать некоторые из инструментов разработки TI EZ430. Некоторые инструменты можно приобрести всего за $20 и иметь базовые функции, а также способы их расширения. Вы можете легко купить два eZ430-F2013 и поговорить друг с другом или с другим компьютером.

TI поставляется с Code Composer Studio для своих MSP430, который является бесплатным и полнофункциональным (он основан на Eclipse), поэтому среда программирования очень удобна для пользователя. TI также предоставляет большое количество образцов кода, которые охватывают большинство функциональных возможностей системы.

С MSP430 вы будете программировать на коде "голый металл", как сказано в нем, поэтому вы не просто собираетесь программировать C, вы будете переключаться на выходы и биты. Но похоже, что вы заинтересованы в изучении этого уровня на этом уровне, поэтому это отличное место для начала.

С другой стороны, если вы хотите, чтобы встроенная ОС (например, Linux) проверила сайт gumstix.

Ответ 7

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

Однако, учитывая, что я предлагаю вам выбрать устройство архитектуры ARM, просто по той причине, что это охватывает устройства с нескольких долларов с производительностью в 10 из MIPS и небольшие встроенные памяти для процессоров приложений на плате, стоимость несколько сотен долларов, способных запускать Linux, WinCE или Android, например.

Нравится это или нет ARM вездесущ в мире встроенных систем; все остальное - ниша с точки зрения дизайна и рыночной доли. Устройство на основе Cortex-M3 на простой платформе разработки/оценки - это хорошее место для начала. Однако вы будете разочарованы, если не будете учитывать стоимость инструментов и отладки аппаратных средств.