Firmware
Since I need to have customized code for IAC, tried to compile new firmware. This is not so easy in windows.
There's a great howto at MembersPage/JohanEriksson/VerThreeFirmForDummies but I have problems with "make"
When I try "make all" from cmd.exe:
echo "runme from sh shell, win32 cmd is broken, dies with CreateProcess error"
"runme from sh shell, win32 cmd is broken, dies with CreateProcess error"
avr-gcc -c -O3 -g -Wall -Wstrict-prototypes -Wa,-ahlms=vems.lst -D GENBOARDv3 -D
FETDRIVER_INVERTING -D LCD -D LCD_4x20 -D PS2KEYBOARD -D BENCHMARK -D CELSIUS -
D VE_TABLE_FIX -D MSNS -D WBO2 -D VE_SIZE_RPM=12 -D VE_SIZE_KPA=12 -D MISC1OUT -
D MISC2OUT -D KPA_CONFIG_RESOLUTION=1 -D KPAFAC_UNIT=2 -D ALS -D ALLOW_SLOPPY_TO
OTHWHEEL -mmcu=atmega128 -DF_CPU=16E6 -I. vems.c -o vems.o
process_begin: CreateProcess((null), avr-gcc -c -O3 -g -Wall -Wstrict-prototypes
-Wa,-ahlms=vems.lst -D GENBOARDv3 -D FETDRIVER_INVERTING -D LCD -D LCD_4x20 -D
PS2KEYBOARD -D BENCHMARK -D CELSIUS -D VE_TABLE_FIX -D MSNS -D WBO2 -D VE_SIZE_R
PM=12 -D VE_SIZE_KPA=12 -D MISC1OUT -D MISC2OUT -D KPA_CONFIG_RESOLUTION=1 -D KP
AFAC_UNIT=2 -D ALS -D ALLOW_SLOPPY_TOOTHWHEEL -mmcu=atmega128 -DF_CPU=16E6 -I. v
ems.c -o vems.o, ...) failed.
make (e=2): The system cannot find the file specified.
make: *** [vems.o] Error 2
I get the same from cygwin's sh.exe, and in sh.exe from unxutils
I've found that it was nothing to do with the shell and make.exe, but with avr-gcc.exe which wasn't found. (Since it was not in path)
Now it starts to compile, but fails when trying to do something with my 'lib' environment variable. I've found that spaces are not welcome in path, and tried to set 'lib' environment variable to winavr's lib, but still got the message:
avr-gcc vems.o helpers.o adc.o comm.o fuelcalc.o tables.o fuelcontrol.o storage
.o actuators.o ve.o iac.o keyboard.o lcd.o heap.o eventqueue.o button.o benchmar
k.o lcd_display.o injconf.o ignconf.o timing.o kb.o menu.o ringbuf.o phasesignal
.o ego.o wbo2.o pid.o log.o multitooth.o spi.o knock.o boostcontrol.o ign_loggin
g.o sipr.o "D:\home\lezsi\auto-motor\bmw\VEMS\winavr\lib" -Wl,-Map=vems.map,--
cref -mmcu=atmega128 -o vems.elf
zsh: unmatched "
avr-objcopy -O ihex -R .eeprom vems.elf vems.hex
avr-objcopy: 'vems.elf': No such file
make: *** [vems.hex] Error 1
rm injconf.o eventqueue.o sipr.o spi.o ign_logging.o phasesignal.o timing.o benc
hmark.o ringbuf.o ignconf.o boostcontrol.o multitooth.o menu.o knock.o
I'm not sure what file it is looking for.
To find out files needed and requested by process (in case your OS is Windows), you could download and install an excellent freeware FileMon a.ka file monitoring application from SysInternals.
http://www.sysinternals.com/Utilities/Filemon.html
FileMon hooks to Windows filesystem and monitors several API calls.