Having worked on interfaces to several bus systems, but not USB, I've found the relevant specs essential. I'm not saying you have to read the whole thing but when the software gets tough its good to be able to look at the spec and compare with what your code is doing, or not doing. I found someone had coded to cope with the situation when everything happened ideally, no bus conflicts, no unresolved addresses, no planning for when a thread to receive wasn't available etc. At times it was only by reading the bus spec I could find out what should have been coded for. For instance I found an unreliable bus system on the test rig was due to no pull up resistors on the data lines, something I found in the spec, and something somebody had spent a long time trying to resolve with a debugger.
EDIT - Thanks to everyone that replied. I have found a better solution than an INF file.
My company has an existing software-only driver. The 32-bit version is being installed using InstallShield. Unfortunately for me, the company wants to get away from InstallShield as the product in question is going to be part of a customer's own installation. The build system here produces the 64-bit signed driver, and I am tasked with creating a .inf file to install this driver. I've been reading Microsoft documents about .inf files (until my eyes are bleeding) and all of this documentation seems to be centered around the Windows Driver Development Kit. I believe that this kit generates a .inx file which is really the .inf file. However, all I need to do is create a .inf file that will do the job.
When right-clicking on the .inf file and selecting Install, the install process is spectacularly silent about anything that is happening (right or wrong). So it is very difficult to determine what is happening.
Some of my problems include the following:
1. The driver is already signed, so I find it unlikely that I will need a CatalogFile. Will the .inf file work without a defined CatalogFile?
2. It seems that a software-only driver needs to have some dummy device installed, and (from the InstallShield results) I see this dummy device in HKLM\CurrentControlSet\Enum\Root\LEGACY_DRIVER_NAME. This is somehow linked to service entry in HKLM\CurrentControlSet\services\driver_name which points to the actual driver executable in \Windows\System32\drivers. I'm getting lost trying to define this dummy device.
3. I am successful installing the service, and I find it in the registry, but the install process never copies my driver into the drivers directory, so it appears to die before it gets that far.
4. I keep reading about a CoInstaller, but I get the feeling that it is not exactly necessary. Is this correct?
What I need is a clue. I haven't defined the dummy driver entry which is where I need the help. I've also made the assumption that the install directory where the .inf file is executed from is the root of the SourceDisk. Here's what I have in my .inf file so far:
That's a very good suggestion. However, since I posted my question I have become aware of the sc.exe command that can be used to directly install a software-only driver. This solves my problem. Thanks for your help.
Why are you trying to go that slow? ...you can simply oversample a slow incoming signal btw (turn it into a high rate signal), but you have to make sure you have DC coupling wherever the slow signal is coming into, not sure if USB is AC or DC coupled. If it happens to be AC coupled, the slow DC rates are going to get filtered out by the coupling capacitor.
I ran into the same problem some time back, a communication link had a 5-baud initialization sequence where communication parameters were negotiated. Unfortunately we did not find any UART that supported this reliably. So our solution was to use a GPIO pin combined with a UART, implement the 5-baud initialization by sampling the GPIO input and after the negotiation switched the GPIO to high-Z and enabled the UART, now with a supported, high baud rate.
Hope this helps.
The first six are all apparently interrput handler conflicts. Here they are (condensed and abbreviated for clarity)...
multiple definition of `_U1RXInterrupt'
multiple definition of `_U2RXInterrupt'
multiple definition of `_U3RXInterrupt'
multiple definition of `_OscillatorFail'
multiple definition of `_AddressError'
multiple definition of `_StackError'
multiple definition of `_MathError'
I'm getting one last error that is totally new to me, this one...
Link Error: Could not allocate section .nbss, size = 20004 bytes, attributes = bss near
Link Error: Could not allocate data memory
I really need
for my assembly language routines.
Can someone tell me how to get the C compliler and MpASM to cooperate and let me have those two ?
I can take out the other interrupts from my assembly language with some text editing.
Your advice and guidance will be greately appreciated.
I reckon the problem stems from your program's design - that is to say, I've heard of mixing asm and C code for decades. I don't recall ever seeing someone put c code into an asm project - it's always the other way around. Regardless of compiler/system, gcc/tc/vs and mips/x86/arm/sparc etc, etc
I'll have another play with it when it's finished installing again.
Mmmm, what version of MPLAB if it's MPLAB X is a <<very bad word>> to set up the project but once you have it is quite good I am told, I have not gone there myself I tend to use MPLAB 8.80. My advice is to download a demo project from Microchip and have a play. If there demo starts to go wrong then them on their board (online, they are quite good usually only had yell once!)
You are sure that the assembly is 100% valid on the 24F as there differences in there can't really remember Best of luck!
I'm working on improving a GUI on an application, I have a tabconrol with many pages, I want to put a background Image instead of the unique color which appear behind, I didn't find any property to do it .. Is there any way ??
your help is really appreciated,
So lately I'm having a weird problem with my USB ports. I'll try to explain.
I keep hearing that sound like someone's putting in a flash drive & removing it. Over & over & over. Also, when I look in Windows Explorer, I see a number of "Removable Drives". They must be some kind of virtual drive because I certainly don't have that many pysical drives. They were there when I bought the PC.
At any rate, this problem isn't happening all the time. It just randomly starts. When it's happening, the list of drives in Windows Explorer disappears and reappears at a fast rate in sync with the sound I described.
This is a fairly new PC, and I use AVG and Malware Bytes and scan regularly.
I have a wireless keyboard & mouse, a wireless headset, a printer, and 2 monitors plugged into the USB ports.
I have no clue how to figure out what's wrong. Any hardware people wanna point me in the right direction.
I'm not a hardware-person, but.. if you open the "properties" screen of "my computer", go to "Advanced settings", then to the "Hardware" tab and press the button "Device manager" (or somthing similar, using a silly localized/non English version of Windows atm), you'd launch an app that shows a tree with all the hardware. Try to find the USB-node, and see if Windows tries adding a piece of hardware - there'd be a node appearing and disappearing in sync with the sound.
If you do find one, disable it.
If that fails, download TweakUI and disable every drive that you're not currently using.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
Does your computer have a media card reader? If so, that's probably where all those drives are coming from. Each one of those card types has an allocated virtual drive to load to.
Now, to get to your actual problem, it sounds like you're having a problem with some USB peripheral, the drives appearing and disappearing is probably just a symptom of the real problem (i.e. it keeps trying to refresh). The problem can really be anything USB (including your keyboard or mouse) or even one of the USB chips that's malfunctioning (or the power to it is dropping below whatever is it's minimum).
- Disconnect ALL external USB items and see if problem appears.
- Try to find old style keyboard and mouse to drive.
- Disable the media card reader on the device manager if there.
- Start in safe mode and see if problem occurs there.
- If problem still persists... you'll need more experienced help (need to check voltage levels to USB chips, may be problem with motherboard or powersupply... more likely motherboard since the power to the chips should be going through a regulator on the motherboard).
In system config on the target you need to enable kernel debug specifying firewire of serial.
Hook the target to the host with tht relevant cable.
Turn off the target.
Run windbg on the host and set it to kernel debug on the relevant interface (firewire or serial).
Restart the target and it should connect and you will see a lot of debug data.
You then set the path in windbg for the symbols and code for your driver (and use the global microsoft symbol server for their code, search in help for symsrv), then you can set breakpoints and step through your code.
Everyone might have watched IRON MAN series, in part 2 of the series he uses surface computers containing a transparent glass slab , when i read about the details it was like there were laser-integrated motion sensing projectors which just sensed his hand signal and projected the images but i thought whats the difficulty in implementing a surface comp and i even heard MICROSOFT tried one surface computer which did not succeed
Sir,i m talking about the comps which are used in the movie , it like just two glass sheets , i m talking about their implementation . I just wanted to know whats the technology to implement them in reality whereas in the movie its just like a screen on which an image is projected. Usually there seems to be a controlling unit below the screen. Its like a normal comp with it screen made larger.
oh not really that was a joke sir i m planning to build one in the near future, i even had a page bookmarked but by mistake i deleted it in that they had given a brief info about polishing the glass surface and all stuff , so thought might get some ideas of mistakes were done by others and i didnt want to repeat them, since i want to program the LANs now at present as my project in my college ,my holidays are going on so thought i could do something related to hardware
I need to find a device that i can use to secure access to a fingerprint reader.
Basically what I need is a device that:
1) has a female usb input and a male output with a controller device in the midle
2) once joinced to the fingerprint device it will be epoxied together
3) I want then to be able through software to send a command to the dongle to unlock the use of the fingerprint device
Can anyone point me in the direction of something like this ?
What my company wishes to do is restrict use of the device by any software other than the software that it was intended for.
Hey everyone I have this exotic project called SpaceData, it's a project for creating a wormhole and black hole generator in one massive device.
A black hole crushes everything to a small particle, literally. A wormhole creates two gateways at two different points in the universe or space and sucks in an object faster than the speed of light into and forces it out of the other side of the portal.
THE GOODS OF THIS DEVICE WOULD BE: Sucking up gamma ray bursts, massive asteroids, deadly solar flares or bursts from the sun ,and if they existed, an alien invasion. Basically a planetary defense for planet Earth.
The problems I will be facing (at the top of my head) is...
You need money in order to build any device.
I need the steel, iron, power, and chemistry that will make up this device.
Like any device it will deteriorate and go bad, and like device like this left unchecked, if it opens a black hole or worm hole per say in anywhere sensitive or where it's not sup post to, serious bad things WILL happen. Lets just say hell and devastation on planet Earth.
I will need people at my "own page" developing this device together, because one mind developing such an exotic and extremely powerful device is NOT practical; it would take more than my life! to build or even think about making such a device.
V. Device Security
So much power going into the wrong hands can be "hell on earth" with a thing like this. So you need physically impassible barriers to protect this device from the wrong hands. Also trustworthy people with self-control that will protect the device instead of activating behind my back or in front of my eyes.
VI. Personal Security
More than likely, if people know I created this device and/or have it in my possession and/or can use it at my disposal, there will be killers and terrorists coming after me wanting to destroy me or torture me making me feel physical and emotional agony my entire life. Not only that if my own government and/or other governments knows about this, whether by a spy satellite, a spy agent, a word of mouth, or the news, my own county or nation and it's military will be going against me as well, because a good apple can turn rotten, can it not? and my friends will be brainwashed by my government or any kind of enemy that I will be facing and sooner or later I will have everyone against me, including anyone who reads this post and people on CodeProject(R). Just for the sake of (protecting and) having a device.
What I'm asking is, is building and maintaining a device like this worth it? Could I put this on another planet?, Or in a world like this there's too many problems could occur? (like all listed above)
Simple Thanks and Regards,
Brandon T. H.
Programming in C and C++ now, now developing applications, services and drivers (and maybe some kernel modules...psst kernel-mode drivers...psst).
Many of life's failures are people who did not realize how close they were to success when they gave up. - Thomas Edison
I do not know how this happened, but it did. Running XP with external USB HDD with four partitions. One partition name just disappeared. Disk Manager reported correct size and “healthy”. Explorer had “Local disk” for name and reported disk corruption when I tried to open it. Windows Task Manager Performance was hovering around 100% and my start up programs ( about 5 ) would take forever to load and everything else was just crawling. There were no unusual Processes running. Virus scan took forever and reported no problems. Finally the 100% usage problem disappeared by unplugging the USB HDD. The faulty partition was just a temp, luckily, so I rebuild it and all is fine.
Any speculation why the OS was overloaded and with what?
Sounds like it could be a file system mini-filter or legacy filter driver. You can query the FltMgr and check for attached mini-filters. Open an Administrators prompt after connecting the USB HDD and type:
Thanks for reply. There is also another weird thing happening. Periodically I get the "Autoplay" running for no apparent reason. I have not looked at it in any details, since it always happen when I do develpment. Than I do not want to futz with it then. What really bugs me - after total power down the original disk name will be back. But it makes me nervous because the first time this happend it never came back with the original drive. But it definetly affects USB devices only. I'll have to learn more about USB.
What you are describing would be consistent with my previous post. Many USB disks have an auto-play INF that installs device drivers for encryption or other purposes. I *highly* recommend that you disable auto-play.
The reason your auto-play prompts you randomly is probably because; 1.) have auto-play enabled and 2.) one of your disk devices is becoming detached/attached. When the hardware arrival event fires auto-play will probably prompt you if you have it configured in this way.
The reason your USB disk device is randomly attaching/detaching could range from faulty USB connector... all the way to driver conflict. In the past I have seen this happen when a security product would scan for USB devices.