Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

16/02/2011 #41

Avatar de Unikfriend

Hi Pou,

Son rutinas en C y ASM que se compilan junto con el programa.
Su funcion es administrar el tiempo que el procesador dedica a cada proceso.
display, ethernet,USB,CAN son procesos que normalmente estan activos
y a los que se tiende que atender cuando genera una intrreupcion.
Aqui te paso lo que forma el FreeRTOS.
16/02/2011 #42

Avatar de cosmefulanito04

Lo que te permite un kernel multitasking (osea multitarea) es distribuir el tiempo del uP o uC (segun sea) a las distintas tareas.

Por ej. yo puedo tener 4 tareas distintas (tareas relativamente sencillas):

- Tarea 1: encender y apagar un led.
- Tarea 2: atender el puerto serie.
- Tarea 3: manejar un display.
- Tarea 4: manejar un dispositivo SPI.

El kernel divide el tiempo de uso del uC/P a una cierta base de tiempo, supone 1mSeg. Entonces cada tarea en base a 100mSeg recibira mayor o menor prioridad del uso del uC/P, siguiendo con el ej.:

- Tarea 1 - 10% --> 10 mSeg
- Tarea 2 - 10% --> 10 mSeg
- Tarea 3 - 30% --> 30 mSeg
- Tarea 4 - 50% --> 50 mSeg (esto es lo que normalmente ves en Windows cuando entras en el administrador de tareas)

Entonces cada 100mSeg el ciclo del uP/C comienza de nuevo tarea por tarea y se va repartiendo el tiempo.

Eso es lo que trata de hacer un kernel multitasking, pero obviamente en el medio tenes un monton de despiole, como por ej. encargarte de guardar el contenido de la pila de la tarea anterior y todos sus flags de estado, por lo que tenes punteros (hablando en codigo C) o direcciones (en assembler) por todos lados.
16/02/2011 #43

Avatar de Unikfriend

En cuanto a las IDEs en realidad no tiene mucho que ver todas son diferentes
y sirven para lo mismo, es cuestion de costos jiji.
16/02/2011 #44


Ok, muchas gracias por las respuestas. Rapidas y muy curradas jejej.
17/02/2011 #45


De hecho, hay cada vez más fabricantes o plataformas para programar ARM's gratuitas, la mayoría de las cuales se suelen basar en el WinARM. Así a bote pronto, aparte de CooCox, me viene a la cabeza Ride con ST, por ejemplo.

Lo que si he visto, es que todos los fabricantes escriben sus propios 'drivers' para sus micros ARM, y los puedes encontrar por ejemplo, en las demos que vienen con IAR, con el CooCox (exactamente los mismos archivos .c y .h), con Ride, con Keil, etc.

Las mayores diferencias entre los diferentes IDE's son básicamente dos: la capacidad del compilador de optimizar (el GCC para ARM es realmente excepcional, casi a la altura del de IAR), cosa que para la estructura interna de loa ARM es fácil y por tanto hay pocas diferencias, y luego está el tema de la depuración.

Lo que más cambia, complica, ayuda, importa y valoro, de los IDE, es la parte de depuración. No tanto la capacidad para soportar sistemas HW de depuración en circuito (ICE, generalmente JTAG y TWD para los ARM), si no el soporte para diferentes cosas. Así pues, por ejemplo, el WinAVR es estupendo para depurar todo lo relacionado con periféricos, gracias a su interfaz gráfico con los mismos. Pero para los mismos AVR, cuando el HW y sus periféricos ya funcionan correctamente, es bastante mejor (a mi entender) el IAR, pues permite hacer trazas, plugins para sistemas operativos, y otros tipos de soporte de depuración del programa propiamente dicho, que hacen más fácil encontrar bugs y problemas relacionados propiamente con la aplicación.

El ejemplo más evidente, es la integración del PowerPAC dentro del IAR. En su versión gratuita, las ventanas de depuración y soporte del RTOS ofrecen el tiempo que ha estado activa cada tarea, el stack que parece ser que ocupan, el estado de las mismas, permite poner condiciones de parada (breakpoints) según los diferentes elementos del sistema operativo, permite ver los parámetros operativos de los diferentes componentes (tareas, pila USB, Fat filesystem, TCP/IP), etc. Cada cosa en su ventana, claro y fácil de leer. En su versión no gratuita, parece ser que aún hay más (trazas, gestión del consumo según tareas, depuración controlada y gestionada según la energía y situación, permitiendo que el micro entre en reposo o se pare sin problemas de depuración, midiendo el consumo, etc).
17/02/2011 #46

Avatar de cosmefulanito04

Beamspot dijo: Ver Mensaje
De hecho, hay cada vez más fabricantes o plataformas para programar ARM's gratuitas, la mayoría de las cuales se suelen basar en el WinARM. Así a bote pronto, aparte de CooCox, me viene a la cabeza Ride con ST, por ejemplo.

Lo que si he visto, es que todos los fabricantes escriben sus propios 'drivers' para sus micros ARM, y los puedes encontrar por ejemplo, en las demos que vienen con IAR, con el CooCox (exactamente los mismos archivos .c y .h), con Ride, con Keil, etc.

Las mayores diferencias entre los diferentes IDE's son básicamente dos: la capacidad del compilador de optimizar (el GCC para ARM es realmente excepcional, casi a la altura del de IAR), cosa que para la estructura interna de loa ARM es fácil y por tanto hay pocas diferencias, y luego está el tema de la depuración.

Lo que más cambia, complica, ayuda, importa y valoro, de los IDE, es la parte de depuración. No tanto la capacidad para soportar sistemas HW de depuración en circuito (ICE, generalmente JTAG y TWD para los ARM), si no el soporte para diferentes cosas. Así pues, por ejemplo, el WinAVR es estupendo para depurar todo lo relacionado con periféricos, gracias a su interfaz gráfico con los mismos. Pero para los mismos AVR, cuando el HW y sus periféricos ya funcionan correctamente, es bastante mejor (a mi entender) el IAR, pues permite hacer trazas, plugins para sistemas operativos, y otros tipos de soporte de depuración del programa propiamente dicho, que hacen más fácil encontrar bugs y problemas relacionados propiamente con la aplicación.

El ejemplo más evidente, es la integración del PowerPAC dentro del IAR. En su versión gratuita, las ventanas de depuración y soporte del RTOS ofrecen el tiempo que ha estado activa cada tarea, el stack que parece ser que ocupan, el estado de las mismas, permite poner condiciones de parada (breakpoints) según los diferentes elementos del sistema operativo, permite ver los parámetros operativos de los diferentes componentes (tareas, pila USB, Fat filesystem, TCP/IP), etc. Cada cosa en su ventana, claro y fácil de leer. En su versión no gratuita, parece ser que aún hay más (trazas, gestión del consumo según tareas, depuración controlada y gestionada según la energía y situación, permitiendo que el micro entre en reposo o se pare sin problemas de depuración, midiendo el consumo, etc).
Se nota que trabajas de esto , la tenes muy clara, y eso esta bueno para este foro y sus usuarios .
18/02/2011 #47

Avatar de Unikfriend

Hi Beamspot!
Se ve que tienes mucha experienca,
que proyectos has realizado con ARM?
18/02/2011 #48


La verdad es que los proyectos que he acabado con ARM han sido pocos y de escasa envergadura, mientras que los más adecuados se han acabado implementando de otra manera (generalemente con mis queridos AVR) por cuestiones varias, excepto el proyecto con el que estoy trabajando ahora, un equipo de medición industrial con bastantes requerimientos (CANOpen, ADC de 12 bits a 2MSPS, controles varios, multímetro, puerto serie, etc.)
18/02/2011 #49

Avatar de Unikfriend

Que bien! y que microcontrolador estas utilizandp?
21/02/2011 #50


STM32F103 en varios tamaños (64 pines en la placa de demo que me regalaron, 100 y 144 según la aplicación, que aunque la base sea la misma, habrá diferentes variantes). Los otros proyectos que he realizado han sido con el AT91SAM7S64 y el AT91SAM7X256, que no son Cortex-M3 si no ARM7TDMI. Del último tengo una placa de evaluación de Olimex muy chula.
21/02/2011 #51

Avatar de Unikfriend

Ok, se ve que tienes muchas experiencia con los ARM.
21/02/2011 #52


Yo tengo arm de luminarymicro sus librerias son bastantes. Es facil trabajar con KEIL te da todo, pero estoy probando el codesourcery con el ide de keil es mas dificil de configurar el startup y el linker y ademas las interrupciones.
Lo que da el fabricante no es completo para este compilador.
21/02/2011 #53

Avatar de Unikfriend

Hi Cristian...
Que micro estas utilizando?

Yo probe tambien el Codesourcery, con un micro de TEXAS, y tambien se me hizo muy complicado.
AL final el micro de Texas no lo utilice y deje de usar el codesourcery.

21/02/2011 #54


Hay tengo el LM3S818 trabaja bien con Keil y Iar en la documentacion de las librerias esta todo pero hasta no se como tomar cualquier pin adc en forma independiente por que hay ejemlos con tomas consecutivas de 3 pines ADC.
21/02/2011 #55

Avatar de Unikfriend

Ok, yo tengo el kit de LM3S9B92,
exactemanete que es lo que ocupas;
como configurar el puerto?
quieres un solo canal de ADC, que el resto de los pines queden como GPIO?
21/02/2011 #56


En esos micros los Pines ADC son dedicados a esa funcion.
Hay ejemplos para adc yo lo ise y funciona para ADC0 tambien para una secuencia de adc0,..adc5 pero no hay para un adc cualquiera por ejemplo yo quiero solo el adc3 nada mas.
21/02/2011 #57

Avatar de Unikfriend

Ok, solo el ADC3, deja ver si encuentro algo, que te sirva...
21/02/2011 #58


No es solo el ADC3 es cualquier ADC en forma individual.
21/02/2011 #59

Avatar de Unikfriend

Ok, no te preocupes si te entendi, deja desempolvo el kit jiji,
Estas usando el codesourcery en modo evaluacion?
de ke trata tu proyecto? si se puede saber

Me puedes pasar el link de la nota de aplicacion?
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.