-
Notifications
You must be signed in to change notification settings - Fork 224
Getting Started
- Fork the repository from GitHub
This will create public copy of the repository in your GitHub account on the GitHub servers. All pull requests must come from a public GitHub repository. Forking the repository is a simple click on the "Fork" button on the repositories page in GitHub. - Clone your forked repository to your local system
When deciding on the location on your local system it is recommended to use a path that will leave at least one level of directory hierarchy from the root to accommodate the additional binaries from step #5 (See the example following these steps for more details, the cloned folder is namednetmf-interpreter
in the example. ) The git command for cloning is:
git clone https://github.com/<your GitHub ID>/netmf-interpreter.git
- In your local repository, configure a remote to "upstream" NETMF repository
Establishing the official repository as the "Upstream" repository for your local clone enables you to pull changes from the latest official commits into your repository and resolve merge issues locally before submitting a pull request. The command for establishing the Upstream remote is:
git remote add upstream https://github.com/NETMF/netmf-interpreter.git
- Download the binary tools zip file
The zip contains binaries necessary to build the SDK along with support files needed to build custom device images. Our longer term goal is to remove the need for these binaries - so they are a separate download at present. - Unzip the contents of the tools zip to the parent folder of the repository
The tools and bin folders in the zip should become siblings of the folder containing the repository. - Download and install the CMSIS library source from ARM. The specifics for the currently supported version are documented in the readme.md in the CMSIS folder of the source tree.
- Download and install the .NET Micro Framework Cryptographic Libraries
- The cryptographic libraries are provided in binary form only. They provide support for cryptographic signature creation and validation. The cryptographic libraries work with TinyBooter and MFDeploy as part of the process of building a secure firmware update solution.
- When prompted for an install location you should select the root of your local repository.
- If you need or want to maintain multiple NETMF based repositories you can simply copy the contents of the crypto folder between repositories since the MSI will only allow installing to one place.
NOTE: There are a number of online tutorials for how to build the NETMF code that list additional steps that are not applicable to the v4.4 and later GitHub repositories. You should treat these articles as highly advanced optimization hints and reviewed with a skeptical eye as the issues the original authors faced and wrote the article to deal with, may not exist anymore. Some contained steps that were simply unnecessary. However, in some cases the instructions are just wrong or potentially problematic due to a confusion on the differences between the Porting Kit and raw source tree builds that previously existed. Hopefully with the move to GitHub, a regularly updated WIKI and the simpler build support in V4.4 we can eliminate the confusion.
- Visual Studio 2015 (Community, Pro or Ultimate editions)
- Visual Studio Extensibility tools
To build the VSIX packages for integration with Visual Studio, you must have the Visual Studio SDK matching the version of VS you intend to target (e.g. VS2013 or VS2015). At a minimum you must have the VS 2015 SDK installed as generation of the project templates requires that version. The build system will automatically skip generation of additional VSIX packages for a given version of VS if the corresponding VSSDK is not found.
The Visual Studio SDK was renamed to Visual Studio Extensibility Tools in VS 2015. Furthermore, the SDK is no longer a separate download, it's part of the main installer. (See the MSDN documentation on the extensibility tools installation for more information) - Supported CMSIS package from ARM. The specifics for the currently supported version are documented in the readme.md file in the CMSIS folder of the source tree.
- Open a command prompt and navigate to the root of the repository
- Run the build_sdk.cmd command script to generate a new SDK MSI and VSIX packages.
This will generate the SDK installer MSI and the VSIX packages in the BuildOutput folder:
...\netmf-interpreter\BuildOutput\public\Release\Server\msm\MicroFrameworkSDK.MSI
...\netmf-interpreter\BuildOutput\public\Release\Server\dll\netmfvs2012.vsix
...\netmf-interpreter\BuildOutput\public\Release\Server\dll\netmfvs2013.vsix
...\netmf-interpreter\BuildOutput\public\Release\Server\dll\netmfvs2015.vsix
- Open a command prompt and navigate to the root of the repository
- Run
setenv_<toolset> <args>
to set up the build environment for the tool-set you have.
Example:C:\GitHub\Netmf\netmf-interpreter>setenv_mdk 5.05
NOTE: For the ARMCC tool chain the version number provided to setenv_mdk.cmd is the compiler version number and NOT the KEIL MDK/uVision version number. (e.g. for KEIL MDK v5.14 the ARMCC version is 5.05) This is to keep the settings consistent between the KEIL and ARM DS-x tool suites, which share the same compiler. - Navigate to the
Solutions\<platformname>
folder for the platform you wish to build - Run msbuild to build the firmware
While a simplemsbuild
with no arguments is enough it tends to make for a noisy display. An easier to follow and faster build is achieved by providing the options for generating a detailed log file but use only minimal logging to the console window as follows:
msbuild /flp:verbosity=detailed /clp:verbosity=minimal
This will build the Release version of the firmware for FLASH. If you want to build the debug version simply add/p:FLAVOR=Debug
to the command line to set the FLAVOR property to Debug.
To make common shortcuts for command line builds easier the setenv_xxx scripts now include support to configure an optional alias.txt
file via DOSKEY. If the %SPOCLIENT%\alias.txt
file is present the setenv_xxx.cmd scripts will load the macros in the file via DOSKEY /macrofile=alias.txt
.
A commonly used shortcut for the previously mentioned build command in alias.txt
would be:
mfbld=cls$Tmsbuild /flp:verbosity=detailed /clp:verbosity=minimal $*
This sets up an alias command mfbld
that clears the screen and runs msbuild with the previously mentioned logging settings. Furthermore, any additional arguments specified on the command line when using the mfbld alias are passed directly on to msbuild.