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

41
1
1
Лучший ответ
44

Встроенное системное программирование - довольно большая область. Таким образом, это зависит от того, что вы хотите сделать с системой. Это также зависит от того, что вы называете встраиваемыми системами: разница между микроволновой печью, автомобильным электронным блоком управления двигателем / трансмиссией, процессором 25 МГц, установленным в F-передатчике F22… или если вы программируете Raspberry PI на контролировать процесс пивоварения.

Если вы запрограммируете Raspberry PI для встраиваемого приложения, у вас будет довольно легкая жизнь. Большая часть документации существует в Интернете, чтобы рассказать вам, что делать и как это сделать. Кроме того, эти системы имеют много памяти, WIFI, Ethernet и все, что вы можете пожелать, за исключением аналого-цифрового преобразователя. Хорошо, они не очень хороши в режиме реального времени Hard-Limit тоже.

Минимальная ОС или Bootstrapping на новой плате

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

Как загрузить минимальную ОС или вашу программу на тестовом стенде. Как кросс-компилировать ваши программы в новой среде. У вас есть правильный компилятор. Вам нужно модифицировать компилятор для получения правильного машинного кода. Как перенести программу на встроенный тестовый стенд. (Программирование eProm, SD-карта и т. д.). Как запустить и отладить программу в этой среде (JTAG, RS-232, USB…)

Встраиваемой системе часто чего-то не хватает

Иногда вы должны использовать довольно сырые вещи ... и полировать данные, чтобы сделать их приемлемыми ... Вот несколько примеров:

Датчики температуры / давления имеют нелинейный отклик. У вас нет места, чтобы поместить полную таблицу преобразования в память. Найти решение. Вы должны держать довольно точные часы ... но часы процессора изменяются на 5%. Вам нужно работать от батареи и управлять WI-FI-связью. Батарея будет работать только 12 часов, если вы используете WI-FI без ограничений ... Как сделать так, чтобы батарея работала в течение 1 года. Память слишком мала. Можем ли мы что-то оптимизировать, чтобы оно подходило. Если мы это сделаем, мы сэкономим 2 доллара на доску для 100 000 из них.

Сложность, потому что система трудно отлаживать

Сложность программирования значительно возрастает, когда вы добавляете несколько требований. Это также обычно увеличивает объем требуемой отладки и иногда делает отладку практически невозможной.

Каждый раз, когда ваше приложение становится зависимым от нескольких входных данных… отладка становится все труднее.

Потребность в режиме реального времени с жестким ограничением ... особенно без ОС, предлагающей такую ​​возможность для этой конфигурации. Связь с другими встроенными системами или полуинтеллектуальными чипсетами. Особенно в режиме реального времени с жестким лимитом. Многопоточный ввод с высоким приоритетом для некоторого события ... особенно, если событие с высоким приоритетом может прервать обработку события, которое уже выполняется, с более низким приоритетом. Многоканальный вход, сильно зависящий от синхронизации, трудно сделать, когда по-прежнему важны прерывания с высоким приоритетом: EX, считывание потока RS-232 без какой-либо аппаратной помощи даже на скорости 300 бод требует хорошей синхронизации, считывание большого массива датчиков с максимальным временем между сотовый и т. д. Иногда у вас нет выбора. Многопроцессорная (Core) поддержка или специализированная связь между процессорами (EX: DSP slave) или нейронная сеть AI. Они просто могут заставить все думать случайным образом.

Использование встроенной системы будет сложнее

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

В наши дни некоторые легкие встраиваемые приложения имеют 32-битный процессор, работают под управлением Linux / BSD / QNX /… и ожидают лишь нескольких конкретных приложений.

Даже в Cars теперь у вас есть мощные многоядерные компьютеры, некоторые с возможностью виртуальной машины, каждая из которых работает с выбором операционной системы, такой как Linux для информационно-развлекательной системы и Autosar для автомобильного приложения. Почему виртуальная машина: потому что на некоторых дорогих автомобилях их от 70 до 100 ЭКЮ на машину…

В самолете INTEGRITY-178B OS используется в нескольких коммерческих самолетах. Нет необходимости каждый раз перезагружаться с нуля.

ответил(а) 2020-06-07T14:11:07+03:00 3 месяца, 3 недели назад
44

Самая сложная концепция? Работа с оборудованием.

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

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

Разработчик должен работать над платой разработки (devkit), оценщиком или прототипом.

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

ответил(а) 2020-06-07T14:11:07+03:00 3 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема