EmbeddedRelated.com
Forums
Memfault Beyond the Launch

Porting linux( or others OS like FreeRTOS) to microcontroller

Started by "mostafa.pourgharib" November 30, 2011
--- In l..., David Smead wrote:
>
> Linux requires a lot more memory that the LPC2368 has, and without a memory
> bus, you can't add anymore. If you want to run Linux, choose a processor
> that already has Linux ported to it. The number of people in the world who
> can make a new port of Linux are very few.
>
> If you're doing this as an educational project, start with an existing code
> base that is much, much smaller and once you've followed the cookbook to
> get it installed and running, study it from all angles.
>
> Have fun!
>
> DaveS
>

Thanks DaveS,
Yes i am doing it as an educational project, my project is this actualy plus Robot Vision. i want to use OS to do my Tasks. before it i had no experience about OS. i just use Micro-controller to do some easy+ Job. Now i must use micro-controller as a brain !!!
I Know that a ready ported OS is a very good option , but each i found was not for my LPC2368!!!
as i said, i am new to porting OS and don't know every OS Configuration for every Chip.

what can i do? what is your idea?

An Engineer's Guide to the LPC2100 Series

--- In l..., "mostafa.pourgharib" wrote:
>
> I want to port linux to microcontroller. The microcontroller i have chosen is LPC2368. I have done basic programming on LPC2368 previously. But i don't have any idea of how to port linux( OR FreeRTOS).
>
> Can any body explain me?
>

Do you know anything about operating systems at a design level? It's a rather large topic.

FreeRTOS is a real-time operating system (RTOS). In effect, it is a simple task switcher. Tasks communicate with each other in a number of ways but, in the end, FreeRTOS just switches tasks. It doesn't have the higher level functions like a graphic user interface or file system.

Linux, like Windows, is a full-blown operating system with networking, file systems, graphic user interface and all these other high level functions added to some kind of task switcher. Neither Linux, nor Windows can be considered a real-time operating system as task switching is more cooperative than real-time (another OS concept to study). There is a real-time version of Linux and the Wiki article referenced below suggests that WinCE is an RTOS (hmm...).

As stated elsewhere, there are probably a handful of people in the WORLD who can port Linux from scratch. I'm not one of them.

For machine control (and robotics), a real-time operating system is the way to go. You want to be able to respond in real-time to external events such as hardware interrupts. Whether you tack on a graphic interface, or not, is really just something you can decide later. One strategy is to have a high level OS, like Linux, driving outside devices which use RTOS's.

RTX appears (from 10,000 feet up) to do the same kinds of things as FreeRTOS. Both FreeRTOS and RTX are available (already ported) for your chip.

I suggest you do some studying on real-time operating systems, how tasks are scheduled, how tasks communicate and how the RTOS responds to external inputs (interrupts). Try:

http://en.wikipedia.org/wiki/Real-time_operating_system

There are people doing some amazing things with small Linux systems. But these systems run on much more capable chips. See, for example, http://www.gumstix.com/ There are MANY chips that can run Linux. The 2368 isn't one of them.

It helps to know what problem you are trying to solve before looking around for solutions.

Richard

--- In l..., "rtstofer" wrote:
>
> --- In l..., "mostafa.pourgharib" wrote:
> >
> > I want to port linux to microcontroller. The microcontroller i have chosen is LPC2368. I have done basic programming on LPC2368 previously. But i don't have any idea of how to port linux( OR FreeRTOS).
> >
> > Can any body explain me?
> > Do you know anything about operating systems at a design level? It's a rather large topic.
>
> FreeRTOS is a real-time operating system (RTOS). In effect, it is a simple task switcher. Tasks communicate with each other in a number of ways but, in the end, FreeRTOS just switches tasks. It doesn't have the higher level functions like a graphic user interface or file system.
>
> Linux, like Windows, is a full-blown operating system with networking, file systems, graphic user interface and all these other high level functions added to some kind of task switcher. Neither Linux, nor Windows can be considered a real-time operating system as task switching is more cooperative than real-time (another OS concept to study). There is a real-time version of Linux and the Wiki article referenced below suggests that WinCE is an RTOS (hmm...).
>
> As stated elsewhere, there are probably a handful of people in the WORLD who can port Linux from scratch. I'm not one of them.
>
> For machine control (and robotics), a real-time operating system is the way to go. You want to be able to respond in real-time to external events such as hardware interrupts. Whether you tack on a graphic interface, or not, is really just something you can decide later. One strategy is to have a high level OS, like Linux, driving outside devices which use RTOS's.
>
> RTX appears (from 10,000 feet up) to do the same kinds of things as FreeRTOS. Both FreeRTOS and RTX are available (already ported) for your chip.
>
> I suggest you do some studying on real-time operating systems, how tasks are scheduled, how tasks communicate and how the RTOS responds to external inputs (interrupts). Try:
>
> http://en.wikipedia.org/wiki/Real-time_operating_system
>
> There are people doing some amazing things with small Linux systems. But these systems run on much more capable chips. See, for example, http://www.gumstix.com/ There are MANY chips that can run Linux. The 2368 isn't one of them.
>
> It helps to know what problem you are trying to solve before looking around for solutions.
>
> Richard
>
Hi Richard, i know that linux witch is used for PC is a great OS and is not for micro-controllers. my mean from linux was that OS witch is used for SAM7, for Example .Please see http://www.linux4sam.com

http://www.gumstix.com/ has a huge hardware with at least 512MB memory. if i am not wrong.

since 5 days ago, i am trying RTX OS. Every thing is good in simulation mode. clock and other my desired tasks.But... in Chip has no effect...
every thing is asleep.

>
> Hi Richard, i know that linux witch is used for PC is a great OS and
> is not for micro-controllers. my mean from linux was that OS witch is
> used for SAM7, for Example .Please see http://www.linux4sam.com

Nope. Linux has no more chance running on a SAM7 than it does on an
LPC2368, for all the reasons already documented in this thread.

Regards,
Richard.

+ http://www.FreeRTOS.org
Designed for Microcontrollers.
More than 7000 downloads per month.

--- In l..., "rtstofer" wrote:
>
> --- In l..., "mostafa.pourgharib" wrote:
> >
> > I want to port linux to microcontroller. The microcontroller i have chosen is LPC2368. I have done basic programming on LPC2368 previously. But i don't have any idea of how to port linux( OR FreeRTOS).
> >
> > Can any body explain me?
> > Do you know anything about operating systems at a design level? It's a rather large topic.
>
> FreeRTOS is a real-time operating system (RTOS). In effect, it is a simple task switcher. Tasks communicate with each other in a number of ways but, in the end, FreeRTOS just switches tasks. It doesn't have the higher level functions like a graphic user interface or file system.
>
> Linux, like Windows, is a full-blown operating system with networking, file systems, graphic user interface and all these other high level functions added to some kind of task switcher. Neither Linux, nor Windows can be considered a real-time operating system as task switching is more cooperative than real-time (another OS concept to study). There is a real-time version of Linux and the Wiki article referenced below suggests that WinCE is an RTOS (hmm...).
>
> As stated elsewhere, there are probably a handful of people in the WORLD who can port Linux from scratch. I'm not one of them.
>
> For machine control (and robotics), a real-time operating system is the way to go. You want to be able to respond in real-time to external events such as hardware interrupts. Whether you tack on a graphic interface, or not, is really just something you can decide later. One strategy is to have a high level OS, like Linux, driving outside devices which use RTOS's.
>
> RTX appears (from 10,000 feet up) to do the same kinds of things as FreeRTOS. Both FreeRTOS and RTX are available (already ported) for your chip.
>
> I suggest you do some studying on real-time operating systems, how tasks are scheduled, how tasks communicate and how the RTOS responds to external inputs (interrupts). Try:
>
> http://en.wikipedia.org/wiki/Real-time_operating_system
>
> There are people doing some amazing things with small Linux systems. But these systems run on much more capable chips. See, for example, http://www.gumstix.com/ There are MANY chips that can run Linux. The 2368 isn't one of them.
>
> It helps to know what problem you are trying to solve before looking around for solutions.
>
> Richard
>

Hi Richard, i know that linux witch is used for PC is a great OS and is not for
micro-controllers. my mean from linux was that OS witch is used for SAM7, for
Example .Please see http://www.linux4sam.com

http://www.gumstix.com/ has a huge hardware with at least 512MB memory. if i am
not wrong.

since 5 days ago, i am trying RTX OS. Every thing is good in simulation mode.
clock and other my desired tasks.But... in Chip has no effect...
every thing is asleep.

--- In l..., "rtstofer" wrote:
>
> --- In l..., "mostafa.pourgharib" wrote:
> >
> > I want to port linux to microcontroller. The microcontroller i have chosen is LPC2368. I have done basic programming on LPC2368 previously. But i don't have any idea of how to port linux( OR FreeRTOS).
> >
> > Can any body explain me?
> > Do you know anything about operating systems at a design level? It's a rather large topic.
>
> FreeRTOS is a real-time operating system (RTOS). In effect, it is a simple task switcher. Tasks communicate with each other in a number of ways but, in the end, FreeRTOS just switches tasks. It doesn't have the higher level functions like a graphic user interface or file system.
>
> Linux, like Windows, is a full-blown operating system with networking, file systems, graphic user interface and all these other high level functions added to some kind of task switcher. Neither Linux, nor Windows can be considered a real-time operating system as task switching is more cooperative than real-time (another OS concept to study). There is a real-time version of Linux and the Wiki article referenced below suggests that WinCE is an RTOS (hmm...).
>
> As stated elsewhere, there are probably a handful of people in the WORLD who can port Linux from scratch. I'm not one of them.
>
> For machine control (and robotics), a real-time operating system is the way to go. You want to be able to respond in real-time to external events such as hardware interrupts. Whether you tack on a graphic interface, or not, is really just something you can decide later. One strategy is to have a high level OS, like Linux, driving outside devices which use RTOS's.
>
> RTX appears (from 10,000 feet up) to do the same kinds of things as FreeRTOS. Both FreeRTOS and RTX are available (already ported) for your chip.
>
> I suggest you do some studying on real-time operating systems, how tasks are scheduled, how tasks communicate and how the RTOS responds to external inputs (interrupts). Try:
>
> http://en.wikipedia.org/wiki/Real-time_operating_system
>
> There are people doing some amazing things with small Linux systems. But these systems run on much more capable chips. See, for example, http://www.gumstix.com/ There are MANY chips that can run Linux. The 2368 isn't one of them.
>
> It helps to know what problem you are trying to solve before looking around for solutions.
>
> Richard
>

Hi Richard, i know that linux which is used for PC is a great OS and is not for
micro-controllers. my mean from linux was that OS which is used for SAM7, for
Example .Please see http://www.linux4sam.com

http://www.gumstix.com/ has a huge hardware with at least 512MB memory. if i am
not wrong.

since 5 days ago, i am trying RTX OS. Every thing is good in simulation mode.
clock and other my desired tasks.But... in Chip has no effect...
every thing is asleep.

--- In l..., FreeRTOS Info wrote:
> >
> > Hi Richard, i know that linux witch is used for PC is a great OS and
> > is not for micro-controllers. my mean from linux was that OS witch is
> > used for SAM7, for Example .Please see http://www.linux4sam.com
>
> Nope. Linux has no more chance running on a SAM7 than it does on an
> LPC2368, for all the reasons already documented in this thread.
>
> Regards,
> Richard.
>
> + http://www.FreeRTOS.org
> Designed for Microcontrollers.
> More than 7000 downloads per month.
>

Yes, you are right, Sam9 is true not Sam7. i was wrong .
in general , a LPC2368 is a member of SAM7 family. [^^]

in www.linux4sam.com is a way to port linux on a Sam9.

--- In l..., "mostafa.pourgharib" wrote:
> Hi Richard, i know that linux which is used for PC is a great OS and is not for
> micro-controllers. my mean from linux was that OS which is used for SAM7, for
> Example .Please see http://www.linux4sam.com
>
> http://www.gumstix.com/ has a huge hardware with at least 512MB memory. if i am
> not wrong.
>
> since 5 days ago, i am trying RTX OS. Every thing is good in simulation mode.
> clock and other my desired tasks.But... in Chip has no effect...
> every thing is asleep.
>
You can use the Linux variant uCLinux on ARM7 devices - those with a LOT of memory. In fact, it runs on the VERY FAST Analog Devices Blackfin 16 bit device. The Blackfin is a very interesting approach. It runs at 500 MHz and includes all the usual uC peripherals plus it has DSP capabilities.

I don't know if there is a real-time version of uCLinux.

Richard


Memfault Beyond the Launch