HOla. Llevo 2 semanas en una empresa y ya me ha tocado el premio gordo. Se supone que iba a estar en formación unos meses, y ya me han asignado un trabajillo. Quieren que modifique un programa (ccloader) para que en vez de grabar ATA's desde un grabador , lo pueda hacer desde cualquier ordenador que tenga un puerto PCMCIA. Me han dado el código fuente del ccloader el cuál es incomprensible, y un montón de información que no me sirve de mucho.
Aquí les pongo lo que me dejó escrito el chico que estaba con ésto antes que yo.Si alguien tiene algún consejo, le estaría eternamente agradecido.
La propuesta original de sustitución de las llamadas a las librerías se basa en el uso de una versión del comando “dd” de Unix.
El comando “dd” (conocido jocosamente como “delete data”) se utiliza en Unix para la copia y conversión a bajo nivel de ficheros. Es ideal para crear imágenes de particiones, CDs. El modo de trabajo consiste es especificar nombres de fichero/dispositivo de entrada y salida, el tamaño de bloque de transferencia, número de bloques… Existen versiones de este comando para Windows.
El empleo directo de estas versiones para Windows conlleva “conflictos” con el funcionamiento actual del CCloader:
1. El CCloader utiliza servicios de las DLL de Elan como el chequeo de inserción de dispositivo PCMCIA, comprobación del tipo de tarjeta PCMCIA y servicios de cheksum en la transferencia de datos. Todo esto no estaría disponible al usar el comando “dd”.
2. El acceso a las librerías Elan se realiza en el programa a través del módulo “mce_programs”. En este módulo, que es el que habría que modificar para independizarnos de las DLL Elan, las funciones encargadas de la lectura/escritura de tarjetas utilizan entre otros parámetros las direcciones de lectura/escritura en la tarjeta. Éste no es el modo de funcionamiento del “dd”, como ya se ha expuesto. Habría que comprobar la compatibilidad entre el modo de transferencia “en bloque” del “dd” y el acceso “direcciones de comienzo/fin” de Elan.
3. El comando “dd” utiliza para la ruta entrada/salida nombres de fichero/dispositivo. El nombre de unidad asignado a la tarjeta ATA no es fijo; depende de los dispositivos insertados previamente en el ordenador, por ejemplo USBs.
Es claro que el uso directo de sólo el “dd” no permite mantener el mantenimiento de funcionalidad del CCloader. Para la detección del dispositivo PCMCIA insertado y el nombre de unidad asignada al mismo por Windows, el camino más directo es examinar en el programa el registro, en la sección dedicada a los dispositivos de almacenamiento. A este respecto, se han encontrado proyectos ejemplo para Visual C++.
Una posibilidad atractiva es prescindir de la llamada al “dd”. Se han encontrado los códigos fuentes de una implementación del comando en plataforma Windows, de manera que podríamos implementar directamente la transferencia.