5 votos

C++ en sistemas Electrónicos incorporados - Literatura

Recientemente, hemos estado hablando sobre el uso de C++ en la (pequeña) sistemas embebidos. Como todos los ejemplos de controlador de vendedores que he visto en el pasado están adaptadas para el uso de C esto es básicamente lo que hemos estado usando.

Me gustaría saber si hay alguna literatura que me inició en esta área. Básicamente sé C en los Microcontroladores y C++ en PC "normal" ambientes. Sin embargo, me gustaría saber más ¿cómo puedo asignar correctamente los registros a mis clases (o al revés), y cómo lidiar con las interrupciones (o si hay algo en especial que necesita saber), que las partes de C++ que se puede usar (yo probable que desee para tratar de mantenerse alejado de administración de memoria dinámica, plantillas o excepciones) y así sucesivamente. Yo NO estoy en busca de un general C++ inicio.

5voto

D. Barnes Puntos 41

Ver Eficaz de C++ en un Entorno integrado por C++ Gurú Scott Meyers. No es un libro, sino un conjunto de anotadas de la presentación de diapositivas que muestran muchos de C++ patrones específicos para el uso de C++ en sistemas embebidos y un poco de sabiduría en lo que no debe hacer.

También me encanta el papel de C++ Hardware de Registro de Acceso Redux por Ken Smith. Se muestra cómo se puede utilizar plantillas de C++ metaprogramación para siempre en tiempo de compilación de la aplicación de ciertos registrar las políticas de acceso como solo lectura/lectura y escritura/escritura solamente.

También hubo un gran artículo en el embedded.com discutir manejo de la interrupción en C++, pero parece embedded.com no es más. Compruebe la wayback machine para una posible copia en la caché.

El Arduino es también una API de C++, por lo que es un buen ejemplo práctico de uso de C++ para sistemas embebidos.

Otro gran recurso es STM32PLUS - UNA Biblioteca de C++ para STM32 Desarrollo de Andy Browne. De código abierto y un montón de buena información en su blog.

4voto

Dave Puntos 91

Tal vez intente esto: Christopher Kormanyos, "en Tiempo Real en C++ Eficiente Orientada a Objetos y de la Plantilla de Programación de Microcontroladores", Springer Verlag, 2013. He terminado un par de semanas atrás (sobre todo leer antes de acostarse), y el material era lo suficientemente interesante que voy a hacer una segunda pasada - quiero ver cual de las técnicas que se describen a trabajar para mí, en mi entorno, así que probablemente voy a tratar de convertir algunos de mis pequeños AVR C proyectos en C++ como voy.

Si este tiene usted interesado: el libro de la página en Springer.com ha Pdf para descargar para la tabla de contenido, prólogo y un total de la muestra capítulo (el Capítulo 7, "Acceso a Microcotroller Registros" - a pesar de que no es mi favorito capítulo), y el autor mantiene un Repositorio en Github con la muestra de referencia o proyectos.

2voto

Fu86 Puntos 208

Ooof. Tendría que escuchar una muy buena razón práctica detrás de por qué las características de C++ ningún sentido para el microcontrolador a nivel de proyectos, con el fin de justificar el gasto de la lengua. Sin embargo, creo que lo que podría servir mejor a usted aquí es comenzar por la revisión de la junta paquete de apoyo de cualquier chip de proveedor. Por ejemplo, echa un vistazo a los gcc bibliotecas suministradas por TI/Atmel/Microchip para sus dispositivos. En esas bibliotecas, el vendedor se encargará de asignar registro de direcciones a nombres descriptivos (como PORTB o SREG, etc). Esto le dará una idea de cómo hacer su propio o modificarlo (en caso necesario) en cualquier otro idioma. Aunque, usted probablemente no tendrá que hacer mucho modificación de estos y simplemente podría incluir el uso de extern "C" {}.

En segundo lugar, es posible que desee leer en el chip del proveedor o compilador gcc extensión para tener una idea de cómo se asignan ISRs (interrupciones) a las llamadas de función. A menudo, esto también se hace en el BSP, o de lo contrario van a utilizar algunos no estándar de sintaxis de que sólo su compilador puede analizar.

Por último, si usted está convencido de C++ es el camino a seguir, echa un vistazo a algunas patrón de diseño de material como una forma de establecer reglas para usted y su equipo. Esto le ayudará a construir su software en la peligrosa selva, que es C++, y tal vez de maximizar su valor. Uno de los recursos que funcionó bien para mí es Head First Design patterns.

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