Code Overview

Need general introduction to this section.

As with many embedded processing units, one must deal with times events, and our application is no exception. These timed events can trigger algorithms, outputs, inputs, etc. There are several ways to implement timed events

For example, when you sleep at night, do you watch your clock every 5 minutes to know when to wake up? You don't do that, do you? Most people will set an alarm clock to wake them up. This enables them to do what they really want; to sleep. In this example, the busy-loop does not allow people to do what they want.

This leads us to a timer-based event execution, which we control through software. It finds what needs to be done next, knows when it is due, and also executes it. This allows us to set the alarm clock and execute some task when it goes off. Timer based events keep us from using a busy-loop, which can waste many processor cycles.

Collectively this is called event-queuing; the process of scheduling events precisely, with little overhead. The Event-Queue s precision is implemented at 4 -sec, however worst case has shown to take around 28 -sec, although this rarely happens. This idea has allowed the Genboard to remove frequent no-op interrupts by using hardware counters and output compare registers as our alarm clock. Neither sequential injector nor precise ignition timing would be practical otherwise. Allowing for more available functions, the Genboard V.3 ECU is fast, precise, and inexpensive.

How to we get Heap-Structure in here in a clear concise manner?

Here we need to introduce a code flowchart, etc.

Now we want to introduce the Code Layout of the different modules etc. Need a good paragraph to introduce this diagram. We should really create a cleaned up version of thsi software layout picture.

Figure 2.2. Software Layout

Software Layout

The following paragraphs will give a little better description of the elements and categories listed above.

Talk about the main loop of the code and briefly mention each of the main functions that get called. Include information about how Eventqueue, etc works.

Include basic information about our efforts with the CVS on SourceForge.