от
до
Блок арифметики с плавающей точкой (FPU)
Поддержка DSP-инструкций не важно да нет
Графический ускоритель, аппаратное декодирование видео
не важно да нетБлок управления памятью (MMU) не важно да нет
Каналы DMAдо
Блок защиты памяти (MPU) не важно да нет
Аппаратный блок шифрования не важно да нетmymcu.ru
ASF переводится как Atmel Software Framework — рабочее окружение для разработки firmware микроконтроллеров от Atmel. По сути это дополнение к традиционным тулчейнам, таким как AVR-GCC toolchain (WinAVR, Atmel GCC toolchain), На рисунке показана базовая структура 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), так и на основе прерываний, а также полностью автоматические на базе использования встроенного в чип контроллера [ASF boards] На самом нижнем уровне находится уровень конфигурации платы разработчика, где пользователь может сконфигурировать мультиплексирование выводов портов для каждого микроконтроллера и назначить логические имена для каждого вывода своей рабочей платы. Этот уровень предоставляет большую гибкость для адаптации одного микроконтроллера под широкий ассортимент целевых приложений. [Какие возможности предоставляет ASF] • ASF на базе Atmel Studio включает в себя более 1100 рабочих примеров дизайна. • 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. |
microsin.net
Папки в самой 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
Все очень наглядно, кликаем на модули, вводим необходимые настройки, и должно получится так:
Еще необходимо настроить порты ввода/вывода микроконтроллера, для этого есть 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
Выполняя роль связующего звена от начальной идеи до выводы на рынок конечного продукта, и дополняя собой среду 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 доступна для скачивания по ссылке: http://www.atmel.com/tools/ATMELSTUDIO.aspx
В отличии от 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.
habr.com
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
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.
http://www.atmel.com/tools/avrsoftwareframework.aspx?tab=overview
В моей компании есть проект, в зависимости от этой библиотеки. Тем не менее, он используется путем копирования вставки некоторых .c и .h файлов в проект и добавления их имен в make-файл.
я ожидал бы правильный способ использования библиотеки сторонних производителей, чтобы быть в
Однако я не смог изолировать решение. Загрузка, которую я связал в верхней части вопроса, составляет 1,25 ГБ, и состоит из различных источников и make-файлов.
Моя цель — SAM4S, и плата полностью обычна.
EDIT:
Чтобы уточнить, вот мои причины думать, что мои два пункта выше, является чистым способом интеграции сторонней статической библиотеки.
electronics.stackovernet.com