On 03/01/13 03:26, Jim Lux wrote:
On 1/2/13 5:34 PM, Tom Harris wrote:
+1 for Forth!

+1 for your opinions on PICs & AVRs. We can buy low end NXP ARM Cortex M0
chips (e.g. LPC1113) for less than the PIC18 we were using before, and it
has a real compiler and (unlike the real world) evidence of intelligent
design!

Do you really need an OS? Surely for a box that is only ever going to
be an
NTP server you just need a network interface and good maths? I've just
seen
a later comment where you mention floating point support, but would 64
bit
integer maths work just as well?


Well, one might not need a full-up multitasking OS, but I'd sure like to
have a high level interface to the network (say BSD sockets or something
like that). And most OSes (or OS-like infrastructure) also gives you
some handy stuff like timers, threads, queues, etc.

If you are doing something that is TRULY single function, the "one big
loop" scheme can work, particularly if you've got a lot of nice
libraries to do stuff like string handling/parsing/device interaction.

It fails quite quickly if you have not though through the real time execution needs. Essentially, what execute when, triggered by what, with what data and how late can it be, and what else needs to be done?

Real time properties does not need to be resolved by a real-time operating system, but it needs to be resolved by doing the real time analysis, and then attempting to find stable solutions. Bare-bone processors can work just as well, but things like HW-drivers, lack of network support etc. can be trouble-some.

I think the dividing line might be where you are trying to do more than
one thing with different time scales. It would be straightforward to do
something like multiple PID loops with a common sample/update rate (like
a lot of PLC industrial controllers do), but as soon as you start
running things at different rates (check the Ethernet, check the serial
port, update the loop, etc.) having an OS to do the book-keeping is
pretty nice.

If it gives the needed infrastructure. It can just as well keep the confusion high enough that the issues becomes fuzzidized enough for you not to see them clearly.

Also, do not underestimate what a little HW/FW-support can do to relax requirements significantly, or for that matter seemingly trivial OS support features. HW/FW timestamping is one. Good quality timer support another.

Just grabbing an RTOS and believing that it will solve all problems will not work. I've seen it fail miserably. I all to often see people expecting "a few lines of code" to solve bad system design, so do the system design and figure out your needs, then figure out what hardware and software platforms support those needs the best. You end up with a few alternatives and then iterate a good solution. It's always in the nitty gritty details, so few wide assumptions work very well.

Cheers,
Magnus

_______________________________________________
time-nuts mailing list -- time-nuts@febo.com
To unsubscribe, go to https://www.febo.com/cgi-bin/mailman/listinfo/time-nuts
and follow the instructions there.

Reply via email to