• nrf52810学习笔记——二


    nrf52810为nordic支持蓝牙 5.0性价比最高的一款芯片,不过这个芯片的rom不得不吐槽下,只有192KB,不知道为什么定了个192,而不是大家所熟悉的256KB,估计价格是个原因吧,15.2的协议栈中S112 softdevice占用了100KB,只剩92KB了,后面还要减掉bootloader的大小,所以给用户使用的空间并不大,15.2中pca10040e为52810的工程

    原文:https://blog.csdn.net/htaijqq/article/details/84178119

    nRF52832, 可以通过蓝牙、串口,USB 升级。

    nRF52832 内存布局中,包含MBR,Soft device,Application, Application data, Bootloader, Bootloader Settings.

    具体Flash布局参考: http://www.sunyouqun.com/2017/05/nordic-dfu-study/

    编译环境和升级过程参考:https://blog.csdn.net/wulazula/article/details/78130954

    nRF52832 对升级过程中的数据进行了加密和认证处理,具体过程参考:https://blog.csdn.net/oqqdake12/article/details/53928601

    要启动bootloader,需要设置芯片的UICR 区域,UICR.BOOTLOADERADDR. 将bootloader 地址写入此区域。

    具体命令:nrfjprog.exe --memwr 0x10001014 --val 0x00078000.

    nrfjprog 一个python 的程序,安装过程参考上面所提文章。0x10001014  是 UICR.BOOTLOADERADDR 地址。0x00078000 是14.2.0 SDK版本中bootloader 区域地址。

    原文:https://blog.csdn.net/weixin_38051349/article/details/80074799

    nRF52832的UICR
    UICR(User information configuration registers)是保存用户特殊设置的非易失存储寄存器(NVM:Non-volatile memory),UICR与Flash的不同的是只有通过全片擦除后才能重新写入,不能单独擦除。

    UICR寄存器组:
    NRFFW[14:0]:为Nordic固件保留,与DFU的设计有关。
    NRFHW[11:0]:为Nordic硬件件保留。
    CUSTOMER[31:0]:为用户保留。
    PSELRESET[1:0]:选择nReset连接的引脚位置(并不是所有引脚都支持),两个寄存器值必须一致nReset才有效,否则没有nReset引脚。
    APPROTECT:使能或禁止Access Port 保护功能。
    NFCPINS:设置NFC引脚为GPIO还是NFC。
    nRESET和NFC PIN
    默认在system_nrf52.c中通过宏CONFIG_NFCT_PINS_AS_GPIOS和CONFIG_GPIO_AS_PINRESET控制打开或关闭nRESET和NFC PIN的功能。在擦除和烧写后的首次程序运行的时候,SystemInit()函数根据宏定义设置会先根据宏定义写UICR寄存器。

    Bootloader
    在Bootloader的程序中NRF_UICR->NRFFW[0]储存的是Bootloader的地址。

    原文:https://blog.csdn.net/weixin_40643581/article/details/78980997

  • 相关阅读:
    Flutter和iOS混编详解
    Flutter异步与线程详解
    Nacos源码系列—服务端那些事儿
    Nacos源码系列—关于服务注册的那些事
    Nacos在企业生产中如何使用集群环境?
    踩到一个关于分布式锁的非比寻常的BUG!
    分享一个我看源码时的小技巧。
    通俗易懂的ArcGis开发快速入门
    Linux命令篇 grep 命令
    Linux命令篇 sed 命令
  • 原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/10370084.html
Copyright © 2020-2023  润新知