Todo el mundo sabe que es fácil desarrollar una prueba de concepto para un dispositivo integrado en un rasbperry pi o incluso una PC, aunque cuando se trata de elegir un microprocesador para su producto, es difícil asegurarse de que su elección permita que su concepto funcione óptimamente
Actualmente tengo un proyecto de transmisión de medios que funciona con éxito en la frambuesa pi, aunque la pi es demasiado grande y voluminosa para que sea adecuada como dispositivo final. También se afirma que el dispositivo final es personalizado. Me cuesta encontrar confianza en los procesadores que puedo usar.
¿Cuál es un buen proceso para descubrir si un procesador es lo suficientemente potente como para ejecutar mi aplicación?
Básicamente mis requisitos son:
- Host USB o pila TCP / IP incorporada para operación WiFi
- Protocolo de medios I2S / PCM
- I2C para configuración periférica
Encontrar chips con esas propiedades es muy simple. Sinceramente, no podría ser más simple. El problema es saber si el chip es lo suficientemente rápido, de procesamiento y de operación.
He examinado bastante el LPC4337 y siento que sería adecuado, aunque el entorno de desarrollo me está causando muchos problemas, por eso todavía estoy mirando a mi alrededor, lo que me llevó al CC3200 de Texas Instruments. , aunque ese controlador solo funciona a 80 MHz y no estoy seguro de si será lo suficientemente fuerte para la transmisión de medios en tiempo real.
¿Cuáles son algunos pasos para asegurarse de que un procesador sea lo suficientemente rápido para mi aplicación? ¿Cómo sé si un procesador de 80 MHz será lo suficientemente bueno o necesito algo del orden de 204 MHz o incluso más?
Respuestas:
Depende de qué tan seguro deba estar. Trabajo en la industria espacial y esto normalmente se logra a través de lo que llamamos "presupuestos de CPU, RAM, ROM". Un presupuesto, ya sea el costo de la masa de energía o cualquier otra cosa, está desglosando su proceso en elementos manejables que puede cuantificar y resumir todos para obtener la demanda general. Luego, toma un factor de seguridad que depende de la madurez de su proyecto, disminuyendo con el tiempo para dar cuenta del crecimiento de la demanda. Al principio, depende en gran medida de la experiencia y luego se refina con el tiempo a medida que se seleccionan las tecnologías.
Lo anterior es extremadamente difícil de determinar con precisión cuándo se inician los planificadores, tan pronto como tenga hilos (a menos que los hilos se asignen manualmente a los núcleos) y los sistemas operativos. Debería ser manejable para códigos simples de microcontroladores, pero ¿vale la pena para su aplicación?
Esta es solo mi participación: aunque diseño sistemas integrados, no he sido responsable de esos presupuestos particulares (que son insumos para mí), y en realidad estoy muy interesado en conocer las historias de expertos sobre eso.
Anexo: Con los sistemas en tiempo real, generalmente es más fácil evaluar la adecuación del sistema a la tarea a través del tiempo de muestreo máximo que depende de la latencia / demoras en la transmisión de la información a lo largo del flujo de trabajo, y el tiempo máximo que toma cada uno muestra de tarea.
fuente
avrdude
puede proporcionar estimaciones de cuánta RAM toman las variables globales, pero debe ejecutarla con la opción de ejecución en seco porque es fundamentalmente una herramienta de carga.Voy a simplificar su pregunta a "¿Cómo averiguar si un microprocesador es lo suficientemente rápido "?
Debe identificar el proceso / procedimiento que requiere el tiempo de ejecución más rápido. Si su procesador puede ejecutar las instrucciones requeridas en el tiempo dado, o menos, entonces es lo suficientemente rápido.
Veamos un ejemplo: su requisito más rápido es procesar una pérdida de interrupción de energía ; esto requiere que se ejecuten 10,000 instrucciones en 10 milisegundos. Necesitará una CPU con al menos 1 MIP. Para convertir esto a "MHz", necesita saber la cantidad de ciclos de reloj por instrucción (cci). Supongamos que son 10 cci, su CPU necesitaría funcionar a 10 MHz o más rápido.
fuente
Si está buscando reducir el costo de la lista de materiales, a veces esos fabricantes de Shenzhen tienen algunas ofertas sorprendentes. Un ejemplo: Allwinner A10 tiene más poder de cómputo y opciones de conexión que Raspberry Pi, pero probablemente será más barato si se usa en su diseño. Si está buscando el mismo costo que el Pi, el Allwinner A31s es 6-8 veces más potente.
fuente