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. MySQL 中 TEXT 类型最大可以存储多长的文本?

    在MySQL中,TEXT类型用于存储较长的文本数据.TEXT类型的最大存储长度取决于表的字符集和存储引擎.具体来说,TEXT类型的最大存储长度为: TEXT:最大存储 65,535 字节(约 64 K ...

  2. C# 使用StackExchange.Redis实现分布式锁的两种方式

    分布式锁在集群的架构中发挥着重要的作用.以下有主要的使用场景 1.在秒杀.抢购等高并发场景下,多个用户同时下单同一商品,可能导致库存超卖. 2.支付.转账等金融操作需保证同一账户的资金变动是串行执行的 ...

  3. 79.8K star!这款开源自动化神器让技术团队效率飙升,400+集成玩转AI工作流!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "n8n 是技术团队自动化领域的瑞士军刀,既能享受可视化搭建的便捷,又能随时插入代 ...

  4. FastAPI与Tortoise-ORM模型配置及aerich迁移工具

    title: FastAPI与Tortoise-ORM模型配置及aerich迁移工具 date: 2025/04/30 00:11:45 updated: 2025/04/30 00:11:45 au ...

  5. redis 配置redis.config

    目录 配置日志位置 配置日志位置 编辑redis.config文件 默认logfile的值为"",修改为指定位置后重启服务. logfile "/usr/local/lo ...

  6. PyYaml简单学习

    YAML是一种轻型的配置文件的语言,远比JSON格式方便,方便人类读写,它通过缩进来表示结构,很具有Python风格. 安装:pip insall pyyaml YAML语法 文档 YAML数据流是0 ...

  7. codeup之找x

    Description 输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1). Input 测试数据有多组,输入n(1<=n& ...

  8. 我的Vue之旅(1)

    2020-10-17 今天主要学习了Vue中以下几个指令的使用 v-bind v-if v-on v-for v-model 其中v-bind与v-model都是属于数据绑定,v-bind通常来说是绑 ...

  9. 精选 12 款开源、免费、美观的 Vue 后台管理系统模板!

    前言 在当前软件开发领域,Vue.js 凭借其高效.灵活和易于上手的特性,成为了前端开发的热门选择.对于需要快速搭建企业级后台管理系统的开发者而言,使用现成的 Vue 后台管理系统模板无疑是一个明智之 ...

  10. spring的控制反转DI---基于注解实现

    首先在pom.xml里面导入依赖: <dependencies> <!--要使用spring需要添加4个包但是maven会把他的几个依赖包同时下好--> <depende ...