通常NRF52系列芯片的UICR寄存器可以保存一些重要的用户数据,而写到此寄存器的数据掉电后是不会丢失的, 读写此寄存器的方法如下:

写入方法1:

const uint32_t UICR_ADDR_0x80 __attribute__((at(0x10001080))) __attribute__((used)) = 0x12345678;

const uint32_t UICR_ADDR_0x84 __attribute__((at(0x10001084))) __attribute__((used)) = 0xAAAAAAAA;

const uint32_t UICR_ADDR_0x88 __attribute__((at(0x10001088))) __attribute__((used)) = 0x55555555;

const uint32_t UICR_ADDR_0x8C __attribute__((at(0x1000108C))) __attribute__((used)) = 0x33333333;

写入方法2:

static void uict_write_test(void)

{

NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Wen;

while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

for(uint8_t i=0;i<32;i++)NRF_UICR->CUSTOMER[i] = 0x33445566;

NRF_NVMC->CONFIG = NVMC_CONFIG_WEN_Ren;

while (NRF_NVMC->READY == NVMC_READY_READY_Busy){}

}

此函数需放在softdevice 初始化之前调用,读出时也一样。

还可以通过nrfjprog命令写入/读出数据 ,看看写入的数是否正确,命令如下:

转载于:https://www.cnblogs.com/lim11/p/11134885.html

NRF52 UICR寄存器读写相关推荐

  1. 【Android 逆向】ptrace 函数 ( ptrace 函数族 | 进程附着 | 进程脱离 | 进程数据读写权限 | 进程对应的主线程寄存器读写 | 单步调试 |ptrace 函数族状态转换 )

    文章目录 一.ptrace 函数族 1.进程附着 2.进程脱离 3.进程数据读写权限 4.进程对应的主线程寄存器读写 5.单步调试 6.继续向后执行 二.ptrace 函数族状态转换 一.ptrace ...

  2. LPS25HB 寄存器读写程序解读

    文章目录 LPS25HB 寄存器读写程序解读 1.读写功能的统一接口函数 2.设计结构体函数指针来调用统一的读写函数 3.与通信方式无关的寄存器读写抽象函数接口 LPS25HB 寄存器读写程序解读 一 ...

  3. UEFI开发历程2—基于SuperIO芯片的寄存器读写

    一.SuperIO介绍 目前市面上的主流SuperIO芯片有NCT.ITE等厂商的生产的芯片,本文主要针对IT8613E这款芯片的逻辑设备寄存器的读写进行介绍. IT8613E主要用来连接外部低速设备 ...

  4. 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试

    本节提示:本节所需环境:ubuntu 16 / 18工具:VScode.Cmake.openwrt 交叉编译器 2.3 Openwrt 模拟 spi 及其sx1301寄存器读写测试 通过前面两章节的操 ...

  5. vivado的vio怎么使用_使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试(附源代码)...

    debug,尤其是通信芯片的debug,可以有很多的方法.一个数据帧从进入到输出,可以在通路上的关键节点处设置监测如各种计数器等,可通过VIO(xilinx)定时上报实时状态.可以把VIO的各个信号线 ...

  6. nrf52832 UICR 寄存器

    nordic 有提供非易失性寄存器 FICR 暂未了解. 主要了解UICR,全名 User information configuration. 程序中 UICR 的结构体和定义: typedef s ...

  7. 转载:linux+arm 网卡故障调试:ethtoolphy寄存器读写

    两个工具一个是ethtool工具,一个是源码编译的可以读phy寄存器的工具phyreg.两者结合使用,事半功倍. ethtool 可以查看和设置网卡的工作状态,比如查看设置网卡的链接 自协商,10/1 ...

  8. 寄存器内存读写指令(二) —— 多寄存器读写 LDM / STM

    有的时候,CPU可能会遇到 a++; b++; c++,这个时候为了提升效率,CPU可能会一次将多个寄存器里的变量保存到内存中.这个时候之前介绍的 LDR / STR 指令虽然也能实现,但只能操作一个 ...

  9. XN297L 2.4G无线模块 寄存器读写测试

    简单记录下XN297L 四线SPI读写寄存器 前言 为避免吃灰,研究了下面买了很久的板子.因为便宜,照例只有发送板,没有接收板.配对不大可能,拆机比较现实.关于拆机价值最难利用的就是打磨过的MCU和其 ...

最新文章

  1. Michael Jordan、Sutton、Silver等人,刚刚入选英国皇家学会会士
  2. 【深度学习】深入理解Batch Normalization批标准化
  3. c语言单链表需要头结点,一个关于C语言链表头结点的问题
  4. BestCoder Round #80 1002
  5. WebRTC VideoEngine超详细教程(三)——集成X264编码和ffmpeg解码
  6. 小程序如何把文字玩出花样
  7. DeePMD-kit的conda安装方法以及速度慢的解决方案
  8. 秒懂商用区块链关键技术:智能合约
  9. Spring Security(02)——关于登录
  10. 微信小程序自定义Dialog弹框
  11. 向量积的二维物理意义,二维向量叉乘几何意义
  12. (十三)【数电】(半导体存储电路)同步(电平)触发器|边沿触发的触发器
  13. 微信 openid 变吗?
  14. 怎么判断自己在不在一家好公司?
  15. R语言中dim函数_R 语言中的矩阵计算
  16. 解决阿里云ESC启动kube-proxy服务时出现错误 亲测有效
  17. 解码快手新市井电商,新品牌流量多,大品牌政策好
  18. 【Linux】一篇文章彻底搞定信号!
  19. @张小龙 微信开机界面该升级啦!NASA帮你P了9张行星图
  20. 永中软件自己越描越黑

热门文章

  1. Mysql:kill命令之mysql杀死指定的进程(批操作)
  2. autojs 如何获取控件的desc_Autojs Pro中,常用的几个选择器搜索接口的区别-技术类-雨后春笋...
  3. android 对象数据库中,解析嵌套的JSON对象,并存储在数据库中的Android
  4. python查看图片的源代码_python获取图片元数据的代码
  5. python socket服务器多线程_Python多线程socket服务器端
  6. python的api库_python 利用toapi库自动生成api
  7. 三相逆变器双pi控制器参数如何调节_Boost 变换器 PI参数设计举例
  8. linux iconv函数失败,Linux 编码转换 (iconv失败的解决方法)
  9. [CODEVS 1087] 麦森数
  10. 洛谷P1182 数列分段`Section II`