USB device driver development

Reading time: 2 – 4 minutes

Fa uns dies us vaig explicar un problemilla que tenia al accedir als registres d’un CMOS, com ja sabeu vaig poder solucionar el problema. Doncs bé, ara necessito que el que feia amb l’eina de debugging que porta el software del CMOS ho fassi amb codi ‘meu’, és a dir, necessito escriure codi que em permeti accedir al CMOS d’Omnivision a través d’USB. Per tant, com sempre li he preguntat al google a veure que me’n deia.

Així he arribat fins a un software per: Win, Solaris i Linux per desenvolupar drivers de forma ràpida per USB. Té tota la pinta que amb aquest programa resoldré el problema de forma ràpida però de moment no l’he pogut provar. Espero poder-ho fer aquest cap de setmana. De moment us explico una mica el que fa:

WinDriver USB for Windows:

WinDriver™ USB for Windows automates and simplifies the development of user mode Windows USB device drivers and hardware control applications for USB peripheral devices. No DDK knowledge or kernel level programming required. (For PCI support see WinDriver Windows).

Including powerful tools for hardware diagnostics, automatic driver code generation, and driver debugging, as well as intuitive hardware access API, WinDriver provides a complete solution for creating high performance drivers and custom hardware access applications, thereby enabling you to focus on your driver’s added-value functionality, instead of on your operating system internals.

Algunes coses interessants que fa són:

  • Desenvolupament en mode usuari: no cal tenir coneixement de DDK, ETK, DDI o qualsevol altre coneixement de programació a nivell de sistema.
  • Permet desenvolupar drivers per múltiples plataformes: compatibilitat binaria Windows 98/Me/NT/2000/XP/XP Embedded /Server 2003, compatibilitat de codi Windows/Linux/Windows CE.NET.
  • Temps de desenvolupament molt ràpid.

Les prestacions del software estan prou bé:

  • Assistent per: verificar el hardware, treure diagnostics del mateix, genració de codi automàtica, depurar el driver i tot a través d’una interficie gràfica.
  • Accés inmediat al hardware: provar el hardware a través d’una interficie gràfica i del mode usuari, sense accés directa a sistema, tot això sense escriure una línia de codi.
  • Generador de codi: l’assistent és capaç de generar l’esquelet del driver a nivell de codi pel cada dispositiu en Visual Studio, Visual Basic i Delphi.
  • Generador de fitxers INF: també és capaç de crear el fitxer .inf i autoinstal·lar-lo.
  • Suport específic d’alguns fabricants: Cypress, National Semicondutor i Atmel.
  • Debugging dels drivers: s’inclou una eina de debuggin en temps real.
  • Suport especial per dispositius HID: es poden desenvolupar drivers HID sense haver d’accedir al kernel a través dels drivers.