zoukankan      html  css  js  c++  java
  • nRF52832 开发记录(一)

    前言

    近段时间因项目需要开始接触蓝牙芯片 nRF52832,官方的文档和 SDK 确实相当完善和易于上手,最开始是在 nRF5 SDK v15.3.0 做开发,不久前官方更新了 nRF5 SDK v16.0.0,后续文章也会以这个版本做记录。

    开发环境安装和配置

    Keil MDK-ARM 5.29 下载链接
    nRF Command Line Tools 10.5.0 包含 nRF 开发常用的工具和 J-Link 驱动 下载链接
    ARM.CMSIS.4.5.0 下载链接
    NordicSemiconductor.nRF_DeviceFamilyPack.8.27.1 下载链接
    nRF5 SDK v16.0.0 下载链接
    下载安装 Keil 完成后,打开 Keil 中的 Pack Installer 手动导入 ARM.CMSIS.4.5.0 和 NordicSemiconductor.nRF_DeviceFamilyPack.8.27.1

    修改 nRF5 SDK v16.0.0 中例程为 nRF_DeviceFamilyPack.8.27.1

    SDK v16.0.0 中的例程 examples 依赖于 nRF_DeviceFamilyPack.8.27.0,而这个版本因为有 bug 已被撤回,所以需要手动修改为 nRF_DeviceFamilyPack.8.27.1,以 examplesle_peripheralle_app_template 为例,其中 pca10040 代表 nRF52832,打开 arm5_no_packs

    提示安装 nRF_DeviceFamilyPack.8.27.0 点击取消

    点击 Select Software Packs

    将下面两项分别修改

    确定后会弹出 Manage Run-Time Environment,去掉 Device 中 Startup 的勾并确定

    点击 Manage Run-Time Environment,勾选 Startup 为 8.27.1 并确定,修改完成

    Flash 分区的划分

    nRF52832 有 512KB 的 Flash 空间,以 4KB 为一个页,即为分区和擦除的最小单位。按照功能可分为以下几种:

    **不带协议栈,不带 bootloader **

    分区 地址 大小
    App + Free Space 0x0001 0000 - 0x0007 FFFF 508KB
    MBR 0x0000 0000 - 0x0000 0FFF 4KB

    **带协议栈,不带 bootloader **

    分区 地址 大小
    App + Free Space 0x0002 6000 - 0x0007 FFFF 360KB
    SoftDevice 0x0000 1000 - 0x0002 5FFF 148KB
    MBR 0x0000 0000 - 0x0000 0FFF 4KB

    **带协议栈和 bootloader **

    分区 地址 大小
    BL Settings 0x0007 F000 - 0x0007 FFFF 4KB
    MBR Params 0x0007 E000 - 0x0007 EFFF 4KB
    Bootloader 0x0007 8000 - 0x0007 DFFF 24KB
    App + Free Space 0x0002 6000 - 0x0007 7FFF 328KB
    SoftDevice 0x0000 1000 - 0x0002 5FFF 148KB
    MBR 0x0000 0000 - 0x0000 0FFF 4KB

    使用了协议栈 SoftDevice 的项目工程需要烧录一次 SoftDevice,再烧录用户程序,即选择 flash_s132_nrf52_7.0.1_softdevice 点 Download 烧录后,再切换回 nrf52832_xxaa 烧录用户程序,一般协议栈只需烧录一次

    烧录协议栈后该区域会被锁定,出现无法再次下载的错误,此时可用 J-Link 驱动中的 SEGGER J-Flash Lite 的 Erase Chip 进行整片擦除

  • 相关阅读:
    【转】myeclipse设置优化+快捷命令大全
    记昨日参加南天竺饶老师回访的一些感触点
    [zz]程序猿,你今天装B了没?
    什么是CGI
    Agile Tour——敏捷,在厦门落地 笔记小结
    用按键精灵来自动投票
    win7下安装matlab,启动后提示VC++Runtime Library错误 runtime error!
    单次扫描完成二值图连通区域标记
    6.3.2 最小支撑树树Prim算法,基于优先队列的Prim算法,Kruskal算法,Boruvka算法,“等价类”UnionFind
    用Java HashMap做对象Cache时要注意一点
  • 原文地址:https://www.cnblogs.com/HintLee/p/12254151.html
Copyright © 2011-2022 走看看