Most commercislly available ECU comes with software that looks just like any computer software with preset utilities and functions. Starting maps. Idling maps. Warmup maps. Accell enrichment.. Boost control.. I imagine race cars maps are more complex.. But anyway, based on external inputs the ECU executes these functions, reads these maps and other things. So for the engine tuner the program does not look like lines of computer code.
If an engine tuner is really into programing /digital electronics etc/building ECUs he may create his own functions and utilities i suppose, and then the program would look like computer code!
Anyone knows what the McLaren ECU software looks like?
Megasquirt code is owned by Bowling and Grippo and they don't allow altering of the base code. For this Megasquirt has been a little slow against the competition. It's not exactly open source which infuriates a lot of fans, but I am a regular user and Megasquirt meets all my simple needs at the moment. I actually think it's too complex!
I'm actually in the process of writing updated ECU download software for our client. (Think big agricultural machinery.) It looks like this but then a couple of hundred thousand lines more:
I guess that's not what you're looking for? Your question is too vague to be answered. What do you really want to know?
I'm the software architect in an ECU company and wrote 99% of the code. Our product does 4-8 cylinders fully sequential injection and ignition, think high power Mitsubishi EVOs, STIs, BMWs, our product can run them.
I've been in your shoes some years ago and can appreciate there's not a lot of information on the subject and, given the accessibility of reflashing/remap tools for OEM ECUs, you'll find a lot of incomplete or false information out there.
First of, we need to distinguish between two types of data. We have the 'map', which is essentially the set of configuration parameters and tables that model the ECUs behavior and the 'code'. If we talk about the people who reflash OEM ECUs, they normally only modify the 'map'. That is, they read the contents of the memory which contains the manufacturer's map, use specialized software to identify where each table and configuration parameters lies in there (think of a book with no titles or table of contents) and modify certain values. In this case, the code that interprets those settings isn't changed at all. Of course, some of the bigger OEM tuners modify the code slightly as well, mainly to block other tuners from stealing their maps, but what I've described above is the gist of it.
Now, as soon as we move away from the daily driven cars with slight modifications (which are normally supported just with a remap of the OEM ECU) and into the more seriously modified cars, we reach the area of 'standalone ECUs'. This is the field in which my company operates. The whole ethos of standalone ECUs is different to the ones used by OEMs. If OEMs are interested in locking down the product and not allowing modifications (for different reasons: emissions, market segmentation, liability etc), a good standalone ECU is the one that's the easiest to modify. So the standalone ECUs will always have a good intuitive software to use when changing settings, with lots of supporting tools.
In regards to your specific question, it looks like any other C/C++ application. Depending on where you look in the code, it might have some engine-specific function names, but, at its core, it won't be any different to any embedded source code.