Net micro Framework
.NET Micro Framework – это реализация методологии разработки программного обеспечения .NET, предназначенная для 32-разрадных микроконтроллеров.
Основная идея .NET MF – предоставить разработчикам компактных и даже карманных устройств возможность использовать современный язык программирования C# совместно с мощной библиотекой классов, предоставляющей широкие возможности работы с различными устройствами, файловыми системами, аппаратными интерфейсами, сетью и многим другим.
За счёт этого программисты могут сконцентрироваться на решении функциональных задач разрабатываемого устройства и не беспокоиться о том, например, как реализовать стек протоколов TCP/IP или алгоритм рисования закрашенных полупрозрачных эллипсов на экране.
А самое главное – благодаря .NET Micro Framework можно гораздо быстрее получить нужный результат, проверить идею, перейти к промышленному производству.
Hardware Layer
Этот слой содержит микропроцессор и другие компоненты, из которых состоит ваша аппаратная платформа. На текущий момент .NET Micro Framework может быть запущен на процессорах таких архитектур, как ARM7, ARM9, Cortex, XScale, ARC и ADI Blackfin.
Runtime Component Layer
Этот слой состоит из 3-х компонентов:
• .NET Micro Framework common language runtime (CLR);
• Hardware abstraction layer (HAL);
• Platform abstraction layer (PAL).
CLR
Среда исполнения .NET Micro Framework CLR (TinyCLR) является подмножеством .NET Framework CLR. TinyCLR отличается от «большой» CLR тем, что она была специально переработана для использования в небольших встраиваемых устройствах. .Net Micro Framework Porting Kit поставляется вместе с исходными кодами TinyCLR. Данные коды представляют собой аппаратно-независимую библиотеку, которая может быть скомпилирована разными компиляторами для разных архитектур.
HAL и PAL
TinyCLR взаимодействует с нижележащей аппаратной частью через HAL и PAL. Как HAL, так и PAL состоят из набора функций, вызываемых из TinyCLR. Эти функции написаны на C++. Вполне понятно, что функции HAL очень тесно связаны с «железом». Функции, входящие в PAL, наоборот, спроектированы так, чтобы
Class Library Layer
Библиотека классов .NET Micro Framework представляет собой объектно-ориентированную коллекцию типов, которые разработчики используют при написании встраиваемых приложений. Сюда могут быть включены и сторонние типы. Например, разработчики отладочных плат добавляют сюда классы для работы с периферийными устройствами, расположенными на этих платах.
Application Layer
Этот уровень содержит приложения, которые вы создаете для своих устройств. На сегодняшний день единственным языком разработки таких приложений является C#. Таким образом, основной задачей портирования является написание функций и конфигураций уровня HAL. Теперь посмотрим, каким образом это делается.
Solutions в .NET Micro Framework Porting Kit
Каждый порт в рамках .Net Micro Framework Porting Kit представляет собой Solution. Solution в свою очередь состоит из нескольких Project’ов. Всего существует 5 видов Project’ов:
• NativeSample
• PortBooter
• TinyBooter
• TinyBooterDecompressor
• TinyCLR
NativeSample — это простой «Hello, World» проект. Основной задачей при его реализации является написание достаточного количества функций HAL, чтобы вывести строку «Hello, World» в отладочную консоль.
TinyCLR – собственно, сама среда исполнения. Получение работоспособной TinyCLR и есть цель портирования. В процессе работы над этим проектом дописываются оставшиеся функции HAL. TinyCLR включает в себя TinyBooter.
TinyBooter — это загрузчик .NET Micro Framework. В момент подачи питания он производит всю необходимую инициализацию и запускает TinyCLR. Кроме того он позволяет прошивать новые версии TinyCLR. В процессе реализации этого проекта в HAL добавляется еще несколько новых функций.
TinyBooterDecompressor — это специальная надстройка, призванная минимизировать физический размер TinyBooter. TinyBooter хранится в заархивированном виде и при включении питания распаковывается и загружается с помощью TinyBooterDecompressor.
PortBooter – загрузчик порта. Он позволяет прошивать новые версии TinyCLR в процессе разработки и отладки порта. Реализации этого проекта требует добавления новых функций HAL к уже написанным для NativeSample. Это переходный проект для подготовки к реализации следующих проектов.
Таким образом, реализовывая эти проекты по очереди, вы создаете слой HAL.
Плата FEZ Panda II содержит встроенный в плату светодиод (впрочем как и Arduino). Данная демо-программа просто заставляет мигать данный светодиод с периодичностью 500 мс.
страница 1
скачать
Другие похожие работы: