单片机学习小组
直播中

李泳瑜

7年用户 1132经验值
私信 关注

请问nuc980如何在裸机程序中实现nuc980软件复位?

nuc980如何在裸机程序中实现nuc980软件复位?

回帖(1)

遇鱼余的小白

2024-5-21 17:25:25
要在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的软件复位不同于硬件复位,软件复位只会重启设备,不会影响外设的状态,但是会清除寄存器中的所有值,需要重新配置寄存器。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分