Is anyone using self-flashing of a TMS320F10/12 series DSP? The standard mechanism with a 510 pod appears to be to download some code stubs and then have the chip technically program itself with data it is downloading. But what I mean is to have an application program that can update itself with a new version in the field. Already have the chip executing a rich command langauge over the SCI ports, and can figure out the banking stuff to keep a small stub running in ram during programming, question would mainly be how to actually program the flash...
TMS320 Self Flashing?
Started by ●November 15, 2005
Reply by ●November 15, 20052005-11-15
cs_post...@hotmail.com wrote:> Is anyone using self-flashing of a TMS320F10/12 series DSP?sorry, TMS320F2810 / F2812
Reply by ●November 15, 20052005-11-15
cs_posting@hotmail.com wrote:> Is anyone using self-flashing of a TMS320F10/12 series DSP? > > The standard mechanism with a 510 pod appears to be to download some > code stubs and then have the chip technically program itself with data > it is downloading. > > But what I mean is to have an application program that can update > itself with a new version in the field. Already have the chip > executing a rich command langauge over the SCI ports, and can figure > out the banking stuff to keep a small stub running in ram during > programming, question would mainly be how to actually program the > flash... >Yes, I haven't done it personally but I am helping with a project that does it (over CAN, no less). TI has an app note and some code. They don't want _anybody_ dinking with their code; they are playing timing games with in-line delays (you have to pass the clock rate to their code for the timing loops). It does work, and works well. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●November 15, 20052005-11-15
Tim Wescott wrote:> > Is anyone using self-flashing of a TMS320F10/12 series DSP?> TI has an app note and some code. They don't want _anybody_ dinking > with their code; they are playing timing games with in-line delays (you > have to pass the clock rate to their code for the timing loops). It > does work, and works well.Not quite sure what you meant by the don't want anybody dinking with it - they don't want just anybody using it, or they want you to use it as is without messing around in the internals? I had heard there was something (at least at one point, maybe not anymore), but not really been able to find it. Is it an extra they charge for? Don't think I can really spend money on it as it's an engineering CYA requirement rather than a marketing one.
Reply by ●November 15, 20052005-11-15
cs_posting@hotmail.com wrote:> Tim Wescott wrote: > > >>>Is anyone using self-flashing of a TMS320F10/12 series DSP? > > > >>TI has an app note and some code. They don't want _anybody_ dinking >>with their code; they are playing timing games with in-line delays (you >>have to pass the clock rate to their code for the timing loops). It >>does work, and works well. > > > Not quite sure what you meant by the don't want anybody dinking with it > - they don't want just anybody using it, or they want you to use it as > is without messing around in the internals? > > I had heard there was something (at least at one point, maybe not > anymore), but not really been able to find it. Is it an extra they > charge for? Don't think I can really spend money on it as it's an > engineering CYA requirement rather than a marketing one. >They don't want anyone changing the algorithm in the slightest. At the time that we used it the app note was out there -- I'd check with your local TI app engineer to see if you can get a pointer. My understanding was that it took a bit of work to get it working, but once it was up it was quite solid. We're downloading application code over CAN; given that we've got a system with more than a dozen processors, some of which are buried or don't have JTAG ports, this is a _cool_ thing. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●November 15, 20052005-11-15
Tim Wescott wrote:> They don't want anyone changing the algorithm in the slightest. At the > time that we used it the app note was out there -- I'd check with your > local TI app engineer to see if you can get a pointer. My understanding > was that it took a bit of work to get it working, but once it was up it > was quite solid.I think I found it... at least I found something (sprc125) that wasn't there last time I looked. I think they had a bunch of appnotes unavailable for a while late in the summer, while preparing new versions of things.
Reply by ●November 15, 20052005-11-15
"Tim Wescott" <tim@seemywebsite.com> wrote in message news:I-udncnB-rKK3OfenZ2dnUVZ_v6dnZ2d@web-ster.com...> cs_posting@hotmail.com wrote: > >> Is anyone using self-flashing of a TMS320F10/12 series DSP? >> >> The standard mechanism with a 510 pod appears to be to download some >> code stubs and then have the chip technically program itself with data >> it is downloading. >> >> But what I mean is to have an application program that can update >> itself with a new version in the field. Already have the chip >> executing a rich command langauge over the SCI ports, and can figure >> out the banking stuff to keep a small stub running in ram during >> programming, question would mainly be how to actually program the >> flash... >> > Yes, I haven't done it personally but I am helping with a project that > does it (over CAN, no less). > > TI has an app note and some code. They don't want _anybody_ dinking with > their code; they are playing timing games with in-line delays (you have to > pass the clock rate to their code for the timing loops). It does work, > and works well. >Would you know if there is anything similar for the C6000 family ? Could you give the app note number please. Thank you Alex Gibson
Reply by ●November 16, 20052005-11-16
Alex Gibson wrote:> "Tim Wescott" <tim@seemywebsite.com> wrote in message > news:I-udncnB-rKK3OfenZ2dnUVZ_v6dnZ2d@web-ster.com... > >>cs_posting@hotmail.com wrote: >> >> >>>Is anyone using self-flashing of a TMS320F10/12 series DSP? >>> >>>The standard mechanism with a 510 pod appears to be to download some >>>code stubs and then have the chip technically program itself with data >>>it is downloading. >>> >>>But what I mean is to have an application program that can update >>>itself with a new version in the field. Already have the chip >>>executing a rich command langauge over the SCI ports, and can figure >>>out the banking stuff to keep a small stub running in ram during >>>programming, question would mainly be how to actually program the >>>flash... >>> >> >>Yes, I haven't done it personally but I am helping with a project that >>does it (over CAN, no less). >> >>TI has an app note and some code. They don't want _anybody_ dinking with >>their code; they are playing timing games with in-line delays (you have to >>pass the clock rate to their code for the timing loops). It does work, >>and works well. >> > > > Would you know if there is anything similar for the C6000 family ? > > Could you give the app note number please. > > Thank you > Alex Gibson > >Dunno. Spelunk in TI's documentation or ask one of their app engineers -- they were a most helpful bunch for me. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com
Reply by ●November 16, 20052005-11-16
On 15 Nov 2005 11:45:18 -0800, cs_posting@hotmail.com wrote in comp.dsp:> cs_post...@hotmail.com wrote: > > Is anyone using self-flashing of a TMS320F10/12 series DSP? > > sorry, TMS320F2810 / F2812As Tim said, and you seem to have found, TI supplies a binary and documentation. You need to copy the binary into internal RAM and run it from there, since you can't run from any part of the flash while erasing or programming it. And you have to run with interrupts disabled. TI does not make the source available, they say they don't want people modifying it and then blaming TI if they kill the flash. But they are very cooperative about supporting it. We ran into a problem during our development. We have a voltage monitor/reset/watchdog in an external chip on the board. We need the external watchdog as a hazard mitigation against a single point failure such as a solder joint on the crystal breaking loose. There's a DIP jumper connecting/disconnecting the external watchdog, so when the jumper is off it is disabled. It needs to be disabled when using the JTAG debugger, or it will reset the board when you stop at a breakpoint. We also need to disable it when using the Code Composer Studio flash programming routine. We had no problems at all with the flash self-programming, until we got near to release and started running with the watchdog enabled. The flash self-programming lasted too long, and the watchdog timed out, crashing everything. We talked to our TI rep and asked for the source code, even offering to sign a release absolving them of all responsibility for what the code did when we modified it to handle our watchdog while flashing. Instead, within a few weeks, they released an updated version of the flash programming binary that allows you to specify a call-back function that is called periodically while the programming code is running. We pointed it to a subroutine that just toggles the watchdog and returns, and it's worked fine ever since. That's what I call technical support! -- Jack Klein Home: http://JK-Technology.Com FAQs for comp.lang.c http://www.eskimo.com/~scs/C-faq/top.html comp.lang.c++ http://www.parashift.com/c++-faq-lite/ alt.comp.lang.learn.c-c++ http://www.contrib.andrew.cmu.edu/~ajo/docs/FAQ-acllc.html
Reply by ●November 16, 20052005-11-16
"Alex Gibson" <news@alxx.org> writes:> Would you know if there is anything similar for the C6000 family ? >The C6000 has no internal flash (or CAN for that matter :-), therefore the way you do it would depend on the board you are using, specifically the flash chips on it. FWIW we reprogram ours over CAN, using an app running from SDRAM, but that might not be the same as yours... Cheers, Martin -- martin.j.thompson@trw.com TRW Conekt - Consultancy in Engineering, Knowledge and Technology http://www.trw.com/conekt






