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

Каковы предпосылки для обучения программированию встроенных систем?

Я окончил факультет вычислительной техники. У нас были некоторые базовые курсы электроники в Digital Signal Processing, Information Theory и т.д., Но мое основное поле - программирование.

Тем не менее, я искал, чтобы попасть в программирование встроенных систем, и я не знаю, как это делается. Однако я очень заинтересован в этом.

Мои вопросы:

  • Какие языки используются для программирования встроенных систем?
  • Смогу ли я научиться без каких-либо оснований в электронике?
  • Любые другие предпосылки, которые я должен знать?
4b9b3361

Ответ 1

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

C используется в основном, но языки более высокого уровня медленно пробираются.

Ответ 2

Начало работы в Embedded Systems - сложная задача сама по себе, потому что это очень обширное поле с множеством опций в аппаратном и программном обеспечении.

Какие языки используются для программирования встроенных системных программ?

Язык ассемблера, C, С++, Python, С# и другие.

Могу ли я учиться без каких-либо оснований в электронике?

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

Любые другие предпосылки, которые я должен знать?

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

Ответ 3

Вы должны принять ограничения и иметь возможность работать с ними:

  • Скорость процессора
  • нехватка памяти
  • отсутствие сетевых средств
  • настраиваемые компиляторы и операционные системы
  • пользовательские материнские платы и драйверы
  • отладка с помощью логического анализатора
  • странные методы кодирования и тестирования
  • ...

Награда - это глубокое понимание того, что происходит.

Ответ 4

VHDL, Verilog и FPGA являются серьезными игроками на этой арене. С хорошим опытом работы в CS, большим количеством обязательств и, возможно, некоторыми MIT OpenCourseware вы сможете добиться чего-то хорошего. Хорошее знание архитектуры процессора и некоторых ASM также будет иметь большое значение.

Ответ 5

Я пошел в эту область, не зная, как это было сделано как новый выпускник и ушел после 1,5 лет. Итак, что я говорю, может быть немного ржавым, и определенно не всеобъемлющим.

Язык, которым мы пользовались, был C. Но в то время дисковое пространство составляло 4 МБ, а на устройствах, для которых мы разрабатывали, было 8 МБ, и я знаю, что C использовался из-за крошечного отпечатка его библиотек. По-видимому, производительность также была критерием.

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

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

Ответ 6

Встроенные системы, как правило, программируются на C, хотя на концах диапазона используются системы, которые используют ассемблер, когда кодовое пространство или время очень жесткие (или нет подходящего компилятора C), а на другом конце С++ до .NET compact. Это зависит от того, что вы подразумеваете под встроенными системами, они идут от действительно небольших микроконтроллеров с несколькими сотнями байт оперативной памяти и программным пространством, вплоть до типа смартфона, работающего с полной многозадачной операционной системой и пользовательским интерфейсом.

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

Начните с чтения некоторых ссылок здесь и embedded.com

Ответ 7

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

Ответ 8

Языки: C, Assembler, Processing, Basic и целый ряд других, это зависит от того, какую платформу вы используете относительно того, что доступно.

Вы можете получить более конкретную информацию, если задаете тот же вопрос в ChipHacker или Electronics Exchange, которые оба стиля обмена файлами (например, это), но ориентированы на электронику и "физическую вычислительную технику".

Ответ 9

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

Если вы попадаете в это как хобби, забираете плату gumstix или arduino, эти платы для разработчиков дают вам сотни часов обучения и удовольствия.

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

В любом случае, получайте удовольствие и счастливое кодирование!

Ответ 10

Как уже упоминалось, встроенное может означать много вещей. В моем мире (Aerospace and Defense) мы работаем с операционными системами реального времени (VxWorks и Integrity являются крупнейшими игроками), а иногда и Linux. Сначала мы программируем на C, хотя С++ также используется, если проект решил использовать объектно-ориентированное программирование и моделирование.

Итак, что касается Pre-Reqs, C точно. Вам действительно нужно узнать все о C, включая BIT-мудрые операции, касающиеся шестнадцатеричных значений, указателей, всего материала низкого уровня. Сборка также, но я использую ее только для отладки самых сложных вещей в наши дни. Вам нужно знать достаточно, чтобы читать и понимать.

Я думаю, Embedded Software Primer - отличное начало изменить свое мышление на встроенный. Обработка прерываний, проблем в реальном времени и т.д.

Как упоминал Микки, иногда у вас даже нет ОС. В этих случаях вы обычно пишете свой собственный диспетчер задач какого-то рода, но обычно это не будет для новичков. Удачи.

Ответ 11

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

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

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

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