2020. 3. 18. 22:10ㆍ카테고리 없음
(.(void(.)(void))(0xfffe))Ok, this calls the reset vector, but it's more a re-'start', becauseitdoes not reset anything except the program counter.You will then initialize your hardware while interrupts are stillenabled etc. (depending on where you 'restarted').
Can be quitedangerous if your init routines assume that CPU and peripherals arein reset state.Using the watchdog or flash violation method generates a PUC (power-up clear) - not the exactly same as a POR (power-on reset), but atleast interrupts are disabled and most peripherals are in their resetstate. IMHO this is the safer way, and certainly easier than makingyour init sequence 'restart-safe'.Wolfgang- In msp430@msp4., 'Rolf F.' Wrote: Hi, i do prefer (.(void(.)(void))(0xfffe)) Rolf Chris Jameson-Groves schrieb: Hi all. Does anyone know how to reset the msp430 microcontroller within software, so effectively it will be resetting itself! For the record i'm using the msp430F1232 Thanks Chris. Yahoo! Groups Links.
Hi,because(.(void(.)(void))(0xfffe))calls the startup code this also initializes the hardware (via the startupcode).I also usedint;PIE=.ME1=.eint;to initialize the hardware at the beginning of main with the values i need.Because of that there is no difference between a reset via calling the startupcode by software or by hardware.Rolfmsp430@msp4. Schrieb am 29.07.04 20:22:15: (.(void(.)(void))(0xfffe)) Ok, this calls the reset vector, but it's more a re-'start',because it does not reset anything except the program counter. You will then initialize your hardware while interrupts are still enabled etc. (depending on where you 'restarted').
Can be quite dangerous if your init routines assume that CPU and peripherals are in reset state. Using the watchdog or flash violation method generates a PUC (power- up clear) - not the exactly same as a POR (power-on reset), but at least interrupts are disabled and most peripherals are in their reset state. IMHO this is the safer way, and certainly easier than making your init sequence 'restart-safe'.
Wolfgang - In msp430@msp4., 'Rolf F.' Wrote: Hii do prefer (.(void(.)(void))(0xfffe)) Rolf Chris Jameson-Groves schrieb: Hi all.
Does anyone know how to reset the msp430 microcontroller within software, so effectively it will be resetting itself! For the record i'm using the msp430F1232 Thanks Chris. Yahoo!
Groups Links. Yahoo! Groups Links. On Fri, Jul 30, 2004 at 12:54:08PM +0100, Richard (UK). Wrote: Because of that there is no differencebetween a reset via calling the startup code by software or by hardware. However some external devices on a board may need a REAL power up to resettheir registers etc. I have seen board designs for other processors where a GPIO output pin iswired to the master Reset line for the board, so that EVERYTHING in the hardware can be reset by a software command.Reseting the hardware by power cycling - I need that in the past for a 8051controller; the supervisor IC was not successul with the /RESET lineafter some ESD-events.
Only a powercycling (P-FET at VCC) solved theproblem.Matthias. Only a powercycling (P-FET at VCC) solved the problem.Now THAT is a SERIOUS reset!regards,Richard (UK)- Original Message -From: 'Matthias Weingart' To: Sent: Friday, July 30, 2004 2:02 PMSubject: Re: msp430 Re: Software reset for msp430 On Fri, Jul 30, 2004 at 12:54:08PM +0100,Richard (UK). Wrote: Because of that there is no difference between a reset viacalling the startup code by software or by hardware. However some external devices on a board may need a REAL power up toreset their registers etc. I have seen board designs for other processors where a GPIO outputpin is wired to the master Reset line for the board, sothat EVERYTHING in the hardware can be reset by asoftware command.
Reseting the hardware by power cycling - I need that in the past for a 8051 controller; the supervisor IC was not successul with the /RESET line after some ESD-events. Only a powercycling (P-FET at VCC) solved the problem. Matthias. Yahoo!
Groups Links-Outgoing mail is certified Virus Free.Checked by AVG anti-virus system.Version: 6.0.730 / Virus Database: 485 - Release Date: 28/07/04. Matthias,could you explain better how this 'power cycling' works?
I couldn'tunderstand what the P-FET does on Vcc line. Who controls it?Thanks,Adriano.- Original Message -From: Matthias Weingart To: Sent: Friday, July 30, 2004 10:02 AMSubject: Re: msp430 Re: Software reset for msp430 On Fri, Jul 30, 2004 at 12:54:08PM +0100,Richard (UK). Wrote: Because of that there is no difference between a reset viacallingthe startup code by software or by hardware. However some external devices on a board may need a REAL power up toreset their registers etc.
I have seen board designs for other processors where a GPIO outputpinis wired to the master Reset line for the board, so that EVERYTHING in the hardware can be reset by asoftware command. Reseting the hardware by power cycling - I need that in the past for a8051 controller; the supervisor IC was not successulwith the /RESET line after some ESD-events. Only a powercycling (P-FET at VCC) solved the problem.
Matthias. Yahoo! Groups Links.
Msp-fet Flash Emulation Tool Software
The startaddress of the MSP430 is stored at location 0xFFFE, which is in your linker file as RESET vector.You have to set a constant value to your startaddress and tell the linker to put it to.reset.reset is a section defined to placed at RESET in your linker file.How you do that depends on what language and compiler/linker you use.I'm not 100% sure if that is what you want though, as your question contains something about a bootloader. If you mean that the MSP430 starts in a boot part using the RESET vector and then you want to jump from there to your application part the approach is of course different.In one application we stored two important values at a given address in the flash memory: the initial stack pointer and the start address of the application part (in your case that would be 0x3200 I assume).Then the bootpart would load the stack pointer and then jump to the main part. Doing that from C can be a bit unintuitive: (reinterpretcast(0x3200)); //lint!e923 startaddress has to be casted to function pointer.