nRF52832 开发记录(一) - 入门及相关小问题的处理

前言

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

开发环境安装和配置

Keil MDK-ARM 5.29 下载链接
nRF Command Line Tools 包含 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,以 examples\ble_peripheral\ble_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 进行整片擦除

原文地址:https://www.cnblogs.com/HintLee/p/12254151.html

时间: 2024-08-14 22:29:46

nRF52832 开发记录(一) - 入门及相关小问题的处理的相关文章

nRF52832 开发记录(二) - DFU 功能

前言 NRF 官方提供了 DFU (Device Firmware Upgrade) 设备固件升级的例程,在项目中使用需要自己生成密钥用于加解密固件.本工程基于 nRF5_SDK_16.0.0 相关软件下载和安装 nRF Command Line Tools 10.5.0 (上篇博文已安装) 下载链接 Python 2.7.17 下载链接 coreutils 5.3.0 下载链接 gcc-arm-none-eabi-7-2018-q2-update-win32-sha2 下载链接 make 3.

[转载]MongoDB开发学习 经典入门

如果你从来没有接触MongoDB或对MongoDB有一点了解,如果你是C#开发人员,那么你不妨花几分钟看看本文.本文将一步一步带您轻松入门. 阅读目录 一:简介 二:特点 三:下载安装和开启服务器 四:使用mongo.exe 执行数据库增删改查操作 五:更多命令 六:MongoDB语法与现有关系型数据库SQL语法比较 七:可视化的客户端管理工具MongoVUE 八:在C#中使用官方驱动操作MongoDB 九,在C#中使用samus驱动操作MongoDB 十:写个批处理,方便开启Mongodb服务

Android开发记录19-朋友圈动态发布时间计算

Android开发记录19-朋友圈动态发布时间计算 转载请注明:IT_xiao小巫,http://blog.csdn.net/wwj_748 如果觉得博文不错,请移步到2014年博客之星投票地址:http://vote.blog.csdn.net/blogstar2014/details?username=wwj_748#content 前面的一篇文章给大家关于时间知识点的分享http://blog.csdn.net/wwj_748/article/details/11536421,本篇博客笔者

iOS开发60分钟入门

iOS开发60分钟入门 原文:https://github.com/qinjx/30min_guides/blob/master/ios.md 本文面向已有其它语言(如Java,C,PHP,Javascript)编程经验的iOS开发初学者,初衷在于了解如何开始开发iOS App,学习目标包括: 能使用Xcode IDE.模拟器 能修改.调试已有iOS App 能在已有应用内创建新模块 能创建新应用 能发布应用到App Store 本文不包含任何高级的iOS开发知识,已学会iOS开发的同学不要看,

Android开发记录20-获取缓存大小和清除缓存功能

Android开发记录20-获取缓存大小和清除缓存功能 转载请注明:IT_xiao小巫 博客地址:http://blog.csdn.net/wwj_748 前言 本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等.我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,可以让用户选择删除应用内产生的数据,这也是比较人性化的设计点.例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所

SQL开发中容易忽视的一些小地方(一)

原文:SQL开发中容易忽视的一些小地方(一) 写此系列文章缘由: 做开发三年来(B/S),发现基于web 架构的项目技术主要分两大方面: 第一:C#,它是程序的基础,也可是其它开发语言,没有开发语言也就不存在应用程序. 第二:数据库,现在是信息化世界,大多数信息都可以通过数据库存储来交换信息.常与应用程序互相交流信息. 但在SQL开发应用时,我们往往只观注些常用的方法(insert delete select update),对些小细节方面(系统存储过程,函数的应用,优化分析)研究的并不多或者是

SQL开发中容易忽视的一些小地方(二)

原文:SQL开发中容易忽视的一些小地方(二) 目的:继上一篇:SQL开发中容易忽视的一些小地方(一) 总结SQL中的null用法后,本文我将说说表联接查询. 为了说明问题,我创建了两个表,分别是学生信息表(student),班级表(classInfo).相关字段说明本人以SQL创建脚本说明: 测试环境:SQL2005 CREATE TABLE [dbo].[student]( [ID] [int] IDENTITY(1,1) NOT NULL, [sUserName] [nchar](10) C

IOS开发语言Swift入门连载---控制流

IOS开发语言Swift入门连载-控制流 Swift提供了类似 C 语言的流程控制结构,包括可以多次执行任务的for 和while 循环,基于特定条件选择执行不同代码分支的if 和switch 语句,还有控制流程跳转到其他代码的break 和continue 语句. 除了 C 语言里面传统的 for 条件递增(for-condition-increment )循环,Swift 还增加了for-in 循环,用来更简单地遍历数组(array),字典(dictionary),区间(range),字符串

Cocos2d入门--1-- 初涉相关属性或代码

 Cocos2d入门--1-- 初涉相关属性或代码 Cocos2d vision:  cocos2d-x-3.8.1 万丈高楼,起于累土.对于一个游戏框架的学习,其实在于框架功能的使用积累,学会了如何在cocos2d游戏引擎的基础上使用它提供的各种功能,并灵活运用, 以及学会查阅Cocos2d官方提供的API文档.相信自己也能开发出自己喜爱或者让别人羡慕的游戏. 目录: 1>认识origin和visibleSize以及cocos2d的基础绘画类DrawNode的简单实用 2>认识 CCLOG(