打印
[活动]

《Nordic nRF7002开发板试用体验---使用docker轻松构建开发环境来点灯》

[复制链接]
998|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 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




使用特权

评论回复

相关帖子

沙发
zhanzr21| | 2023-8-5 12:22 | 只看该作者
乔老师威武 这么快就把环境搞定了

使用特权

评论回复
板凳
jobszheng| | 2023-8-6 23:19 | 只看该作者
谢谢 乔老师了
这么看,官方给的资料还是非常充分的,只是咱们在国内访问起来不是太方便。

使用特权

评论回复
地板
袁胜富| | 2023-8-8 07:38 | 只看该作者
访问太特吗气人了

使用特权

评论回复
5
袁胜富| | 2023-8-8 07:38 | 只看该作者
资料很丰富,下载不下来,需要科学上网

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

40

主题

97

帖子

2

粉丝