TODOPIC
Otros Microcontroladores / Dispositivos programables => Microcontroladores ARM => Mensaje iniciado por: bitpic en 02 de Abril de 2007, 05:17:20
-
Perdon por mi ignorancia, pero se comenta mucho lo del uLinux, y queria saber que ventajas aporta tener microlinux en un microcontrolador. Yo he trabajado con los PICs y normalmente haces un programa para la aplicacion que necesitas, que sacas poniendo un sistema operativo dentro??? :D
¿se pueden poner otros sistemas operativos dentro? como podria ser Windows CE o algo parecido.
Como decia perdon por mi ignorancia, es que me intriga por que suena muy bien poner un sistema operativo a tu micro, pero ¿se le saca partido?
Un saludo :-)
-
Llégate por este hilo, vas a encontrar algunas respuestas : Sistemas Operativos en PIC (http://www.todopic.com.ar/foros/index.php?topic=15876.0)
Ahora, imagínate que tu uControlador pueda correr el núcleo de un SO como LINUX y que tenga la posibilidad de beneficiarse del código escrito por toda la comunidad GNU para dar soporte a un montón de aplicaciones que no podrás programar por falta de tiempo, experiencia, conocimiento, interés para el proyecto, etc.
Realmente tener un SO corriendo en tu sistema te trae muchos beneficios, y también sus desventajas, pero los pro son mas pesados que los contra en casi cualquier aplicación y es por eso que hay una fuerte tendencia hacia el uso de los SO en sistemas a microcontroladores. Ahora no todos los uC pueden correr un SO como uCLinux, por ligero que este sea, las razobes están determinadas por la arquitectura del procesador, el soporte que le haya dado la comunidad a ese procesador, etc. Aunque e parece que ARM está soportado, si estás interesado en hacer aplicaciones complejas, poner a prueba tu uC ARM con lo último en programación y quieres aprender un montón de cosas, te aconsejo que no lo pienses mucho y te sumerjas en el maravilloso mundo de la programación con SO.
Un saldudo Reinier
-
Fijate que aqui hablo de eso mismo http://www.todopic.com.ar/foros/index.php?topic=16496.0 tambien hay links interesantes de las instrucciones y el emulador de arm para linux
-
Perdonad, pero se que se puede hacer, lo que no se es que ventajas tiene respecto ha hacer un programa sin usar SO
-
Mas ventajas??? son muchas primero correr un sistema operativo completo como un computador normal creo que es sufisiente... Además la posibilidad de colocar puertos USB maestros, también por ejemplo el LPC2294 de Philips puede manejar hasta 4GB, el framebufer del nucleo podemos conectar pantallas TFT sin muchas complicasiones, colocar hasta 64Mbit de ram, etc... Las Posivilidades son casi infinitas :D Claro!!!!! hay que compilar el nucleos con los respectivos modulos, pero ya eso es otra cosa :mrgreen:
Saludos
-
No os lo tomeis a mal, pero eso tambien se puede hacer sin sistema operativo no??
Sabeis de algun sitio donde pueda ver una aplicacion completa con TFT y cosas de estas donde pueda ver claro para que sirve????
Por que supongo que si es un sistema operativo y quieres ponerle perifericos tambien necesitaras drivers como en todo SO, pero supongo que los drivers tambien dependeran del procesador......
Perdon por ser tan pesado, a mi la idea de poner un sistema operativo me parece muy buena, pero a parte de gastar memoria quiero ver que mas puedo sacar de hacer eso jejeje
:D Muchas gracias por intentar hacerme llegar hasta la luz de los SO ejjeje
un saludo
-
No te preocupes :D :D, lo principal que podemos sacar de ello es conocimiento, a mi me parece muy interesante la arquitectura ARM y meterle linux es mas interesante aún, pueden alcanzar hasta 200Mzh!!! :shock: :shock: con esa velocidad se ùeden hacer muchas cosas :mrgreen:
Saludos
-
No te preocupes :D :D, lo principal que podemos sacar de ello es conocimiento, a mi me parece muy interesante la arquitectura ARM y meterle linux es mas interesante aún, pueden alcanzar hasta 200Mzh!!! :shock: :shock: con esa velocidad se ùeden hacer muchas cosas :mrgreen:
Saludos
muy cierto esto pero la velocidad maxima de un producto sobre arm disponible xomercialmente es de 1.2ghz, una version del pxa290 de intel (ahora maxwell)
-
En principio todo lo que se hace con SO también puede hacerse si él, pero el costo de esa solución sería muy alto, porque implica un esfuerzo enorme por parte del equipo de desarrollo, y si ese equipo es de un solo individuo, pues las cosas no van a salir nada bien.
Esta es una razón más que de peso para decantarse por el uso del SO pero te pongo otras:
Reutilización de código ubicado en librerías y las API del SO
Dejar que sean los expertos en una materia específica los que hagan los drivers o utilizar los que ofreta el propio fabricante (no podemos sabernoslas todo acerca de TODO)
Desarrollo más rápido de aplicaciones y más confiable el producto final
Posibilidad de trabajar más eficientemente en grupos de trabajo integrados por varias personas.
Reinier
-
Mas o menos lo que estoy entendiendo es que puedes trabajar como si fuese el SO de un PC, donde para hacer un programa cojes las librerias ya creadas por otros en alguna materia, o usas los driver por ejemplo de una webcam para controlarla y cosas asi, ¿es mas o menos no?
Entonces, mi pregunta es, ¿hasta que punto puede comportarse como un SO de PC? por ejemplo si quiseras controlar una WEBCAM o un monitor TFT o una impresora, son ejemplos solo, hay librerias que lo hacen, o lo detecta automaticamente como los SO (supongo que esto ultimo no, si no ya seria la leche eejej) o de que manera puedes interacutar con los perifericos.
¿Se comportaria como un PDA o algo parecido? ¿El sistema de programar aplicaciones vendria a ser como los de los PDA?
Perdon por tantas preguntas jejee (por cierto a mi tambien me gusta esta arquitectura por eso quiero entenderla antes de comenzar a hacer cosas)
Un saludo :-)
-
Ya cogiste la idea básica, lo que puedas hacer depende de la versión de SO y de las API o librerías que te oferte el propio SO o el soporte que te de el fabricante de los periféricos y si ES LA LECHE (y de la mejor calidad).
Un saludo Reinier
-
ya entrando en algo mas avanzado tambien podemos mencionar que una de las ventajas de algunos SO es la inclusion de un HAL (Hardware Abstaccion Layer) que permite que uno se despreocupe del "fierro" aun mas y se concentre en la aplicacion, aparte de inferir mayor portabilidad del codigo
-
Otra curiosidad, normalmente cuando tienes perifericos tienes que configurar las lineas de I/O, comunicaciones serie, USB, RS232,etc. Teniendo un SO esto sigue siendo igual??? o te despreocupas un poco de eso tambien??
-
Esa es una de las ventajas de los SO.
Tomando lo que dijo psykhon sobre la HAL, cuando existe, esta capa de software es la que está directamente encima del hardware. Por ejemplo, en una PC cualquiera, forman parte de la HAL los servicios del BIOS y los controladores básicos que debe ofrecer el Sistema Operativo para que la PC pueda trabajar. Con esto se reutiliza un montón de código para la configuración y uso de los periféricos y se puede gestionar de manera eficiente un conjunto de mecanismos complejos dentro del equipo como por ejemplo DMA, Servicio de Interrupciones, Temporizadores, etc todo eso mediante un conjunto de funciones o API.
La ventaja fundamental de esto está en que no tendrás que escribir de nuevo el código para trabajar con esos dispositivos (si están soportados por el SO), o copiar y pegar el código que está en algúna librería, o poner, por ejemplo, los #include de esas librerías, etc.
El SO debe ser capaz de hacer todo ese trabajo por tí o con muy poca intervención de tu parte, pero además debe ofrecer librerías que hagan de esos periféricos componentes más útiles y productivos. Por ejemplo si tienes un NIC, lo más seguro es que quieras utilizar TCP/IP, o UDP para comunicarte mediante Ethernet, entonces el SO debe ofrecerte la posibilidad de utilizar esos protocolos sin preocuparte de la parte física.
Claro que para los amantes del diseño de hardware tener esas ventajas a veces implica perderse la parte donde aprendes a utilizar y configurar esos dispositivos, pero no hay dudas que tenerlas significa un paso significativo en el desarrollo de un sistema ya que te ahorra un montón de trabajo.
Un saludo Reiner
-
Eso de no preocuparte del hardware esta bien, pero como sabe el SO que has puesto un LCD grafico, un TFT, un LCD normal, o otras cosas ??
Y en cuanto al lo de no tener que preocuparte por la programacion, pues no se, cuando haces un programa para PC tambien te tienes que preocupar por la programacion, y las librerias, y poner #includes. y saber como funcionan los perifericos, etc.
Yo creo que sigue siendo todo igual pero a otro nivel de programacion, vas a seguir con problemas pero en vez de con el procesador lo tendras con el SO.
:? Es la conclusion que saco de todo esto, aunque tambien creo que si todo funciona a la perfeccion los resultados pueden ser mejores con SO.
Podeis enseñarme algun circuito o prototipo que este funcionando con ulinux y el programa de la aplicacion (no el SO, solo la aplicacion) para ver si consigo hacerme a la idea.
Un saludo.
-
Eso de no preocuparte del hardware esta bien, pero como sabe el SO que has puesto un LCD grafico, un TFT, un LCD normal, o otras cosas ??
Y en cuanto al lo de no tener que preocuparte por la programacion, pues no se, cuando haces un programa para PC tambien te tienes que preocupar por la programacion, y las librerias, y poner #includes. y saber como funcionan los perifericos, etc.
Yo creo que sigue siendo todo igual pero a otro nivel de programacion, vas a seguir con problemas pero en vez de con el procesador lo tendras con el SO.
:? Es la conclusion que saco de todo esto, aunque tambien creo que si todo funciona a la perfeccion los resultados pueden ser mejores con SO.
Podeis enseñarme algun circuito o prototipo que este funcionando con ulinux y el programa de la aplicacion (no el SO, solo la aplicacion) para ver si consigo hacerme a la idea.
Un saludo.
esas "dificultades" de las que hablas creeme que no sin ni el 1% de las que tendrias si el so no administraea los perifericos, imaginate tener que reescribir un driver cada ves que mandas un sonido a la correspondiente placa, trata de interiorisarte mas y vas a ver la gran diferencia de la que hablamos.
con respecto al lcd y demas esos son, por lo general y dependiendo de la complejidad del SO, parametros y librerias que incorporas a la imagen del SO al momento de compilarlo
-
Hola a todos, la verdad es que es la leche esto de la tecnologia, aún estoy haciendo unos pinitos con los pic y ya se están imponiendo micros con SO. Creo que me va a tocar aprender microlinux.
Sabeís sí Microchip sacará fabricación de estos micros con SO?????????????????
Saludos y gracias a todos por este fenomenal Foro.
Chao:
Santi
-
hay mucho desorientacion o falta de ganas de leer con esto del so
-
Desde el post que hice con el uClinux y el simulador adverti que era muy dificil, solo lo recomendé para las personas que tuvieran experiencia en linux, estoy hablando de 3 años o mas, no es ninguna tonteria de prender y apagar led, si no se sabe mucho puede ser muy frustante :(, vean mi experiencia me quede en correr linux solamente con el emulador imaginence hacer una placa y correrlo :shock:, los demas modulos nesesitan ser parcheados, el nucleo debe de configurarse y compilarse, estoy hablando de 3 horas y media de configuración y compilación ademas de la instalación del emulador que viene en codigo fuente y el bootloader (no voy a hablar del bootloader!!!), tilarla a pegar para que corra sin errores :? , todo eso esta implicado en esto de los OS. !!!Yo nisiquiera estoy en la universidad!!, yo creo que es mucha complicasión para un pre-universitario ademas de no ser un proyecto de fin de carrera es mucho trabajo, yo lo hice para medio enseñar lo que aprendi y para que complementaran. No quiero tampoco quitarles las ancias de aprender, pero hay que leer, no vamos a aprender si no leemos, y finalmente enfoquemos las fuerzas en dar soluciones y preguntar un poquito menos :mrgreen:
Saludos
-
Hola a todos:
Psykhon, por alusiones, ya que tu post va seguido del mio: disculpa si no he sabido transmitir bien mi admiración por la evolución de la tecnología y el agradecimiento a todos vosotros, integrantes de este Foro.
Quizás existe más gente como yo, que no tiene la suerte de haber ido a una universidad y que el entusiasmo por los micros nos lleve a utilizar el poco tiempo que nos queda del trabajo, a leer todo lo que podemos y aprender todo lo que humildemente nuestro cerebro nos permite,teniendo la suerte de tener medios y gente como en este Foro que nos es de mucha ayuda.
Y hasta ahora que yo sepa, corrinjanme si me equivoco, Microchip no ha sacado ningún micro con esta tecnología y va siendo hora.
Por ello gracias y disculpa.
-
Hola a todos:
Psykhon, por alusiones, ya que tu post va seguido del mio: disculpa si no he sabido transmitir bien mi admiración por la evolución de la tecnología y el agradecimiento a todos vosotros, integrantes de este Foro.
Quizás existe más gente como yo, que no tiene la suerte de haber ido a una universidad y que el entusiasmo por los micros nos lleve a utilizar el poco tiempo que nos queda del trabajo, a leer todo lo que podemos y aprender todo lo que humildemente nuestro cerebro nos permite,teniendo la suerte de tener medios y gente como en este Foro que nos es de mucha ayuda.
Y hasta ahora que yo sepa, corrinjanme si me equivoco, Microchip no ha sacado ningún micro con esta tecnología y va siendo hora.
Por ello gracias y disculpa.
mi intencion no es ofender a nadie, mas bien dar a entender que muchas de las dudas planteadas estan respondidas en el foro, solo hay que leer un rato. Yo tampoco fui a la universidad y lo que se es por ponerme a leer
-
Comparto lo que dice psykhon, apenas estoy terminando el bachillerato, todo lo e apredido leyendo, no quiero ofender a nadie pero tienen que entender como nos sentimos cuando no satisfacemos sus inquietudes, las preguntas tienen que ser mas concretas para facilitar el argumento de las respuestas, ratifico que no quiero ofender ni discriminar por su nivel academico, todos tenemos el derecho de aprender por igual y lo lograremos si colaboramos todos :mrgreen:, y para no salirnos del tema, el el post que cree esta un enlace a como podemos correr uClinux!! con un emulador de arm (para comenzar :D), lo demas viene solo no se preocupen, a LEER!!!! :-/
-
LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN LEAN
y despues pregunten
-
Realmente un SO como GNU/Linux aunque pensado para ejecutarse en algunos uC no está diseñado para los uC de Microchip, más bien para núcleos diseñados como módulos de Propiedad Intelectual o Megafunciones que normalmente se destinan para embeberlos en un FPGA, hay que tener en cuenta que estos SO necesitan más recursos que los que normalmente puede ofertar cualquier PIC, pero eso no siginifca que por utilizar un PIC sin un SO como GNU/Linux nos estamos perdiendo de los avances tecnológicos, para uC como los PIC, 8051, Z80, etc tenemos un montón de RTOS, que si no tienen las ventajas que uCLinux, si nos permiten aprovecharnos de los SO embebidos y esto puede ser una gran fuente de entrenamiento para los que comienzan.
Yo personalmente no me siento capaz de comenzar a trabajar con uCLinux, pero voy tirando mis cachimbazos con los RTOS, para ir aprendiendo y porder meterle a eso de uCLinux o EmbeddedLinux.
Un saludo Reinier
PD: Creo que lo que quizo decir SimonMG es que antes de ponerse a trabajar en un SO como uCLinux lo mejor es ir dando pasitos cortos para después poder correr, no me parece que haya querido ofender a nadie.
-
Yo personalmente no me siento capaz de comenzar a trabajar con uCLinux, pero voy tirando mis cachimbazos con los RTOS, para ir aprendiendo y porder meterle a eso de uCLinux o EmbeddedLinux.
creo que uclinux puede sonar intimidante, pero si vamos al caso cuanta gente hay trabajando sobre este os y cuanta sobre otro? quiero decir que la masividad facilita las cosas (mas docs, mas gente en foros, etc) y por lo complejo creo que es como todo, como decia un amigo mio "horas culo" sentarse, leer y probar, que para eso hay simuladores, maquinas virtuales y demas cosas que nos permiten jugar todo lo que querramos sin tocar (o quemar) un solo chip
-
Recientemente he estado leyendo cosas sobre EmbeddedLinux y uCLINUX porque me he quedado realmente tentado con los núcleos ARM que tiene el Proteus 7.1, pues bien, nada que la tenetación hizo mella en mí y sin más perámbulos me introduzco en el mundo de estos procesadores y LINUX.
Apoyo este proyecto de llevar adelante el desarrollo de sistemas pensados con ARM y LINUX, así que en la medida que vaya acumulando documentación y experiencia lo iré posteando para ayudar a que este proyecto tenga resultados.
Un saludo
Reinier
-
Gracias Reinier y bienvenido!!! :-/ :-/
-
No os lo tomeis a mal, pero eso tambien se puede hacer sin sistema operativo no??
Sabeis de algun sitio donde pueda ver una aplicacion completa con TFT y cosas de estas donde pueda ver claro para que sirve????
Por que supongo que si es un sistema operativo y quieres ponerle perifericos tambien necesitaras drivers como en todo SO, pero supongo que los drivers tambien dependeran del procesador......
Perdon por ser tan pesado, a mi la idea de poner un sistema operativo me parece muy buena, pero a parte de gastar memoria quiero ver que mas puedo sacar de hacer eso jejeje
:D Muchas gracias por intentar hacerme llegar hasta la luz de los SO ejjeje
un saludo
hola
yo hace unas semanas pense en ponerle un tft, pero no encontre la forma, ya que la posibilidad de ponerle un chipset grafico me parecia muy avanzado para mis conocimientos (creaccion de drivers, direccionamiento, etc...) ¿sabes de alguna manera facil de hacer esto? gracias
saludos de antonio