1. NCS2.9 使用SMP DFU服务实现OTA

ncs2.9中官方对底层驱动又做了升级,单独使用一个进程对SMP进行初始化,

在将BLE初始化为slave,并广播后,只需在prj中添加以下配置:

CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
  1. NCS2.3 使用SMP DFU服务实现OTA

同上,在将BLE初始化为slave,并广播后

添加以下配置:

CONFIG_BOOTLOADER_MCUBOOT=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU=y
CONFIG_NCS_SAMPLE_MCUMGR_BT_OTA_DFU_SPEEDUP=y
CONFIG_NEWLIB_LIBC=y
#Enable SMP Server
CONFIG_MCUMGR=y
CONFIG_MCUMGR_GRP_IMG=y
# CONFIG_MCUMGR_GRP_IMG dependencies
CONFIG_IMG_MANAGER=y
CONFIG_MCUMGR_CMD_STAT_MGMT=y
  1. NVS与BLE同时使用时,NVS写入返回成功但实际写入失败?

论坛上也有相关问题记录:

https://devzone.nordicsemi.com/f/nordic-q-a/77781/problem-to-read-back-flash-with-nvs-when-concurrent-use-with-bluetooth

因为BLE初始化时,NVS区域与用户区域重叠,导致写入失败。

解决方法:在根目录下新建一个pm_static.yml(flash区域分配文件),内容如下:

user_storage:
address: 0xfe000
size: 0x2000
end_address: 0x100000
placement:
before:
- end
region: flash_primary

在NVS初始化时,使用user_storage区域:

#define STORAGE_NODE_LABEL user_storage
static struct nvs_fs UserFs; K_MUTEX_DEFINE(NvsWrite_Mutex);
K_MUTEX_DEFINE(NvsRead_Mutex); //nvs driver initital
int nvs_driver_init(void)
{
int rc;
struct flash_pages_info info; UserFs.flash_device = FLASH_AREA_DEVICE(STORAGE_NODE_LABEL);
if (!device_is_ready(UserFs.flash_device)) {
printk("Flash device %s is not ready\n", UserFs.flash_device->name);
return -EINVAL;
}
UserFs.offset = FLASH_AREA_OFFSET(STORAGE_NODE_LABEL);
rc = flash_get_page_info_by_offs(UserFs.flash_device, UserFs.offset, &info);
if (rc) {
printk("Unable to get page info\n");
return -EINVAL;
}
UserFs.sector_size = info.size;
UserFs.sector_count = 2U; LOG_INF("NVS sector size=%d sector count=%d\n", UserFs.sector_size, UserFs.sector_count); rc = nvs_mount(&UserFs);
if (rc)
{
LOG_ERR("NVS Init failed %d", rc);
return -EINVAL;
} return 0;
}
  1. 使用NCS2.1.2,项目编译成功后带宽<5K

解决方法:在项目目录下添加child_image目录。并将该目录下的mcuboot文件中的KEY_FILE目录改成本地实际目录。再重新全编译一次。

  1. 使用NCS2.9带宽异常

解决方法:在网络核添加以下配置:

CONFIG_BT_CTLR_SDC_MAX_CONN_EVENT_LEN_DEFAULT=15000

CONFIG_BT_CTLR_DATA_LENGTH_MAX=251

CONFIG_BT_BUF_ACL_TX_SIZE=502

CONFIG_BT_BUF_ACL_RX_SIZE=502

CONFIG_BT_MAX_CONN=2
  1. Nordic nrf5340使用内部晶振:

在app核和net核以及boot(如有)的prj中添加以下配置:

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y
CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
  1. Nordic nrf5340修改内部负载电容容值:
CONFIG_SOC_HFXO_CAP_INT_VALUE_X2=20
CONFIG_SOC_HFXO_CAP_DEFAULT=n
CONFIG_SOC_HFXO_CAP_EXTERNAL=n
CONFIG_SOC_HFXO_CAP_INTERNAL=y

nordic nrf5340 使用问题记录的更多相关文章

  1. zephyr的GPIOTE驱动开发记录——基于nordic的NCS

    简介: 本次测试了zephyr的中断驱动方式(GPIOTE),在这可以去看zephyr的官方文档对zephyr的中断定义,连接如下,Interrupts - Zephyr Project Docume ...

  2. Nordic nRF52系列/nRF5340硬件设计(一)选型及原理图设计

    Nordic 的BLE系列芯片从第一代的nRF51系列,到第二代的nRF52系列,发展到目前最新的第三代的nRF5340.目前市场中使用最多的nRF52系列一共有七款芯片,它们是:nRF52805.n ...

  3. 使用IAR在开发nordic问题记录

    使用IAR在开发nordic的sdk的时候,官方有一段话*****Note for IAR 8 users:(Libraries for IAR 8 require wchar_t to be of ...

  4. nordic芯片开发——烧写方法记录

    在开发nordic芯片的时候,分为存外设开发和结合softdevice开发,另外还有结合mbr的开发(这个暂时没有深究)在裸机开发的时候,sdk里面称为blank,把芯片的程序erase之后,直接下载 ...

  5. Nordic芯片烧录指南

    本文讲介绍Nordic系列芯片的烧录方式 一.准备工作 1.硬件 首先需要准备一块Nordic的DK或者Jlink,但是需要注意的是x宝购买的盗版Jlink因为没有license,用一段时间可能会被锁 ...

  6. NRF5340首款双核处理器无线SoC

    nRF5340基于Nordic经过验证并在全球范围广泛采用的nRF51和nRF52系列多协议SoC而构建,同时引入了具有先进安全功能的全新灵活双处理器硬件架构,支持包括蓝牙5.1/低功耗蓝牙 (Blu ...

  7. 记一次debug记录:Uncaught SyntaxError: Unexpected token ILLEGAL

    在使用FIS3搭建项目的时候,遇到了一些问题,这里记录下. 这里是发布搭建代码: // 代码发布时 fis.media('qa') .match('*.{js,css,png}', { useHash ...

  8. nginx配置反向代理或跳转出现400问题处理记录

    午休完上班后,同事说测试站点访问接口出现400 Bad Request  Request Header Or Cookie Too Large提示,心想还好是测试服务器出现问题,影响不大,不过也赶紧上 ...

  9. Kali对wifi的破解记录

    好记性不如烂笔头,记录一下. 我是在淘宝买的拓实N87,Kali可以识别,还行. 操作系统:Kali 开始吧. 查看一下网卡的接口.命令如下 airmon-ng 可以看出接口名称是wlan0mon. ...

  10. 2015 西雅图微软总部MVP峰会记录

    2015 西雅图微软总部MVP峰会记录 今年决定参加微软MVP全球峰会,在出发之前本人就已经写这篇博客,希望将本次会议原汁原味奉献给大家 因为这次是本人第一次写会议记录,写得不好的地方希望各位园友见谅 ...

随机推荐

  1. 代码随想录第二十二天 | Leecode 77. 组合、216. 组合总和 III、17. 电话号码的字母组合

    Leecode 77. 组合 题目描述 给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k个数的组合. 你可以按 任何顺序 返回答案. 示例 1: 输入:n = 4, k = 2 输出 ...

  2. 【记录】IDA和Ollydbg查看指令地址及地址对应的指令

    文章目录 在IDA中查看指令地址 在Ollydbg中查看指令地址 在Ollydbg中查看地址对应的指令 在IDA中查看指令地址 在Ollydbg中查看指令地址 ollydbg在对应指令处,右键-查看- ...

  3. Dify 架构全景:从模块设计到部署实践的完整指南

    项目概述 Dify 是一个开源的 LLM 应用开发平台,提供直观的界面,结合了AI Agent工作流.RAG 管道.智能体能力.模型管理和可观察性功能等,使用户能够快速从原型转向生产环境.Dify 允 ...

  4. Vite 3 来了!新增功能 + 如何迁移

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  5. RPC实战与核心原理之异常重试

    异常重试:在约定时间内可靠的重试 回顾 在 RPC 框架中如何设计自适应的负载均衡,其关键点就是调用端收集服务端每个节点的指标数据,再根据各方面的指标数据进行计算打分,最后根据每个节点的分数,将更多的 ...

  6. Hystrix 服务的隔离策略对比,信号量与线程池隔离的差异

    支持的隔离策略 Hystrix支持的 hytrix支持线程池隔离和信号量隔离 信号量的隔离: it executes on the calling thread and concurrent requ ...

  7. Ubuntu Vmware虚拟机 没有共享文件夹/mnt/hgfs 解决

    问题现象 在Vmware虚拟机设置共享文件夹后,在Ubuntu系统侧应该在/mnt/hgfs目录下可见.然而,有时在重启虚拟机后不存在该文件夹. 解决方法 在终端中执行以下代码,需要root权限. s ...

  8. React Native开发鸿蒙Next---RN键盘问题

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  9. Java 验证电子邮箱是否合法

    工作中,常常遇到校验电子邮箱字符串是否符合规范的需求,这里提供如下两个基于正则表达式的校验方法: public static final String EMAIL_REGEX_DEFAULT = &q ...

  10. Ubuntu 安装最新版本 node.js

    第一步,去官网看看当前最新的版本是多少,比如当前最新是v18.12.0 curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash - ...