要在nuc980的裸机程序中实现软件复位,可以使用如下代码:
```
#define SYS_SOFT_RSTC (0x50040000UL+0x8UL)
#define SYS_RSTC_KEY (0x5A5A0000UL)
void software_reset(void)
{
outpw(SYS_SOFT_RSTC, SYS_RSTC_KEY | 0x1);
}
```
代码中使用了 SYS_SOFT_RSTC 寄存器和 SYS_RSTC_KEY 寄存器,通过向 SYS_SOFT_RSTC 寄存器中写入 SYS_RSTC_KEY 这个特定的值和某个位,就可以实现软件复位。
在程序中调用 software_reset 函数即可触发软件复位,如下所示:
```
int main(void)
{
// do something here
software_reset();
// the device is now reset, restore settings if necessary
return 0;
}
```
注:nuc980的软件复位不同于硬件复位,软件复位只会重启设备,不会影响外设的状态,但是会清除寄存器中的所有值,需要重新配置寄存器。
要在nuc980的裸机程序中实现软件复位,可以使用如下代码:
```
#define SYS_SOFT_RSTC (0x50040000UL+0x8UL)
#define SYS_RSTC_KEY (0x5A5A0000UL)
void software_reset(void)
{
outpw(SYS_SOFT_RSTC, SYS_RSTC_KEY | 0x1);
}
```
代码中使用了 SYS_SOFT_RSTC 寄存器和 SYS_RSTC_KEY 寄存器,通过向 SYS_SOFT_RSTC 寄存器中写入 SYS_RSTC_KEY 这个特定的值和某个位,就可以实现软件复位。
在程序中调用 software_reset 函数即可触发软件复位,如下所示:
```
int main(void)
{
// do something here
software_reset();
// the device is now reset, restore settings if necessary
return 0;
}
```
注:nuc980的软件复位不同于硬件复位,软件复位只会重启设备,不会影响外设的状态,但是会清除寄存器中的所有值,需要重新配置寄存器。
举报