尝试使用device_config配置文件时出现编译错误

7个帖子/ 0个新
最后发表
uta_lc
离线
最后看到:1年2个月前
加入:2016-05-03 07:39
尝试使用device_config配置文件时出现编译错误

亲爱的对话的支持,

我试图为prox_reporter项目启用BLE_DEVICE_CONFIG配置文件,但得到编译错误。我是这样做的:

1.在user_profile_config.h补充道
#定义BLE_DEVICE_CONFIG 1
# include“device_config.h”
在#include " dish .h"之后(在顶部)

2.将profile目录中的device_config.h和.c文件添加到项目和包含文件路径中

编译时,我得到以下错误(实际上4个错误,但都指向同一个):
..\..\..\sdk\platform\arch\main\jump_table.c(160): error: #70: incomplete type is not allowed

跟踪到文件rwble_hl_config.h第130行:
#define BLE_ATTS_HEAP_ENV_SIZE (sizeof(struct atts_env_tag) + KE_HEAP_MEM_RESERVED)
使用Keil,转到struct atts_env_tag的定义,它说struct atts_env_tag没有定义。
如果简单地定义一个值,比如为BLE_ATTS_HEAP_ENV_SIZE定义512,编译器就会满意。

我想可能是头文件的序列有问题,应该包括等?或者我应该在项目中添加/定义其他东西?

有没有人使用/尝试DEVICE_CONFIG配置文件在对话,我可以有一个工作项目设置?

谢谢,
uta_lc

关键词:
设备:
MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 34
嗨uta_lc,

嗨uta_lc,

您是否为device_config配置文件添加了.c文件?你需要添加device_config.c和device_config_task.c sdk_profiles文件夹,还包括相应的头文件. C文件device_config.h和device_config_task.h选项的目标选择,在C / c++标签包括路径文本框。

由于MT_dialog

uta_lc
离线
最后看到:1年2个月前
加入:2016-05-03 07:39
谢谢太。

谢谢太。

是的,就像原帖第2点提到的。

假设它只需要几分钟来设置-只需使用香草prox_reporter项目加上上面我提到的2个步骤-可以有人在DA请尝试一下吗?

还请注意,我提到过,我只需要通过给BLE_ATTS_HEAP_ENV_SIZE一个真实的值(512)来欺骗编译器,而不是使用#define BLE_ATTS_HEAP_ENV_SIZE (sizeof(struct atts_env_tag) + KE_HEAP_MEM_RESERVED),它工作(编译和链接)完美。这意味着很可能结构atts_env_tag的定义不包括在正确的序列中,以某种方式?

谢谢,
uta_lc

MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 34
嗨uta_lc,

嗨uta_lc,

抱歉,我漏掉了你提到的你已经包含了必要的文件的部分。我明白你的意思,我昨天尝试了一下,但是错过了#define BLE_DEVICE_CONFIG 1,我看不到编译器抱怨。请转到device_config.h文件并注释掉/删除包含的att .h文件。这应该会让编译器满意,而无需更改#define。

由于MT_dialog

uta_lc
离线
最后看到:1年2个月前
加入:2016-05-03 07:39
谢谢你修复了

谢谢,修正了编译。

当尝试sample128概要文件时,必须做同样的事情来编译。

一个相关的问题:在将代码下载到启用了BLE_DEVICE_CONFIG的开发套件后,我是否希望看到设备配置服务被发布?我使用浅蓝色和TI传感器标签应用程序(iOS应用程序)询问了芯片,但他们都不能看到任何额外的服务(在现有的LLS, LIA, DIS和BAS之上)。这听起来对吗?我丢失了一些配置吗?

谢谢,
uta_lc

MT_dialog
离线
最后看到:4个月4天前
工作人员
加入:2015-06-08 34
嗨uta_lc,

嗨uta_lc,

您添加的概要文件必须由您的应用程序处理,仅通过在项目中包含概要文件并不会创建数据库或在连接时启用它。每个概要文件,例如电池概要文件,都由概要文件本身(bass.c和bass_task.c)和几个附加文件组成,这些附加文件被认为是概要文件的应用程序级处理。更percise再次让比如电池从邻近的记者,在sdk_profiles文件夹中有bass.c和bass_task.c sdk_app文件夹有app_bass.c app_bass_task.c,这两个文件包含创建功能,启用和处理配置文件,例如,app_bass.c中你可以找到app_bass_create_db,被调用的函数是正确的设备的配置结束后通过app_db_init_next通过prf_func_callbacks结构()函数,并将数据库的创建消息电池(BASS_CREATE_DB_REQ)。该消息将由bass_task.c文件(概要文件本身)中的bass_create_db_req_handler()处理,创建数据库并发送一条确认消息,该消息将由应用程序级别的app_bass_task()处理,以便应用程序知道数据库创建已经完成。这就是概要文件和应用程序的工作方式。雷竞技安卓下载对于SDK5,没有device_config配置文件的实现(没有app_device_config.c/.h和app_device_config_task.c/.h),但是SDK3有一个实现,你可以把它作为一个例子。

由于MT_dialog

uta_lc
离线
最后看到:1年2个月前
加入:2016-05-03 07:39
谢谢MT,这说得通。

谢谢MT,这说得通。

主题锁定