Programación de microcontroladores? ¿Lee sobre TDD o simplemente está cansado de buscar errores y reescribir el código nuevamente?
Amigo, prueba las pruebas.
Este artículo mostrará cómo integrar Ceedling en Eclipse / SW4STM32 para que el código pase por las pruebas durante cada compilación.
¿Qué me llevó a escribir un artículo?No pude encontrar instrucciones detalladas, pero no pude seguir las instrucciones encontradas, debido a su contenido superficial u obsoleto (por ejemplo, el comando rake ya no ejecuta el ceedling).
Las instrucciones para integrar ceedling en eclipse de los desarrolladores son muy escasas y la única instrucción encontrada fue pagada (esta fue la gota que colmó el vaso):

Instalación
Por ejemplo, SO Windows, CubeMX y SW4STM32.
Instalar chocolateyAbra PowerShell.exe y ejecute:
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Instalar MinGWAbra PowerShell.exe y ejecute:
choco install mingw
Instalar rubyAbra PowerShell.exe y ejecute:
choco install ruby
Instalar geed ceedlingReiniciar PowerShell!
Abra PowerShell.exe y ejecute:
gem install ceedling
Control de saludAbra PowerShell.exe y ejecute:
cd /
ceedling new test_ceedling
cd test_ceedling
ceedling test:all

Creación de proyectos
Crea un proyecto usando CubeMXCree un proyecto en CubeMX en toolchain / ide
SW4STM32.Ejecute CubeMX en nombre del administrador para crear un proyecto en el directorio C: /
Estructura de la aplicación -> avanzada (de lo contrario, el proyecto no se recopila de inmediato).

Inicializamos el ceedling en el proyecto:
cd /
ceedling new test_ceedling
Creemos la siguiente estructura y c./h en el proyecto. archivos, agregue las rutas a project.yml:

Agregar ubicación de origen e incluye Crea un nuevo generador:

Argumentos -> prueba: todos

Lanzamiento
Cree otra ventana de consola para pruebas:

Cámbielo para mostrar los resultados del constructor de Ceedling:

Presione ctrl + B y vea los resultados de la prueba en la consola:

Agregar periféricos
A menudo, el resultado de una función depende de componentes externos.
Además de la herramienta de generación de pruebas, Unity, Ceedling admite CMock, un generador de objetos simulados y trozos.
Imagine que nuestra calculadora al calcular la diferencia,
a - b
Si se presiona el botón, se considera de manera diferente.
b - a
Entonces, en este caso, nuestras pruebas pueden verse así:

La función de verificación de clic de botón ha sido declarada pero no implementada (no escrita).
Presione ctrl + B y vea los resultados de la prueba en la consola:

En este caso, creamos una imitación de un botón, en lugar del cual puede haber UART, SPI, I2C, etc.
Conclusión
Ahora, con cada conjunto de aplicaciones a la derecha en la esquina, puede observar el resultado de las pruebas realizadas:
