Рубрика «embedded» - 12

“Кажется, что совершенство достигается не тогда, когда нечего более добавить, а тогда, когда нечего больше убрать."

(Антуан де Сент-Экзюпери)

image

По теме изучения программирования встроенных систем, ОС реального времени, Ассемблера и С позвольте представить очень простую операционную систему StartOS.

Предназначение:

— если вам необходимо создать устройство, начинающее работать через 1-2 секунды после включения питания и способное реагировать на сигналы из внешнего мира в течение микросекунд;
— для быстрого создания систем управления объектами с выводом данных в Интернет;
— отработка идей, алгоритмов, изготовлении прототипов устройств;
— приобретение опыта программирования встроенных систем на языках C и Assembler;
— получение полного доступа к «железу» компьютерного устройства, например, для разработки самомодифицирующихся программ.

Некоторые свойства системы:

Время готовности после включения питания: < 1 сек
Объем двоичного кода программы: < 40 kB

Система занимает небольшой объем в верхних адресах ОЗУ, предоставляя пользователю стандартную загрузку программ в нижние адреса ОЗУ. Автостарт программы пользователя присутствует, если система обнаруживает на карте памяти файл START.BIN, то он запускается автоматически.

Основные функции системы:

Инициализация SoC (System on Chip, системы на чипе) и других внешних устройств. Загрузка программ пользователя в память и предоставление им интерфейса к системным функциям:

— работа с LCD в текстовом и графическом режимах (вывод текста, пикселей, линий, BMP картинок, сохранение / восстановление области экрана…);
— ввод координат X,Y пера с сенсорного экрана;
— работа с часами реального времени (RTC);
— чтение данных из аналого-цифровых преобразователей (ADC);
— чтение данных из цифровых портов;
— чтение / запись символов и строк в COM порт;
— вывод на широтно-импульсные модуляторы (ШИМ, PWM) и пьезодинамик;
— ввод-вывод пакетов сети Ethernet с использованием встроенного контроллера;
— чтение и запись файлов;
— сервер-клиент для Интернета;
— работа с видеокамерой.

Система реализована на платах разработчиков фирмы Samsung или FriendlyARM с процессорами Samsung. На эти процессоры и платы имеется полная документация.
Читать полностью »

Технология программирования ARM Cortex-M0+ - 1
Здесь я расскажу об удобном наборе средств и о технологии быстрой разработки простых программ на микроконтроллере S9KEAZN64AMLC с 32-х битным 40 МГц ядром ARM Cortex-M0+. Как аппаратную основу возьмем плату от анонсированного ранее проекта. Плата оказалась на удивление живучей при низких температурах и даже превзошла в этом смысле ожидания.
Начнем с подробного описания создания термометра без использования внешних датчиков и с функцией логера.

Читать полностью »

Сравнение компиляторов для разработки на микроконтроллерах с ядром ARM Cortex-M - 1
В этой статье протестируем 3-и компилятора для микроконтроллеров Kinetis с ядром ARM Cortex-M4.
Запустим тесты CoreMark, Whetstone, Dhrystone.
Исследуем алгоритмы сжатия с минимальным потреблением ОЗУ и выясним как влияют на их быстродействие разные компиляторы.
И даже попытаемся узнать насколько отстает Kinetis по быстродействию от Intel Core I7.


Предыдущие статьи о разработке на микроконтроллерах Kinetis:

Читать полностью »

Дано: есть устройство, с ARM926E-JS (Cypress FX3) на борту. Устройство находится на другом континенте. Устройство подключено (JTAG+USB+COM) к Linux компу. На комп есть SSH доступ (и больше ничего, только SSH порт).

Проблема: Устройство нужно отлаживать и писать под него код. И делать это, желательно, удобно.

Решение с использованием OpenOCD, GDB и Qt Creator, а так же описание пути к нему, под катом.
Читать полностью »

Коммутатор фар и фонарей для автомобиля с контролем состояния аккумулятора и термометрами - 1

На самом деле вариантов использования у этого модуля может быть больше, но названное применение было толчком к разработке.
Как известно, привезенные из США автомобили славятся своей дешевизной. Но при попытке получить разрешение на эксплуатацию в Европе новые владельцы таких машин сталкиваются с несоответствием стандартов на фары и сигнальные фонари в Америке и Европе. Приходится менять фары и задние огни. И тут подстерегает следующая неожиданность.

Читать полностью »

imageВсем привет!

Я — один из основателей открытого проекта Embox, и по совместительству являюсь генеральным директором компании ООО “Ембокс”. Как не трудно догадаться, её основная цель — это оказание коммерческих услуг на базе нашего проекта.

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

Эта статья первая в нашем блоге, и мне кажется, что будет уместно рассказать не столько о технических решениях и находках, которые мы применяем в нашем проекте, это, безусловно, будет в последующих статьях, а сделать своего рода статью-приветствие. И поскольку Embox — операционная система для встраиваемых решений, речь в статье пойдет прежде всего о сфере embedded systems. По сути дела, в статье я хочу поделиться своим представлением о возможном направлении развития встраиваемого ПО, конечно, подкреплять всё это я буду реальными ситуациями, с которыми мы сталкивались в процессе работы над проектом. Поэтому те, кто интересуется встраиваемыми системами и кому не лень прочитать пару страниц жалоб на трудное детство рассуждений, прошу под кат.Читать полностью »

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

На самом деле, расчет себестоимости по списку деталей — это неприятный и рутинный процесс, связанный с долгими поисками по on-line каталогам, обзвоном дистрибуторов, перепиской и ожиданием ответов и проч. и проч. Но хуже даже не это, а то, что это итерационный процесс. Увидев вдруг, что себестоимость оказалась выше допустимой, разработчик начинает искать другие варианты схемотехники и другие комплектующие. И снова поиски…. А рутина — это враг разработчика. Чтобы ее избежать, многие жертвуют оптимальностью. Но, к счастью, эту проблему можно облегчить.
Читать полностью »

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

OpenOCD (Open On Chip Debugger) заявляет поддержку ThreadX, но не сильно явно оговаривает её широту. А штатно, на момент написания статьи, в версии 0.8.0, это всего два ядра: Cortex M3 и Cortex R4. Мне же, волею судеб, пришлось работать с чипом Cypress FX3 который построен на базе ядра ARM926E-JS.

Под катом рассмотрим что нужно сделать, что бы добавить поддержку вашей версии ThreadX для вашего CPU. Акцент делается на ARM, но, чисто теоретически, вполне может подойти и для других процессоров. Кроме того, рассматривается случай, когда доступа к исходникам ThreadX нет и не предвидится.
Читать полностью »

Прочитав статью «Тестирование встроенных систем» и комментарии к ней я был несколько поражен тем фактом, что многиее знакомы с книгой «Test Driven Development for Embedded C (Pragmatic Programmers)» и framework-ом Unity, но не используют весь арсенал средств, которые предлагают ребята из throwtheswitch.org.

Хочу кратко поделится опытом использования этих самых средств.
Читать полностью »

В последнее время все более активно развивается тематика встроенных (embedded) систем и многие крупные компании такие как Google, Microsoft, Intel вкладывают огромные ресурсы в исследования и разработки в данной области. Взять, например, проект Майкрософт по созданию специализированной ОС для умных домов homeos или процессоры от Intel для встроенных решений Intel Quark, а о различных исследовательских проектах от Google по робототехнике и говорить не стоит, они и так на слуху.

Подобные системы всегда имели свои особенности: ограниченность вычислительных ресурсов, различные процессорные архитектуры, порядок байт и многое другое. Всё это накладывает отпечаток на процесс разработки встроенного ПО. Несмотря на то, что в последнее время для создания встроенных систем все чаще применяются принципы и технологии из области “обычных” десктопных систем, сам процесс остается специфичным. Поэтому считается, что порог вхождения при разработке системного и встроенного ПО очень высокий. Для подготовки хороших специалистов в этой области на Мат-Мехе СПбГУ организовали исследовательский проект по созданию ОС реального времени для встроенных применений Embox, в котором активную роль играют студенты.

[Питер] Встреча с техлидом OpenSource ОС Embox: Современное встроенное ПО и классика Таненбаума - 1

В четверг, 27 ноября, в 20:00 в бизнес-инкубаторе «Ингрия» состоится встреча CodeFreeze с Антоном Бондаревым, техническим руководителем проекта Embox. В докладе будет раскрыты аспекты разработки встроенного ПО на примере этой ОС.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js