Page 75 of 100

Re: Fred's firmware development diary

Posted: Wed Nov 14, 2012 3:03 pm
by Fred
Today I got screwed by 1.5 hours due to untested buggy software. Bugs happen, sure. But I can't afford the time anymore. I never could really. Every time a tool lets me down badly like this it reinforces my resolve to surround myself with a set of robust tools. I'm available for support for existing users and about-to-be users, and little else, until I have the reliable tools that I need. Sorry for any inconvenience that this causes. I'll be trying to slip a few firmware commits in too, as there is some stuff I'm part way through that needs to be finished and shared.

Additionally, some of the tools that I need simply don't exist, and are required for the majority of the outstanding 0.2.0 issues. IE, it's got to be done.

Fred.

Re: Fred's firmware development diary

Posted: Fri Nov 16, 2012 4:51 pm
by Fred
N00bs, and others, too: viewtopic.php?f=54&t=1954

Re: Fred's firmware development diary

Posted: Sun Nov 18, 2012 1:07 pm
by Fred
A monthly pat on the back for those that have stood out! viewtopic.php?f=41&t=1960

Re: Fred's firmware development diary

Posted: Sun Nov 18, 2012 1:09 pm
by Fred
Also, engine 15, Hentai's Miata! This opens the flood gates from the DSM crowd, too: viewtopic.php?f=55&t=1958

Re: Fred's firmware development diary

Posted: Sat Nov 24, 2012 9:42 pm
by Fred
Goals for the weekend, that I wrote on Friday sometime:

1) Finish fixing fw Makefile and add more CI goodness to the server
2) Integrate various small fw fixes and publish them
3) Redesign my loader high level code to be cleaner + add a new feature to it, if possible
4) Make a batch of BrickRPM boards
5) Do a load of washing :-p
6) Clean up the pig sty that's developed here...
7) Fix my jag hardware config
8) Change my J project build config to a superior setup that I discovered for someone else this week

Unfortunately, it's now Saturday and I've achieved nothing except some hobby stuff for sanity, and some "relationship building". Fail. Feeling alright, though :-)

Might try to knock off 1 and maybe 2 now, and 4 and 5 tomorrow.

Fred.

Re: Fred's firmware development diary

Posted: Sun Nov 25, 2012 7:50 pm
by Fred
2 is done, 1 is mostly done, 3-8 are not done :-(

3, 4, 6, 7, 8 are not going to happen today. 5 probably will happen later. I'll probably finish off 1 later too.

viewtopic.php?f=55&t=1967 :-)

Fred.

Re: Fred's firmware development diary

Posted: Sun Nov 25, 2012 8:35 pm
by Fred
I forgot to say, that 1) item included new build options! IE, you can do something like:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ make clean JSeries-12CrankWith6-2Cam
And it will only build that exact decoder variant for you:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
-rwxr-xr-x 1 fred fred 166960 Nov 25 20:22 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-JSeries-12CrankWith6-2Cam.s19
Equally, and for a few weeks already, you can do something like:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ CLIFLAGS="PRESTO" make clean s19
And get a set like this clearly marked as containing PRESTO config:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
total 3320
-rwxr-xr-x 1 fred fred 165472 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-BenchTest.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-16and1.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 166446 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-6and1.s19
-rwxr-xr-x 1 fred fred 165734 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Distributor-4of6and1.s19
-rwxr-xr-x 1 fred fred 166516 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-GM-LT1-CAS-360and8.s19
-rwxr-xr-x 1 fred fred 167024 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-HallOrOptical-Distributor-4of64.s19
-rwxr-xr-x 1 fred fred 167024 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-HallOrOptical-Distributor-4of69.s19
-rwxr-xr-x 1 fred fred 166956 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-JSeries-12CrankWith6-2Cam.s19
-rwxr-xr-x 1 fred fred 164054 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-Listener.s19
-rwxr-xr-x 1 fred fred 168658 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-12minus1.s19
-rwxr-xr-x 1 fred fred 168658 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-24minus1.s19
-rwxr-xr-x 1 fred fred 168804 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Cam-6minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-12minus1.s19
-rwxr-xr-x 1 fred fred 168808 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-30minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-36minus1.s19
-rwxr-xr-x 1 fred fred 168808 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-60minus2.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-Crank-8minus1.s19
-rwxr-xr-x 1 fred fred 168650 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MissingTeeth-TestFile.s19
-rwxr-xr-x 1 fred fred 169528 Nov 25 20:25 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-MitsiAndMazda-CAS-4and1.s19
So, naturally they can be combined:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ CLIFLAGS="SPUDMN" make clean MissingTeeth-Crank-8minus1
<snip>
fred@cheetah:~/workspaces/eclipse/freeems-vanilla/src$ l firmware
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:26 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SPUDMN-MissingTeeth-Crank-8minus1.s19
Pretty neat, huh! :-)

I've taken the time to expose these as simple commands at the top level for each user:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make

######################## Welcome to FreeEMS! ########################

To build, choose a target from the below list and type 'make target'!
For example, to build blank unconfigured firmware type 'make BLANK'
Note: For BenchTest to work you MUST build using the BENCHTEST target!
Advanced users will find more options available in the src directory!

Options:

SNOTROCKET
BENCHTEST
SEANKLT1
SLATER
BLANK
Makefile
PETERTRUCK
Help
TRUCK
DEUCECOUPE
TEST_AND_SAVE_ALL
PRESTO
PETERJSERIES
HOTEL
SPUDMN
Such that you can simply do this:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make SNOTROCKET
<snip>
fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ l src/firmware
-rwxr-xr-x 1 fred fred 166458 Nov 25 20:29 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SNOTROCKET-EvenTeeth-Cam-24and1.s19
And get your configured single decoder built and all alone in the output dir! You can get a traditional make clean s19 with "make BLANK" at the top level, too.

Finally, the test script now uses this style, and can be used by me to create a set of binaries for all users to test:

Code: Select all

fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ make TEST_AND_SAVE_ALL 
<big snip>
################# Built the firmware 12 times with 1 failures! #################
Passes:
DEFAULT passed!
TRUCK passed!
HOTEL passed!
PRESTO passed!
SEANKLT1 passed!
SNOTROCKET passed!
SPUDMN passed!
SLATER passed!
PETERJSERIES passed!
DEUCECOUPE passed!
PETERTRUCK passed!

Failures:
XGATE FAILED with result 2
################################################################################
fred@cheetah:~/workspaces/eclipse/freeems-vanilla$ l src/firmware-all/
-rwxr-xr-x 1 fred fred 165476 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-DEFAULT-BenchTest.s19
-rwxr-xr-x 1 fred fred 166454 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-DEUCECOUPE-EvenTeeth-Cam-6and1.s19
-rwxr-xr-x 1 fred fred 167236 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-HOTEL-HallOrOptical-Distributor-4of69.s19
-rwxr-xr-x 1 fred fred 166968 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PETERJSERIES-JSeries-12CrankWith6-2Cam.s19
-rwxr-xr-x 1 fred fred 168666 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PETERTRUCK-MissingTeeth-Cam-12minus1.s19
-rwxr-xr-x 1 fred fred 166450 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-PRESTO-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 166520 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SEANKLT1-GM-LT1-CAS-360and8.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SLATER-MissingTeeth-Crank-12minus1.s19
-rwxr-xr-x 1 fred fred 166458 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SNOTROCKET-EvenTeeth-Cam-24and1.s19
-rwxr-xr-x 1 fred fred 168662 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-SPUDMN-MissingTeeth-Crank-8minus1.s19
-rwxr-xr-x 1 fred fred 169528 Nov 25 20:32 FreeEMS-0.2.0-SNAPSHOT-182-g311e7d1-TRUCK-MitsiAndMazda-CAS-4and1.s19
All in all, pretty awesome in my opinion, but I would say that, I did it! :-)

Hopefully it makes life easier for you all!

Fred.

Re: Fred's firmware development diary

Posted: Wed Nov 28, 2012 12:08 am
by Fred
Fred wrote:1) Finish fixing fw Makefile and add more CI goodness to the server
2) Integrate various small fw fixes and publish them
3) Redesign my loader high level code to be cleaner + add a new feature to it, if possible
4) Make a batch of BrickRPM boards
5) Do a load of washing :-p
6) Clean up the pig sty that's developed here...
7) Fix my jag hardware config
8) Change my J project build config to a superior setup that I discovered for someone else this week
Fred wrote:2 is done, 1 is mostly done, 3-8 are not done :-(

3, 4, 6, 7, 8 are not going to happen today. 5 probably will happen later. I'll probably finish off 1 later too.
5 and 6 are now done! :-p

Also fixed a tiny bug in OLV and added a new feature that makes it pleasant to use again post the last new feature. IE, refined that further.

Fred.

Re: Fred's firmware development diary

Posted: Sun Dec 02, 2012 1:04 am
by Fred
1) is complete! :-)

http://builds.freeems.org/firmware/master/images/

Firmware is now built (in real time) tailored to each current user's config! Normal builds are in the full-defaults directory. If you keep your config up to date in the master branch of my tree, then you can get fresh baked up to date latest greatest with your conf off the web without a build environment.

Additionally there is a special dir that I can direct custom code to build in for users just by git pushing. I'll link you to it if/when you need to run it.

Service with a smile!

I've started on a guide for hw builders too: viewtopic.php?f=54&t=1970

Fred.

Re: Fred's firmware development diary

Posted: Mon Dec 03, 2012 12:02 am
by Fred
Now with compression and checksums!

http://builds.freeems.org/firmware/master/images/

Also with polite warnings to go elsewhere when no dev branch is available :-)

http://builds.freeems.org/firmware/dev/doxygen/
http://builds.freeems.org/firmware/dev/images/

Fred.