Estoy estudiando el desarrollo de un hardware compuesto de módulos, inicialmente pensé en un bus serie como ICSP, I2C o incluso CAM para comunicarme entre módulos, pero me pregunto si no podría usar un ram en común entre procesos para cree búferes circulares para cada módulo y sus estructuras de datos serializados, por lo que los módulos estarían presentes a través de espacios reservados para identificarlos y cada búfer circular se definiría de acuerdo con la presencia del módulo.
Estos módulos serían, por ejemplo, un GPS controlado por un Cortex-M0 (existiendo una alternativa a un ESP8266 A7), un ESP8266 A6 se usaría para la comunicación celular y otro para la comunicación WiFi, por lo que el módulo GPS depositando en su memoria intermedia los datos recopilados y el GPS preprocesado, los otros módulos inalámbricos también mantendrían la comunicación a través de sus memorias intermedias en esta memoria RAM, con pináculos conectados a la corteza central-M que activan alertas ISR cuando se escuchan casos de emergencia que deben ser priorizado.
Bueno, la gran pregunta es cómo usar una memoria RAM compartida entre estos módulos. Sé que hay chips de línea Cortex-M que permiten tales características, pero ¿habría tal posibilidad con el ESP8266?
Suponiendo dos escenarios:
Una primera en la que todos los módulos se basarían en Cortex-M, eligiendo los más adecuados para trabajar, respectivamente, la recopilación de datos GPS, la comunicación GSM / GPRS y la comunicación WiFi / BlueTooth, y finalmente un módulo central de procesamiento y registro a través de la tarjeta SD.
Y un segundo módulo tiene esta mezcla entre Cortex-M y ESP8266, con ESP8266 responsable de la comunicación inalámbrica y por GPS, y Cortex-M para el procesamiento central y el registro de datos.
¿Cuáles serían los modelos Cortex-M disponibles para usar con memoria RAM externa, cómo adaptar el ESP8266 para tal uso? Y, por supuesto, ¿qué RAM externa podría utilizarse?