
Technical discussions about the TI C6000 DSPs (including the c62x, c64x and c67x DSPs).
|
can anybody provide good information about software reset. i am using 6711, with image in flash running in internal RAM. using secondary boot loader. for a reset i am making the control, to jump to the starting location of secondary boot loader. it makes reset, but its not behaving in the same way as hardware reset. what are all the necessary actions to be considered to make a software reset. thanks in advance. ===== BHASKAR REDDY . N Mysore Cell: 9880 177365 __________________________________ |
|
|
|
The NMIE bit in IER can use like HOT-start flag. Hardware RESET clears this bit. This bit can set by software but can't clear by software. so, you can use this flag bit indicates 'software initialized' (your) system flag. but, you cant use interrupt until initializing NMIE. hiro |
|
So, you can't perform hardware reset state with software perfectly. >The NMIE bit in IER can use like HOT-start flag. >Hardware RESET clears this bit. >This bit can set by software but can't clear by software. >so, you can use this flag bit indicates 'software initialized' >(your) system flag. but, you cant use interrupt until >initializing NMIE. > >hiro |
|
Neeli- > can anybody provide good information about software > reset. i am using 6711, with image in flash running in > internal RAM. using secondary boot loader. > for a reset i am making the control, to jump to the > starting location of secondary boot loader. it makes > reset, but its not behaving in the same way as > hardware reset. > what are all the necessary actions to be considered to > make a software reset. > thanks in advance. Software reset - especially when you are using a JTAG emulator -- is a tricky thing. External hardware may not know the Reset has occurred. There is a good discussion of this: ftp://ftp.signalogic.com/documentation/Boards/SigC67xx See section 6.4, CCS JTAG Issues During Debug. -Jeff |
|
neeli bhaskar reddy wrote: > can anybody provide good information about software > reset. i am using 6711, with image in flash running in > internal RAM. using secondary boot loader. > for a reset i am making the control, to jump to the > starting location of secondary boot loader. it makes > reset, but its not behaving in the same way as > hardware reset. > what are all the necessary actions to be considered to > make a software reset. > thanks in advance. So you are just jumping to c_int00 ? Then all the peripherals get now reset? One way would be to write the default values in all registers. What you want is maybe a SW triggerd HW reset. I don't know how to do this, but would be glad if someone knows a solution. I'm using NMI as power down irq. The problem is that in my enviroment there is a hysteresis between power down irq and HW reset. So I have to check NMI pin (how?) if its really a dower down situation. If it's not I have to reset the system myself. A SW triggerd HW reset would be great then. Gustl |
|
|
|
neeli bhaskar reddy,
"but its not behaving in the same way as hardware reset" - this is difficult to
decipher but Gustl is correct. You cannot duplicate a hardware reset 100% from your
program.
If you really need a hardware reset, you may consider a watchdog timer arrangement.
One interesting solution is to use a cheap micro like the MSP430 [~$1 US] to manage reset at
power up, run watchdog code that does a hardware reset if not regularly updated by the DSP or
performs a 'reset on demand' when commanded from the DSP.
If you are trying to get by with a software only "reset" you have have to follow Gustl's
advice and manually initialize peripherals and registers that are not initialized by your
code. If your boot software truly makes no assumptions and initializes everything
correctly, you should be able to accomplish this. Of course there is also the possibility
that your system has something else going on that we are not aware of.
mikedunn
Bernhard 'Gustl' Bauer <g...@quantec.de> wrote:
|
|
hi,
Based on your
question i understood that you have a Boot, which copies the Secondary boot loader(SBL) from
Flash to RAM. Upon HW reset the DSP automatically copies the Boot code, at the end
of the boot your Boot code jumps to SBL, ie in your code __cint_00.
I understand
your requirement to jump to reset (Soft) upon branch to reset address.
1) To perform
this, you need to check the map file whether your branching is correct ie entry point
address.
2) How are
your branching is a question.. If your branching using in line assembly, have you ensured
introducing the NOP's after branch?
3) Are your
using any Task objects? if yes try to exit before branching.. (safety
precaution)
4) Ensure to
jump to proper entry point.. eg., you may copying code to 0x400.. but you need to jump to
the vector table start address..
5) You can
debug the image using Jtag to find where the PC is pointing to..
Hope i could
throw some light on your issue..
Best Regards, Manjunath G HCL Technologies Limited Bangalore-68 Mobile:98451 85044 m...@hcltech.com ------------------------------ Disclaimer: This message and any attachment(s) contained here are information that is confidential, proprietary to HCL Technologies and its customers. Contents may be privileged or otherwise protected by law. The information is solely intended for the individual or the entity it is addressed to. If you are not the intended recipient of this message, you are not authorized to read, forward, print, retain, copy or disseminate this message or any part of it. If you have received this e-mail in error, please notify the sender immediately by return e-mail and delete it from your computer.
|
|
|
|
Thanks Manjunath, Mike , Gustl, Resetting peripherals before branching seems to be working fine. System is functioning normally after software reset, as it was with hardware reset. Still i believe that software reset is not 100% similar to hardware reset. --- "Manjunath G - Shipara,Bangalore" <> wrote: > hi, > > Based on your question i understood that you have a > Boot, which copies > the Secondary boot loader(SBL) from Flash to RAM. > Upon HW reset the > DSP automatically copies the Boot code, at the end > of the boot your Boot > code jumps to SBL, ie in your code __cint_00. > I understand your requirement to jump to reset > (Soft) upon branch to > reset address. > 1) To perform this, you need to check the map file > whether your > branching is correct ie entry point address. > 2) How are your branching is a question.. If your > branching using in > line assembly, have you ensured introducing the > NOP's after branch? > 3) Are your using any Task objects? if yes try to > exit before > branching.. (safety precaution) > 4) Ensure to jump to proper entry point.. eg., you > may copying code to > 0x400.. but you need to jump to the vector table > start address.. > 5) You can debug the image using Jtag to find where > the PC is pointing > to.. > > Hope i could throw some light on your issue.. > Best Regards, > > Manjunath G > > HCL Technologies Limited > > Bangalore-68 > > Mobile:98451 85044 > > ------------------------------ > > Disclaimer: > > This message and any attachment(s) contained here > are information that > is confidential, proprietary to HCL Technologies and > its customers. > Contents may be privileged or otherwise protected by > law. The > information is solely intended for the individual or > the entity it is > addressed to. If you are not the intended recipient > of this message, you > are not authorized to read, forward, print, retain, > copy or disseminate > this message or any part of it. If you have received > this e-mail in > error, please notify the sender immediately by > return e-mail and delete > it from your computer. > > -----Original Message----- > From: Mike Dunn [mailto:] > Sent: Tuesday, November 16, 2004 7:05 PM > To: Bernhard 'Gustl' Bauer; neeli bhaskar reddy > Cc: > Subject: Re: [c6x] software reset > neeli bhaskar reddy, > > "but its not behaving in the same way as hardware > reset" - this > is difficult to decipher but Gustl is correct. You > cannot duplicate a > hardware reset 100% from your program. > > If you really need a hardware reset, you may > consider a watchdog > timer arrangement. One interesting solution is to > use a cheap micro > like the MSP430 [~$1 US] to manage reset at power > up, run watchdog code > that does a hardware reset if not regularly updated > by the DSP or > performs a 'reset on demand' when commanded from the > DSP. > > If you are trying to get by with a software only > "reset" you > have have to follow Gustl's advice and manually > initialize peripherals > and registers that are not initialized by your code. > If your boot > software truly makes no assumptions and initializes > everything > correctly, you should be able to accomplish this. > Of course there is > also the possibility that your system has something > else going on that > we are not aware of. > > mikedunn > > Bernhard 'Gustl' Bauer <> wrote: > > neeli bhaskar reddy wrote: > > can anybody provide good information about > software > > reset. i am using 6711, with image in flash > running in > > internal RAM. using secondary boot loader. > > for a reset i am making the control, to jump to > the > > starting location of secondary boot loader. it > makes > > reset, but its not behaving in the same way as > > hardware reset. > > what are all the necessary actions to be > considered to > > make a software reset. > > thanks in advance. > > So you are just jumping to c_int00 ? Then all the > peripherals get now > reset? One way would be to write the default > values in > all registers. > What you want is maybe a SW triggerd HW reset. I > don't > know how to do > this, but would be glad if someone knows a > solution. > > I'm using NMI as power down irq. The problem is > that in > my enviroment > there is a hysteresis between power down irq and > HW > reset. So I have to > check NMI pin (how?) if its really a dower down > situation. If it's not I > have to reset the system myself. A SW triggerd HW > reset > would be great then. > > Gustl > > > _____________________________________ > Yahoo! Groups Links > === message truncated === __________________________________ |
|
Hi all coming again with the same problem i.e. software reset for software upgradation for 6711 DSP. We are sending new image (the new software to be run on DSP) to the DSP through some communication channel. The received image we are burning into flash. Then we are branching to 0x0 location using assembly branch instruction. The dsp is not getting up, but if we make a hard reset the dsp successfully running the new code. If we send the same image which is already running on dsp, it burns that image and makes a successful reset. We have fixed the _c_int00 to fixed location in the cmd file. We are resetting the peripherals which are in use. disabling the interrupts and global interrupt. We are expecting that when we branch to 0x0, at this place old code's boot loader will be there, this bootloader will copy the new code into iram and then jumps to c_int00, which will be same for both the codes. and then it has to function with new code, but its not coming up, it works with new code only after hard reset. Pls help Thanks in advance, ===== BHASKAR REDDY . N Mysore Cell: 9880 177365 __________________________________ |
|
|
|
Hi neeli bhaskar reddy, could it be possible that there are still IRQs to be serviced? If a IRQ needs service while copying code into IRAM the IRQ routine may crash and never return. HTH Gustl neeli bhaskar reddy wrote: > Hi all > coming again with the same problem i.e. software reset > for software upgradation for 6711 DSP. We are sending > new image (the new software to be run on DSP) to the > DSP through some communication channel. The received > image we are burning into flash. Then we are branching > to 0x0 location using assembly branch instruction. > The dsp is not getting up, but if we make a hard reset > the dsp successfully running the new code. > If we send the same image which is already running on > dsp, it burns that image and makes a successful reset. > > We have fixed the _c_int00 to fixed location in the > cmd file. > We are resetting the peripherals which are in use. > disabling the interrupts and global interrupt. > > We are expecting that when we branch to 0x0, at this > place old code's boot loader will be there, this > bootloader will copy the new code into iram and then > jumps to c_int00, which will be same for both the > codes. > and then it has to function with new code, but its not > coming up, it works with new code only after hard > reset. > Pls help > > Thanks in advance, |