蓝牙芯片nRF52832的序列号参数保存

本文介绍了如何在nRF52832嵌入式设备中利用UICR寄存器保存序列号参数,包括UICR的地址范围、三种写入方法(nrjprog命令、代码初始化、NVM接口)以及两种读取方法,并警告了不同写入方法混用可能造成的全FF问题。
摘要由CSDN通过智能技术生成

在实际的工程中,需要在设备上保存序列号,这个序列号应该不能被升级等擦除。一般方案是在Flash上开辟一块区间保存序列号等参数。在nRF52832的设备上,有一些UICR的寄存器,类似于NVM,可以用来保存一些参数,更方便使用。

UICR寄存器的地址

从spec上,UICR的寄存器地址是从0x10001000开始,前面0x07c个地址为保留地址,从0x080开始32个寄存器用户可以用。

UICR Register

UICR写的三种方式

1. 通过nrjprog命令

通过nrjprog命令,可以在生产时写入,程序内部读出。比如写 0x10001080地址,写入值为0x00000001。该模式方便产线上同构自动化工具写入序列号等参数。
nrfjprog.exe -f nrf52 --eraseuicr
nrfjprog.exe -f nrf52 --memwr 0x10001080 --val 0x00000001

2. 通过代码初始化

通过属性定义,写入。该模式较为适用于那些比较固定的参数,比如硬件版本号等。
const uint32_t SERIAL_ADDR attribute((at(0x10001080))) attribute((used)) = 0x1;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值