Title: Flashing and complete ECU reading times? Post by: woj on June 22, 2017, 02:21:36 PM I have relatively little experience with ECUs other than the ones that work with for my own cars (two so far), so a stupid question perhaps - what are the best reading and flashing times for custom written boot-mode software for ST10 based ME ECUs? Asking because for my ECU (ME7.9.10) which is 850K in flash size the theoretical limit at 115200 baud is about 1 minute (to just transmit the data), so far my software does it in 1.5 minutes for reading and just under 2 minutes for writing. I simply wonder if further fight to reduce these times has any chance of more improvement?
EDIT: and of course only after I asked I have seen the post a couple of lines below about MED flashing times. Apparently I can still improve it... Title: Re: Flashing and complete ECU reading times? Post by: prj on June 22, 2017, 07:03:23 PM You can do it much faster.
1. Use compression. 2. Use higher baud. 3. CRC each flash block and erase/write only the ones that were changed. Title: Re: Flashing and complete ECU reading times? Post by: woj on June 24, 2017, 10:30:48 AM Can't seem to do higher than 115200 baud, on my Linux box the whole thing just refuses to communicate, not sure at which end though. On the other hand, after fixing a handful of comm related things on the PC side, I can now push in (flashing skipped) and pull out the whole file in 1:16. At this baud rate, the theoretical max is 1:14, so I am good here. Flashing takes additional 20 seconds or so on top the transmission time. Selective block writing I already had, only manual, CRC code based is indeed a better idea.
So I am left with the compression, since most time it would be the data block / segments writing, I am guessing a simple per word run length compression should do the trick? Title: Re: Flashing and complete ECU reading times? Post by: woj on June 25, 2017, 04:10:14 PM OK, so some figures with and without CRC checking and simple RL compression (all with actual flashing included):
- complete forced rewrite (no CRC checks): 1:12 - complete rewrite with CRC checking when only data blocks need writing (typical dummy mode for updating tables): 17 seconds - forced manual rewrite without CRC checking of just the data blocks (128K, but highly compressable): 7 seconds, with CRC checking (obsolete, data needs updating anyhow) additional 2 s. I could probably improve some split of a second here and there using better compression, however, right now my boot code fits into the IRAM, which simplifies things a lot. |