EmbeddedRelated.com
Forums

running the linux on STM32F407VGT6

Started by piyushpandey March 4, 2014
Hi guys 

I am starting this new thread in hope that it will be a good sharing
platform for both advanced users and the beginners.

Actually what I am going to discuss here is that how to run linux kernel on
the 
STM32F407VGT6 controllers the main feature of which is that it is MMU
less.

Many people might say that it's easy to run linux on the MMU less devices
as the linux kernel has its own flavour without MMU and that is uClinux.

ofcourse I agree but what I found with my search and study is that uClinux
is pretty outdated right now and most of the devices using uClinux still
rely on the 
2.4.x version and not on 2.6.x

Also the versioning system of uClinux is very different  from that of the
normal linux.

Check it here:

http://www.uclinux.org/pub/uClinux/dist/

How can someone compare it with the Linux version which is in the form of
2.6.xx

After doing some more search and with the help of a friend I got this
link:

http://www.linux-arm.org/LinuxKernel/LinuxM3

Here the arm linux has been given as git repository.

But before I get further I thought why not I should involve the expert
people of this forum also in to my this journey.

So the question is that if I want to run or port the linux 2.6.33 to the 
STM32F407VGT6

than how can I get to that.

Please guys I hope the inputs from all the people on this forum.


Thanks
	   
					
---------------------------------------		
Posted through http://www.EmbeddedRelated.com
On 4.3.14 22:15, piyushpandey wrote:
> Hi guys > > I am starting this new thread in hope that it will be a good sharing > platform for both advanced users and the beginners. > > Actually what I am going to discuss here is that how to run linux kernel on > the > STM32F407VGT6 controllers the main feature of which is that it is MMU > less. > > Many people might say that it's easy to run linux on the MMU less devices > as the linux kernel has its own flavour without MMU and that is uClinux. > > ofcourse I agree but what I found with my search and study is that uClinux > is pretty outdated right now and most of the devices using uClinux still > rely on the > 2.4.x version and not on 2.6.x > > Also the versioning system of uClinux is very different from that of the > normal linux. > > Check it here: > > http://www.uclinux.org/pub/uClinux/dist/ > > How can someone compare it with the Linux version which is in the form of > 2.6.xx > > After doing some more search and with the help of a friend I got this > link: > > http://www.linux-arm.org/LinuxKernel/LinuxM3 > > Here the arm linux has been given as git repository. > > But before I get further I thought why not I should involve the expert > people of this forum also in to my this journey. > > So the question is that if I want to run or port the linux 2.6.33 to the > STM32F407VGT6 > > than how can I get to that.
The short answer is: You cannot. The uClinux variant is created to by-pass the problems created by a CPU without a MMU, but it has its limitations. The memory management of the full kernel absolutely needs a MMU to work. -- Tauno Voipio


> >The short answer is: You cannot. >
I disagree with you that you can't run linux on the cortex m4 architecture. As I browsed this link I got very useful information here: http://www.emcraft.com/products/224 http://www.emcraft.com/products/224#software Here these guys have ported the uClinux to the ST microcontroller. I downloaded there BSP and the version of the kernel is 2.6.33 But I didn't find any uClinux source based on this version on there site. I want to know that how to get the uClinux version 2.6.33 Thanks --------------------------------------- Posted through http://www.EmbeddedRelated.com
On 04/03/14 21:32, Tauno Voipio wrote:
> On 4.3.14 22:15, piyushpandey wrote: >> Hi guys >> >> I am starting this new thread in hope that it will be a good sharing >> platform for both advanced users and the beginners. >> >> Actually what I am going to discuss here is that how to run linux >> kernel on >> the >> STM32F407VGT6 controllers the main feature of which is that it is MMU >> less. >> >> Many people might say that it's easy to run linux on the MMU less devices >> as the linux kernel has its own flavour without MMU and that is uClinux. >> >> ofcourse I agree but what I found with my search and study is that >> uClinux >> is pretty outdated right now and most of the devices using uClinux still >> rely on the >> 2.4.x version and not on 2.6.x >> >> Also the versioning system of uClinux is very different from that of the >> normal linux. >> >> Check it here: >> >> http://www.uclinux.org/pub/uClinux/dist/ >> >> How can someone compare it with the Linux version which is in the form of >> 2.6.xx >> >> After doing some more search and with the help of a friend I got this >> link: >> >> http://www.linux-arm.org/LinuxKernel/LinuxM3 >> >> Here the arm linux has been given as git repository. >> >> But before I get further I thought why not I should involve the expert >> people of this forum also in to my this journey. >> >> So the question is that if I want to run or port the linux 2.6.33 to the >> STM32F407VGT6 >> >> than how can I get to that. > > > The short answer is: You cannot. > > The uClinux variant is created to by-pass the problems > created by a CPU without a MMU, but it has its limitations. > The memory management of the full kernel absolutely needs > a MMU to work. >
The short answer is that you cannot run Linux on a cpu without an MMU - but the long answer is that you /can/ do so. The ucLinux project was started for exactly that purpose - but the changes required have long since been merged in mainline and you can build a current 3.13 kernel for an ARM with no MMU. However, the even longer answer is that it is not an easy matter, and it does not seem to be done very much (I certainly haven't tried it myself). It is also important to remember that the limitations of a Linux system without an MMU - as well as the obvious things (no swap, little or no protection of memory spaces between processes), there is a key difference that nommu Linux does not support "fork". There are plenty of other ways to create new processes and threads, but traditional *nix fork calls require copy-on-write memory to be efficient (this is the main reason why multiple processes has always been far cheaper on *nix systems than on windows systems).
2014-03-04 21:15, piyushpandey skrev:
> Hi guys > > I am starting this new thread in hope that it will be a good sharing > platform for both advanced users and the beginners. > > Actually what I am going to discuss here is that how to run linux kernel on > the > STM32F407VGT6 controllers the main feature of which is that it is MMU > less. >
It would be interesting to understand WHY you want to run it on this chip and not on a chip which is well supported by linux? Even if uCLinux can run on a Cortex-M�, do you have support for the peripherals? Even more interesting would be to see a calculation on return on investment that would make sense.
> Many people might say that it's easy to run linux on the MMU less devices > as the linux kernel has its own flavour without MMU and that is uClinux. > > ofcourse I agree but what I found with my search and study is that uClinux > is pretty outdated right now and most of the devices using uClinux still > rely on the > 2.4.x version and not on 2.6.x
It isa outdated for a resaon, the cost of Linux capable controllers are now so low, that in most, if not all cases, it does not make economic sense to run linux on an MMU less controller. BR Ulf Samuelsson
> > Also the versioning system of uClinux is very different from that of the > normal linux. > > Check it here: > > http://www.uclinux.org/pub/uClinux/dist/ > > How can someone compare it with the Linux version which is in the form of > 2.6.xx > > After doing some more search and with the help of a friend I got this > link: > > http://www.linux-arm.org/LinuxKernel/LinuxM3 > > Here the arm linux has been given as git repository. > > But before I get further I thought why not I should involve the expert > people of this forum also in to my this journey. > > So the question is that if I want to run or port the linux 2.6.33 to the > STM32F407VGT6 > > than how can I get to that. > > Please guys I hope the inputs from all the people on this forum. > > > Thanks > > > --------------------------------------- > Posted through http://www.EmbeddedRelated.com >
On Wednesday, March 5, 2014 1:42:23 AM UTC-8, piyushpandey wrote:
> > > > >The short answer is: You cannot. > > I disagree with you that you can't run linux on the cortex m4 > architecture.
Sure, you can disagree, but we disagree with your disagreement. Back to a more basic question. How much memory do you have? There is no way to fit a functional 2.6 kernel in 1M internal flash. If you are using external memory, there are better choices.