¿Cómo saber si he codificado correctamente un microcontrolador? Si no lo hice, ¿cómo puedo saber dónde puedo aprender qué puedo hacer en él?

La “corrección” es un objetivo mucho más resbaladizo de lo que cabría esperar. Mi respuesta corta es que necesita probar el código contra sus requisitos. La prueba de un “sistema” de microcontroladores puede requerir una infraestructura complicada, como los analizadores lógicos, para que pueda ver el tiempo de las señales. Diseñar las pruebas puede ser tan complicado como diseñar el código, pero supongo que tenía un conjunto detallado de requisitos que su código debía satisfacer. A falta de requisitos detallados, probablemente solo pruebe el código en el contexto del sistema para el cual fue escrito y vea si parece funcionar. Si algo funciona mal, tú y el diseñador de hardware pueden tener una lucha de lucha libre para decidir de quién es el problema (y prefiero no involucrarme con eso …). La calidad del código para el “firmware” del microcontrolador a menudo es decepcionantemente baja y la dificultad de probarlo adecuadamente es una de las principales razones.

A menudo se habla de métodos formales para verificar (“probar”) la corrección, pero, que yo sepa, eso no se ve comúnmente en la práctica en el mundo real.