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. 关于ffmpeg参数里的pcm_s16le

    关于ffmpeg参数里的pcm_s16le,查了很多资料,找到下面这句话: S16LE:S(signed)代表有符号,LE(little endian)为小端存储(先存低字节,再存高字节) ----- ...

  2. SpringBoot错误处理

    SpringBoot错误处理 1 SpringMVC写法 1.1 在单独的Controller写一个处理异常的方法处理 @Slf4j @RestController public class Hell ...

  3. 【经验】CiteSpace|Wiley Online Library或除知网以外的其他网站的文献怎么导入CiteSpace 6.1.6?

      如果没安装,请看这篇博客安装,现在新版(6.1.6)的不需要额外下载java了,就很妙~:   最新版citespace软件的安装与配置   结论:导出成RIS然后用它自带的转换成WoS. 文章目 ...

  4. 【记录】BASE64|解决JS和C++中文传输乱码,内含两种语言的Base64编码解码的代码

    JS 解决方法来源于知乎新码笔记的文章 function b64Encode(str) { return btoa(unescape(encodeURIComponent(str))); } func ...

  5. 将数据导出 Excel 并异步发送到指定邮箱:一次性能优化实战

    使用 Spring Boot 实现 Excel 导出 + 邮件异步发送功能,解决接口阻塞问题 一.背景介绍最近我在开发一个跑团管理系统的数据导出功能,需求是将用户查询的成员信息.跑量统计等数据导出为 ...

  6. 自建OpenDeepWiki并且白嫖500代金券

    相信很多人都对OpenDeepWiki很感兴趣.OpenDeepWiki提供了MCP实现,您可以部署属于自己公司的私有知识库,将仓库加入进去,通过MCP对指定的仓库实现内容检索并提供最佳指引. 白嫖5 ...

  7. QtWidget项目-仿腾讯QQ音乐

    本博客主要介绍本人写的个人项目 - QtWidget5 仿腾讯QQ音乐项目. 效果演示 项目详情 源码 Gitee地址:https://gitee.com/run-little-peach/my-qq ...

  8. RPC实战与核心原理之路由策略

    路由策略:怎么让请求按照设定的规则发到不同的节点上 回顾 健康检测在 RPC 中的作用,简单来讲就是帮助调用方应用来管理所有服务提供方的连接,并动态维护每个连接的状态,方便服务调用方在每次发起请求的时 ...

  9. 市盈率指标EP在A股市场的分析

    因子经济金融特性 EP因子即市盈率因子,常被投资者使用的几个估值因子之一.一般使用PE,即Price to Earning, 维基百科上的解释:市盈率指每股市价除以每股盈利(Earning Per S ...

  10. 20250528 - Usual 攻击事件: 价差兑换与请君入瓮

    背景信息 项目背景 VaultRouter 合约有用特权身份,可以通过 Usd0PP 合约将 USD0++ 以 1:1 的比例兑换成 USD0,随后通过 UniV3 将 USD0 swap 成 sUS ...