I am studying Vulkan driver code. I want to know how the application call the driver func because the func name is different.
Then look at Vulkan Loader trampoline. Which in turn will hit the driver per LoaderDriverInterface.md documentation.
Related
I have started to develop software for the ZYNQ 7020 SoC from Xilinx. I have finished several tutorials and I have found that whenever I use some predefined block in the PL (for example GPIO controller) then associated software driver for that peripheral is automatically generated. Does anybody know whether this is true only for the predefined blocks or also for user developed blocks? Thanks.
I have found in my opinion useful document regarding the process of custom IP block drivers development.
The tools can't automatically write your driver, but if you package your IP block and driver in the right format you can do the same type of thing. Look here for some more info on how to do that: Is there a way to pass a design parameter from a custom IP to software
What is the difference between "Inbox driver" and "Direct Memory Mapped driver"? My basic LED blink remote application worked only after selecting Direct Memory mapped driver. What is the unique things associated with this driver?
The Direct Memory Mapped Driver(DMAP) is an in-developement driver that provides GPIO performance improvements over the default inbox driver. If you use Lighting Driver in your application, you should set the controller driver as Direct Memory Mapped Driver,or there will be exception thrown.As far as i know,there is no more official statement about the detailed difference.
I am converting a unit that holds a network interface list to be cross platform. The current version uses raw winsock to obtain the address, mask and broadcast address for each network interface in the system.
I figure the easiest way to make this cross platform is to use Indy. I have found that AddLocalAddressesToList is a nice simple way to get the IP address of all the interfaces but I cannot find out how to get the other information I need (mask and broadcast address).
I think I can calculate the broadcast address so its really just the mask that I cant figure out.
FYI. This is the code I found to get the IP addresses of all interfaces.
TIdStack.IncUsage;
try
GStack.AddLocalAddressesToList(Memo1.Lines);
finally
TIdStack.DecUsage;
end;
WinSock does not support reporting that kind of info. You have to use OS-specific APIs instead. On Windows, that means using the Win32 API GetAdaptersInfo() and GetAdaptersAddresses() functions. On other platforms, you can use the getifaddrs() function where available.
Indy does not currently support what you are asking for. Also, do note that at this time, AddLocalAddressesToList() only supports IPv4 addresses on most platforms, including Windows.
Support for retreiving local IPv6 addresses, as well as other info like subnet masks, is currently in the works, but there is no ETA on its availability yet.
i have a device (cash drawer) and i would like to directly communicate with the device. I know that its on address f1. Also openbit is 01.
As i've understood so far, i'd need to send 1 to memory address f1 and the cash drawer should open. Though using asm, i get access violation. Then again i've read that windows does not let you communicate directly to device i/o addresses (need to use win). What would be the correct way to send the data to that address.
Note that i cannot use drivers, because i can't communicate with the driver inside my application.
Op. system is win7.
Thanks in advance!
There was a library called inpout32.dll that allowed direct port access you can find it here
http://logix4u.net/Inpout32.dll_Discussion/write_DELPHI_for_inpout32.dll.html
But i don't know if supports windows 7.
In addition to the excellent suggestions above, check out this delphi code for writing and reading I/O. We have used the GWIOPM to do what you are asking, but note that it will be ok for 32-bit versions of Windows up to W7 etc (as is the case for most 'free' drivers). For 64-bit Windows you need a signed kernel driver. For this there are few things available at the moment. We had to write our own.
Why can't you communicate with the driver from your application? It's the best way for ring 3 application to talk with hardware in a safe manner.
However, if you really insist using drivers, you can try going to ring 0 and do direct access. It's much harder than in previous Windows versions (XP and before) but it's possible. I haven't done it myself since I don't have Windows 7, but you can try asking in asm programming forum anywhere.
How to get the CPU Temperature info from Bios using c# I gave a try to the code in CPU temperature monitoring
But no luck. enumerator.Current threw an exception.
How can i achieve this ? Thanks.
Error :
"This system doesn't support the required WMI objects(1) - check the exception file
Not supported
at System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
at System.Management.ManagementObjectCollection.ManagementObjectEnumerator.MoveNext()
at CedarLogic.WmiLib.SystemStatistics.RefreshReadings() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\WmiLib\SystemStatistics.cs:line 25
at CedarLogic.WmiLib.SystemStatistics.get_CurrentTemperature() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\WmiLib\SystemStatistics.cs:line 87
at TemperatureMonitor.SystemTrayService.CheckSupport() in D:\Downloads\TempMonitorSrc\TemperatureMonitorSln\TemperatureMonitor\SystemTrayService.cs:line 260"
Have a look at OpenHardwareMonitor.
I'm having the exact same problem:
https://superuser.com/questions/183282/cant-query-cpu-temperature-msacpi-thermalzonetemperature-on-windows-embedded-7
The code in the link you cited is correct. My .exe works fine on Windows/XP and Windows/Vista (as long as I "run as Administrator" on Vista) ... but fails with the WMI error "not supported" on Windows Embedded 7.
At this point, I don't know if the problem is the OS (WES7) or my motherboard (an Intel DH57jg).
Although not ideal, the closest/best solution I have found is to use Speedfan (free), which can expose its probe information to external applications, via a memory-map. Somebody has done the C# conversion:
Reading SpeedFan shared memory with C#
"Building on what I spoke about in my
previous post, lets say we want to
access the data that SpeedFan provides
from a C# application. As a small
aside, reading information from the
SMBus and other low level interfaces
can only be done from the kernel. So
applications like SpeedFan (HWMonitor,
Everest, etc etc) generally run a
driver at kernel level and then a
front-end GUI to present the
information.
In the case of SpeedFan, shared memory
(actually its technically a memory
mapped file on Windows I think) is
used to communicate between the kernel
driver and the userspace GUI
application. Even better, the format
of this file has been made public by
the author of SpeedFan. So, enough
talk, lets see some code!"