¿Qué API para Cortex-M (STM32) se usan comúnmente? [cerrado]

0

Me interesa saber qué paquetes de software se usan comúnmente en la industria para ARM Cortex-M. Por ejemplo, cuáles de ellos se utilizan en proyectos reales. ¿Qué tan común es escribir la propia API y qué no incluye dicha API creada internamente?

Además, me interesa saber si el HAL-Library / Cube de ST es realmente una cosa.

Mis intereses especiales son: CMSIS & STM HAL

Proporcione también más información sobre el costo del paquete CMSIS. Pensé que era gratis y encontré esto:

  

Licencia
  El CMSIS se proporciona de forma gratuita por ARM bajo la licencia Apache 2.0. Ver la licencia de Apache 2.0.

¿Se aplica esto a todos los módulos del paquete CMSIS o hay alguna limitación?

    
pregunta Felix Crazzolara

3 respuestas

2

Algunas personas hacen su propio rollo, son dueños de él, lo controlan, son responsables de ello, es el tamaño y la forma que desean. Muchos pros, los contras son que tienes que resolver el problema.

Los proveedores de chips que quieran estar en el negocio proporcionarán algo de alguna forma, lo que es lo que hay que hacer, etc. ARM está saltando con CMSIS para tratar de ayudar si llama a esa ayuda. Estas bibliotecas y la ayuda de los proveedores de chips, incluso pagando a los proveedores de chips de alguna manera para modificar / agregar cosas a sus bibliotecas, pueden suceder. Por lo tanto, también se utilizan en la industria, puede comenzar a funcionar más rápido, pero no escribió el código, por lo que existe cierta confianza allí. Cuando su jefe tiene que desechar 40,000 unidades debido a un error, a él / ella no le importará que no esté en su código, fue su responsabilidad, por lo que al menos debería leer todo ese código y poseerlo. O apostar. Pero a veces se puede poner en funcionamiento más rápido y, a veces, el código lo escribe un ingeniero de nivel medio a alto en esa empresa en lugar del interno que se quedó con él (he visto un código perturbador en las bibliotecas de proveedores).

Al igual que los proveedores, los departamentos de marketing cambiarán los logotipos o nombres de familias de productos, etc. Las bibliotecas cambian los nombres y se reemplazan al por mayor. Sin duda, la cuestión de CMSIS es echar a perder todas las soluciones de los proveedores basados en el brazo que probablemente causen una repetición.

Por lo tanto, el código que no escribió y no posee, probablemente tendrá una vida útil limitada y soporte por parte del proveedor por varias razones. Idealmente, con un producto como este que está bien, escribes el código, lo pones en funcionamiento y entras en la producción en masa y nunca más lo tocas.

En general, estas partes son realmente fáciles de programar si usted las saca, a veces es más fácil que tratar de averiguar cómo usar la biblioteca de proveedores, otras veces no. Le recomiendo que pruebe todas las soluciones disponibles para el producto en cuestión y averigüe qué le conviene personal / profesionalmente. Y cada tantos años repiten el experimento. Las partes principales tienen bibliotecas más antiguas, cosas de cubos, cosas de cmsis, una nueva biblioteca y algunas están soportadas por mbed, y luego está el texto que se acaba de leer y marcar algunos registros. Intenta tantos como puedas tolerar. ¿Qué tan fácil fue ponerse en marcha, qué tan voluminoso es el binario? ¿Tuvo que usar una parte más costosa en su proyecto debido al equipaje de la biblioteca? ¿Tuvo que quemar más NRE porque rodó el suyo? quema más NRE porque no has hecho el tuyo?

No hay una respuesta correcta aquí. En cuanto a lo que se hace en "la industria", casi todo lo que se pueda imaginar. El costo puede llevarlo en diferentes direcciones, exprimir cada instrucción de ese binario para ahorrar unos centavos usando el flash más pequeño u otra parte. El costo también puede impulsar el cronograma, hacerlo, guardar el NRE, incluso si cuesta unos centavos por pieza.

Y sí, este es un tema muy religioso, y puede que me llamen la atención, entrarás en trabajos donde se realiza de una manera y de una manera solamente, o trabajos donde se te da libertad (hasta que cagues), así que periódicamente Pruebe las soluciones que no está utilizando de forma personal o profesional de vez en cuando, en caso de que ingrese un nuevo administrador o tenga que cambiar de trabajo o descubra que la próxima nueva solución de ghee whiz de ese proveedor es mucho mejor de lo que ha estado haciendo fecha. Todas las soluciones son correctas e incorrectas según con quién estés hablando.

    
respondido por el old_timer
1
  

¿Qué API para Cortex-M (STM32) se usa comúnmente?

Dependiendo de su definición de "API", en las grandes empresas, suele haber un "entorno corporativo" o varias instancias de "entorno corporativo" donde se utilizan "bibliotecas internas".

Por lo demás, a menudo se utilizan bibliotecas de proveedores, tanto de proveedores de cadenas de herramientas como de proveedores de silicio / IP. CMSIS y bibliotecas asociadas por ejemplo. He visto bastantes casos en los que se utilizó CMSIS-DSP.

Keil ofrece RTP para usuarios de la versión 5.x, y parece estar recibiendo algo de tracción. Otros también tienen enfoques similares.

En el caso de STM32, no me sorprendería si hubiera varias versiones de bibliotecas OEM. Soy un usuario de SPL, aumentado por mi propio middleware. También hay HAL.

Luego hay "bibliotecas" genéricas, como gráficos, LCD, etc.

Es difícil ser más específico cuando tu pregunta es tan genérica.

    
respondido por el dannyf
0

Cuando usaste la palabra "industria", debes explicar más sobre tu definición, Si está hablando de industrias críticas de alta seguridad (por ejemplo, automotriz, médica, aeronáutica, etc.) Como sé, los códigos deben estar escritos en base a estándares de seguridad relacionados (por ejemplo, SIL4 para automoción, MISRA C, etc.) y cada plantilla de alto nivel. La API utilizada debe obtener estos certificados antes y, como sé SPL, HAL no tiene ninguna certificación en esta área, entonces creo que los pueblos de estas industrias escribieron su programa a nivel de registro. Para otras áreas no críticas como la electrónica de consumo, para ahorrar tiempo en el proceso de R & D, por lo general, estas API de alto nivel se utilizan para acelerar el proceso y preparar productos de muestra. Después de esta etapa, algunas veces los códigos se modificarán y alterarán con funciones puras o basadas en registros. .

    
respondido por el Mahmoud Hosseinipour

Lea otras preguntas en las etiquetas