尝试使用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 "dis .h"(在顶部)

2.将配置文件目录中的device_config.h和.c文件添加到项目和include文件路径中

编译时,我得到了以下错误(实际上有4个错误,但都指向同一个错误):
sdk\platform\arch\main\jump_table.c(160):错误:#70:不允许不完整类型

跟踪到文件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
离线
最后看到:2个月1个星期前
工作人员
加入: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
离线
最后看到:2个月1个星期前
工作人员
加入:2015-06-08 34
嗨uta_lc,

嗨uta_lc,

对不起,我错过了你提到的部分,你已经包括了必要的文件。我明白你的意思,我昨天试过了,但是没有#define BLE_DEVICE_CONFIG 1,我没有看到编译器抱怨。请到device_config.h文件并注释掉/删除包含的atts.h文件。这样在不改变#define的情况下,编译器应该会很高兴。

由于MT_dialog

uta_lc
离线
最后看到:1年2个星期前
加入:2016-05-03 07:39
谢谢,修好了

感谢修正了编译。

当尝试sample128配置文件时,同样的事情必须完成编译。

一个相关的问题:在将代码下载到启用了BLE_DEVICE_CONFIG的dev工具包后,我是否期待看到设备配置服务被发布?我使用浅蓝色和TI传感器标签应用程序(iOS应用程序)对芯片进行了检查,但它们都看不到任何额外的服务(在现有的ls、LIA、DIS和BAS之上)。这听起来对吗?我是否遗漏了一些配置?

谢谢,
uta_lc

MT_dialog
离线
最后看到:2个月1个星期前
工作人员
加入: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()处理,以便应用程序知道db创建已经完成。这就是配置文件和应用程序的工作方式。亚博国际官网平台网址对于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,这说得通。

主题锁定