LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Embedded & Single-board computer (http://www.linuxquestions.org/questions/linux-embedded-and-single-board-computer-78/)
-   -   Xpert in 8-16 bit microcontroller embedded system now inclining toward embedded linux (http://www.linuxquestions.org/questions/linux-embedded-and-single-board-computer-78/xpert-in-8-16-bit-microcontroller-embedded-system-now-inclining-toward-embedded-linux-703610/)

priyadarshan 02-10-2009 08:14 AM

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

jf.argentino 02-11-2009 11:54 AM

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.

salasi 02-12-2009 04:28 AM

Quote:

Originally Posted by jf.argentino (Post 3439901)
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.


All times are GMT -5. The time now is 11:58 PM.