The Ultimate Loader

Reference implementations of various tools for use with FreeEMS. Written in Java for my personal use, they're 100% cross platform, 100% compatible and 100% reliable with thorough test coverage.
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

Slight bug that meant one small block wasn't written, now fixed:

Code: Select all

Total good lines: 3689
Found and ignored non-S2 record! Type: S0
Found and ignored non-S2 record! Type: S8
Total contiguous blocks: 16
Opening serial device: /dev/ttyUSB0
Opened serial monitor comms!
Successful dinfo: 6 {0xDC, 0xC4, 0x10, 0xE0, 0x00, 0x3E, }
PPAGE: 0xE0 Start address: 0x8800 Size: 484 Writes: 2 of which 1 are full size.
.. DONE!
PPAGE: 0xE1 Start address: 0x8000 Size: 144 Writes: 1 of which 0 are full size.
. DONE!
PPAGE: 0xF8 Start address: 0x8000 Size: 258 Writes: 2 of which 1 are full size.
.. DONE!
PPAGE: 0xF9 Start address: 0x8000 Size: 767 Writes: 3 of which 2 are full size.
... DONE!
PPAGE: 0xF9 Start address: 0xA000 Size: 8192 Writes: 32 of which 32 are full size.
................................ DONE!
PPAGE: 0xFA Start address: 0x8000 Size: 275 Writes: 2 of which 1 are full size.
.. DONE!
PPAGE: 0xFA Start address: 0xA000 Size: 8192 Writes: 32 of which 32 are full size.
................................ DONE!
PPAGE: 0xFB Start address: 0x8000 Size: 303 Writes: 2 of which 1 are full size.
.. DONE!
PPAGE: 0xFB Start address: 0xA000 Size: 8192 Writes: 32 of which 32 are full size.
................................ DONE!
PPAGE: 0xFC Start address: 0x8000 Size: 275 Writes: 2 of which 1 are full size.
.. DONE!
PPAGE: 0xFC Start address: 0xA000 Size: 8192 Writes: 32 of which 32 are full size.
................................ DONE!
PPAGE: 0xFD Start address: 0x8000 Size: 5543 Writes: 22 of which 21 are full size.
...................... DONE!
PPAGE: 0xFD Start address: 0xB800 Size: 2048 Writes: 8 of which 8 are full size.
........ DONE!
PPAGE: 0xFE Start address: 0x8000 Size: 5441 Writes: 22 of which 21 are full size.
...................... DONE!
PPAGE: 0xFF Start address: 0x8000 Size: 10350 Writes: 41 of which 40 are full size.
......................................... DONE!
PPAGE: 0xFF Start address: 0xB710 Size: 240 Writes: 1 of which 0 are full size.
. DONE!
Total writes: 236
Full blocks: 225
Total bytes: 58896
Completed in:

Code: Select all

real	0m22.916s
user	0m3.228s
sys	0m0.512s
Ripped in:

Code: Select all

real	1m6.874s
user	0m7.844s
sys	0m1.668s
Diff is clean!

Bed :-)
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

Currently rip is filtered for blank lines by default. I think this is a good default option, however I'll be adding the following options in future:
  • Don't filter, dump all 512k as is, 0xFF lines included
  • Filter by word instead of line, leaner tighter file
  • Filter by byte instead of line, very lean tight file
For the last two, they also require these variations:
  • Filter start and/or end of lines only
  • Filter blocks in the middle > X size too
The latter could lead to a fragmented broken up S19, however it's trivial to re-rip with different settings.

Another function could be to filter a file and re-output it with aligned addresses. This would put the fragmented file back together.

Yet another option pair could be to A strip a 512k file down and re-dump, or vice versa, IE, take a normal file and fill it out with 0xFF pairs.

Much of this relies upon knowledge of the target device, which will clearly default to XDP512.

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

Only 15.702s without verify for a standard build right now (~59k), should be about 31 seconds with a dual verify.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
flat4power
LQFP112 - Up with the play
Posts: 100
Joined: Mon Sep 24, 2012 8:19 am
Location: France

Re: The Ultimate Loader

Post by flat4power »

nice work and result
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

It's official now!

Image

Splitting all of the demos out of my libraries into their own packages and this out into it's own application!

Fred.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
flat4power
LQFP112 - Up with the play
Posts: 100
Joined: Mon Sep 24, 2012 8:19 am
Location: France

Re: The Ultimate Loader

Post by flat4power »

great :)
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

Infrastructure is in place to do filtered loads/rips. Just need to restructure the code bases and add the glue.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

The S19 file library that backs this app is 100% complete with 100% test coverage and 100% rock solid as a consequence of that. I'm now working on the SM library, which is complete, but needs some refactoring and tidying up to be REALLY good. Once that's done, with respect to this project, my focus is on making the application itself user-ready. Other tasks such as OLV, firmware, FreeEMS lib, testing framework, etc may take precedence, though.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

I've now added file structure verification, too. This is somewhat complex (more than 20 possible issues) and is, of course completely covered by unit tests. :-)
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
User avatar
Fred
Moderator
Posts: 15431
Joined: Tue Jan 15, 2008 2:31 pm
Location: Home sweet home!
Contact:

Re: The Ultimate Loader

Post by Fred »

Finalised and released 0.0.4 of the S19 lib this morning, worked on tidying the SM lib up all day, along with household chores. Should finish the SM lib tomorrow and officially start the UL project using both libs. I already have the foundations covered, however as you all know, only the best will do for me, so there's more to do on that. I've designed a high level SM API, some of which is implemented, and the rest won't be too hard to get done. Once that's in place the UL app will come together pretty easily for me. Expect some unique and desirable features to be present in it.
DIYEFI.org - where Open Source means Open Source, and Free means Freedom
FreeEMS.org - the open source engine management system
FreeEMS dev diary and its comments thread and my turbo truck!
n00bs, do NOT PM or email tech questions! Use the forum!
The ever growing list of FreeEMS success stories!
Locked