8-900-374-94-44
[email protected]
Slide Image
Меню

Atmel software framework что это – как это работает? / Rainbow corporate blog / Habr

Страница не найдена

Тактовая частота, МГц

от

до

Блок арифметики с плавающей точкой (FPU) не важно да

нет

Поддержка DSP-инструкций не важно да нет

Графический ускоритель, аппаратное декодирование видео не важно да нет

Блок управления памятью (MMU)

не важно да нет

Каналы DMA

от

до

Блок защиты памяти (MPU)

не важно да нет

Аппаратный блок шифрования не важно да нет

mymcu.ru

Что такое ASF Atmel? | avr

ASF

переводится как Atmel Software Framework - рабочее окружение для разработки firmware микроконтроллеров от Atmel. По сути это дополнение к традиционным тулчейнам, таким как AVR-GCC toolchain (WinAVR, Atmel GCC toolchain), IAR.

На рисунке показана базовая структура ASF. Возможно, что некоторые разработчики, пользователи продукции Atmel, уже знакомы с ASF по предыдущим релизам Atmel Studio, когда поддерживались только микроконтроллеры AVR. Однако Atmel постоянно развивает свои программные инструменты, и сейчас ASF поддерживает также микроконтроллеры Atmel, базирующиеся на ядре ARM. ASF включает в себя высококачественные программные библиотеки с драйверами, стеками протоколов для обмена данными, и сервисами общего назначения. Это предоставляет новый уровень абстракции для аппаратуры и высокоуровневого встраиваемого программного обеспечения. Фреймворк интегрирован с Atmel Studio, или также доступен отдельно как отдельный пакет для компиляторов GCC и IAR. ASF разработан с ориентировкой на высокое качество и удобство использования, так что пользователь ASF может безопасно разрабатывать и поставлять свой продукт с использованием ASF в финальной версии своих изделий. Любой может бесплатно загрузить и использовать ASF. Вместе с ASF упрощается миграция приложений между разными микроконтроллерами Atmel, и разработка смешанных 8- и 32-битных приложений. Фактически ASF применим к трем сотням типов микроконтроллеров, включая Atmel ARM на базе ядра

Cortex-M, AVR UC3, AVR XMEGA, как для компилятора GNU GCC, так и для компилятора IAR.

Ранее, до появления программных библиотек наподобие ASF, инженер перед началом разработки искал в Интернете документацию и апноуты в виде файлов PDF (где содержались руководства) и ZIP-архивов (где находились примеры кода). Очень хорошо, если поиск завершался удачно, и были найдены подходящие рабочие примеры и документация, однако часто это было не так. Вместо этого оказывалось, что найденный пример написан для совсем другого микроконтроллера, и предназначен для запуска на отладочной плате, которой нет у разработчика. В результате разработчик был вынужден тратить дополнительное время на портирование апноута на свое целевое устройство (микроконтроллер) и свою целевую плату. Затем начинал интегрирование результатов портирования в свой проект.

С приходом ASF условия игры поменялись. ASF организует свыше 1100 примеров разработок в удобную иерархию с открытым API, что обеспечивает упрощенное портирование между отдельными микроконтроллерами. Кодовая база распределена на 4 простых для использования уровня: ASF services, ASF components, ASF drivers, ASF boards.

[ASF services]

На самом верхнем уровне содержатся продвинутые службы (Services), такие как библиотека QTouch (для емкостных сенсоров-кнопок, слайдеров и устройств ввода на базе энкодеров), стек ZigBee, стек USB, стеки и профили Bluetooth, полная поддержка стеков Ethernet и Wi-FI, графические библиотеки, графический интерфейс с пользователем (GUI), службы ввода/вывода звука и многое другое.

[ASF components]

На следующем уровне, ниже служб, пользователь ASF найдет драйверы для внешних устройств, такие как привязанные к железу драйверы графики, аудиокодеки, аналоговые сенсоры, монохромные дисплеи

LCD. На этом уровне ASF получает от дистрибьюторов железа и микросхем специальные драйверы, поддерживающие особенности конкретной аппаратуры.

[ASF drivers]

Под уровнем компонентов расположен набор стандартных драйверов периферии, этот уровень часто называют уровнем абстракции аппаратуры (HAL, hardware abstraction level). Этот уровень называется ASF drivers, он предоставляет общее API для широкого набора доступных микроконтроллеров, что делает возможным портирование компонентов слоев ASF services и ASF components между различными типами устройств (микроконтроллеров). Atmel предоставляет различные виды драйверов периферии чипа, работающих как по принципу опроса (polling), так и на основе прерываний, а также полностью автоматические на базе использования встроенного в чип контроллера DMA.

[ASF boards]

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

[Какие возможности предоставляет ASF]

• ASF на базе Atmel Studio включает в себя более 1100 рабочих примеров дизайна.
• Поддерживает как микроконтроллеры AVR, так и ARM.
• Иерархия построена на безе общего открытого API.
• ASF специально разработан с учетом упрощения портируемости проектов между различными типами микроконтроллеров.
• ASF организован в виде 4 уровней, простых для использования.
• Верхний уровень ASF services содержит все продвинутые службы.
• Второй уровень ASF components содержит драйверы для внешних аппаратных компонентов, и он открыт для сторонних производителей чипов и устройств. Вендоры и производители могут сами разрабатывать драйверы для этого уровня.
• Третий уровень ASF drivers содержит стандартный набор для поддержки периферийных устройств микроконтроллера (HAL).
• Нижний уровень ASF boards предназначен для адаптации микроконтроллера к конкретной целевой задачи, в которой работает микроконтроллер.

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

[Как работать с ASF]

Удобнее всего загрузить и установить ASF в составе Atmel Studio 6.2 или более новой версии. Эта среда разработки интегрирует в себя ASF, и предоставляет для него средство получения обновлений. К сожалению, Atmel Studio очень требовательна к ресурсам (к примеру, на компьютере AMD Athlon 64 X2 Dual Core 5000+ 2.61 ГГц, с 2 гигабайтами ОЗУ сильно тормозит).

ASF для IAR и GCC можно скачать и использовать отдельно от Atmel Studio. Вот к примеру прямая ссылка на закачку AVR Software Framework 3.7.3.69: asf-standalone-archive-3.7.3.69.zip.

[Ссылки]

1

. Atmel Software Framework (ASF) site:dkc1.digikey.com.
2. Atmel AVR4029: Atmel Software Framework User Guide site:atmel.com.
3. Atmel AVR32852: Building Custom Application using ASF Example Projects site:atmel.com.
4. Atmel AVR4030: Atmel Software Framework - Reference Manual site:atmel.com.

microsin.net

Использование ASF и Atmel Start в IAR / Rainbow corporate blog / Habr

ASF и IAR

Библиотека для продуктов Atmel ASF имеет две версии: встроенную в Atmel Studio и так называемую stand-alone. Stand-alone версия может использоваться, например, в IAR. Так как сам по себе IAR несколько аскетичен с точки зрения различных фишек типа автозаполнения, то использование ASF как внешней библиотекой, не так интерактивно и удобно, как в Atmel Studio, но тем не менее, можно один раз все настроить и использовать новинку Atmel Start — WEB конфигуратор кода для удобства и ускорения разработки.

Настройка IAR+ASF

Для начала необходимо скачать stand-alone версию ASF и распаковать.
Затем создать новый проект в IAR с нужными опциями. Предположим, у нас есть плата собственного производства с микроконтроллером SAMD20G16.
В опциях проекта выбираем:
General-Options-Target-Device — Atmel ATSAMD20G16
General-Options-Library Configuration-Use CMSIS
C/C++ Compiler-Preprocessor: здесь нужно указать пути к файлам ASF, которые будут использоваться в проекте.
Если вы не собираетесь пользоваться Atmel Start (например нет подключения к интернету)

Папки в самой ASF, которые хранят драйверы периферии, а также файлы конфигурации необходимо скопировать в папку проекта. Системные файлы, типа для работы с прерываниями, можно оставить в папке с ASF (если вы не собираетесь их менять).
Чтобы не перегружать поле препроцессора и для удобства в принципе, можно использовать системную переменную PROJ_DIR для указания пути к файлам в папке рабочего проекта и создать собственную для пути к папке ASF.
Для этого: Tools-Configure Custom Argument Variables-Global-New Group (задаете имя группы) –Add Variable (задаете имя переменной и путь).
Тогда Preprocessor может выглядеть примерно так (зависит от необходимой периферии):
$PROJ_DIR$/drivers/port
$PROJ_DIR$/drivers/system/interrupt/system_interrupt_samd20
$PROJ_DIR$/drivers/system/interrupt
$PROJ_DIR$/drivers/system/pinmux
$PROJ_DIR$/drivers/system
$PROJ_DIR$/drivers/nvm
$PROJ_DIR$/drivers/extint
$PROJ_DIR$/drivers/system/clock
$PROJ_DIR$/.
$PROJ_DIR$/drivers/sercom
$PROJ_DIR$/drivers/sercom/usart
$PROJ_DIR$/drivers/rtc
$PROJ_DIR$/drivers/sercom/spi
$PROJ_DIR$/drivers/sercom/spi/module_config
$PROJ_DIR$/drivers/sercom/i2c
$PROJ_DIR$/drivers/tc
$PROJ_DIR$/drivers/system/clock/clock_samd20
$ASF_DIR$/utils
$ASF_DIR$/utils/preprocessor
$ASF_DIR$/utils/cmsis/samd20/source
$ASF_DIR$/utils/cmsis/samd20/include/pio
$ASF_DIR$/utils/cmsis/samd20/include
$ASF_DIR$/utils/header_files
$ASF_DIR$/boards
$ASF_DIR$/boards/samd20_xplained_pro
$ASF_DIR$/../common/utils
$ASF_DIR$/../common/boards
$ASF_DIR$/utils/header_files
Еще в этом разделе необходимо указать дефайны для проекта. В нашем случае:
Defined symbols: (one per line)
ARM_MATH_CM0=true
EXTINT_CALLBACK_MODE= true
__SAMD20G16__
BOARD=USER_BOARD
TC_ASYNC= true
USART_CALLBACK_MODE=true
RTC_COUNT_ASYNC= true
SPI_CALLBACK_MODE=false
I2C_MASTER_CALLBACK_MODE=false


Если вы собираетесь пользоваться Atmel Start, то настройки препроцессора автоматически сгенерируются при загрузке проекта.
Assembler-Preprocessor
Output Converter-Output-Generate additional output, Output format: Intel Extended, Output file: Override default: file name.hex
Linker-Config-Linker configuration file: Override default: $PROJ_DIR$\samd20g16_flash.icf
Debugger-Setup-Driver: J-Link/J-Trace
Все настройки сделаны.
Для написания функций инициализации контроллера и периферии воспользуемся Atmel Start.
В качестве альтернативы можно посмотреть примеры как к IAR, так и к Atmel Studio, либо документацию.
Используем AtmelStart

Atmel Start – интернет генератор кода.
Выбираем плату и контроллер и создаем проект: Custom Board, ATSAMD20G16 – Create new project
Начнем с настройки тактирования. Предположим, у нас контроллер тактируется от внешнего генератора частотой 7,37 МГц и мы хотим системной частотой иметь 48 МГц ( как это сделать в Atmel Studio см здесь).
Открываем Go to clock configurator:

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

Еще необходимо настроить порты ввода/вывода микроконтроллера, для этого есть Pin/Mux Configurator. В этом разделе все интуитивно понятно.
Конечно же, надо добавить необходимую периферию — Add Software Component. Для удобства поиска оставляем только поиск по драйверам. Находим нужный, например, SPI, выбираем количество и добавляем. Также это можно сделать на основной странице нажав на «+» возле Drivers.

Теперь идем в его настройки.
Указываем все необходимые нам параметры. Получается примерно так:

Делаем все остальные настройки периферии и всего, что нам нужно. Когда все готово, экспортируем проект в нужный нам формат.
Для этого: Export Project: — Include IAR (.ipcf) file – Download Pack

Меняем расширение архива на простой zip и распаковываем в папку проекта. В IAR: Tools-Options-Project-Enable Project Connections.
Далее Project-Add Project Connection — IAR Project Connection- Ok, выбираем файл: iar-project-connection.ipcf. Далее все настройки и сами файлы в папках появятся в проекте.


Можно компилировать и наслаждаться!

habr.com

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


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

Выполняя роль связующего звена от начальной идеи до выводы на рынок конечного продукта, и дополняя собой среду Studio 7, платформа Atmel START является графическим веб-интерфейсом, позволяющим разработчикам осуществить конфигурацию программных компонентов и драйверов, компиляцию исходного кода, воспользоваться демонстрационными приложениями и базовыми проектами, поднимая свою продуктивность на новый уровень.

Компания Atmel Corporation, ведущий поставщик микроконтроллеров и сенсорных решений, объявила о выпуске Atmel Studio 7 — полнофункциональной, бесплатной интегрированной среды проектирования (IDE) систем на базе микроконтроллеров семейств Atmel | SMART и AVR. Помимо этого, компания анонсировала платформу Atmel START — новый, интуитивно понятный графический интерфейс для разработки и конфигурации встраиваемых приложений, позволяющий разработчикам создавать уникальные программные решения.

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

Для сообщества радиолюбителей и изобретателей, работающих с платформой Arduino, Studio 7 предлагает возможность портировать свои скетчи, созданные в среде Arduino, в C++ проекты и легко переносить их в профессиональную среду Studio 7. Компания Atmel продолжает поддерживать независимых разработчиков на всем пути — от идеи до вывода на рынок конечного продукта.

Со стремительным развитием рынка Интернета вещей (IoT) и появлением миллиардов устройств, ожидаемых к 2020 году, качественное, высокоинтегрированное выстраиваемое ПО становится ключевым элементом, позволяющим создавать надежные коммуникационные решения, основанные на современных стандартах связи и безопасности. Анонсированная Atmel платформа Atmel START — это онлайн инструмент, помогающий разработчикам легко и быстро интегрировать базовые программные блоки и сконцентрироваться на создании собственных приложений.

Графический веб-интерфейс Atmel START позволяет пользователю выбрать нужные программные компоненты и сконфигурировать их для работы с обширным семейством отладочных плат Atmel или с собственной системой. Разработчики могут создавать программные платформы, включающие низкоуровневые драйверы, промежуточное ПО, операционную систему реального времени (RTOS), высокоуровневые стеки сетевых протоколов и многое другое. Помимо этого, Atmel START поддерживает графическую конфигурацию таблицы назначения выводов и системы тактирования. Сконфигурируемый программный пакет может быть загружен в любую поддерживаемую среду разработки, включая Atmel Studio 7, IAR Embedded Workbench и Keil µVision. Atmel START — это исключительно интернет приложение, не требующее предварительной установки, а доступный для скачивания контент всегда будет последней версии.

Atmel Studio 7

Проще в использовании и более производительная, чем когда-либо.
Версия Atmel Studio 7 является глобальным обновлением лучшей в отрасли интегрированной среды проектирования (IDE) и включает ряд существенных изменений и дополнений:
  • Обновленная оболочка Visual Studio Shell до версии 2015, с полной поддержкой ОС Windows 10
  • Возможность импорта скетчей Arduino в виде C++ проектов
  • Усовершенствованная контекстная система помощи позволяет просматривать техническую документацию непосредственно из среды Studio
  • Модульный установщик (позволяет скачивать и устанавливать только необходимые пользователю компоненты)
  • Полная поддержка всех новейших микроконтроллеров Atmel, включая устройства Bluetooth Low Energy

Новая Atmel Studio 7 может быть установлена параллельно с уже установленной Studio 6.2, при условии, что две версии будут установлены в разные директории. Тем не менее, производитель настоятельно рекомендует обновить существующую версию до последней, поскольку она содержит ряд важных дополнений и исправлений. Существующие проекты на 100% совместимы со средой Studio 7.

Интегрированная среда проектирования Atmel Studio 7 доступна для скачивания по ссылке: http://www.atmel.com/tools/ATMELSTUDIO.aspx

Atmel START

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

В отличии от Studio 7, платформа Atmel START является полностью веб-приложением, и не требует установки каких-либо компонентов. Перейти на страницу приложения Atmel START: http://start.atmel.com

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

Помимо этого, Atmel START поддерживает графический интерфейс конфигурации выводов, для AVR микроконтроллеров, и системы тактирования, для ARM микроконтроллеров семейства Atmel | SMART.

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

Atmel START абстрагирована от конкретной среды проектирования. Как только все программные компоненты будут сконфигурированы, пользоваткль может создать проект под конкретную среду разработки. На текущий момент, возможно создание проектов для IDE Atmel Studio, IAR Embedded Workbench и ARM/Keil MDK.

Поддерживаемые микроконтроллеры

В данное время платформа Atmel START поддерживает следующие семейства микроконтроллеров и отладочные платы:

Новые микроконтроллеры и отладочные платы будут добавляться регулярно в последующих релизах.
Программный код, создаваемый в Atmel START

Программный код, создаваемый в Atmel START основан на 4-й версии библиотеки Atmel Software Framework (ASFv4). ASFv4 является глобальным архитектурным обновлением библиотеки ASF с целью оптимизировать время исполнения, размер и интерпретацию программного кода. По этой причине, код ASFv4 не на 100% совместим с предыдущими версиями библиотеки ASF, включая любые программы, созданные в мастере ASF Wizard, входящего в состав Atmel Studio. Предыдущие версии ASF будут поддерживаться вплоть до истечения сроков обязательств Atmel по поддержке продуктов, выпущенных в рамках этой архитектуры, но дальнейшее развитие программного обеспечения будет сфокусировано на платформу ASFv4 и Atmel START

habr.com

arm - Использование Atmel Software Framework

http://www.atmel.com/tools/avrsoftwareframework.aspx?tab=overview

In my company there is a project, depending on this library. However, it is used by copy-pasting some .c and .h files into the project and adding their names to the makefile.

I would expect the correct way of using a third-party library to be to

  • either get the already compiled static library plus public headers
  • or get a self-contained project to build the above and then user projects to depend on the built library, and not on it's sources.

However, I have been unsuccessful in isolating a solution. The download, that I have linked in the top of the question, is 1.25GB in size, and consists various sources and makefiles.

My target is SAM4S and the board is fully custom.

EDIT:

To clarify, here are my reasons for thinking that my two points above are the cleanest way to integrate a third-party static library.

  • Version control - get the new versions of the library cleanly.
  • Separation - the library is logically not a part of the core project, for example it should not depend on the external project (otherwise - spagetti code).
  • Read-only - do not ever fall for the temptation to modify third-party code. Doing so 1. introduces bugs, because you generally lack the understanding of the library authors and 2. prevents updating to newer versions of the library.

http://www.atmel.com/tools/avrsoftwareframework.aspx?tab=overview

В моей компании есть проект, в зависимости от этой библиотеки. Тем не менее, он используется путем копирования вставки некоторых .c и .h файлов в проект и добавления их имен в make-файл.

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

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

Однако я не смог изолировать решение. Загрузка, которую я связал в верхней части вопроса, составляет 1,25 ГБ, и состоит из различных источников и make-файлов.

Моя цель - SAM4S, и плата полностью обычна.

EDIT:

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

  • Контроль версий - получите новые версии библиотеки.
  • Разделение - библиотека логически не является частью основного проекта, например, она не должна зависеть от внешнего проекта (в противном случае - кода спагетти).
  • Только для чтения - никогда не поддавайтесь соблазну изменить сторонний код. Выполнение этого 1. вводит ошибки, поскольку вам вообще не хватает понимания авторов библиотеки и 2. предотвращает обновление до более новых версий библиотеки.

electronics.stackovernet.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *