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,以 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 進行整片擦除


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM