• Lv0
    粉丝0

积分4 / 贡献0

提问3答案被采纳0文章0

OpenHarmony5.0 第三方so库中 调用open 函数打开设备节点,报错返回

yyn1994 显示全部楼层 发表于 2024-12-9 18:11:23

【问题描述】

  1. 在SDK 为openHarmony5.0 Release,DevEco Studio为 5.0.3.910 版本中使用napi 调用 so 库,so 库中调用open 打开设备节点时报错返回。 在SDK 为openHarmony4.0 Release,DevEco Studio 为4.0.0.600 版本中使用napi 调用 so 库,so 库中调用open 打开设备节点,使用相同的代码,是可以正常打开设备节点进行读写操作的。

  2. int serial_init(const char *dev, int baud, int databits, int stopbits, char parity) {
        int fd;
        int ret;
    
        if (dev == NULL || dev[0] == 0)
            return -1;
        if (baud < 300 || baud > 115200)
            return -1;
    
        Serial_St = (struct SERIAL_ST *)malloc(sizeof(struct SERIAL_ST));
        if (Serial_St == NULL)
            goto err;
    
        memset(Serial_St, 0, sizeof(struct SERIAL_ST));
    
        fd = open(dev, O_RDWR | O_NOCTTY | O_NDELAY);
        if (fd < 0)
            goto err;
    
        Serial_St->fd = fd;
        Serial_St->baud = baud;
        Serial_St->databits = databits;
        Serial_St->stopbits = stopbits;
        Serial_St->parity = parity;
    
        ret = serial_set(Serial_St);
        if (ret == -1) {
            printf("serial init failure /r/n");
            close(fd);
            return -3;
        }
    
        return 0;
    
    clserr:
        close(fd);
    err:
        free(Serial_St);
        return -9;
    }

    相关的代码(请勿使用截图)

  3. 运行结果、错误截图

  4. 我更改了对应SDK 中的UnsgnedReleasedProfileTemplate.json 中 apl 为system_core,app-feature为hos_system_app ,给 /dev 下对应的节点添加了读写权限。

  5. 若5.0支持我这样的方法,我的问题是在哪里。若不支持 是否有别的方法实现打开设备节点进行读写的操作

【运行环境】

硬件:dayu200 ROM版本: DevEvoStudio版本: 5.0.3.910 SDK版本:openHarmony5.0 Release

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部