Fred's firmware development diary
Re: Fred's firmware development diary
Fixed another small bug this morning and implemented a table validation routine to check incoming tables and validate after changing an axis value (with a view to putting back the original if it fails).
More to come tonight.
Fred.
More to come tonight.
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!
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!
Re: Fred's firmware development diary
0.0.17 SpudEchoes is out :
https://sourceforge.net/project/showfil ... _id=639614
Echoes :
1) Pink Floyd song
2) Request/Response comms
Spud :
1) Because it's half baked...
2) http://www.halfbakedsoftware.com/
3) :-(
Changes :
See the serial docs for info on how to talk to it. Ask questions and read code if things aren't clear.
Fred.
https://sourceforge.net/project/showfil ... _id=639614
Echoes :
1) Pink Floyd song
2) Request/Response comms
Spud :
1) Because it's half baked...
2) http://www.halfbakedsoftware.com/
3) :-(
Changes :
Code: Select all
0.0.17 (SpudEchoes) 12:17 am 10/11/08 - UK time
Fred 8/10 7:40am: Moved flash routine from old text1 to text
Added descriptive comment to the main table definition
Added sizeof defines to the structs file
Shrunk and renamed text1 to lookup with 3 2k tables in it
Fred 15/10 10:50am: Removed all old busy wait ascii serial code
Added packetising escaping checksumming receive ISR code
Added packetising escaping checksumming send ISR code
Added code to send back whatever it receives for testing purposes
Temporarily changed make file to avoid a couple of options an old version of gcc didn't have
Added document describing serial implementation
Fred 20/10 10:56am: Added serial specification docs to the project docs dir and renamed them
Added test packet directory
Made some fixes to the ISR handling code for serial
Added some more serial counters and masks
Fred 20/10 8:11pm: Added core comms source and header files
Removed commented out legacy code in places
Updated tasks, bugs, tests, mindmap
Fred 21/10 8:00am: Refactored escape code in rx section
Added test packet for escape code generation EMS side
Fred 21/10 9:50pm: Updated serial impl document
Reordered receive statements for better speed and accuracy
Generated individual bytes for sending
Fred 22/10 6:55pm: Made the serial packet handler compile
Commented out the copy-only sections in makefile
Moved things out of commsISRs.h and added more things to commsCore.h
Fred 22/10 9:30pm: Updated release procedure to include internal version changes to prevent incorrect ones recurring
Removed burnbuf as unrequired now
Bumped the versions in the constants file.
Fred 23/10 1:54am: Completed and tested serial checksum and escape functionality.
Fred 23/10 11:54pm: Added substantial packet handling logic.
Fred 25/10 3:00pm: Fixed array length mismatch
Added header decoding logic
Refactored serial headers to be more sensible and share vars
Removed instances of using "&= ~0x" from the code
Renamed various serial variables
Fred 25/10 9:49pm: Added line count of s19 to makefile
Fred 26/10 00:19am: Added interface version request/response code
Fred 26/10 6:47pm: Added firmware version request/response code
Added max packet size request/response code
Added echo wrapper packet request/response code
Added hard reset request and action code (using real vector location)
Added async error code packets
Added async debug packets
Added stringCopy utility to avoid using another library
Added call to writeAlignedBlock function
Sean 29/10 11:30pm: Fixed flashWrite.c mistakes
Fred 31/10 6:00pm: Fixed issue number 4 by changing linker script with AT() clause
Moved output dirs to lowercase and shorter names
Moved some functions to fixedconf flash blocks temporarily
Reclaimed 16 bytes of space with a mem.x fix
Fred 03/11 00:48am: Made a number of fixes to the serial comms code to be detailed in later change log
Fred 04/11 7:25pm: Migrated memory management to paged style upto 128k of space in one flash block.
Fred 07/11 1:23pm: Added flash block return by ID function
Fred 08/11 1:38pm: Added soft reset function
Fred 09/11 2:37am: Added ram block return by ID function
Added ram to flash burn by ID function
Added comm to ram write by ID function
Added comm to flash write by ID function (and update ram)
Fred 09/11 12:30pm: Added memory location lookup and struct
Fred 09/11 5:29pm: Removed bigtables linear page stuff
Fred 10/11 8:16am: Added validation function for main tables
Added limits to table return functions
Fixed bug when address not ours dropping packet
Fred 10/11 11:26pm: Added debug and error packets back in
Merged Seans fixes for flash in
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!
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!
Re: Fred's firmware development diary
Not only did I have an EPIC sprint through Liverpool Street station this morning at about 100mph on foot catching air to avoid tripping when passing others far too close, BUT, ....
...I also made EPIC progress on the train in BOTH directions today :-)
Many thanks to Jean for inspiration/the idea (but slightly different) as we now have way less warnings and may get it down to none if I'm any good :-)
Half done right now, but screaming through it.
Also did a flash burn wrapper function and and other stuff too :-)
Dinner and more to come later!
Fred.
...I also made EPIC progress on the train in BOTH directions today :-)
Many thanks to Jean for inspiration/the idea (but slightly different) as we now have way less warnings and may get it down to none if I'm any good :-)
Half done right now, but screaming through it.
Also did a flash burn wrapper function and and other stuff too :-)
Dinner and more to come later!
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!
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!
Re: Fred's firmware development diary
Not much more/any came later, but I did get a snapshot to Sean for further testing and flash dev.
Bed time soon...
Fred.
Bed time soon...
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!
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!
Re: Fred's firmware development diary
Got it building 100% cleanly tonight. No warnings etc from anything. I'll keep working on the serial stuff making it more robust and complete until I have it fairly clean. Then I'll document it all clearly and release again. Hopefully this weekend for the next great release.
Fred.
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!
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!
Re: Fred's firmware development diary
Fixed the hard reset bug and noticed a few things that need an eye kept on them in the future. It's writing something to all 8 pages of the flash memory which makes for a slightly more impressive load sequence :
No release this weekend as I have promised to do some work on the hardware side. I've not written any significant code today or yesterday, just sorting out small issues and thinking things through etc. Tonight is sit down and scratch head about hardware interfacing and write docs for Jared/Dave. I doubt I'll have a conclusive answer tonight, but I should have some progress to report on in that respect.
Fred.
Code: Select all
FLASH write: image file <zoutput/freeems-v0.0.18.s19>
FLASH write: image info <zoutput/freeems-v0.0.18.s19> entry <0xC000>
FLASH write: linear address range <0x3E0000-0x3E023B> size <0x023C>
FLASH write: linear address range <0x3E4000-0x3E4053> size <0x0054>
FLASH write: linear address range <0x3E8000-0x3E8113> size <0x0114>
FLASH write: linear address range <0x3EA000-0x3EBFFF> size <0x2000>
FLASH write: linear address range <0x3EC000-0x3EC113> size <0x0114>
FLASH write: linear address range <0x3EE000-0x3EFFFF> size <0x2000>
FLASH write: linear address range <0x3F0000-0x3F0113> size <0x0114>
FLASH write: linear address range <0x3F2000-0x3F3FFF> size <0x2000>
FLASH write: linear address range <0x3F6000-0x3F6113> size <0x0114>
FLASH write: linear address range <0x3F6400-0x3F65CB> size <0x01CC>
FLASH write: linear address range <0x3F6804-0x3F6FFF> size <0x07FC>
FLASH write: linear address range <0x3F7004-0x3F7FFF> size <0x0FFC>
FLASH write: linear address range <0x3F8000-0x3F805F> size <0x0060>
FLASH write: linear address range <0x3FC000-0x3FF40B> size <0x340C>
FLASH write: linear address range <0x3FF710-0x3FF7FF> size <0x00F0>
FLASH write: image [##################################################]
FLASH write: image size <46592 B> time <11.96 s> rate <3895 B/s>
Firmware load was successful!
It is strongly recommended that you re-extract the firmware and do a visual diff to confirm that the only change is the serial monitor being included.
Thank you for choosing the FreeEMS to run your engine, goodbye.
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!
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!
Re: Fred's firmware development diary
I've spent a few hours on the pin out tonight. I need to do 19 more pins and then have a solid think about the consequences of what I've found and draw up the document that describes how to design your hardware compatibly. I'll get stuck in and try to finish the pin out doc at the least tomorrow night. There is a lot to do besides just that now that I think about it. Best I make a list of stuff to do tomorrow on the train! :-)
Aaron and Ben have been doing epicly good work on the tuning app and I can't wait to try out tomorrows version :-)
Till then,
Fred.
Aaron and Ben have been doing epicly good work on the tuning app and I can't wait to try out tomorrows version :-)
Till then,
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!
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!
Re: Fred's firmware development diary
There has been a change of plan...
The good lady has been sick as a dog and demanded that I go straight to bed with her...
So I'm in bed... and no dev or pin research or anything much is going on.
I did get some news today though, I'm moving from a dead end project to christ knows where. I'm pretty sure the only way out of there is up though, so that's probably good.
This morning I philosophised about the code in various ways and thought up a few ways to make it both faster AND more readable. The only down side is more memory usage. I'll look into doing something about that tomorrow on the train. This evening I spent some time on the hardware interface document. I need to dig up some threads and have a read and think before I put too much more effort into it. It should really consist of the contents of those threads distilled into a clear concise document, not something I dreamed up on a train while tired...
So much to do, no time to do it!
Fred.
The good lady has been sick as a dog and demanded that I go straight to bed with her...
So I'm in bed... and no dev or pin research or anything much is going on.
I did get some news today though, I'm moving from a dead end project to christ knows where. I'm pretty sure the only way out of there is up though, so that's probably good.
This morning I philosophised about the code in various ways and thought up a few ways to make it both faster AND more readable. The only down side is more memory usage. I'll look into doing something about that tomorrow on the train. This evening I spent some time on the hardware interface document. I need to dig up some threads and have a read and think before I put too much more effort into it. It should really consist of the contents of those threads distilled into a clear concise document, not something I dreamed up on a train while tired...
So much to do, no time to do it!
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!
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!
Re: Fred's firmware development diary
Code: Select all
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 4] .fixedconf1 PROGBITS 00007800 003800 000113 00 WAX 0 0 1
[ 5] .fixedconf2 PROGBITS 00007c00 003c00 0001cc 00 WAX 0 0 1
[ 6] .dpageFA PROGBITS 003fa000 00d000 002000 00 WA 0 0 1
[ 7] .fpageFA PROGBITS 003f8000 00c000 000112 00 AX 0 0 1
[ 8] .fpageFB PROGBITS 003fc000 00f000 000112 00 AX 0 0 1
[ 9] .dpageFB1 PROGBITS 003fe000 010000 000400 00 WA 0 0 1
[10] .dpageFB2 PROGBITS 003fe400 010400 000400 00 WA 0 0 1
[11] .dpageFB3 PROGBITS 003fe800 010800 000400 00 WA 0 0 1
[12] .dpageFB4 PROGBITS 003fec00 010c00 000400 00 WA 0 0 1
[13] .dpageFB5 PROGBITS 003ff000 011000 000400 00 WA 0 0 1
[14] .dpageFB6 PROGBITS 003ff400 011400 000400 00 WA 0 0 1
[15] .dpageFB7 PROGBITS 003ff800 011800 000400 00 WA 0 0 1
[16] .dpageFB8 PROGBITS 003ffc00 011c00 000400 00 WA 0 0 1
[17] .dpageFC PROGBITS 00402000 013000 002000 00 WA 0 0 1
[18] .fpageFC PROGBITS 00400000 012000 000112 00 AX 0 0 1
[19] .ppageF9 PROGBITS 003f4000 00a000 001a9d 00 WAX 0 0 1
[20] .ppageFE PROGBITS 00408000 015000 00005d 00 AX 0 0 1
[21] .text PROGBITS 0000c000 004000 003062 00 AX 0 0 4
[22] .rodata PROGBITS 0000f062 007062 000104 00 A 0 0 1
[23] .data PROGBITS 00003030 008030 000008 00 WA 0 0 1
[33] .ppageF8 PROGBITS 003f0000 009000 00028e 00 AX 0 0 1
Key to Flags:
W (write), A (alloc), X (execute), M (merge), S (strings)
I (info), L (link order), G (group), x (unknown)
O (extra OS processing required) o (OS specific), p (processor specific)
Good work on the train tonight on the code.
Good work on the hardware interface doc this morning.
Good work on a draft data map document today lunch time.
The lady required my attention this evening though, so no pin work again, but tomorrow will see some work on that hopefully.
I want it done 100% inside the next week and a half.
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!
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!
Re: Fred's firmware development diary
And for RAM :
Though, this doesn't tell the full story... rpage is broken into 4 chunks x 6 pages and there may be a flash burning buffer placed into the RAM space in the future to allow burns of granular parts of the tune while other live adjusted parts are not burned.
Fred.
Code: Select all
Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ 1] .rpage PROGBITS 00001000 001000 001000 00 WA 0 0 1
[ 2] .txbuf PROGBITS 00002000 002000 000820 00 WA 0 0 1
[ 3] .rxbuf PROGBITS 00002820 002820 000810 00 WA 0 0 1
[24] .bss NOBITS 00003038 003038 0004c9 00 WA 0 0 1
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!
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!