Shop OBEX P1 Docs P2 Docs Learn Events
Speaking of Gadgeteer & .NET Micro Framework! — Parallax Forums

Speaking of Gadgeteer & .NET Micro Framework!

Jay B. HarlowJay B. Harlow Posts: 79
edited 2011-09-23 09:12 in General Discussion
(so as not to hijack the "Another interesting EDDIE perspective" thread)

I would like to see the .NET MF ported to the Propeller II and possibly even the Gadgeteer Toolkit; I think it would be fun to learn to design the boards & gadgets; unfortunately I don't have the financial where with all to do it, or the experience (however, I would love to learn, I started college as a EEE, before landing a full time software development job.)

I suspect a lot of it would be coming up with a reference implementation of a Propeller II board that would support the .NET MF, the Propeller GCC that Jazzed & others are working on; then understanding enough of the porting process to do the port...

For starters I could see having some config that says these cogs run the .NET interpreter, while these other cogs run PASM drivers. Literally a multi-core .NET Micro Framework machine!

Jay

Comments

  • Heater.Heater. Posts: 21,230
    edited 2011-09-22 03:10
    Jay,
    I would like to see the .NET MF ported to the Propeller II

    Why on earth?
    ...it would be fun to learn to design the boards & gadgets

    Yes indeed. How have we been doing that all these years without .NET?
    I suspect a lot of it would be coming up with a reference implementation of a Propeller II board that would support the .NET

    If a language system is any use it will not depend on any reference board. Should be general purpose should it not?

    If you have something like the Propeller GCC C/C++ compiler why would you need .NET and C# etc?

    Thing is .NET relies on a virtual machine to run the byte codes compiled from C# or whatever language. So it's going to be slow. The virtual machine itself is going to be big. The Prop and Prop II are really not suited to this.

    The .NET run time is somewhat like the Java run time. There is a Java run time for the Prop. It is not practically useful.
  • wjsteelewjsteele Posts: 697
    edited 2011-09-22 08:12
    Heater. wrote: »
    Thing is .NET relies on a virtual machine to run the byte codes compiled from C# or whatever language. So it's going to be slow. The virtual machine itself is going to be big. The Prop and Prop II are really not suited to this.

    Actually, Heater, that is not entirely correct. Check out the specs for the .NET Microframework and then look at the specs for the Prop II. You'll see that the Prop II will easily run the .NET Microsoframework quite nicely as it has more than enough horsepower and memory for the requirements. Also, note that the Microframework runs entirely differently then the full framework (or even the compact framework) due to the limited constraints of the smaller processors like the Prop II. It's actually designed for these small devices, so performance is quite snappy... it's even fast enough to do video.

    One great reason to do something like this is to give the ability for the millions of C# developers to start using these smaller devices... there are a lot of talented people in this world who might not have been exposed to uC development, and this would be an easy way for them to step into it.

    Bill
  • GordonMcCombGordonMcComb Posts: 3,366
    edited 2011-09-22 14:55
    I think many C# programmers would have an okay time with any C-based microcontroller compiler, though you're right, the added comfort zone is a seller. But more than that, many embedded applications have a server component, and it's easier to develop both in tandem using the same language -- and likely the same team of developers. There are millions of C# developers out there.

    OTOH, the average C# developer may feel a bit stymied by the lack of the vast number of classes and libraries they're used to under Windows. So there's a learning curve involved, too.

    @Heater, obviously, a reference design is going to exploit the native abilities of the hardware, which in turn is exploited by the software, just as many Propeller boards have a VGA or RCA connector for video. There are objects to support these features. I'm not sure it's a fair to say a language can't or shouldn't support the hardware of a reference design, or else what's the point of MCU's making a niche for themselves with special hardware features? In the end it's just a matter of adding libs that support specific hardware to make it easier for developers to use. Call it an object, a class, or whatever, they're all canned bits of code based on the fundamental keyword statements provided by the programming platform. A .Net class is a SPIN/ASM object by another name.

    -- Gordon
  • Jay B. HarlowJay B. Harlow Posts: 79
    edited 2011-09-22 15:41
    I agree the Prop is not well suited, however I think the Prop II will be idealy suited!

    I'm well aware that .NET & Java is a virtual machine running byte codes, the Prop I currently runs SPIN's byte codes!

    As Gordon & Bill point out, if I'm fluent in C# or VB.NET why not program my micro controller in the same C# or VB. Why not use the same IDE that I use for other projects, why not use the same refactoring tools I use for other projects, why not use similiar & familar frameworks.

    Just like developers would choose C# or VB over C++ on a desktop or server, I would choose C# or VB over C++ or C on a micro controller!

    It's all about options. I see .NET Micro Framework on the Prop II as a valuable option for whoever succeeds in porting it; also a valuable option for Parallax, as it would sell more Prop IIs. Granted those interested could ignore the Prop II and go with the GHI Fez controllers or one of the other .NET Micro Framework.

    Thanks
    Jay
  • Heater.Heater. Posts: 21,230
    edited 2011-09-23 05:56
    wjsteele,
    Actually, Heater, that is not entirely correct.

    Hmmm...Turns out I might be showing off my ignorance.

    I haven't had much luck finding the microframework specs yet but looking at some
    of the platforms available it appears that you are right. From here
    http://msdn.microsoft.com/en-us/library/cc533001.aspx we learn that:

    "The CLR is able to provide all of these features and services from a very small
    memory footprint. It occupies only about 390 KB of memory when all of the
    provided functionality is being used"

    There are statements around the net that the Micro Framework Minimal memory
    footprint is down to Flash: 155KB RAM: 32KB. So I guess it can be pruned down to
    fit the Prop II, hopefully with some space for the application code:)

    Many of the existing Micro Framework products are running on ARM in the 70MHz
    ball park so the Prop II will have the speed as well.

    So it looks like it's doable and even useful.

    .. it's even fast enough to do video.

    You might have to elaborate on that a bit.

    Despite my reservations about having to live in a Microsoft centric world I have
    to admit to quite liking C# and may well be on the verge of picking up a FEZ
    Cobra board.

    If we can get to program the thing from a Linux box someday all will be well:)
  • blittledblittled Posts: 681
    edited 2011-09-23 09:12
    I program in C# and VB.NET and have a FEZ Domino. I do feel quite comfortable with programming the FEZ but I can can develop programs for the Propeller quicker and I like the Propeller better. For one thing since MF is a managed system (periodic garbage collection for example) it is not a deterministic language. If you want to do things that where timing is critical SPIN or PASM would be better.
Sign In or Register to comment.