硬汉嵌入式论坛

 找回密码
 立即注册
查看: 620|回复: 2
收起左侧

[问题解答] 请教一下,关于swd脱机烧录,怎么解锁nordic的读保护

[复制链接]

1

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2024-9-29 12:02:21 | 显示全部楼层 |阅读模式

#define NVMC_CONFIG    0x4001E504 // NVMC配置寄存器地址
#define NVMC_ERASEALL  0x4001E50C // NVMC全芯片擦除寄存器地址
#define NVMC_READY     0x4001E400 // NVMC就绪状态寄存器地址

#define CTRL_AP        0x01C00000 // CTRL-AP基地址
#define CTRL_AP_ERASEALL 0x01     // 全芯片擦除命令
/ Poll NVMC ready state.
uint8_t wait_for_nvmc_ready(void)
{
    uint32_t ready;
    do {
        if (!swd_read_word(NVMC_READY, &ready)) {
            return 0;
        }
    } while (ready == 0);
    return 1;
}

uint8_t swd_unlock_nrf52833(void)
{
    uint32_t ap_lock;

    // Step 1: 读取CTRL-AP的APLOCK状态,确认是否被锁定
//    if (!swd_read_word(CTRL_AP, &ap_lock)) {
//        return 0;
//    }
//        printf("ap_lock = 0x%x\n",ap_lock);
//    if (ap_lock & 0x01) {
        // APLOCK位设置,表示芯片被读保护
        // Step 2: 进入擦除模式,设置NVMC.CONFIG寄存器为擦除模式
        if (!swd_write_word(NVMC_CONFIG, 0x02)) {
            return 0;  // 设置擦除模式失败
        }

        printf("触发全芯片擦除\n");
        // Step 3: 触发全芯片擦除,写入NVMC.ERASEALL
        if (!swd_write_word(NVMC_ERASEALL, 0x01)) {
            return 0;
        }

                printf("等待擦除完成\n");
        // Step 4: 等待擦除完成,轮询NVMC_READY寄存器
        if (!wait_for_nvmc_ready()) {
            return 0;
        }

        // Step 5: 擦除完成后,读取CTRL-AP,确认APLOCK位是否清除
        if (!swd_read_word(CTRL_AP, &ap_lock)) {
            return 0;
        }

        if (ap_lock & 0x01) {
            return 0;  // APLOCK未被清除,解锁失败
        }
    //}

    // 读保护已解除
    return 1;
}
按照上面的执行下来,没有什么用,有没有大神,指导一下。

回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115988
QQ
发表于 2024-9-29 13:01:56 | 显示全部楼层
勾选这个


234.png
回复

使用道具 举报

1

主题

1

回帖

4

积分

新手上路

积分
4
 楼主| 发表于 2024-9-29 13:42:33 | 显示全部楼层

感谢回复,不过我现在疑惑的是在代码中怎么实现呢?怎么个逻辑,能否指导一下呢,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-1 13:28 , Processed in 0.653011 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表