
.Net Micro Framework — , Visual Studio. . open-source , GitHub. “” . .Net Micro Framework .
, ”Hello world” Windows. , .Net Micro Framework “” — STM32F4Discovery.
, ,
. 4.4
netmf-interpreter.
.
, ,
.Net Micro Framework , - 4.3, - . , STM32F4Discovery .Net Micro Framework 4.4 . , .
.
. zip-, , git. , ,
. . , , zip-
.
git, :
- GitHub fork. pull- GitHub .
- , clone. , :
git clone github.com/<your GitHub ID>/netmf-interpreter.git
: . , D:\NETMF\repo
, repo
— . .
- , Upstream. pull pull. Upstream :
git remote add upstream https:
: ( — . 2 git) .
,
.NET Micro Framework v4.4 Release To Web (RTW) , . , , .
, , :
- binary tools zip . , , “” . , .
- binary tools zip- .
D:\NETMF\repo
, repo
— , bin
tools
D:\NETMF
. - :
<repo folder>\Framework\Tools\BuildTasksInternal\BuildSigner\BuildSignerSpotBuild.csproj
37
<HintPath>$(MSBuildProgramFiles32)\Microsoft Internal\Codesign.Submitter\CODESIGN.Submitter.dll</HintPath>
<HintPath>$(SPOROOT)\tools\x86\CODESIGN\CODESIGN.Submitter.dll</HintPath>
. . , .Net Micro Framework open source , , , . .NET Micro Framework v4.4 Release To Web (RTW). . . - CMSIS
<repo folder>\MSIS.
, <repo folder>\MSIS\ReadMe.md.
CMSIS Cortex Microcontroller Software Interface Standart. Cortex-M, — ARM. “” .
.Net Micro Framework 4.4 CMSIS 4.3. zip- (CMSIS-SP-00300-r4p3-00rel0.zip). ARM. <repo folder>\MSIS
. - .Net Micro Framework Cryptographic Libraries. , . . , , , .
msi . ( <crypto install folder>
), , D:\NETMF\repo
D:\NETMF\repo_master
.
.
MSBuild. sln proj Visual Studio, . Visual Studio .
, , STM3F4Discovery
<repo folder>\Solutions\STM32F4DISCOVERY
hex
<repo folder>\BuildOutput
Visual Studio
MSBuild Visual Studio.
.netmf interpreter 4.4 , Visual Studio 2015 Community, Pro Ultimate, .
ARM
ARM. :
RealView
Keil MDK.
32 , , ,
7-Day MDK-Professional Trial License. Keil MDK 5
.
C:\Keil_v5
.
GCC , 10% , RealView. GCC ARM Embedded
.
<gcc folder>
.
ARM RealView Compilation tools
MDK 3.1, 3.80a, 4.12, 4.13, 4.54, 5.04, 5.05. ,
<repo folder>\tools\Targets\Microsoft.Spot.system.mdk.targets
5.06.
<CC Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\armcc.exe"</CC>
<CPP Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\armcc.exe"</CPP>
<AS Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\armasm.exe"</AS>
<LINK Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\armlink.exe"</LINK>
<AR Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\armar.exe"</AR>
<FROMELF Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">"$(MDK_TOOL_PATH)\ARMCC\bin\fromelf.exe"</FROMELF>
<MdkCrtLibLinkSwitch Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.05'">$(MdkCrtLibLinkSwitch) $(SWTC)libpath $(MDK_TOOL_PATH)\ARMCC\LIB</MdkCrtLibLinkSwitch>
<CC Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\armcc.exe"</CC>
<CPP Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\armcc.exe"</CPP>
<AS Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\armasm.exe"</AS>
<LINK Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\armlink.exe"</LINK>
<AR Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\armar.exe"</AR>
<FROMELF Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">"$(MDK_TOOL_PATH)\ARMCC\bin\fromelf.exe"</FROMELF>
<MdkCrtLibLinkSwitch Condition="'$(COMPILER_TOOL_VERSION)'=='MDK5.06'">$(MdkCrtLibLinkSwitch) $(SWTC)libpath $(MDK_TOOL_PATH)\ARMCC\LIB</MdkCrtLibLinkSwitch>
. , :
cd /d D:\WORKDIR\NetMf\NetMFRepo\repo
, :
setenv_mdk 5.06

(
<repo folder>\Solutions\STM32F4DISCOVERY
). , :
cd /d D:\WORKDIR\NetMf\NetMFRepo\repo\Solutions\STM32F4DISCOVERY
, , :
msbuild dotnetmf.proj /p:flavor=release /fl
msbuild
—
dotnetmf.proj
— STM32F4DISCOVERY
/p:flavor=release
— (debug/release/rtm)
/fl
— .
(
D:\WORKDIR\NetMf\NetMFRepo\repo\Solutions\STM32F4DISCOVERY
). ,
/fl
.
msbuild /t:help

10 :

:
<repo folder>\BuildOutput\THUMB2FP\MDK5.06\le\FLASH\release\STM32F4DISCOVERY\bin\Tinybooter.hex\
<repo folder>\BuildOutput\THUMB2FP\MDK5.06\le\FLASH\release\STM32F4DISCOVERY\bin\tinyclr.hex\ER_CONFIG
<repo folder>\BuildOutput\THUMB2FP\MDK5.06\le\FLASH\release\STM32F4DISCOVERY\bin\tinyclr.hex\ER_FLASH
msbuild dotnetmf.proj /p:flavor=release /fl
msbuild /t:clean
<repo folder>\BuildOutput

GCC ARM Embedded
GCC . :
<repo folder>\Solutions\STM32F4DISCOVERY\STM32F4DISCOVERY.settings
<NO_BOOTLOADER_COMPRESSION>true</NO_BOOTLOADER_COMPRESSION>
<PLATFORM_EMULATED_FLOATINGPOINT Condition="'$(COMPILER_TOOL)'=='GCC'">true</PLATFORM_EMULATED_FLOATINGPOINT>
“NNNN.a uses VFP register arguments”.
.
, , “” .
msbuild dotnetmf.proj /p:flavor=release /fl
msbuild /t:clean
<repo folder>\BuildOutput

, , :
cd /d D:\WORKDIR\NetMf\NetMFRepo\repo
, :
setenv_gcc <gcc ver> <gcc folder>
<gcc ver>
— gcc
<gcc folder>
— , GCC ARM Embedded
:
setenv_gcc 4.9.3 D:\WORKDIR\NetMf\gcc_4_9_3

(
<repo folder>\Solutions\STM32F4DISCOVERY
). :
cd /d D:\WORKDIR\NetMf\NetMFRepo\repo\Solutions\STM32F4DISCOVERY
, , :
msbuild dotnetmf.proj /p:flavor=release /fl
msbuild
—dotnetmf.proj
— STM32F4DISCOVERY/p:flavor=release
— (debug/release/rtm)/fl
— .
(
D:\WORKDIR\NetMf\NetMFRepo\repo\Solutions\STM32F4DISCOVERY
). ,
/fl
.
msbuild /t:help

10 :

:
<repo folder>\BuildOutput\THUMB2FP\GCC4.9\le\FLASH\release\STM32F4DISCOVERY\bin\Tinybooter.hex
<repo folder>\BuildOutput\THUMB2FP\GCC4.9\le\FLASH\release\STM32F4DISCOVERY\bin\tinyclr.hex\ER_CONFIG
<repo folder>\BuildOutput\THUMB2FP\GCC4.9\le\FLASH\release\STM32F4DISCOVERY\bin\tinyclr.hex\ER_FLASH
, 3 :
Tinybooter.hex, ER_CONFIG ER_FLASH
.
Tinybooter
— bootloader. CLR.
ER_CONFIG
ER_FLASH
CLR.
, :
- STM32 ST-LINK Utility — , TinyBooter.
- MicroFraimworkSDK.MSI NetMFVS14.vsix — , — template .Net Micro Fraimwork Visual Studio.
- USB , , MicroFraimworkSDK ( Windows 10 ).
:
- miniUSB :

- STM32 ST-LINK Utility Target->Connect:

STM32 ST-LINK Utility :

- Target->Erase Sectors...:

Select All Apply:

flash :

STM32 ST-LINK Utility :

- TinyBooter.hex Target-> Program & Verify...:

tinybooter.hex Start:

STM32 ST-LINK Utility :

- miniUsb Reset
- microUSB :

STM32 ST-LINK Utility . miniUsb .
- Windows 10 , USB :

- .NET Micro Framework Deployment Tool.
MicroFrameworkSDK:
C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.4\Tools\MFDeploy.exe
Serial USB:

. TinyBooter Ping. Pinigng… TinyBooter

- .NET Micro Framework Deployment Tool 2 ER_CONFIG ER_FLASH. Browse…

Deploy:

Ping CLR :

, .
Visual Studio
Visual Studio. blinky , .
Visual Studio :

SDK vsix , template Micro Framework. Console Application:

solution, :

.NET Micro Framework Transport USB. Device:

.
Refrence :
C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.4\Assemblies\le\Microsoft.SPOT.Hardware.dll

program.cs
:
using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Hardware;
namespace STM32F4DISC_Test
{
public class Program
{
public static void Main()
{
OutputPort ledGreen = new OutputPort((Cpu.Pin)60, false);
OutputPort ledYellow = new OutputPort((Cpu.Pin)61, false);
OutputPort ledRed = new OutputPort((Cpu.Pin)62, false);
OutputPort ledBlue = new OutputPort((Cpu.Pin)63, false);
while (true)
{
ledGreen.Write(true);
Thread.Sleep(500);
ledYellow.Write(true);
Thread.Sleep(500);
ledRed.Write(true);
Thread.Sleep(500);
ledBlue.Write(true);
Thread.Sleep(500);
ledGreen.Write(false);
ledYellow.Write(false);
ledRed.Write(false);
ledBlue.Write(false);
Thread.Sleep(500);
}
}
}
}
:

.
.NET Micro Fraimwork — . , , . , , .
.NET Micro Fraimwork STM32F4Discovery , Tinybooter.hex, ER_CONFIG ER_FLASH.
.