本帖最后由 HonestQiao 于 2023-8-9 22:56 编辑
nRF相关的环境构建,难住不少人,经过一番研究,发现基于docker环境,可以又快又好的构建起来开发环境。
要建立起开发环境,核心的两点:
1. 源码:nRF Connect SDK + zephyr
2. 编译环境
3. 烧录
源码目前有两种方式,一种是通过github直接下载对应的库,一种是通过west下载。
编译环境有多种方式,但使用docker环境则已经由官方把环境打包好了,不用自己再费时费力了。
烧录的话,可以通过west,也可以通过nrfjprog。
当然,如果使用合适的开发工具如VS Code、CLion结合NCS(nRF Connect SDK)做好了配置,会更加的方便开发调试,感兴趣可以进一步研究。
因为是基于Docker的,所以请先安装好Docker。
另外,如果是在Windows环境中操作,建议使用WSL环境。
下面,就是两种基于Docker快速搭建开发环境的操作步骤,完成下面的步骤就能点灯,点完灯,板子就能痛快的吃灰了!
Docker编译环境,由nRF官方制作,稳定可靠!!!
涉及到的工具、源码、资料,都在下面的百度网盘提供了:
nRF7002-DK 资料分享: https://pan.baidu.com/s/1TCdbo5RcFWs6uFqv40KiiA?pwd=7002 提取码: 7002
一、简化版:【强烈推荐】
## 环境构建:简化版【强烈推荐,使用官方docker镜像】
# 1. 环境参数设置【难度:⭐️】【执行一次即可】
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
echo 'export sdk_nrf_revision=v2.4.1' >> ~/.bashrc
echo 'export docker_nrf_revision=v2.4-branch' >> ~/.bashrc
source ~/.bashrc
# 2. 简化版拉库:需科学上网【难度:⭐️】【执行一次即可】
mkdir workdir && cd workdir
# 方式1:下载源码压缩包【非常推荐】,仅需下载 65M+34M 大小数据
# zephyr网址:https://github.com/zephyrproject-rtos/zephyr/releases
# sdk-nrf网址:https://github.com/nrfconnect/sdk-nrf/releases
# 推荐版本:https://github.com/zephyrproject-rtos/zephyr/archive/refs/tags/v3.4.0.zip
# 推荐版本:https://github.com/nrfconnect/sdk-nrf/archive/refs/tags/v2.4.1.zip
# 下载最新版本的Source code压缩包解压,解压后改名为zephyr和sdk-nrf放到workdir目录
# 查看最终文件:输出zephyr和sdk-nrf及对应目录内容
ls -l *
# 方式2:使用git克隆源码【一般推荐】,需下载 874M + 230M 大小数据
git clone https://github.com/zephyrproject-rtos/zephyr.git -b zephyr-v3.4.0
git clone https://github.com/nrfconnect/sdk-nrf.git -b v2.4.1
# 3. docker编译,省去环境构建步骤【难度:⭐️⭐️】
# 预拉取镜像【执行一次即可】
docker pull nordicplayground/nrfconnect-sdk:$docker_nrf_revision
# 编译点灯源码:zephyr/samples/basic/blinky
docker run -it --rm \
-v ${PWD}:/workdir/project nordicplayground/nrfconnect-sdk:$docker_nrf_revision \
west build -b nrf7002dk_nrf5340_cpuapp zephyr/samples/basic/blinky
# 编译最终结果:
[168/168] Linking C executable zephyr/zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 23676 B 1 MB 2.26%
RAM: 6256 B 448 KB 1.36%
IDT_LIST: 0 GB 2 KB 0.00%
# 4. 烧录 使用nrfjprog【难度:⭐️⭐️】
# 下载命令行工具 https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download
# 学习参考:http://www.sunyouqun.com/2018/03/nrfjprog-user-guide/
# 安装nRF Toole和J-Link,然后执行检查
nrfjprog -v
# 此时应输出版本信息
# 清空板子:
nrfjprog -e
# 结果:输出如下,否则请检查连接
Erasing user available code and UICR flash areas.
Applying system reset.
# 烧录板子:
nrfjprog --verify --program ./build/zephyr/zephyr.hex
# 结果:输出如下,否则请检查连接
[ #################### ] 0.174s | Program file - Done programming
[ #################### ] 0.159s | Verify file - Done verifying
# 如果出现错误,结尾加一个 --recover 再来一次
# 重启芯片:重启后,板子开始闪灯
nrfjprog --reset
# 结果:输出如下,否则请检查连接
Applying system reset.
Run.
# 以上步骤,也可用一条命令搞定:nrfjprog --verify --program ./build/zephyr/zephyr.hex –-chiperase -r
补充说明:下载后的源码中,包含了几百个实例和说明,可供学习研究,具体目录如下:
- nRF SDK实例:sdk-nrf/samples
- nRF SDK实例文档:sdk-nrf/doc/nrf/samples
- zephyr实例:zephyr/samples
- 点灯实例源码:zephyr/samples/basic/blinky
- 烧录工具命令版:https://www.nordicsemi.com/Products/Development-tools/nrf-command-line-tools/download
- 烧录工具桌面版:https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop/download
二、完整版:
## 环境构建-高难度版:【使用官方docker镜像】
# 1. 环境参数设置【难度:⭐️】【执行一次即可】
echo 'export PATH=~/.local/bin:"$PATH"' >> ~/.bashrc
echo 'export sdk_nrf_revision=v2.4.1' >> ~/.bashrc
echo 'export docker_nrf_revision=v2.4-branch' >> ~/.bashrc
source ~/.bashrc
# 2. 高难度拉库:需科学上网【难度:⭐️⭐️⭐️】【执行一次即可】
# 提醒:一般玩家可不用考虑,直接用简化版
# 安装west
pip3 install --user west
west --version
# 此时应正确显示版本号
# 拉完整库,需下载 3G 以上大小数据
west init -m https://github.com/nrfconnect/sdk-nrf --mr $sdk_nrf_revision
west update
# 3. docker编译,省去环境构建步骤【难度:⭐️⭐️】
# 预拉取镜像【执行一次即可】
docker pull nordicplayground/nrfconnect-sdk:$docker_nrf_revision
# 编译点灯源码:zephyr/samples/basic/blinky
docker run -it --rm \
-v ${PWD}:/workdir/project nordicplayground/nrfconnect-sdk:$docker_nrf_revision \
west build -b nrf7002dk_nrf5340_cpuapp zephyr/samples/basic/blinky
# 编译最终结果:
[168/168] Linking C executable zephyr/zephyr.elf
Memory region Used Size Region Size %age Used
FLASH: 23676 B 1 MB 2.26%
RAM: 6256 B 448 KB 1.36%
IDT_LIST: 0 GB 2 KB 0.00%
# 5. 烧录:使用west
west flash
# 然后按板子REST按键,重启后板子开始闪灯
补充说明:下载后的源码中,包含了几百个实例和说明,可供学习研究,具体目录如下:
- nRF SDK实例:nrf/samples
- nRF SDK实例文档:nrf/doc/nrf/samples
- zephyr实例:zephyr/samples
- 点灯实例源码:zephyr/samples/basic/blinky
建议初学者使用第一个简化版本,这样能够快速进入状态,避免折磨太多。
另外,烧录也可使用下面的图形界面工具:
烧录工具桌面版【推荐】:https://www.nordicsemi.com/Products/Development-tools/nrf-connect-for-desktop/download
|