Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

Programming Language for embedded PCs

Status
Not open for further replies.

EmbeddedStuff

Computer
Apr 1, 2011
7
0
0
AT
I am wanting to program an embedded PC but I am more of an engineer than a computer scientist?

What languages would you recommend? LabView or FlowStone etc...

Any advice would be appreciated...
 
Replies continue below

Recommended for you

The word 'embedded', when applied to computers, means that the reset button CANNOT be pressed, EVER, usually because no human is within proximity. The computer may in fact have no keyboard and no display. It should be prepared to live its entire life autonomously, making its own decisions and dealing with the consequences.

PCs were evolved in a different environment, and are not generally robust enough for embedded service.

They have the advantage of being cheap because they are produced in enormous quantities.

An artifact of the market for PCs is that they are in general badly designed. Let me explain how that happens:

Most start with a template design by the CPU chip maker.
Anybody can buy the design package, and many do.
In order to differentiate, motherboard vendors add features by modifying the template design. Some of them do it well; most screw up the implementation in some way because they are in a hurry to get to market and don't want to pay for EEs who know what they are doing.
There is no way to tell the good ones from the bad ones.

Okay, there is a way. You hire an EE who knows what he is doing, and he goes over the design documents, checks all the chips for application errors, like loading, timing of each and every signal, stuff like that. Then he checks the timing of the motherboard buses against the standards for the bus, and for potential problems interfacing with common but noncompliant parts that must be used for one reason or another.
I knew a guy who did this for us full time. It took him about six months full time to qualify one new motherboard.

That's a problem, because the PC market is so intense that a motherboard becomes commercially obsolete in three months. ... meaning that the bottom drops out of the market so that nobody can make money building the motherboard you've just qualified, because new features have come into fashion and/or someone else is selling a nominally equivalent motherboard for half the price, which they can do because they didn't bother to check _any_ of the 'improvements' they made in order to get the price down.

So our embedded PC went from a 8088 to 8086 to 80286 to 80386 to 80486 to Pentium in just a couple of years. It didn't need all the horsepower of any of the newer chips, but we couldn't get old design motherboards at competitive prices once the new ones became available.


You can find oldish design PCs intended for embedding, sold as 'industrial' computers. Be aware that no one can afford to make them price competitive with what you can get at Wal-Mart, but as I tried to illustrate, using generic PCs has hidden costs of its own.


As for software, what's best is what you can figure out how to use. I have no idea if Labview can generate code that's suitable for embedded computers. I have no idea what FlowStone is.



Mike Halloran
Pembroke Pines, FL, USA
 
Thank you Mike for your detailed reply.

However I have to clarify a few points your have made. Embedded PCs are widely used ( Think ATM, Gamming Machine, Flight Check in system, CCTV system etc.) and are very reliable now days particularly is you use Windows Embedded as we do. It boots in < 10s with a 300Kb install directly into our EXE (ie no windows ?). I take you point about the mother boards and you are right you can’t just uses an off the shelf cheap mobo but one designed to be an embedded board. These usually have a guaranteed supply of at lest 3 years and apart from the quality and the price the main difference is that they have hardware watchdog timers just like the DSP or uP counterpart to reboot in case of a crash.

We are electronics engineers here and whilst we have a Windows Embedded system working using a FIT PC which is great, we have been developing in C++ and it is just too time consuming to program for our time frame. For our application there is no keyboard or mouse but we do need streaming video and audio plus networking, a touch screen and some DIO etc.

We are considering trying one of the graphical programming Languages like LabView (which we haven used yet) or FlowStone by DSPRobotics (we just downloaded the free version) which looks very elegant, but having no experience in these languages. At first sight they seem to suit my electronics engineering brain, so I wondered if any one could shed some light on if any of these graphical type languages we any good or not for a Windows Embedded application?
 
"if any of these graphical type languages we any good or not for a Windows Embedded application?"

Possibly, but you need to talk to applications engineers from the two companies in question. Labview is, ostensibly, a measurement system, migrated from a Windows environment, while it appears that Coldstone seems to be designed specifically for embedded and small footprint applications.

You might ask for a two-month demonstration package, or something like that, to really try them out.

TTFN

FAQ731-376
Chinese prisoner wins Nobel Peace Prize
 
Sorry about the typos – Engineers!

Anyway I have a little progress to report:

I’ve decided to give FlowStone a go as LabView seems a little daunting (and expensive!), I already downloaded the free version of FlowStone to test so let’s see. It seems the main limitation of the free version isn’t a timeout like other software but simply a limitation on project size which is good. Also you can’t make EXE’s in the free version but you can pay as you go instead. So basically you just pay a nominal fee when you finally want to test your app. as an EXE. Which is ideal as I want to make a test app. and then try it on our embedded PC hardware, so it needs to be an EXE.

Give me a couple days or so to play with some of the examples and I’ll report back.
 
not sure what Mike's rant was all about. PCs capable of running windows CE (embedded) have been around for years, come in many flavours, and will be with us for a long time. Secondly, Labview has done extensive work in developing it's embedded capabilities and will compile to run on highly minimal system resources. Taking that further, Labview will also compile to run on ARM based controllers to get your footprint down even further. In my mind, the decision comes down to interfacing to real world, be it networking and/or port isolation.
 
Thank you automatic2 for the clarification. For my application I need full Windows Embedded not CE, as my CPU demands are quite high.

I have progressed quite a long way so far with FlowStone, and now have an embedded app. running on my target hardware with streaming video and some quite hairy DSP!

I am quite surprised I have manged to get so far so quickly using a graphical programming language. This would have taken me much longer in C++.
 
Status
Not open for further replies.
Back
Top