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. |