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 __________________________________ |
|
software reset
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:
|
Message
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 > > > _____________________________________ > Note: If you do a simple "reply" with your email > client, > only the author of this message will receive your > answer. You need to do > a "reply all" if you want your answer to be > distributed to the entire > group. > > _____________________________________ > About this discussion group: > > To Join: Send an email to > To Post: Send an email to > > To Leave: Send an email to > Archives: http://www.yahoogroups.com/group/c6x > > Other Groups: http://www.dsprelated.com > > 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, |