LinuxQuestions.org
Visit Jeremy's Blog.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Hardware > Linux - Embedded & Single-board computer
User Name
Password
Linux - Embedded & Single-board computer This forum is for the discussion of Linux on both embedded devices and single-board computers (such as the Raspberry Pi, BeagleBoard and PandaBoard). Discussions involving Arduino, plug computers and other micro-controller like devices are also welcome.

Notices



Reply
 
Search this Thread
Old 02-10-2009, 09:14 AM   #1
priyadarshan
Member
 
Registered: Feb 2009
Location: Ahmedabad, Gujarat, India
Posts: 197

Rep: Reputation: Disabled
Question Xpert in 8-16 bit microcontroller embedded system now inclining toward embedded linux


Hello friends,

I am here to get into embedded linux...I have developed many projects of 8bit microcontroller based embedded system.....I, now want myself to dive into sea of embedded linux for more complex stuff...
Being newbie here I want to know some thing and I have some questions in my mind so pls guys do help me.....

(1) I know linux does not work on 16 bit controllers.....So to develope and test the things do I need to buy processor board???......and pls suggest which kind of and more specifically which one for newbie llike me.....

(2) I want to know on which distro do I need to work???.........How can I load kernel in my hardware???......Any tutorial for that???

(3) I have heared about JTAG...Is it for loading kernel into embedded board???.......If yes than pls provide any tutorial like thing.....

(4) Pls Suggest any book from scratch to professional level so I can dive real deep into this sea of embedded linux.....THANKS IN ADVANCE
 
Old 02-11-2009, 12:54 PM   #2
jf.argentino
Member
 
Registered: Apr 2008
Location: Toulon (France)
Distribution: FEDORA CORE
Posts: 492

Rep: Reputation: 50
Quote:
I, now want myself to dive into sea of embedded linux for more complex stuff...
Being newbie here I want to know some thing and I have some questions in my mind so pls guys do help me.....
First of all, it's really important to make the distinction between linux which is only a kernel, what's you need is a distribution: a kernel, a standard library and as many applications as your application needs. You can take a look here: http://www.uclinux.org/ to have a better idea of what I mean.

Quote:
(1) I know linux does not work on 16 bit controllers.....
I don't know why do you say that! Get the linux kernel sources, and take a look into the "arch" subdir to have an idea on which arch the linux kernel can run.

Quote:
(2) I want to know on which distro do I need to work???.........
Any tutorial for that???[/QUOTE]
Any linux distribution can be used as development system, even a WINDOWS could be use (but I think it will be more difficult to get your toolchain working)
Quote:
How can I load kernel in my hardware???......
It depends on your hardware, some usual ways are: downloading a system image from a tftp server, downloading through a serial port, flashing with a JTAG, using a SD-CARD connected through SPI...
Quote:
Any tutorial for that???
Plenty of, the only one I can give advise you is blackfin.uclinux.org, since this is the only "kind of" micro-controller I use (it's a DSP but...)

Quote:
3) I have heared about JTAG...Is it for loading kernel into embedded board???
You can use it for that, but as far as I know it's a tool mainly used to debug embedded system as you can stop process and take a look to internal registers and these kind of stuff. I think it's more for kernel developers than for you, but I can be wrong.

Quote:
(4) Pls Suggest any book from scratch to professional level so I can dive real deep into this sea of embedded linux.....
Embedded linux means (for me) nothing in a developer point of view. I mean, what's the difference between an embedded linux and a normal one? The normal one have a keyboard and a screen, that's all. Now if you want to design a system from scratch, you have to understand well how works a linux system, so just playing with your PC is OK. Being a kernel hacker isn't necessary (while you don't have to write a driver), but how a linux system boot, the system initialization process, the config files, how to redirect the console onto a serial port, how to keep your system in an initial ramdisk, using toolbox like "busybox"... You can train yourself on your own PC, the ideas keep the same. Then, if your CPU doesn't have a MMU, you'll choose a standard libray like uclibc, but it's quite straight-forward to use it instead of the glibc you'll find on any linux distro. I think the most difficult part is how to adapt some kernel parameters to your hardware, and task like flashing the memory (if any) of your hardware... The difficulty there depends on the dev board you'll use, and how you'll be familiar with the hardware on it, not really with linux itself.
 
Old 02-12-2009, 05:28 AM   #3
salasi
Senior Member
 
Registered: Jul 2007
Location: Directly above centre of the earth, UK
Distribution: SuSE, plus some hopping
Posts: 3,919

Rep: Reputation: 779Reputation: 779Reputation: 779Reputation: 779Reputation: 779Reputation: 779Reputation: 779
Quote:
Originally Posted by jf.argentino View Post
Quote:
I know linux does not work on 16 bit controllers.....
I don't know why do you say that! Get the linux kernel sources, and take a look into the "arch" subdir to have an idea on which arch the linux kernel can run.
One thing that may be causing confusion, and one distinction that is well worth bearing in mind, is whether there is a memory manager. Most Linuxes (desktop, server) assume that a memory manager will be present as a matter of course. For many of the simpler devices, including most 4/8/16 bit parts, there isn't a memory manager and so this combination is unworkable.

There are, however, Linuxes (builds of Linux/packages of stuff to enable you to build Linux to your exact requirements) which have the option of not using a memory manager, so even this isn't an absolute block on using the simpler parts.

In addition, as well as being simpler, the 8/16 bit devices don't tend to support a very large address space, and an OS like Linux will require more memory space than a simple monitor and they tend to be on the slower side, so there are applications for which you might think Linux - or any real OS, as opposed to a monitor - is a bad idea..

Quote:
You can use it for that, but as far as I know it's a tool mainly used to debug embedded system as you can stop process and take a look to internal registers and these kind of stuff. I think it's more for kernel developers than for you, but I can be wrong.
The fact that you can use JTAG to tracei or download software means that you can use it for boot loading (assuming that there is a bootloader in place) and so people do. In fact, if you already have a tool that can do the job, you probably wouldn't create another, unless there was something wrong with the first tool.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
fsck for embedded linux system zvivered Linux - Embedded & Single-board computer 3 11-03-2008 12:16 PM
LXer: Embedded Linux as Dependable for Developers as RTOSes, says Embedded Market For LXer Syndicated Linux News 0 01-23-2008 12:40 PM
Porting linux to embedded system. swapnilborg Linux - Software 0 12-21-2005 05:31 AM
Getting linux to boot on embedded system BleedingEdge Linux From Scratch 3 06-19-2005 07:36 AM


All times are GMT -5. The time now is 06:01 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration