This is a group for folks designing and programming embedded systems using the Rabbit Semiconductor C-programmable microcontroller. Rabbit Semi is a spin-off from Z-World who makes a variety of embedded modules and tools. This group is not affiliated with either Rabbit or Z-World, but is a user forum for sharing ideas, asking questions,
flaunting knowledge, and other typical user group stuff. The Rabbit is a powerful uC, supported by a full-featured C-compiler.
Force hard reset? - leob...@gmail.com - Jun 25 15:14:48 2008
Does anyone know if there is a way to programmatically hard reset (or cold-start or
reboot) a BL2600 processor board without power cycling or using the reset button? By
"hard reset", I mean that the firmware will be reloaded from the flash memory to RAM and
begin executing, and variables will be initialized. I'd like to be able to command the
board to reboot via a serial or ethernet link. Thanks all.
------------------------------------

(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )
Re: Force hard reset? - Scott Henion - Jun 25 15:42:51 2008
l...@gmail.com wrote:
> Does anyone know if there is a way to programmatically hard reset (or cold-start or
reboot) a BL2600 processor board without power cycling or using the reset button? By
"hard reset", I mean that the firmware will be reloaded from the flash memory to RAM and
begin executing, and variables will be initialized. I'd like to be able to command the
board to reboot via a serial or ethernet link. Thanks all.
>
Use the watchdog timer to force a reset:
void reboot(void)
{
#asm
ld a,0x53
ioi ld (WDTCR),a
xor a
ioi ld (WDTTR),a
..wait_wdt:
jr ..wait_wdt
#endasm
}
--
------------------------------------------
| Scott G. Henion| s...@shdesigns.org |
| Consultant | Stone Mountain, GA |
| SHDesigns http://www.shdesigns.org |
------------------------------------------
Rabbit libs: http://www.shdesigns.org/rabbit/
today's fortune
* |Rain| prepares for polygon soup
<|Rain|> sweet merciful crap, it works?
* |Rain| faints
------------------------------------

(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )
Re: Force hard reset? - "L. Bostjancic" - Jun 25 15:58:35 2008
Thanks for the prompt response Scott! Maybe I'm confused about the
meaning of hard/soft resets. According to the Dyn C Function Ref
manual, a watchdog timeout is not a hardware reset. (chkHardReset
function). Does a watchdog timeout force the firmware to reload?
On Wed, Jun 25, 2008 at 3:43 PM, Scott Henion
wrote:
> l...@gmail.com wrote:
>> Does anyone know if there is a way to programmatically hard reset (or
>> cold-start or reboot) a BL2600 processor board without power cycling or
>> using the reset button? By "hard reset", I mean that the firmware will be
>> reloaded from the flash memory to RAM and begin executing, and variables
>> will be initialized. I'd like to be able to command the board to reboot via
>> a serial or ethernet link. Thanks all.
>>
> Use the watchdog timer to force a reset:
>
> void reboot(void)
> {
> #asm
> ld a,0x53
> ioi ld (WDTCR),a
> xor a
> ioi ld (WDTTR),a
> ..wait_wdt:
> jr ..wait_wdt
> #endasm
> }
>
> --
> ------------------------------------------
> | Scott G. Henion| s...@shdesigns.org |
> | Consultant | Stone Mountain, GA |
> | SHDesigns http://www.shdesigns.org |
> ------------------------------------------
> Rabbit libs: http://www.shdesigns.org/rabbit/
> today's fortune
> * |Rain| prepares for polygon soup
> <|Rain|> sweet merciful crap, it works?
> * |Rain| faints
------------------------------------

(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )Re: Force hard reset? - Scott Henion - Jun 25 20:31:00 2008
L. Bostjancic wrote:
> Thanks for the prompt response Scott! Maybe I'm confused about the
> meaning of hard/soft resets. According to the Dyn C Function Ref
> manual, a watchdog timeout is not a hardware reset. (chkHardReset
> function). Does a watchdog timeout force the firmware to reload?
>
It generates a hardware reset. The only difference is the GCSR register
will have a status saying the reset was caused by a watchdog timeout
instead of an external reset.
There is one other difference due to a hardware bug in the 3k CPU. It
will reset but the watchdog will still be enabled.
chkHardReset() returns the GCSR status to show the cause of the hardware
reset: external /RESET, watchdog, or no cause.
--
------------------------------------------
| Scott G. Henion| s...@shdesigns.org |
| Consultant | Stone Mountain, GA |
| SHDesigns http://www.shdesigns.org |
------------------------------------------
Rabbit libs: http://www.shdesigns.org/rabbit/
today's fortune
They don't know how the world is shaped. And so they give it a shape, and
try to make everything fit it. They separate the right from the left, the
man from the woman, the plant from the animal, the sun from the moon. They
only want to count to two.
-- Emma Bull, "Bone Dance"
------------------------------------

(You need to be a member of rabbit-semi -- send a blank email to rabbit-semi-subscribe@yahoogroups.com )