ECU Software
ECU Software
It's a necessary first step to understand the ECU Hardware, but because the ECU circuit board contains a processor, the ECU operation cannot be fully understood until the software is decoded and analyzed to see how it uses and controls the hardware. If you thought that decoding the hardware was a lot of work, decoding the software is a lot more work.
Most modern computer systems go to great lengths to make it difficult, if not impossible for a person to read out the software and take a look at it. Fortunately for us, the Aprilia ECU did none of those things! For example, most modern embedded computer systems tend to contain the code right inside the CPU chip instead of in an external memory chip. One reason for doing that is cost-related: one chip is always cheaper than two, so why pay for an external memory if you can store code inside the CPU? The other reason is that when code is stored inside a processor, the processor will almost always implement one or more mechanisms to make it essentially impossible to keep people with prying eyes to get at the code.
Fortunately, the Aprilia ECU uses an 'ancient' processor that stores its code in an commonly available external memory, so the software is easily accessible. Better than that, the code inside the external memory was not encrypted in any fashion. All you need is an EPROM reader!
In the same fashion as the process of decoding the ECU hardware can be broken into a few steps, so can the process of decoding the software. The steps go like this:
Read the contents of the EPROM memory chip that contains the code
Disassemble the code into a sequence of machine instructions
Figure out what the machine instructions are telling the ECU to do
Work out a big picture of how the ECU operates
Just a few steps. How long could that take? Well, the first two steps can be done in an hour. Sadly, that remaining steps can take years. In spite of that, let's get started by reading the memory chip.