Open vazeri opened 6 years ago
Se ha creado una solución para el atmega 328p en 0358081 para atmel studio 7.0 para iniciar el Port de C++ a C, se ha solucionado el problema del flasheo del programa desactivando la función de flasheo
relevante, el consenso general es no convertir manualmente de C++ a C pues no ofrece ningún beneficio
https://stackoverflow.com/questions/297122/what-should-i-keep-in-mind-when-porting-from-c-to-c
https://stackoverflow.com/questions/737257/how-to-convert-c-code-to-c
https://www.quora.com/Can-we-convert-c++-program-to-c-language
Los precompiladores automaticos previamente publicados aqui, genran un codigo imposible de debuggear.
La mayor parte de las funciones tienen su equivalente en C, hay que revisar una por una a detalle
Aun con estos problemas ya he iniciado un port manual de las funciones WSPR par auqe WSPR funcione de manera autónoma,(omitiendo en su totalidad JTEncode)
Aun queda como pendiente probar los compiladores GCC en linux
se han extraído directamente las funciones de los objetos de C++ a C en sin embargo no se ha iniciado el proceso de verificación de librerías compatibles ni de debugeo del programa, de momento es solo un boceto aproximado https://github.com/vazeri/JTEncode/commit/b88965e47a097e54ef40308719dd7dddb4348413 lo que sigue es un proceso de conversion manual linea por linea de todo el programa
Al ser una característica opcional, de momento he decidido parar el desarrollo para trabajar directamente en C++ debido a que es irrelevante el lenguaje una vez compilado en hexadecimal, sin embargo, creare un fork alterno para continuar la implementación en C++ dejando el master en el proyecto con el proyecto preparado para su port en C utilizando Atmel Studio
entiendo que el enfoque a POO puede ser confuso y es mejor aplicar un paradigma de Programación por procedimientos, sin embargo el hacer un port, a C garantizaria que se generen errores que no existen y estariamos modificando algo que no tiene ningun problema
Citado del correo original de Juan
Se puede realizar de forma automatizada la compilación de C++ a C utilizando
http://www.comeaucomputing.com
Sin embargo tiene de fecha 2013, por lo que reportare los resultados en cuanto lo pruebe, de otra manera la conversión debe ser manual y podría tomar bastante tiempo
Otra alternativa es revisar la POSIBLE implementación de gcc, gcc-arm, arm-cc o iar en linux una máquina virtual o incluso un servidor E2C de AWS