Do you have figures for Size of Stub loader, and target Baud rates of accelerated link ?
I was thinking of including the stub-loader, in the local MCU firmware, to also allow faster SPI links, but it could be sent from the PC host. Not sure yet on putting in a SPI page, or inside MCU - hence the minimal-size questions.
To keep code size down, I'm the 3b stub-coding will be done on Host (but that does bump the stub-storage needed locally)
You'll have to ask Jeff Martin about the details in his loader. Actually, propeller-load uses a two-stage loader for XMM.
Thanks - I was hoping for something compact and fast.
Just musing over ways to boost the 'interactive' side of Prop use, and I have a small MCU with blocks capable of 3-4 MBd links, and 8~12MBd into SPI memory..
So one idea was a two step loader, targeting Props with crystals (= vast majority) by first a minimal, compact load of a faster loader, then Baud flips from 115200, >> 1MBd and 3 bit load flips to 8b load & real code loads.
I figure gains of 25~70x in data path speeds are possible.
Makes sense that fast path, is also used for debug , & the flow is very similar to a Debug.
Maybe I am not understanding your question properly. The debugger uses quite a bit of hub because it decodes the spin and pasm code (using spin).
But to just load my faster spin is quite short - just the spin interpreter and vector table, and a tiny stub to patch the existing spin loader.
I have just been looking over my version of the interpreter. There could be some significant improvement by implementing some special support instructions for the interpreter. Particularly the push and pop instructions, the jmp and call instructions, expansion of the constants, and some others.
jmg,
I am not sure what you are trying to do.
Are you referring to just the interpreter and how I invoke it, or are you referring to the debugger???
BTW I did this 7 years ago so I am a bit rusty
The idea is a small MCU as a speed-loader, so it first copies a minimal stub, via Serial @ 115200, then, flips gear and loads the real code, at (much) higher speed. It is the size and speed of the minimal stub I am after.
Bauds as high as 6 or 8 MBd are possible in the Peripherals, but a quick test I just did of the vendors default library sustains ~1.4MBd half duplex. I'm sure that can be improved.
Comments
But to just load my faster spin is quite short - just the spin interpreter and vector table, and a tiny stub to patch the existing spin loader.
I am not sure what you are trying to do.
Are you referring to just the interpreter and how I invoke it, or are you referring to the debugger???
BTW I did this 7 years ago so I am a bit rusty
Bauds as high as 6 or 8 MBd are possible in the Peripherals, but a quick test I just did of the vendors default library sustains ~1.4MBd half duplex. I'm sure that can be improved.