OpenHarmony开发者论坛

标题: OpenHarmony5.0 第三方so库中 调用open 函数打开设备节点,报错返回 [打印本页]

作者: yyn1994    时间: 2024-12-9 18:11
标题: OpenHarmony5.0 第三方so库中 调用open 函数打开设备节点,报错返回
[md]### 【问题描述】

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
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5