12 votos

Control de versiones de diagramas esquemáticos y de código fuente

Estoy desarrollando un dispositivo electrónico que tiene dos partes: el hardware (los esquemas Eagle) y el firmware (código fuente de C++). Me gustaría control de cambios, tanto en código fuente y diagramas esquemáticos, pero hay algunos puntos en los que no estoy seguro de cómo organizar mi trabajo:

  • Para el código fuente definitivamente, me gustaría utilizar Git. Pero son esquemas que vale la pena el control de versiones cuando en realidad son archivos binarios (nueva Águila versiones utilizar algún formato XML, pero no es tan legible por humanos...)?

  • Es buena idea poner las fuentes y esquemas en un repositorio de Git? Es tendría sentido, pero por otro lado mi registro contendrá tanto de software y los cambios de hardware. También el software, puede tener varias ramas, pero hardware probablemente no...

  • Cómo lidiar con revisiones de hardware? Etiqueta de ellos o guardarlos en independiente los directorios?

  • También podría haber algunas dependencias entre la revisión de hardware y firmware versión. Cómo lidiar con ellos?

Podría usted por favor compartir sus mejores prácticas con mí?

19voto

Asmyldof Puntos 9125

La mayoría de que se trata de preferencias personales.

Puedo realizar un seguimiento de todo lo que tengo que hacer para un proyecto en Git. Especialmente desde Git maneja la mayoría de tipos de archivos, incluso binario, lo suficientemente eficiente. (En lugar de la incorporada en Altium SVN sin sentido).

Uno de mis principales razones para ello es que mis clientes no sienten todos Dropbox es lo suficientemente seguro y necesito un sistema de respaldo que pueda acceder todo el mundo, también algunas versiones de contexto en la mayoría de lo que hago. Así que me puse un privado servidor Git y cifrado de copia de seguridad del sistema y funciona de maravilla. Tablas, Esquemas, Código, Documentación, Informes, Manual de Modificaciones, seguimiento de todos.

Yo normalmente crear un Repositorio de Hardware, un Software y una para el Firmware si es un grande, potencialmente larga ejecución del proyecto, pero para los pequeños proyectos de servicio, ejemplos o poco experimentos a menudo me lo puso todo en un repositorio, ya que el caos resultante no será grande.

En Git puede utilizar sub-repositorios así a integrar el Firmware en el Hardware del proyecto o de la otra manera, incluso si son administradas por separado de los repositorios.

Para los proyectos más grandes que yo también es común el uso de seguimiento de fallos de sistemas de seguimiento de problemas y soluciones, de nuevo por HW así como SW, Mantis es un buen uno que se puede utilizar de forma gratuita.

Para revisiones de hardware generar Gerber, o lo que sea, etiquetados con el Git Hash de esa revisión, los Gerber, a continuación, son sólo discretos "anticuado" versionada cosas en carpetas por R01, 02, etc. Puesto que usted no quiere regenerar todo el tiempo, pero son archivos resultantes así que no debería ser versionados en Git sí, realmente (porque su software de diseño debe ser determinista con la generación de la producción de contenido, o de lo contrario ...).

Si hay algo interesante en R01 que no está sucediendo en R02 (o al revés), usted tiene dos Git Hashes con el que usted puede comparar los archivos de código fuente, no se preocupe.

Como nota final, un ejemplo conceptual de un proyecto, tendría un Hardware repositorio, que también alberga un "BoardPinout.h" archivo. Este archivo se incluye como una forma remota de archivos versionados en el Firmware del repositorio, que tiene un par de archivos de definición de interfaz que obtener de forma remota incluido en el repositorio de Software.

Lo que significa que cada vez que le cambio un par de señales sin necesidad de modificar amplia la funcionalidad de la TAREA del proyecto "actualizaciones" de la BoardPinout, que luego puede ser actualizado y utilizado en el Firmware, y así sucesivamente.

5voto

Bash Puntos 1680

1) es definitivamente vale la pena el control de versiones esquemático/archivos de la placa. Incluso si usted no puede realizar un seguimiento de las diferencias tan fácilmente, que tienes una manera de volver a un hardware específico de liberación si usted tiene que trabajar con un viejo revisión del dispositivo.

2) Tenemos la siguiente estructura en nuestro SVN.
/tag
/rama
/trunk/hardware
/trunk/software/firmware

Si se aplica con más sub-carpetas, como tal vez /Firmware /ConfigTool para el software de la placa base y /daughterboard o algo así por hardware.

2) las Etiquetas se crean a partir de sub-carpetas no de todo el tronco, como la Etiqueta/Placa base-v1.2.345. El hardware (es decir, el PCB) siempre contiene el SVN de revisión en la pantalla de seda de la impresión o en cobre para tener una referencia directa.

4) las Dependencias entre el hardware y el firmware puede ser complejo. La OMI no tiene mucho sentido para tratar con él en el repositorio de nivel, salvo dejar comentarios útiles sobre el cometa.
Considere la posibilidad de hardware de codificación de los cambios de uso de repuesto I/O pins. Algo así como la utilización de 4 pines para codificar 16 diferentes versiones de hardware. También hemos utilizado una sola entrada del ADC con diferentes valores de resistencia para codificar las versiones. De esta manera el software puede "saber" en qué tipo de hardware se ejecuta y cambiar/activar/desactivar funciones específicas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X