- 首先下载SDK
刚开始建议用nRF Connect中的Toolchain Manager来下载,这样更适合新手,只是速度可能会比较慢。
如下图是笔者下载后的效果:
A处显示的表示已经下载成功,可以打开开发工具来开始编程;B处可以在下载前设置下载的路径,如下图为笔者设置的自定义路径,因为默认路径在C盘的用户目录下名为ncs目录下,用起来不是太方便。
- Nrf5340介绍
Nrf5340为双核芯片,其中一个为netcore用于网络管理,一个用于application;如果用户的工程需要使用网络功能,比如蓝牙\zigbee\2.4G 等,则需要下载对应固件到netcore中;因为目前Segger embedded studio for arm(Nordic edition)在管理和下载两核的固件上做的还有些问题,导致下载netcore固件时往往有问题,从而使用应层的程序在运行类如bt_enable(NULL)这样启动netcore程序的时候会无法返回(笔者就曾被该问题浪费了不少精力)。
- 下载netcore中的固件
netcore中需要烧录的固件在sdk中有对应的工程,名为hci_rpmsg,如下图所示:
所以我们编译好该工程后,会在目录:
v1.4.99-dev1\zephyr\samples\bluetooth\hci_rpmsg\build_nrf5340pdk_nrf5340_cpunet\zephyr
下生成zephyr.hex的目标文件,如果你直接用segger ide来下载的话会提示失败,因此我们改用nRF connect中的Programmer来下载(应该还有别的方法,只是笔者没有去一一实测),如下图所示,
图中A区即为netcore核,绿色显示表示笔者已经下载了固件,B区用application核 ,用来执行用户的应用程序 。我们用该工具打开上面生成的zephyr.hex后,工具会自动识别其为netcore的固件并把它下载进去。
- 下载application core中的固件
我们以lbs示例工程来讲解;
打开segger ide,进行如下图的配置:
此工程配置为cpuapp,表示只编译application核中的程序;工程编译后,生成的目标文件为merged.hex,在下面目录里:
v1.4.99-dev1\nrf\samples\bluetooth\peripheral_lbs\build_nrf5340pdk_nrf5340_cpuapp\zephyr
下载或调试时,会出现如下提示,选择否即可(即无需重新编译,当然再次编译一下可以,只是浪费一些时间的问题)。
下载完成后,就可以能过手机来控制评估板上的一个LED灯,同时也会有一个LED灯周期闪烁。