223 Star 1.2K Fork 403

GVPbean / BabyOS

 / 详情

出现dev_no == bDEV_MAX_NUM,导致设备无法打开

已完成
创建于  
2022-12-11 18:35

[info] fff2 fd=0 dev_no=3 bDEV_MAX_NUM=3
[info] fff3 fd=0 dev_no=3
输入图片说明

评论 (15)

kylincom 创建了任务

有发现这个问题吗

有效的设备号,是不会出现≥bDEV_MAX_NUM的情况。

你这个dev_no是怎么出现等于bDEV_MAX_NUM的呀

就是不清楚为什么存在这种情况
我加印log 发现dev open failed才发现的问题,还在清理中

可以把IICVOCS的设备注册信息看看

为什么ccc 和 fff2那里 打印的bDEV_MAX_NUM值不同呀。
要不微信或者qq聊吧,效率高一点。您昵称是啥,我加您

微信:15882808136

这正是我觉得奇怪的点,感觉是吃预编译不正确

试试最新的代码吧:
①初始化后将设备的信息打印出来(设备号 描述 状态)
②将默认设备(NULL)的设备号调整为0

①初始化后将设备的信息打印出来(设备号 描述 状态)
我初始化的设备信息就是bDEV_MAX_NUM 3, 感觉是b_core.c没吃到#include "b_device_list.h"
而其他app.c 吃的#include "b_device_list.h"正确
typedef enum
{
#define B_DEVICE_REG(dev, driver, desc) dev,
#include "b_device_list.h"
bDEV_NULL,
bDEV_MAX_NUM
} bDeviceName_t;

目前还没碰到你这种情况,能否将你的工程发我看看。

我再找一找原因

原因:
_config/b_device_list.h
这个.h 需要添加#include "b_config.h", 否则一些宏会吃不进去,导致bDEV_MAX_NUM不对

因为我这边不是用的最新版本,所以不知道最新版本是不是也有这个问题

根据和您的沟通,问题的原因明确了,在这里备注一下。
是您在b_device_list.h里加入了条件编译,根据不同的宏来选择注册不同的设备。
而条件编译的宏在b_config里面定义的,所以需要包含b_config头文件。

bean 任务状态待办的 修改为已完成

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1789704 notrynohigh 1578959879
C
1
https://gitee.com/notrynohigh/BabyOS.git
git@gitee.com:notrynohigh/BabyOS.git
notrynohigh
BabyOS
BabyOS

搜索帮助