Native Development Options? - Netduino 3 - Netduino Forums
   
Netduino home hardware projects downloads community

Jump to content


The Netduino forums have been replaced by new forums at community.wildernesslabs.co. This site has been preserved for archival purposes only and the ability to make new accounts or posts has been turned off.
Photo

Native Development Options?


  • Please log in to reply
6 replies to this topic

#1 tonofsteel

tonofsteel

    Member

  • Members
  • PipPip
  • 14 posts

Posted 18 May 2015 - 07:36 AM

I would like to start digging into native development with the Netduino.  I have been following the other previous threads and tutorials but they are getting dated now.  What is the current state of the tools and procedures for native development?

- What toolchain does Secret Labs use?  Can I use GCC and create something reasonable that works?

- There were tutorials on building the firmware in the wiki/forums, are these still relevant or is there something newer?

 

I did see in the past where it sounded like there was going to be a mechanism to load native compiled libraries to run native code easily but it does not look like this went anywhere.

 

It seems like if you use the Netduino for awhile and you end up wanting to use it for something that has fast (well, fast for netduino but slow for the rest of the embedded world) response requirements that you need to dive into the lower native layer to get it done.

 

Is the complete source available on github anywhere?  I searched and could find the IP components but not the native netduino parts.

 

Could there be a native development forum created that addresses just native development?  I have worked with native STM32 coding but it almost seems like the .NET micro / Netduino firmware development is the best kept secret.  Are there any resources that make it easier?

 

From what I know currently the steps are:

- get a GCC compiler and install

- Have Visual Studio with C++ installed (not sure if VS is even needed though, also not sure if C++ is required but I thought I saw reference to things not compiling without it?)

- Download .NET micro porting kit and extract to directory

- Overwrite with Netduino native firmware

- Overwrite with another firmware package (cant recall which forum post exactly had this) in order for GCC to actually work

- For this example add your driver solution to the source

- Add stubs

- Code

- Modify project files to include these driver projects, both native and managed

- Compile

 

Out of all of that it is not entirely clear as to what/why you need to modify/overwrite certain parts.  This whole .NET micro / Netduino thing would be massively more useful if you could actually get some clear information on how this all works.

 

I am used to the build process for native code on micro's directly.  There is much less indirection and complication to get around, it seems trivial to get a hello world demo going on almost any other firmware development project other than anything related to .NET micro native development.....

 



#2 neslekkim

neslekkim

    Advanced Member

  • Members
  • PipPipPip
  • 350 posts
  • LocationOslo, Norway

Posted 18 May 2015 - 01:16 PM

I wonder if this is still valid:

http://wiki.netduino...4-6.ashx?HL=gcc

 

This guide was mentioned in another thread here, how to create native code for controlling ledstrips:

https://learn.adafru...tduino/overview


--
Asbjørn


#3 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 18 May 2015 - 06:11 PM

Hi tonofsteel,

We use the RVCT compiler in ARM RVDS to compile Netduino firmware.

There have been some awesome community efforts to get the NETMF firmware to compile with GCC, but official NETMF support for GCC typically lags behind (i.e. not synced with releases). GCC used to compile really big code and so it was less desirable, but with more recent compiler improvements GCC support should probably be pulled in as a synchronized compiler option.

If you pull one of the NETMF-GCC projects from the web and the latest Netduino firmware source from the Downloads page, that will give you a starting point. [We will also be checking in Netduino source to the Netduino github site once NETMF 4.4 is released, like the core NETMF distribution.]

Most developers are interested in Netduino and NETMF for writing C# apps, so that is where most of the focus has been.

On native compilation (interop or otherwise): this is something we've been talking about with the team in Redmond for quite a while. There are certainly applications where this could be beneficial, and we may be able to bring this to a future release of NETMF, but nothing to announce today.

I know that's not a ton of helpful info to get you off and running, but does that at least get you started down the path?

Chris

#4 stotech

stotech

    Advanced Member

  • Members
  • PipPipPip
  • 143 posts
  • LocationAustralia

Posted 19 May 2015 - 04:55 AM

I've heard that RVDS is extremely expensive. What version do you use. I would like to get a quote. Would it make debugging and modifying native neduino code much easier. I'm really in need of adapting it to STM32F407IGT6. 

 

Thanks



#5 stotech

stotech

    Advanced Member

  • Members
  • PipPipPip
  • 143 posts
  • LocationAustralia

Posted 19 May 2015 - 05:40 AM

I just read you were thinking of changing to kail MDK last year? Are you going to switch to Keil MDK Still?



#6 tonofsteel

tonofsteel

    Member

  • Members
  • PipPip
  • 14 posts

Posted 26 May 2015 - 02:28 AM

Hi tonofsteel,

We use the RVCT compiler in ARM RVDS to compile Netduino firmware.

There have been some awesome community efforts to get the NETMF firmware to compile with GCC, but official NETMF support for GCC typically lags behind (i.e. not synced with releases). GCC used to compile really big code and so it was less desirable, but with more recent compiler improvements GCC support should probably be pulled in as a synchronized compiler option.

If you pull one of the NETMF-GCC projects from the web and the latest Netduino firmware source from the Downloads page, that will give you a starting point. [We will also be checking in Netduino source to the Netduino github site once NETMF 4.4 is released, like the core NETMF distribution.]

Most developers are interested in Netduino and NETMF for writing C# apps, so that is where most of the focus has been.

On native compilation (interop or otherwise): this is something we've been talking about with the team in Redmond for quite a while. There are certainly applications where this could be beneficial, and we may be able to bring this to a future release of NETMF, but nothing to announce today.

I know that's not a ton of helpful info to get you off and running, but does that at least get you started down the path?

Chris

 

Thanks Chris and neslekkim, I did happen across those two in the past and since posting I have found my original cache of links to relevant sites.  When looking I forgot to look at the NETMF-GCC code bases that were for the STM32 and not exactly for the Netduino, so yes that will be an excellent place to cross reference for clues.

 

If I ever get any headway on this I will post back and investigate creating a wiki article like referenced above with anything useful I find.....



#7 Chris Walker

Chris Walker

    Secret Labs Staff

  • Moderators
  • 7767 posts
  • LocationNew York, NY

Posted 26 May 2015 - 03:31 AM

Hi Grant,

I've heard that RVDS is extremely expensive. What version do you use. I would like to get a quote. Would it make debugging and modifying native neduino code much easier. I'm really in need of adapting it to STM32F407IGT6.

Both Keil MDK and ARM RVDS use the same RVCT compiler. We actually have both here. The main scatterfiles for the Netduino firmware are for RVDS so we use that for compilation.

We are looking at moving to Keil MDK as our standard compilation toolchain sometime in the future. Especially with the new lower-cost Cortex-only and MCU-brand-specific editions...the price point is approaching "approachable."

Chris




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

home    hardware    projects    downloads    community    where to buy    contact Copyright © 2016 Wilderness Labs Inc.  |  Legal   |   CC BY-SA
This webpage is licensed under a Creative Commons Attribution-ShareAlike License.