.net 如何设置虚拟Gpio环回

.net 如何设置虚拟Gpio环回,.net,ubuntu,testing,virtual,gpio,.net,Ubuntu,Testing,Virtual,Gpio,我目前正在开发一个程序,它应该在.Net中使用gpio引脚。 我想在虚拟gpio引脚上测试我的程序,但我不知道怎么做 我想做一个环回,其中一个虚拟gpio 1将连接到另一个虚拟gpio 2 我已经用串口和tty0tty做了类似的事情 另外,我在Ubuntu上。如果没有真正的硬件可供您使用,那么如果不破解真正的内核驱动程序,就没有这种可能性。幸运的是,在Linux内核中,我们有(以及即将推出的新的gpiosim)用于测试gpio库和API 主要思想是。创建虚拟GPIO芯片: %modprobe-g

我目前正在开发一个程序,它应该在.Net中使用gpio引脚。 我想在虚拟gpio引脚上测试我的程序,但我不知道怎么做

我想做一个环回,其中一个虚拟gpio 1将连接到另一个虚拟gpio 2

我已经用串口和tty0tty做了类似的事情


另外,我在Ubuntu上。

如果没有真正的硬件可供您使用,那么如果不破解真正的内核驱动程序,就没有这种可能性。幸运的是,在Linux内核中,我们有(以及即将推出的新的
gpiosim
)用于测试gpio库和API

主要思想是。创建虚拟GPIO芯片:

%modprobe-gpio-mockup-gpio\u-mockup\u范围=-1,3 gpio\u-mockup\u命名线
%光电探测器
...
gpiochip2[gpio-mockup-A](3行)
%gpioinfo 2
gpiochip2-3线:
第0行:“gpio-mockup-A-0”未使用输入激活高电平
第1行:“gpio-mockup-A-1”未使用输入激活高电平
第2行:“gpio-mockup-A-2”未使用输入激活高电平

通过DebugFS,您可以看到行位于硬件侧,即无论您在那里写什么,Linux堆栈都将被视为硬件状态:

%mount-t debugfs none/sys/kernel/debug
%ls-l/sys/kernel/debug/gpio-mockup/gpiochip2/
总数0
--w------1根根0一月29日01:10 0
--w------1根根0 Jan 29 01:10 1
--w------1根根0 Jan 29 01:10 2
(注意此处的“仅写”属性)

现在是演示部分 首先检查引脚的当前状态(让我们选择虚拟GPIO控制器的引脚2):

%gpioget2
0
假设引脚的硬件状态已从0更改为1:

%echo 1>/sys/kernel/debug/gpio mockup/gpiochip2/2
再次检查pin的状态:

%gpioget2
1.
对于输出部分,它有点复杂,即,要么需要到GPIO芯片的不推荐的sysfs接口,要么必须从代码中运行一个线程或分叉一个进程,以保持上下文状态正确。使用
gpioset
gpioset
当前是不可能的,因为驱动程序在(GPIO控制器的)设备节点关闭后立即恢复状态


总的来说,我认为你已经有了这个想法,也许你甚至不需要输出GPIO线。

Thx,我没有访问硬件的所有时间,这就是为什么我想用软件复制它。我已经看过gpio模型,但我不知道如何使用它来做我想做的事情,这将帮助我(和其他人)。特别是因为我更像是一个软件开发人员而不是系统管理员,所以我不太确定如何做您描述的^^’。另外,我最初设想的是,我有两个软件在两个不同的虚拟管脚上通信,这两个管脚将“连接”在一起(就像在tty0tty中,两个串行端口连接在一起)。如果我理解正确,我的第二个软件(硬件模拟器)将取代您描述中的sysfs。感谢您的努力^^也许只是我,但我找不到gpio模型的全面文档(我通过搜索找到了)。我希望这也能帮助那些想在没有硬件的情况下测试软件的人。