Ayuda con CMSIS.

632 views
Skip to first unread message

Mauro Antivero

unread,
Feb 23, 2012, 11:56:09 PM2/23/12
to embeb...@googlegroups.com
Retomando un poco mis lecturas para aprender a programar uCs con n�cleo
Cortex M3 me encuentro con que todav�a sigo sin entender qu� es la CMSIS?

Veo por ejemplo que en la p�gina del LPCXpresso 1769 hay ejemplos CMSIS
y No CMSIS.

Se que esto es fundamental, pero justamente como no lo entiendo me
cuesta mucho seguir.

Alguien me podr�a explicar o mejor, recomendar alguna lectura para poder
entenderlo? Qu� es la CMSIS (adem�s de "Cortex Microcontroller Software
Interface Standard") y para qu� sirve? Tengo entendido que es una capa
de abstracci�n, pero c�mo?

Las p�ginas que estuve mirando son estas:

http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php

http://www.onarm.com/cmsis/

http://www.doulos.com/knowhow/arm/CMSIS/

Saludos y muchas gracias.

Mauro.

Alejandro Celery

unread,
Feb 24, 2012, 5:39:42 AM2/24/12
to embeb...@googlegroups.com

Es un estandar, nada mas. Le dice a los fabricantes como deben hacer sus librerias de drivers. Tambien tiene algunas funciones provistas por ARM para acceder a los perifericos del core, que son los mismos en todas las implementaciones.

Saludos!

El feb 24, 2012 1:56 a.m., "Mauro Antivero" <mauro.a...@gmail.com> escribió:
Retomando un poco mis lecturas para aprender a programar uCs con núcleo Cortex M3 me encuentro con que todavía sigo sin entender qué es la CMSIS?

Veo por ejemplo que en la página del LPCXpresso 1769 hay ejemplos CMSIS y No CMSIS.


Se que esto es fundamental, pero justamente como no lo entiendo me cuesta mucho seguir.

Alguien me podría explicar o mejor, recomendar alguna lectura para poder entenderlo? Qué es la CMSIS (además de "Cortex Microcontroller Software Interface Standard") y para qué sirve? Tengo entendido que es una capa de abstracción, pero cómo?

Las páginas que estuve mirando son estas:

Mauro Antivero

unread,
Feb 24, 2012, 6:19:59 AM2/24/12
to embeb...@googlegroups.com
El 24/02/12 07:39, Alejandro Celery escribió:

Es un estandar, nada mas. Le dice a los fabricantes como deben hacer sus librerias de drivers. Tambien tiene algunas funciones provistas por ARM para acceder a los perifericos del core, que son los mismos en todas las implementaciones.

Saludos!

Mmm... Eso es lo que me confunde? Dice por ejemplo como acceder a los periféricos? (GPIO, ADC, etc.) O eso lo hace cada fabricante de un modo particular? (creo que es así en base a lo que vi para el LPC1769 y el ST32F100).

A qué se refiere en la página del LPCXpresso cuando da ejemplos "CMSIS" y "No CMSIS"? Tengo que ponerme a entender la CMSIS o no?

Alejandro Celery

unread,
Feb 24, 2012, 7:02:35 AM2/24/12
to embeb...@googlegroups.com
No, solo dice "llame a sus funciones as�, a sus archivos as�...".
No hay mucho que entender, dale una mirada al .html que viene en los
proyectos del lpcxpresso.

Me parece que ten�s que cuestionarte menos y tirarte al agua, en cuanto
hagas algunas cosas por tu cuenta se te van a ir aclarando todas las dudas.

Saludos!

El 24/02/2012 08:19 a.m., Mauro Antivero escribi�:


> Mmm... Eso es lo que me confunde? Dice por ejemplo como acceder a los

> perif�ricos? (GPIO, ADC, etc.) O eso lo hace cada fabricante de un
> modo particular? (creo que es as� en base a lo que vi para el LPC1769
> y el ST32F100).
>
> A qu� se refiere en la p�gina del LPCXpresso cuando da ejemplos

> "CMSIS" y "No CMSIS"? Tengo que ponerme a entender la CMSIS o no?


--
Alejandro Celery,
Laboratorio de Sistemas Embebidos,
Facultad de Ingenier�a - UBA.
http://laboratorios.fi.uba.ar/lse

Roberto A. Dhios

unread,
Feb 24, 2012, 6:38:50 AM2/24/12
to embeb...@googlegroups.com
La CMSIS es una HAL (Hardware Abstraction Layer). Sirve para hacerte
la vida mas facil al configurar y utilizar los perifericos. Ademas es
un estandar para todos los licenciatarios del core de ARM.

Saludos
Roberto


On 2/24/12, Mauro Antivero <mauro.a...@gmail.com> wrote:
> Retomando un poco mis lecturas para aprender a programar uCs con núcleo
> Cortex M3 me encuentro con que todavía sigo sin entender qué es la CMSIS?
>
> Veo por ejemplo que en la página del LPCXpresso 1769 hay ejemplos CMSIS


> y No CMSIS.
>
> Se que esto es fundamental, pero justamente como no lo entiendo me
> cuesta mucho seguir.
>

> Alguien me podría explicar o mejor, recomendar alguna lectura para poder
> entenderlo? Qué es la CMSIS (además de "Cortex Microcontroller Software
> Interface Standard") y para qué sirve? Tengo entendido que es una capa
> de abstracción, pero cómo?
>
> Las páginas que estuve mirando son estas:

--
Sent from my mobile device

Roberto A. Dhios
rad...@computer.org
gtalk,yahoo,twitter,skype: radhios
msn: bobd...@hotmail.com

Mauro Antivero

unread,
Feb 24, 2012, 7:08:56 AM2/24/12
to embeb...@googlegroups.com
El 24/02/12 09:02, Alejandro Celery escribi�:

> No, solo dice "llame a sus funciones as�, a sus archivos as�...".
> No hay mucho que entender, dale una mirada al .html que viene en los
> proyectos del lpcxpresso.
>
> Me parece que ten�s que cuestionarte menos y tirarte al agua, en
> cuanto hagas algunas cosas por tu cuenta se te van a ir aclarando
> todas las dudas.
>
Si, es verdad, pasa que es un mar muy grande jajaja.

A la tarde sigo probando.

Saludos, Mauro.

Alejandro Celery

unread,
Feb 24, 2012, 7:12:11 AM2/24/12
to embeb...@googlegroups.com
Hacele caso a un bol... agarr� ejemplos y dale para adelante. Si no te
orient�s, empez� por ver como se hacen las cosas ya hechas y and�
desmenuzando, no es tan dif�cil como parece.

Saludos!

El 24/02/2012 09:08 a.m., Mauro Antivero escribi�:

Carlos Pantelides

unread,
Feb 24, 2012, 8:50:42 AM2/24/12
to embeb...@googlegroups.com
Desde mi profunda ignorancia, poniendome en el lugar de Mauro, por favor confirmenme por un lado si esto esto está bien y por el otro si te ayuda, Mauro:

Es una capa de software para acceder de modo uniforme a los mismos dispositivos independientemente de como haya que hacerlo realmente. Es responsabilidad del fabricante que, por ejemplo, ADC_01_init(params) (función o macro que acabo de inventar) inicialice el segundo adc, ya sea en un stellaris o en un lcp, de modo tal que tú, programador no tengas que investigar, comprender e implementar como hacerlo para cada kit o modelo de adc. Con sólo comprender un adc genérico y el significado de los parámetros, debería alcanzar.

Además, tu código es mucho más portable, pues al cambiar de kit con recompilar y quizas ajustar los parámetros debería andar igual.
 
Carlos Pantelides
-----------------
http://seguridad-agile.blogspot.com/


Mauro Antivero

unread,
Feb 25, 2012, 3:36:28 PM2/25/12
to embeb...@googlegroups.com
El 24/02/12 10:50, Carlos Pantelides escribió:
Gracias a todos por sus respuestas.

Pero lo que me queda la duda es esto:

La CMSIS, es más que nada para que el fabricante haga sus librerías verdad? No para que nosotros (usuarios, no desarrolladores de un micro en particular) podamos acceder a los distintos periféricos, ya que eso se hace usando las librerías que cada fabricante te da.

Cuando empecé con todo esto, desde mi profunda ignorancia, pensaba que la CMSIS era una librería para USAR los periféricos (osea nosotros como desarrolladores de un proyecto) que hacía que sea lo mismo cualquiera sea el micro elegido.

Entienden mi confusión?

Parece entonces que tal como me dicen me tengo que tirar más a la pileta y eso es lo que voy a hacer, pasa que antes quería ver que el agua no esté tan fría :P

Gente, en serio gracias.

Saludos!

Mauro.

Ricardo Malerba

unread,
Feb 25, 2012, 5:36:13 PM2/25/12
to embeb...@googlegroups.com
Hola, estas medio confundido. 

CMSIS, como bien dice ARM es una interfaz estándar de software independiente del fabricante del micro que permite acceder a los periféricos del  mismo. Esto permite reducir el tempo de aprendizaje de una familia en particular. Esa es la definición ahora, ningún fabricante esta obligado a hacerlo aunque es conveniente hacerla porque le haces la vida más fácil a los usuarios y por ende vas a vender más micros. Segundo vos como usuario tampoco tenes la obligación de usarla pero si no queres pelear con registros, bits, configuraciones, etc, etc te conviene usarla. 


Con respecto a que si es HAL nose, me queda la duda ya que la veo de bastante bajo nivel, es mi opinión.

Saludos !


--
Ricardo Malerba

Alejandro Celery

unread,
Feb 25, 2012, 5:39:21 PM2/25/12
to embeb...@googlegroups.com
Remedio más simple: Agarrá un micro, su librería de drivers y olvidate que existe CMSIS!
Lo importante ahora no es que entiendas los porqués sino que seas productivo con la plataforma que elegiste. Una vez que tengas rodaje te vas a dar cuenta solo de como son las cosas.
-- 
Alejandro Celery,
Laboratorio de Sistemas Embebidos,
Facultad de Ingeniería - UBA.
http://laboratorios.fi.uba.ar/lse
Reply all
Reply to author
Forward
0 new messages