Embedded programming in C# / .NET

T

Tom Tempelaere

Hi people,

Somewhere in the near future I will have to develop a kernel for an
industrial printer. Some parts of the kernel have real-time
constraints, other parts do not. The kernel should be executed in
(what my proj. mgr. calls) embedded XP. I assume he means XP CE,
although I am not sure (my mgr. is hardly around).

I was wondering if any of the people around here have ever done such
an embedded project using C# / .NET?
Is it possible to use the .NET environment in CE OS?

I am worrying about the real time constraints vs. garbage collection.
I've read about IDispose, and I was wondering if this could solve my
issue.

The kernel will be rather complex, and will communicate heavily with
other components in the system (be they hard or soft). It will have to
use or be able to handle different technologies ((D)COM, sockets, DMA,
....). What are the limitations for C# (.NET)?

I get the feeling that I will burn my hands when I go for C# / CE. But
I may be wrong of course :)

Any pointers/links/... are welcome. Books perhaps?

Thank you,
Tom Tempelaere.
 
N

Nicholas Paldino [.NET/C# MVP]

Tom,

You should be able to do the majority of what you want to do with .NET.
For CE systems, you can use the .NET Compact Framework, which is a subset of
..NET. Also, .NET supports interoperability with COM, so using DCOM (or
COM+) or regular COM components would be fine. Additionaly, there are
Socket classes, and you can call functions exported through DLLs using the
P/Invoke layer. Hopefully, this will give you all you need to do what you
need to do.

As for the real time constraints vs. garbage collection, you might have
an issue there, depending on the needs of your system. The IDispose
interface might help, but only if the classes implement it. IDispose is
used to dispose of resources that are of a critical nature, things like
database connections, window handles, etc, etc. It isn't used for releasing
memory when you want. GC is responsible for that.

Hope this helps.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top