X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志R128蓝牙占用内存资源较大,修改menuconfig配置后经常编译不过或无法运行解决方法
aleksib
2023-11-1 09:57
楼主
R128蓝牙占用内存资源较大,尝试修改过以下两处的蓝牙配置,修改后再重新编译就会失败 1、使用menuconfig修改配置CONFIG_BT_VAR_MEM_DYNC_ALLOC=y,后初始化蓝牙失败 ``` [cmd ERR] bt_ready():556, Bluetooth init failed (err -105) ``` 添加打印定位到是内存分配失败 2、使用menuconfig修改配置CONFIG_BT_SMP关闭可以减少很多内存,但是编译出错,提示缺少smp_null.c。 CONFIG_BT_VAR_MEM_DYNC_ALLOC配置问题,修改方法如下。,即交换 ``` _net_buf_pool_list_end = .; ``` 和 ``` KEEP(*(SORT_BY_NAME("._net_buf_pool.static.*"))) ``` 这两行 ``` diff --git a/include/ble/linker/common-ram.ld b/include/ble/linker/common-ram.ld index e97433c91..40744e392 100755 --- a/include/ble/linker/common-ram.ld +++ b/include/ble/linker/common-ram.ld @@ -84,8 +84,8 @@ { _net_buf_pool_list_start = .; _net_buf_pool_list = .; KEEP(*(SORT_BY_NAME("._net_buf_pool.static.*"))) _net_buf_pool_list_end = .; } GROUP_DATA_LINK_IN(RAMABLE_REGION, ROMABLE_REGION) ``` CONFIG_BT_SMP 配置问题,下面内容保存为smp_null.c 放到 ``` ./src/ble/host/smp_null.c ``` ``` /** *
@File
smp_null.c * Security Manager Protocol stub */ /* * Copyright (c) 2015-2016 Intel Corporation * * SPDX-License-Identifier: Apache-2.0 */ #include
#include
#include
#include
#include
#include
#include
#define BT_DBG_ENABLED IS_ENABLED(CONFIG_BT_DEBUG_HCI_CORE) #define LOG_MODULE_NAME bt_smp #include "common/log.h" #include "hci_core.h" #include "conn_internal.h" #include "l2cap_internal.h" #include "smp.h" static struct bt_l2cap_le_chan bt_smp_pool[CONFIG_BT_MAX_CONN]; int bt_smp_sign_verify(struct bt_conn *conn, struct net_buf *buf) { return -ENOTSUP; } int bt_smp_sign(struct bt_conn *conn, struct net_buf *buf) { return -ENOTSUP; } static int bt_smp_recv(struct bt_l2cap_chan *chan, struct net_buf *req_buf) { struct bt_conn *conn = chan->conn; struct bt_smp_pairing_fail *rsp; struct bt_smp_hdr *hdr; struct net_buf *buf; ARG_UNUSED(req_buf); /* If a device does not support pairing then it shall respond with * a Pairing Failed command with the reason set to "Pairing Not * Supported" when any command is received. * Core Specification Vol. 3, Part H, 3.3 */ buf = bt_l2cap_create_pdu(NULL, 0); /* NULL is not a possible return due to K_FOREVER */ hdr = net_buf_add(buf, sizeof(*hdr)); hdr->code = BT_SMP_CMD_PAIRING_FAIL; rsp = net_buf_add(buf, sizeof(*rsp)); rsp->reason = BT_SMP_ERR_PAIRING_NOTSUPP; if (bt_l2cap_send_cb(conn, BT_L2CAP_CID_SMP, buf, NULL, NULL)) { net_buf_unref(buf); } return 0; } static int bt_smp_accept(struct bt_conn *conn, struct bt_l2cap_chan **chan) { int i; static const struct bt_l2cap_chan_ops ops = { .recv = bt_smp_recv, }; BT_DBG("conn %p handle %u", conn, conn->handle); for (i = 0; i < ARRAY_SIZE(bt_smp_pool); i++) { struct bt_l2cap_le_chan *smp = &bt_smp_pool
; if (smp->chan.conn) { continue; } smp->chan.ops = &ops; *chan = &smp->chan; return 0; } BT_ERR("No available SMP context for conn %p", conn); return -ENOMEM; } BT_L2CAP_CHANNEL_DEFINE(smp_fixed_chan, BT_L2CAP_CID_SMP, bt_smp_accept, NULL); int bt_smp_init(void) { return 0; } #if defined(CONFIG_BT_DEINIT) int bt_smp_deinit(void) { return 0; } void bt_smp_mem_deinit(void) { return; } void bt_keys_mem_deinit(void) { return; } #endif #if defined(CONFIG_BT_VAR_MEM_DYNC_ALLOC) void keys_dynamic_mem_alloc(void) { } void keys_dynamic_mem_free(void) { } #endif ```
点赞
回复评论
暂无评论,赶紧抢沙发吧
最新活动
有奖直播报名中!抢占工业4.1先机 文晔科技日等你来!
2024 瑞萨电子MCU/MPU工业技术研讨会——深圳、上海站, 火热报名中
罗姆有奖直播 | 重点解析双极型晶体管的实用选型方法和使用方法
STM32N6终于要发布了,ST首款带有NPU的MCU到底怎么样,欢迎小伙们来STM32全球线上峰会寻找答案!
免费下载 | 安森美电动汽车充电白皮书,看碳化硅如何缓解“里程焦虑”!
是德科技有奖直播 | 应对未来高速算力芯片的设计与测试挑战
随便看看
用AT89C51做的公交车自动报站系统软件部分
几篇好文献
从网上搜集的DIY的CPU
本人初学模拟电路,请教关于PN结原理请教两个问题
【记录】ARM-Linux开发之输入子系统还是用按键做例
2014深圳制汇节
2020年的战争:机器人战争
数字IC设计工程师笔试面试经典100题(大部分有答案)
求TMS570LS0432单片机的最小系统原理图
TMS320F28335通用输入/输出口GPIO相关寄存器介绍
cc2530 ota问题
关于嵌入式处理器的在线调试方法
基于TI C2000系列的变频洗衣机解决方案
“沁恒评估板诚芯送”活动答疑帖
AVR如何通过按键关闭定时器0
浙大郑强教授的演讲—我不糊里糊涂地教,你们也不要糊里糊涂地学
430的IO口不接任何东西的时候的存在模拟电压吗?
"LTE Cat 1"的问题
最新08版PM4040FL的部分升级开关电源应用资料
【专题】究竟什么是"物联网"?
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复