- PVSM.RU - https://www.pvsm.ru -
Не так давно я рассказал [1] о выходе в свет новой версии .Net Micro Framework. Технология интересная и перспективная, но при этом очень специфическая. Правда, как и многим open source-проектам, ей не хватает документации. Из-за этого требуется много времени для того, чтобы запустить простой пример, не говоря уже о решении каких-то реальных задач.
В данной статье я хочу исправить этот недостаток и рассказать о том, как быстро и просто установить все необходимое для работы с эмулятором .Net Micro Framework на Windows.
В данной статье речь пойдет о .Net Micro Framework версии 4.4. Начиная с этой версии, проект переехал на GitHub [2]. Состоит он из двух веток:
Рассказывать я буду о netmf-interpreter, так как на текущий момент эта ветка лучше всего подходит для практического использования.
Более подробно о том, что такое .Net Micro Framework можно узнать из статьи “Знакомство с .Net Micro Framework” [5] на хабре и докладов “Архитектура .Net Micro Framework” [6] и “Краткий обзор .Net Micro Framework” [7] на techdays.
Для начала нужно отметить, что netmf-interpreter 4.4 работает только с Visual Studio 2015 в редакциях Community, Pro и Ultimate.
Итак, начать работать netmf-interpreter 4.4 можно тремя разными способами:
Этот способ наиболее трудоемкий. Зато он позволяет использовать самый свежий код из репозитория. Кроме того, умение работать с ним пригодится в дальнейшем, если нужно будет внести изменения в эмулятор или собирать собственные “порты” под другие аппаратные платформы.
Репозиторий находится тут [4]. Можно скачать его как zip-архив, а можно получить используя git. Инструкции на английском языке о том, как получить репозиторий и собрать из него установочные файлы, можно посмотреть тут [8]. На основе этих инструкций и написана статья. Версии репозитория, связанные с конкретными релизами, можно скачать в zip-архивах тут [9].
Чтобы получить репозиторий с помощью git, нужно сделать следующее:
git clone https://github.com/<your GitHub ID>/netmf-interpreter.git
D:NETMFrepo
, где repo
— папка для репозитория. Это требуется для его правильной сборки.
git remote add upstream https://github.com/NETMF/netmf-interpreter.git
Важно: Требования к локальному пути (должна быть хотя бы одна родительская папка — см. п 2 работы с git) актуальны и при распаковке репозитория из архива.
К сожалению, релиз .NET Micro Framework v4.4 Release To Web (RTW) содержит ошибки, которые не позволяют сразу собрать установочные файлы из репозитория. Однако, эти ошибки можно исправить, и далее я расскажу, как это сделать.
После того, как репозиторий тем или иным способом оказался скопирован в локальную папку, нужно сделать следующее:
D:NETMFrepo
, где repo
— папка для репозитория, папки bin
и tools
должны оказаться в папке D:NETMF
.
<repo folder>FrameworkToolsBuildTasksInternalBuildSignerBuildSignerSpotBuild.csproj
<HintPath>$(MSBuildProgramFiles32)Microsoft InternalCodesign.SubmitterCODESIGN.Submitter.dll</HintPath>
<HintPath>$(SPOROOT)toolsx86CODESIGNCODESIGN.Submitter.dll</HintPath>
Это исправление первой ошибки. Без такой замены собрать репозиторий не удастся. Как было сказано выше, .Net Micro Framework это open source проект и, к сожалению, он сталкивается с теми же проблемами, что и другие открытые проекты. Это исправление необходимо только для релиза .NET Micro Framework v4.4 Release To Web (RTW). В дальнейшем репозиторий уже будет содержать поправленные файлы. Про эту проблему можно почитать тут [11].
<repo folder>СMSIS.
Где ее брать и какая именно версия нужна, написано в файле
<repo folder>СMSISReadMe.md.
CMSIS [12] расшифровывается как Cortex Microcontroller Software Interface Standart. Это не зависящая от конкретного производителя библиотека для работы с ядром Cortex-M, поставляемая и поддерживаемая разработчиками ядра — компанией ARM. Использование этой библиотеки позволяет существенно упростить создание “портов” на разные микроконтроллеры разных производителей.
В случае с версией .Net Micro Framework 4.4 нужно скачать CMSIS не ниже версии 4.3. Библиотека поставляется в виде zip-архива (CMSIS-SP-00300-r4p3-00rel0.zip). Ее можно скачать на сайте [12] ARM. Содержимое архива нужно положить в папку <repo folder>СMSIS
.
Библиотеки доступны в виде установочного msi файла. Я рекомендую установить их в любую удобную папку (далее будем называть ее
), а затем копировать их в корень каждого репозитория, например
<crypto install folder>
D:NETMFrepo
и D:NETMFrepo_master
.
Отдельная папка с криптографическими библиотеками потребуется для исправления второй ошибки сборки.
Наконец репозиторий и все необходимые библиотеки скачаны. Можно собрать файлы для установки. Сборка происходит с помощью платформы MSBuild [14]. Несмотря на то, что в репозитории фигурируют знакомые многим sln и proj файлы, использовать Visual Studio напрямую не получится. MSBuild используется и в Vusial Studio, но сам по себе позволяет создавать более гибкие проекты.
Итак, нужно открыть командную строку и перейти в папку с репозиторием, например так:
cd /d D:WORKDIRNetMfNetMFReporepo
Затем нужно выполнить файл build_sdk.cmd
. Это запустит сборку репозитория:
Через несколько минут сборка будет окончена и, кроме множества библиотек, появятся файл
<repo folder>BuildOutputpublicReleaseServerdllNetmfVS14.vsix
Однако второй установочный файл не будет собран из-за второй ошибки. Последним шагом будет ее исправление. Нужно скопировать файл
<crypto install folder>cryptolibx86dllcrypto.dll
в папку
<repo folder>BuildOutputpublicReleaseServerdll
Эта библиотека должна копироваться автоматически при построении репозитория, но этого не делается.
Если запустить сборку репозитория еще раз, то появятся оба файла:
<repo folder>BuildOutputpublicReleaseServerdllNetmfVS14.vsix
<repo folder>BuildOutputpublicReleaseServermsmMicroFrameworkSDK.MSI
Они-то и нужны для дальнейшей работы.
NetmfVS14.vsix — это плагин к Visual Studio.
MicroFrameworkSDK.MSI — это эмулятор и все необходимые библиотеки. Плагин настроится сам, нужно только запустить установку. Библиотеки нужно установить в Typical-варианте:
Файлы MicroFrameworkSDK.MSI и NetmfVS14.vsix можно получить, воспользовавшись пунктом меню Tools->Extensions and Updates
в Visual Studio:
В открывшемся диалоге нужно выбрать вкладку Online слева и ввести ключевое слово netmf в поиске (выделено красной рамкой):
Зелеными рамками выделено то, что нужно скачать и установить.
.NET Micro Framework project system — это плагин для Visual Studio. Он соответствует файлу NetmfVS14.vsix и устанавливается через окно Extensions and Updates.
.NET Micro Framework SDK — эмулятор, и все необходимые для работы библиотеки в виде установочного файла. Это MicroFrameworkSDK.MSI. Его необходимо скачать и инсталлировать, выбрав Typical установку:
Файлы MicroFrameworkSDK.MSI и NetmfVS14.vsix можно скачать со страницы [9] с релизами:
NetmfVS14.vsix — это плагин к Visual Studio.
MicroFrameworkSDK.MSI — это эмулятор и все необходимые библиотеки. Плагин настроится сам, нужно только запустить установку. Библиотеки нужно установить в Typical-варианте:
Выполнив установку одним из 3-х выше перечисленных путей, мы можем приступить к созданию первого проекта на .Net Micro Framework.
Плагин для Visual Studio уже содержит несколько примеров. Нужно только выбрать, какой больше нравится.
Правда, есть один нюанс. Эмулятор устанавливается на системный, диск и его обязательно нужно запускать в режиме администратора, иначе он не сможет правильно работать. Так как эмулятор запускается из-под Visual Studio, то её и нужно запускать от имени администратора.
Итак, запускаем Visual Studio с правами администратора и создаем новый проект:
Если установка была выполнена верно, то появится новый template проекта Micro Framework:
Выберем Windows Application, как наиболее наглядный проект.
Создав solution, можно зайти в свойства проекта:
В настройках проекта появилась новая вкладка .NET Micro Framework:
Для работы с эмулятором можно оставить все значения по умолчанию.
После запуска и компиляции проекта появится окно эмулятора:
У эмулятора есть экран, 5 кнопок, две виртуальные SD-карточки и COM-порт. Все это вполне работоспособно. Например, нажатие кнопок выводит их код в окно Output Visual Studio:
На мой взгляд, этого вполне достаточно, чтобы начать знакомство с .Net Micro Framework на практике.
.Net Micro Framework — перспективный open source-проект, позволяющий писать код на C# под микроконтроллеры. С развитием идей IoT [15] и появлением концепции UWP [16] его развитие получило новый импульс. Со временем он должен закрыть нишу совсем маленьких устройств, на которых нельзя запустить Windows 10 IoT, и при этом полностью поддерживать концепцию UWP.
Однако, как и множество open source проектов, у .Net Micro Framework есть проблемы с документацией. Поэтому разобраться с тем, как его использовать, не всегда легко. Я постарался исправить эту ситуацию и показать, что начать работать с ним можно, потратив всего 5 минут.
Тем, кому интересно поработать не с эмулятором, а с реальным устройством на базе .Net Micro Framework, предлагаю набраться терпения и дождаться следующей статьи.
Автор: AlexandrSurkov
Источник [17]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/103921
Ссылки в тексте:
[1] рассказал: http://geektimes.ru/post/254020/
[2] GitHub: https://github.com/NETMF
[3] llilum: https://github.com/NETMF/llilum
[4] netmf-interpreter: https://github.com/NETMF/netmf-interpreter
[5] “Знакомство с .Net Micro Framework”: http://geektimes.ru/post/253684/
[6] “Архитектура .Net Micro Framework”: https://www.techdays.ru/videos/3617.html
[7] “Краткий обзор .Net Micro Framework”: https://www.techdays.ru/videos/3562.html
[8] тут: https://github.com/NETMF/netmf-interpreter/wiki/Getting%20Started
[9] тут: https://github.com/NETMF/netmf-interpreter/releases
[10] binary tools: http://netmf.github.io/downloads/build-tools.zip
[11] тут: https://github.com/NETMF/netmf-interpreter/issues/333
[12] CMSIS: http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
[13] .Net Micro Framework Cryptographic Libraries: https://github.com/NETMF/netmf-interpreter/releases/tag/NETMFCryptoLibraries
[14] MSBuild: https://ru.wikipedia.org/wiki/MSBuild
[15] IoT: https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82_%D0%B2%D0%B5%D1%89%D0%B5%D0%B9
[16] UWP: https://msdn.microsoft.com/ru-ru/library/windows/apps/dn958439.aspx
[17] Источник: http://geektimes.ru/post/265986/
Нажмите здесь для печати.