Main Site Documentation

How to install .net microframework on a blank stm32f405?


What tools are needed to compile and deploy the .net framework onto a blank stm32f405?


This is dated; is not a direct answer to your question. However, it’s worth a read:


@ Mr. John Smith - If you use the same crystal, you can use the Cerb-family firmware. Or if you really want to have fun, you can build your own firmware. Here is a starting point:

There is a wiki with some notes on how to setup and build the firmware as well as the source code delta.


@ Valkyrie, and you’ve gotten 4.3 to run successfully on the cerb family?


Tried to compile but I got 2 errors and 8 warnings. Can I ignore those?


Depends on what the errors and warnings are.


If you have errors you wont have a firmware to load.
Warnings can be ignored.


C:\MicroFrameworkPK_v4_3\tools\targets\Microsoft.SPOT.System.Targets(324,5): error MSB3202: The project file “C:\MicroFrameworkPK_v4_3\DeviceCode\GHI\Libraries\GHI.OSHW.Native\Managed\stubs\dotnetmf.proj” was not found.

The “stubs” folder isn’t in the ghi open source zip file


C:\MicroFrameworkPK_v4_3\tools\targets\Microsoft.SPOT.System.GCC.targets(327,5): error MSB3073: The command ““c:\GCC_46\bin…\arm-none-eabi\bin\ld.exe” -static --gc-sections --no-warn-mismatch – {a whole bunch of stuff later} \TinyBooter.proj” (Build target(s)) – FAILED.

I don’t know what that second one means.


Yep, this version will not compile. Does anyone have a version with the
"\DeviceCode\GHI\Libraries\GHI.OSHW.Native\Managed\stubs" folder?


It looks like there were a lot of deletes done in the last update

I don’t know what to do.


@ Mr. John Smith - Hmm. Let me run through this and fix anything that’s broken.


All you need is a firmware, and stdfu. Step thru the manual firmware/bootloader install as documented here. As @ Valkyrie says, if you don’t use the same crystal though you’ll need a different firmware.


@ Mr. John Smith - I checked in that stubs folder to Github. It does appear to need it, although I have no clue why. Those changes by GHI should not be a problem. One thing to note: Use 4.3 RTM, not 4.3 QFE1. If you try QFE1 you will be opening a can of worms because you will have a bunch of things to fix.


I finally found a version of GHI’s code that will compile:

That’s version 28590, and it includes those stubs files.

The second error still persists: ld.exe exited with code 1


Here is the ld.exe error:

c:\GCC_46\bin…\arm-none-eabi\bin\ld.exe: region `LR_FLASH’ overflowed by 15988 bytes


That means the result binary was to big to fit into your device memory as specified by the scatterfile. When you build, you are building 2 binaries, the tinybooter and the tinyclr.

I think you have an old version though. I forgot to “Push” the updates to Git. I thought that the Commit was saving it to Github, but it only does that when you “Push”. Oops. I just did a push. Try pulling down the current version and overwrite with those files.


@ Valkyrie, 8 Warnings 0 Errors woohoo!


@ Valkyrie, what does this line mean:
“Note: Some of the 4.2 references will no longer work, so those will have to be recompiled…”

Does this mean I have to compile the 4.2 framework as well?


Ok, just looking for some cautionary advice:

Is it possible to brick chip in circuit by redeploying all of the framework including the tinybooter?

I want to modify System.Math to include a new function Hyp (sqrt of x square + y square + z square). Is it wise to augment the existing framework or should I add a class of my own?


When you install the .NET MF 4.3 RTM SDK (the one here:, the 4.3 Framework will be installed into C:\Program Files and the 4.3 Target will become available in Visual Studio (I use VS2012). What I am referring to is files like the GHI.OSHW.Hardware.dll. That might have to be recompiled as a 4.3 dll. It will tell you when you try to deploy to a device if it doesn’t like your dll.