【发布时间】:2018-06-19 08:12:15
【问题描述】:
我有一个内核驱动程序来提供 I2C 的东西。
通过 I2C 支持单个 R/W 或批量(多个)R/W
如果是批处理,有什么好方法:
- 将批处理数据从用户传输到内核。然后从内核多次调用 I2C
- 从用户那里多次调用单个 R/W。
哪种方式更好?
【问题讨论】:
-
这和c++有什么关系?
-
我正在实现的用户应用程序是c++
-
你量过吗?
-
不,目前我正在使用方法#1,但它会在另一个操作系统上出现问题。因为,我转了一批数据,而且不是按顺序的。所以对于 Linux,我们可以随时调用 copy_from_user。但是对于另一个操作系统,它只允许将数据传输到内核一次。这意味着我必须打包和拆包。代码看起来很匆忙,浪费精力。
-
系统调用比单纯的函数调用要贵几个数量级。尽量减少它们。
标签: c++ system-calls