I gave up on DOS. Nobody wants to support it
and the marketing people at Power Basic are
too stupid to understand the advantages.
Most of the work in this area is focused
on Real Time Linux so I will go with the
flow.
Here is what the Anything 72 bit I/O card looks like.
http://www.mesanet.com/
These are widely used in NC mill upgrades
along with real time Linux so there is a lot
of development going on. Real Time Linux supports
all the new hardware coming out such as DVD burners
and USB.
Peter at Mesa told me the cheap $80 Intel Atom
ITX motherboards work great.
Paul Lamar
Paul, The real time linux kernal used with the EMC-2 machine controller
has all the extras omitted amd should be available on
linux.org. It is available for those who modify EMC-2 and compile it
themselves. Would you have to use C++ as the programming language or are
others available. It would be nice to have something as simple as fortran 4.
I don't know what the Ford EEC-IV uses to create their binary file, but
it does the computation beween individual cylinder firings on a V8 at
reportadly 1ms runnig ignition and sequential injection. Their processor is
running at 18 MHz
I saw a linux feul injection on the internet last year but can't
remember where and didn't download it. Possibly someone on here did, and it
could be handy to see how they handled the input and output signals.
george grimes
You don't need to compile it. I got a binary that installs and runs.
I think it is called the brain dead install. Ubuntu based.
The Ford code is probably written in asm which is the best for real time.
It also does not move across segmented blocks of memory (no stupid bank
switching as required by the Intel architecture) and the static
memory does not need refresh.
http://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions#What_is_real-time.3F
"Real-time applications have operational deadlines between some
triggering event and the application's response to that event.
To meet these operational deadlines, programmers use real-time
operating systems (RTOS) on which the maximum response time can
be calculated or measured reliably for the given application
and environment."
"Traditionally, the Linux kernel will only allow one process
to preempt another only under certain circumstances."
"How does the CONFIG_PREEMPT_Real Time patch work? The RT-Preempt
patch converts Linux into a fully preemptible kernel."
"In addition some firmwares can stop the system for housekeeping
activities via Service Management Interrupts (SMI's) on x86
and x86_64 architectures; SMI's can NOT be trapped by the
OS, so [increased] latencies introduced by SMBIOS routines can only
be addressed by working with the firmware designers of
the motherboard."
Examples of SMI's are dynamic ram refresh and bank switching.
A latency is the time it takes the processor to stop what it
is doing and service TDC on a rotor. For Linux it varies
with the mother board and can be 10 microseconds to well over
a milli second. DMA's mice and USB are no no's.
-----------------------------------------------------
As I get more into C for real time Linux I am running
into the driver problem. Every new hardware device
needs a driver that can be called from C. Basically
a jump to a subroutine. This is one more layer of code
you don't really need in real time programing. It takes
time to do this.
PC computers really have not changed since the first
IBM PC in about 1980. It is a collection of post boxes
with addresses some of which data can go in and out of.
These boxes have addresses and they are called ports.
The PC I/O addresses have largely not changed since 1980.
The addresses can be loaded into a device called an
address counter. A 16 bit counter can address 64K boxes.
A 32 bit counter can address 42,294,967,000 boxes.
That is 42 gig. IBM IMHO, in their infinite stupidity,
back in 1980, chose the Intel processors with 16 bit address
counters creating havoc in the personal computer market ever
since. The Motorola 68000 at the time had a full 32 bit
address counter. I digress.
The point is; C was sacrificed on the alter of portability
so it would work on any computer. No direct I/O. Are there any
computers out there other than Intel computer or their copy?
The answer is no. Then why a high level language that
cannot address the I/O and other hardware directly?
QB and PB and other DOS basics can address the standardized
PC hardware directly. All you need to know is the address
of the I/O ports.
I am not just talking off the top of my head.
See
http://www.rotaryeng.net/T1.pdf
This was one of the very first embedded applications
for a micro computer let alone a real time OS.
Paul Lamar
--
The Rotary Engine NewsLetter. Powered by Linux.
ACRE NL web site.
http://www.rotaryeng.net
Youtube key word UTUBPLEASE
Copyright 1998-2009 All world wide rights reserved.