Лучшая платформа для изучения встроенного программирования?[закрыто]

StackOverflow https://stackoverflow.com/questions/88626

  •  01-07-2019
  •  | 
  •  

Вопрос

Я хочу изучить встроенное программирование (в основном на C, но я надеюсь также освежить свой ASM), и мне было интересно, какая платформа будет лучшей.У меня есть некоторый опыт использования AVR Atmel и их программирования с помощью stk500, и я обнаружил, что это относительно легко.Мне особенно нравится AVR Studio и отладчик, который позволяет просматривать состояние регистров.

Однако, если бы мне нужно было потратить время на обучение, я бы предпочел узнать о чем-то, что распространено в промышленности.Я думаю об ARM, если только у кого-то нет лучшего предложения.

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

Меньше всего я бы искал плату для прототипирования/программирования, такую ​​как STK500, с несколькими кнопками и т. д.

Спасибо =]

Это было полезно?

Решение

«встроенное программирование» — очень широкий термин.AVR неплохо себя чувствует в этой категории, но он на шаг ниже ARM, поскольку он проще в использовании и менее мощный.

Если вы просто хотите поиграть с ARM, купите Nintendo DS или Gameboy Advance.Они очень дешевы по сравнению с аппаратным обеспечением внутри (чудеса массового производства), и у них обоих есть бесплатные наборы инструментов разработки на основе gcc, который может их скомпилировать.

Если вы хотите поиграть со встроенным Linux, БигльДоска выглядит хорошим вариантом, всего 150 долларов и имеет массу функций.

Лично я считаю, что AVR лучше всего подходит для 8-битных платформ меньшего размера, а ARM лучше всего подходит для более крупных и мощных 32-битных платформ.Как и многие поклонники AVR, мне не нравится PIC.Просто кажется, что это хуже практически во всех отношениях.Также избегайте всего, что требует от вас написания любого типа BASIC.

Другие советы

Если вы просто хотите с этим поиграться, я бы предложил платформу Arduino (http://www.arduino.cc).Он основан на ATmega168 или ATmega8, в зависимости от версии.Он использует C-подобный язык и имеет собственную IDE.

Сам я работаю в сфере встроенного программирования уже 9 лет, имею опыт работы с TI MSP430, Atmel AVR (несколько вариантов) и скоро буду использовать ARM.

Я предлагаю выбрать что-то, что имеет некоторые дополнительные функции в процессоре, такие как контроллер Ethernet и контроллер CAN, или даже возьмите два или три, если можете.Со встроенными устройствами приятно работать, но как только они смогут взаимодействовать с другими аналогичными устройствами через CAN или подключаться к сети, играть с ними станет намного интереснее.

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

ADI Черноперый это еще один вариант, поскольку это довольно простая архитектура для программирования, но при этом она также может выполнять некоторые довольно важные функции DSP, если вы решите пойти по этому пути.Помогает то, что язык ассемблера тоже вполне вменяем.

Черноперый ПЕЧАТЬ Платы — это недорогой вариант (~ 100 долларов в последний раз, который я проверял), и они поддерживают бесплатные инструменты GCC и uClinux.

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

А ТИ MSP430 — отличная платформа для обучения программированию микроконтроллеров.У TI есть множество БЕСПЛАТНЫЕ инструменты и немного дешевые оценочные платы (от 20 долларов).Плюс ко всему, это маломощный современный микроконтроллер.

Хорошим выбором будет PIC18 от Microchip.

  • В Интернете довольно много материалов, документации, руководств и проектов.

  • Бесплатная IDE и компилятор.

  • вы можете создать свой собственный флеш-писатель за несколько минут.(Хотя для того, чтобы отладчик работал, вам придется работать усерднее)

  • Если вы студент (или у вас есть студенческий адрес электронной почты), Microchip отправит вам бесплатные образцы чипов.Таким образом, вы можете получить полноценную среду разработки практически бесплатно.

  • PIC довольно распространены в отрасли.Именно в качестве контроллеров для роботов почему-то, хотя они могут гораздо больше.

Ардуино Кажется, в наши дни это платформа, которую предпочитают новички, хотя есть много других.мне нравится Олимекс доски лично, но они не совсем для новичков.

МикрочипЛинейка процессоров PIC также отлично подходит для новичков, особенно если вы хотите программировать на ассемблере.

Кстати, ассемблер не используется так часто, как раньше.Общее правило для встроенных программ: если у вас 4 КБ памяти или больше, используйте C.Вы получаете переносимость и можете быстрее разрабатывать код.

Я полагаю, это зависит от вашего уровня навыков и того, что вы хотите делать с чипом.Обычно я выбираю, какой встроенный чип использовать из имеющихся периферийных устройств.Если вам нужен USB-порт, найдите порт со встроенным USB, если вам нужен аналого-цифровой порт, найдите порт с АЦП и т. д.Если у вас простое приложение, используйте 8-битное, но если вам нужна серьезная обработка чисел, используйте 32-битное.

Хочу предложить бигльборд от TI.На нем есть Omap3.Это процессор Cortex-A8 ARM11, DSP C64x+ и видеоускоритель.

Для платы не требуется дорогое устройство jtag.Последовательный кабель и SD-карта — это все, что вам нужно для начала работы.Плата стоит всего 150 долларов, а сообщество очень активное.

www.beagleboard.org

На ваш вопрос вроде был дан ответ этот вопрос.

Вдобавок к этому, индустрия встраиваемых процессоров очень сегментирована, у нее нет такого крупного игрока, как Intel/x86 в индустрии «настольных» процессоров.Процессор ARM имеет большую долю, как и MIPS, я полагаю, и существует множество более мелких, более конкретных микроконтроллеров, таких как чипы (например, MSP430 и т. д. от TI).

Что касается документации, то я занимаюсь разработкой встроенных систем в качестве повседневной работы, а документация, к которой у нас есть доступ (как у разработчиков программного обеспечения), довольно скудна.Лучше всего использовать документацию, доступную на сайте производителя процессора.

Взгляни на Обработка и соответствующие платы Arduino и монтажные платы.

Если вы просто хотите развлечься, попробуйте чип Parallax Propeller.Игровая платформа HYDRA выглядит просто потрясающе.Сейчас для него есть компилятор C за 100 долларов.

Я начал со штампов BASIC, перешел через чипы SX и PIC к 8051, затем 68332, различным DSP, программным процессорам FPGA и т. д.

8051-е более полезны в реальном мире...вещи не исчезнут.Для них есть ТОННЫ деривативов и сумасшедших вещей.(Просто держитесь подальше от DS80C400). В энергетической отрасли их полно.

Начните с чего-нибудь крошечного.Если у вас есть внешняя оперативная память и много регистров...в чем разница между этим и SBC?

Много месяцев назад я работал с 8-битными версиями, такими как 68HC05 и Z80, позже с AVR и MSP430 (16-бит).Однако самые последние проекты были на ARM7.Некоторые производители предлагают контроллеры ARM всех цветов и размеров (ну, не совсем цвета).

ARM(7) заменяет 8-битную архитектуру:он более производительный (32-битный RISC с более быстрыми командами, чем большинство 8-битных), имеет больше памяти и доступен с несколькими конфигурациями ввода-вывода.Я работал с контроллерами NXP LPC2000, которые к тому же недороги (<1 доллара США за 32-битку!).

Если вы в Европе http://www.olimex.com/dev/index.html есть несколько хороших недорогих плат для разработки.Работает и в остальном мире :-)

Если вы хотите протестировать интересный проект, взгляните на xgamestation

Но для более промышленного использования одночипового решения, посмотрите ПОС

На курсе компьютерной архитектуры мне приходилось работать как с PIC, так и с AVR;на мой взгляд, с PIC было легче работать, но, возможно, это потому, что с ним мы работали больше всего и у нас было больше времени, чтобы привыкнуть.Мы использовали AVR, может быть, всего пару раз, поэтому я не смог полностью освоить его, но в нем также не было ничего слишком сложного или, по крайней мере, не более разочаровывающего, чем предыдущий.

Я думаю, вы также можете заказать образцы микропроцессоров на веб-сайте Microchip, чтобы тоже начать с этого?

Во-вторых, это:

Платформа Ардуино http://www.arduino.cc

ХТХ

Для обучения нельзя пройти мимо AVR.Чипы дешевы и не требуют внешних компонентов, а также обеспечивают достаточный ток для управления светодиодом прямо из порта.

Вы можете начать с дешевого программатора, такого как lady-ada. USBTinyISP (22 доллара США за комплект), который может питать вашу плату напряжением 5 В от порта USB.Получите бесплатные инструменты WinAVR (на базе GCC) и AVRStudio и заработайте небольшой проект в кратчайшие сроки.

Да, у AVR есть ограничения, но разработка программного обеспечения для микроконтроллеров в основном связана с управлением ресурсами и решением этих проблем.Маловероятно, что вы столкнетесь с такими проблемами, как нехватка места в стеке, ОЗУ или ПЗУ, когда вы создаете любительские проекты для мощных платформ ARM.

Тем не менее, ARM также является отличной платформой, которая широко используется в отрасли, однако для обучения я настоятельно рекомендую AVR.

Я бы посоветовал серию PIC18F от Microchip.Я только начал для них разработку с помощью внутрисхемного эмулятора RealICE, но Pickit2 — достойный отладчик за свою цену.То же самое можно сказать и о AVR, но в Интернете у этого устройства имеется большое количество поклонников.Благодаря всей болтовне, связанной с PIC, мне удалось получить - глючное, но функциональное - встроенное USB-устройство, работающее в течение нескольких дней.

Единственное, что мне не нравится в PIC, это то, что большая часть кода ОЧЕНЬ переплетена с демонстрационными платами.Это может затруднить выделение необходимых вам разделов и сохранение приложения, которое будет создано и запущено для вашего приложения.

Компания Texas Instruments выпустила очень интересный комплект для разработки по очень низкой цене:А Инструмент разработки eZ430-Chronos содержит MSP430 с дисплеем и различными датчиками спортивных часов, включая программатор отладки USB и точку доступа USB-радио за 50$

А также есть вики, содержащая много-много информации.

я уже создал предложение по обмену стеком для комплекта eZ430-Chronos.

Вам следует попробовать поучиться на комплектах для разработчиков, предоставленных Встроенные художники.После того, как вы получите комплект, просмотрите обучающие видеоролики и видеоролики, предоставленные NXP, которые не так подробны, как могли бы быть, но охватывают множество вещей.Проблемы с изучением ARM в качестве вашей первой архитектуры и попыткой сделать что-то практичное:

  • Вам нужно купить dev.набор.
  • Вам нужен хороший книга изучить ассемблер ARM, потому что рано или поздно вы столкнетесь с кодом запуска ARM, что для новичка весьма непросто.В книге, о которой я упоминал, также рассматриваются некоторые аспекты программирования на языке C.
  • Объедините упомянутую выше книгу с руководством пользователя для вашего конкретного процессора, например Вот этот.Обязательно получите это, поскольку изучение этого в сочетании с приведенной выше книгой — единственный способ изучить процесс ARM.в деталях.
  • Если вы хотите перейти от сборки ARM к программированию на C, вам необходимо прочитать это. книга, который охватывает другой процессор ARM, но проще для новичков в C.Обратной стороной является то, что здесь не объясняются никакие сборки ARM, но именно поэтому вам нужна первая книга.

Нет простого пути.

У микроЭлектроники хороший ARM доски и C, Паскаль и Бейсик составители это может удовлетворить ваши требования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top