Pull to refresh
7
0
Денис Смирнов @den1s1

Инженер

Send message

Программирование и отладка микроконтроллеров ARM Cortex-M4 фирмы Atmel в среде операционной системы Linux. Часть 2

Reading time 10 min
Views 12K
Продолжение электронной версии статьи из номера №2 за 2016 год журнала Компоненты и технологии. Автор Курниц Андрей. Ссылка на первую часть

Создание, запуск и отладка примитивной программы на Atmel SAM4S микроконтроллере


Теперь, когда на рабочую станцию установлено и настроено программное обеспечение для разработки под Atmel SAM4S микроконтроллеры, можно убедиться в работоспособности системы, создав простейшую программу, которая будет зажигать и гасить светодиод на плате SAM4S-EK.
Чтобы собрать работоспособную программу для микроконтроллера, помимо инструментария GCC необходимы следующие компоненты:
  1. Библиотека CMSIS (Cortex Microcontroller Software Interface Standard) — описывает единый интерфейс взаимодействия с ядром микроконтроллеров ARM Cortex-M — общая для микроконтроллеров ARM Cortex-M различных производителей.
  2. Библиотека для взаимодействия с периферией данного семейства микроконтроллеров — своя для каждого производителя, будь то Atmel, STMicroelectronics, NXP и др.
  3. Скрипт линковщика (linker script) — файл с указаниями о размещении программы во flash-памяти микроконтроллера, а также о размещении в ОЗУ служебных областей (секций): стек, куча и др. Для различных микроконтроллеров с разными объемами памяти используются соответственно различные скрипты линковщика.
  4. Файл syscalls.c — содержит системные функции, необходимые для работы стандартной библиотеки языка C (реализация newlib). Обычно эти функции являются частью операционной системы, для которой предназначена программа. Однако в случае же микроконтроллера, который чаще всего работает без операционной системы, в сборку должен быть включен файл syscalls.c, содержащий в большинстве своем пустые системные функции [10].
  5. Справедливости ради следует отметить, что существует множество операционных систем, разработанных специально для микроконтроллеров.
  6. Код начальной инициализации (startup code) — отвечает за заполнение таблицы векторов прерываний соответствующими обработчиками, в том числе и обработчиком прерывания по сбросу микроконтроллера (reset handler).
  7. Также содержит реализацию обработчика прерывания по сбросу, который обнуляет необходимые секции памяти, инициализирует стандартную библиотеку C и передает управление в точку входа программы — в функцию main().
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 0

Программирование и отладка микроконтроллеров ARM Cortex-M4 фирмы Atmel в среде операционной системы Linux. Часть 1

Reading time 10 min
Views 30K
Представляем электронную версию статьи из номера №2 за 2016 год журнала Компоненты и технологии. Автор Курниц Андрей.

В статье описан процесс развертывания экосистемы разработки приложений для микроконтроллеров Atmel серии SAM4S в среде операционной системы Linux. Читатель познакомится также с оценочной платой SAM4S-EK и семейством ARM Cortex-M4 микроконтроллеров фирмы Atmel. Приведены рекомендации по работе с адаптером отладки SAM-ICE (он же J-LINK) и программой OpenOCD.

Введение


Выбор операционной системы Linux в качестве среды для программирования микроконтроллеров ARM Cortex-M4 фирмы Atmel сложно назвать общепринятой практикой. Напротив, для разработки под свои микроконтроллеры Atmel свободно распространяет среду Atmel Studio 7, предназначенную исключительно для операционных систем Windows. Не будет секретом и тот факт, что разворачивание и настройка среды Atmel Studio 7 для новичка окажется куда проще, чем выбранный автором путь.
Автор предлагает использовать среду разработки Qt Creator в связке с инструментарием для кросс-компиляции GCC и с пакетом OpenOCD для отладки. В качестве операционной системы автор выбрал Linux Lubuntu 14.04 LTS (выполняющуюся на виртуальной машине, но это не существенно). Такой подход позволяет с легкостью переходить на другие ARM (и не только) микроконтроллеры, не меняя при этом привычный комплект инструментов. Например, в [1] приводится пример разработки для микроконтроллеров STM32F4 фирмы ST microelectronics с применением такого же комплекта инструментов.
Несколько слов об используемой терминологии. Аппаратное устройство, которое подключается к целевому микроконтроллеру и к рабочей станции, далее называется отладочным адаптером. Отладчиком же будет называться компьютерная программа, служащая для пошагового выполнения программы, просмотра значений ячеек памяти и т.д.

Аппаратная платформа



Рис. 1. Внешний вид платы SAM4S-EK с подключенным отладочным адаптером.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 15

Atmel оптимизировал параметрический поиск микроконтроллеров для мобильных телефонов

Reading time 1 min
Views 2.3K

Atmel ананонсировал запуск мобильной версии параметрического поиска микроконтроллеров — Microcontroller Selector. Функционально поиск повторяет аналогичный инструмент для ПК и работает для всех действующих семейств микроконтроллеров Atmel от AVR и Cortex-M0 до Cortex-M7 и -A5.
Читать дальше →
Total votes 11: ↑4 and ↓7 -3
Comments 2

Alljoyn: взгляд embedded разработчика. Часть 2: Linux нам в помощь

Reading time 7 min
Views 4.4K


Предыдущая часть цикла Alljoyn: взгляд embedded разработчика. Часть 1: знакомство

Продолжаем повествование о том как получить «реальную железку», работающую по протоколу AllJoyn. Конечной целью цикла является получение прототипа «умной Wi-Fi лампочки». Причем именно «прототипа», потому что реализации силовой части нашей лампочки мы касаться не станем, так как это отдельная большая тема, не имеющая отношения к фреймворкам и способам управления. Потому ограничимся светодиодом на отладочной плате SAMD21-XPRO.

Прежде чем начать портирование фреймворка на микроконтроллер, разберемся со вспомогательными средствами, которые окажут нам неоценимую помощь в процессе разработки. В принципе, AllJoyn — кроссплатформенный фреймворк и Вы вольны использовать удобный именно Вам вариант операционной системы. Я использовал Linux (Ubuntu) — просто потому, что он мне привычнее.
Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Comments 0

Alljoyn: взгляд embedded разработчика. Часть 1: знакомство

Reading time 7 min
Views 14K

Не сочтите за расовые предрассудки, но в сегодняшней статье понятие «embedded разработка» будет означать разработку и программирование устройств на микроконтроллерах с использованием языка Си, безо всяких процессоров, Linux'ов, Windows'ов, Pyton'ов и прочего «не хардкора». Я намеренно сделал эту оговорку в самом начале, чтобы не пришлось постоянно акцентировать внимание на этом в дальнейшем.

Alljoyn — это протокол взаимодействия между устройствами разрабатываемый альянсом Allseen. В отличии от распространенных ныне протоколов промавтоматики (ModBus, KNX, BacNET и пр.) Alljoyn изначально рассчитан на применение в бытовых устройствах, т.е. тот самый пресловутый Интернет вещей. Причем Alljoyn претендует на статус глобального мирового стандарта и если взглянуть на список комнаний-участников альянса, вполне можно допустить, что его амбиции не безосновательны.
Сегодня мы попытаемся заглянуть за ширму маркетинговых заявлений об «универсальности, кросплатформенности и простоте использования» и понять что же за зверя пытается изобрести группа самых известных IT компаний со всего мира.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Comments 10

Делаем iBeacon и Eddystone Beacon «на коленке»

Reading time 5 min
Views 18K

iBeacon и Eddystone — это сервисы Apple и Google соответственно, использующие BLE (Bluetooth Low Energy) для локального позиционирования внутри помещений. Базовый принцип у обоих сервисов одинаков, отличается лишь формат передаваемых данных. Маяк (передатчик) периодически, с интервалом от долей секунды до нескольких секунд, передаёт пакеты стандарта Bluetooth LE, которые содержат помимо заголовка дополнительную информацию. Технология не предназначена для точного определения положения в помещении, а лишь для фиксирования момента приближения на некоторое близкое расстояние к маяку.
Классический пример использования маяков — музеи. Приходя в музей, вы устанавливаете на смартфон специальное приложение и отправляетесь осматривать экспозицию. Приближаясь к экспонату (маяку) на некоторое расстояние, смартфон это фиксирует и выводит на экран экскурсионную информацию.
В продаже можно найти немало готовых маяков, но сегодня мы соберем прототип собственного маяка (как iBeacon, так и Eddystone) на микроконтроллере SAML21 и BLE модуле BTLC1000 от Atmel.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Comments 7

Беспроводные решения Atmel для IoT

Reading time 4 min
Views 10K


Представляем обзор новых продуктов Atmel по беспроводке, вышедших в 2015 году и позиционируемых как решения для применения в разработке устройств Internet of Things. С точки зрения Atmel, фундаментальными требования к подобным продуктам является минитюаризация, высока степень интеграции решений, низкое потребление и низкая стоимость.

В статье внимание будет уделено линейкам WiFi, BLE и микроконтроллерам Cortex M0 со встроенным радиопередатчиком на 2.4 МГц.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 8

Каждый велосипедист нуждается в этом устройстве

Reading time 2 min
Views 4.4K
В современном обществе для многих экологически сознательных горожан велосипед стал основным видом транспорта. Велосипед оказался самым быстрым способом добраться на и с работы по сравнению с поездкой на автомобиле в часы пик. Тем не менее, есть и минусы, связанные с необходимостью останавливаться, чтобы сверить своё направление движения с навигатором в телефоне, что в самом худшем варианте может привести к аварии. Велосипедисты уже и так оказывают окружающей среде поддержку, почему же они не должны иметь более безопасный и простой путь на работу и обратно? Два лондонских велосипедиста решили обеспечить это с помощью устройства BeeLine (прим. переводчика: совпадение с названием отечественного оператора связи случайно), умным и недорогим навигационным гаджетом для велосипедов.


Читать дальше →
Total votes 6: ↑3 and ↓3 0
Comments 21

Отдаем отладку SAM4S-EK + программатор Atmel SAM-ICE за публикацию в интернете (акция завершена)

Reading time 1 min
Views 4.3K
[акция завершена]
Компания Rainbow предлагает сделку: мы Вам отладочную плату SAM4S-EK + программатор SAM-ICE + блок питания для платы в обмен на обещание опубликовать в течение месяца обзор платы/микроконтроллера или устройства на базе этой отладки.

Забрать отладку можно будет в наших офисах в Москве, Санкт-Петербурге, Екатеринбурге, Новосибирске.

Для участия пишите в личку и на e-mail sde(собака)rtcs.ru с указанием:
  • ФИО, в каком городе будете забирать
  • e-mail, контактный телефон
  • ссылка на ресурс, где будет опубликована статья

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

Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 33

Atmel выпускает версию среды разработки Studio 7 и веб-платформу Atmel START — инструмент конфигурации и генерации ПО

Reading time 5 min
Views 27K

Благодаря увеличенной производительности и легкости использования, Atmel Studio 7 значительно ускоряет разработку приложений на основе микроконтроллеров Atmel |SMART и AVR и подходит как профессиональным инженерам, так и радиолюбителям.

Выполняя роль связующего звена от начальной идеи до выводы на рынок конечного продукта, и дополняя собой среду Studio 7, платформа Atmel START является графическим веб-интерфейсом, позволяющим разработчикам осуществить конфигурацию программных компонентов и драйверов, компиляцию исходного кода, воспользоваться демонстрационными приложениями и базовыми проектами, поднимая свою продуктивность на новый уровень.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 7

Компании Dialog и Atmel объявили о слиянии. Комментарии официального дистрибьютора в России

Reading time 3 min
Views 7.3K
Многие уже слышали, что в полупроводниковой отрасли объявлено об очередном крупном слиянии в области электроники. 20 сентября 2015г. компании Atmel Corporation и Dialog Semiconductor выпустили пресс-релизы о предстоящей сделке. Согласно пресс-релизу, Dialog приобретает Atmel за сумму около 4.6 миллиарда долларов США. По условиям соглашения акционеры Atmel получат $4.65 наличными и 0.112 американской депозитарной акции Dialog за каждую принадлежащую им ценную бумагу, что в сумме составляет $10.42 за акцию по состоянию на 18 сентября 2015г. Закрыть сделку предполагается в первом квартале 2016г. По завершении процесса слияния акционеры Atmel будут владеть 38% акций новой компании. До этого срока обе компании будут вести деятельность раздельно.


Мы (компания Rainbow), как официальный дистрибьютор Atmel в России хотим дать некоторые свои комментарии по поводу данной сделки и её влияния на российский рынок разработки электроники.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 9

1-Wire slave на МК. Часть 1: Железо

Reading time 3 min
Views 16K

Для одного из проектов по автоматизации потребовалось сделать устройство, которое является подчинённым 1-Wire устройством, принимает команды от мастера и выставляет на своих выходах значение аналогового сигнала в диапазоне от 0 до 10В.
Проанализировав линейку стандартных микросхем 1-Wire от Maxim, стало ясно, что нет микросхемы, которая позволит реализовать подобный функционал.
Потому было принято решение реализовывать 1-Wire slave на микроконтроллере. Надеюсь, данный материал будет интересен и полезен людям, которые делают «умный дом» своими руками, т.к. 1-Wire достаточно популярная шина в подобных проектах. В качестве камня был выбран МК Cortex M0+ ATSAMD20G16 от Atmel, но о реализации в коде расскажем во второй части. Забегая немного вперед, скажу что в третьей части цикла пойдет речь о реализации собственного семейства устройств для линуксовой библиотеки OWFS (One Wire File System). А сегодня расскажем о некоторых аппаратных решениях, к которым мы пришли в процессе разработки.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 8

Добавление Wi-Fi к различным устройствам

Reading time 4 min
Views 49K

Предисловие


Один мой хороший товарищ занимается автоматизацией зданий. И вот как-то за кружкой пива пожаловался он мне на один из объектов, который находится у него в эксплуатации. «Головой» всей тамошней автоматики является ПЛК 100 известного отечественного производителя ОВЕН. Работает он автономно, без постороннего вмешательства, но раз в месяц необходимо с него снимать логи и контролировать общую исправность всей автоматики в здании. Проблема в том, что в шкафу, в котором расположен ПЛК, по каким-то причинам не провели Ethernet от местной сетки. Дотянуть провод, по неким организационным причинам не представляется возможным. И вешать GSM модем нельзя, т.к. шкаф находится в подвале, где нету сети. При этом до шкафа с ПЛК добивает местная Wi-Fi сеть, однако у ПЛК 100 нет Wi-Fi.
И вот приходится каждый месяц ездить на объект с ноутбуком, включаться переходником USB-RS232 в прибор и снимать логи. В результате, я пообещал «допилить» ПЛК, добавив в него Wi-Fi.
Читать дальше →
Total votes 41: ↑35 and ↓6 +29
Comments 23

Удаленная отладка в Linux при помощи связки GDB-gdbserver

Reading time 9 min
Views 53K
Как всем нам известно, процесс отладки это такая вещь, важность которой трудно переоценить. Причем, понимая важность таких методов как дебажное моргание светодиодами и вывод дебажных сообщений в порт, я остаюсь при мнении, что эффективнее пошаговой отладки пока ничего не придумано. Однако, задача пошаговой отладки становится не такой тривиальной в случае программирования под Linux на встраиваемых системах (таких как rasbery pi, virt2real или промышленные процессорные модули).

Данную задачу в Linux призвана решать стандартная связка программ GDB и gdbserver. Идея в том, что пишешь на компе программу (host в терминологии GDB), компилируешь её и заливаешь на целевое устройство (target). Далее запускаешь на целевом устройстве (target) отлаживаемый файл и gdbserver, а на хосте GDB и вперед.
Читать дальше →
Total votes 22: ↑21 and ↓1 +20
Comments 12

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity