我想用吉维奥系统在访问受保护内存之前需要打开“文件”的驱动程序。我在看WinAVR/AVRdude中的一个C示例,它使用以下语法:
#define DRIVERNAME "\\\\.\\giveio"
HANDLE h = CreateFile(DRIVERNAME,
GENERIC_READ,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
但这在Python中似乎不起作用-我只得到一个“指定路径无效”的错误,这两个错误都是如此
^{pr2}$以及
f = os.open("//./giveio", os.O_RDONLY)
为什么这个不能做同样的事情?在
编辑希望能减少思想的混乱(谢谢威尔)。 我确实验证了设备驱动程序是通过AVRdude附带的批处理文件运行的。在
进一步编辑以澄清SamB的赏金。在
解决方案:在python中必须使用win32文件.CreateFile()而不是open()。我帮我找到了答案,谢谢大家!在
你的问题至少可以说是令人困惑的。在
1>;您粘贴的代码使用了一个技巧,即使用其“DOSNAME”与驱动程序通信
2>;是否创建并加载了“giveio”驱动程序?在
驱动程序处理这些调用的原因是
http://msdn.microsoft.com/en-us/library/ms806162.aspx
我对Python一无所知,但我对驱动程序有一点了解。你根本就不想“在内核空间打开一个文件”,你只是想打开一个设备的句柄,这个句柄看起来有点像打开一个文件。在
CreateFile是一个用户模式函数,您在这里所做的一切都是用户模式,而不是内核模式。在
正如xenon所说,您的调用可能会失败,因为您还没有加载驱动程序,或者因为您用来执行CreateFile的任何Python调用都没有传入write参数。在
我从来没用过吉维奥系统我自己,但我个人认为,它是正确加载的使用“C”或C++(或一些预先编写的应用程序)之前,我试图使它通过Python工作。在
相关问题 更多 >
编程相关推荐