# PM_ForceToResetHardware

## Syntax

      #include <twl/spi.h>

      void PM_ForceToResetHardware( void );

## Arguments

None.

## Return Values

None.

## Description

Forcibly resets the hardware.

In general, this function should not be called directly by applications. If your intention is to execute a hardware reset yourself, call the `OS_RebootSystem` function. In addition, to return to the system menu, call the `OS_JumpToSystemMenu` function. These functions are designed to write a parameter to determine operations in the start area of main memory and call this function. Unexpected operations may result if this parameter is somehow rewritten. As such, this function uses a separate system function that utilizes hardware reset. (Naturally, this function may also be called to execute an intended operation if the user thoroughly understands the parameters to write to memory.)

This function uses PXI to send the command that performs the corresponding operation in the ARM7 processor. The ARM7 side that receives that command is executed by operating the PMIC.

Pre-exit callbacks configured by the `PM_AppendPreExitCallback` function or similar functions are not invoked. Do not reset the hardware until you have run all necessary processing. Post-callbacks are invoked.

Another related function is `OS_ResetSystem`. Rather than performing a hardware rest, the `OS_ResetSystem` function is a software reset function that reloads necessary programs and re-executes from the entry address.

Even if the SPI is occupied by another device and therefore BUSY, this function continues retrying until it succeeds.

## See Also

`PM_Init`
`PM_ForceToPowerOff`
`OS_ResetSystem`

## Revision History

2009/06/03 Removed a description of the `PM_Init` function (because `OS_Init` is now required).
2009/04/13 Changed text to state that post-exit callbacks are invoked.
2008/08/23 Added a note on the BUSY state.
2008/02/07 Initial version.

CONFIDENTIAL