Monday 3 February 2014

Introduction to Embedded Linux

Hi folks...

I hope you all are doing well... Today from this post we will start to learn embedded linux and device drivers.

In this post I'll discuss about the introduction of embedded linux which is quite boring, but this intro will build interest to learn emblinux... njoy it !!

Intoduction :

History :
-1983, Richard Stallman, GNU project and the free software concept. Beginning of the development of gcc, gdb, glibc and other important tools

-1991, Linus Torvalds, Linux kernel project, a Unix-like operating system kernel. Together with GNU software and many other open-source components: a completely free operating system, GNU/Linux

-1995, Linux is more and more popular on server systems 2000, Linux is more and more popular on embedded systems

-2008, Linux is more and more popular on mobile devices

-2010, Linux is more and more popular on phones

What is embedded Linux?
-If you'll search for this answer you'll get different answers in different books and websites. So according to me "Embedded Linux is the usage of the Linux kernel and various open-source components in embedded systems".

There are several Advantages of Linux and open-source for embedded systems :
1) Re-using components
2) Low cost
3) Full control
4) Quality
5) Eases testing of new features
6) Community support

Okay !! Now we got an introduction of embedded linux and we got several advantages to use linux in embedded system but actually where to use embedded linux... ?? So we will see some of the real time example where embedded linux is used...

Telivison








Router







Point to terminal device



So these are the few example where peoples areusin embedded linux.... :)






Embedded hardware for Linux systems :
- Processor : The Linux kernel and most other architecture-dependent component support a wide range of 32 and 64 bits architectures
example : -x86 and x86-64, as found on PC platforms,
                 -ARM, with hundreds of different SoC
                 -PowerPC, MIPS, SuperH, Blackfin, Coldfire, SCore, Tile, Xtensa, FRV, AVR32, M32R etc...

Here the thing is to understand is that linux supports Both MMU and no-MMU architectures and Linux is not designed for small microcontrollers and Besides the toolchain, the bootloader and the kernel, all other components are generally architecture-independent.

- RAM and storage :
RAM: a very basic Linux system can work within 8 MB ofRAM, but a more realistic system will usually require at least 32 MB of RAM. Depends on the type and size of applications.
Storage: a very basic Linux system can work within 4 MB of storage, but usually more is needed.
Flash storage is supported, both NAND and NOR flash, with
specific filesystems.

- The Linux kernel has support for many common communication busses
I2C, SPI, CAN, 1-wire, SDIO, USB etc...

Criteria for choosing the hardware :
Make sure the hardware you are planning to use is already supported by the Linux kernel(I mean check there is an architecture define in arch directory inside the linux kernel source code), and has an open-source bootloader, especially the SoC you’re targeting.

Embedded Linux system architecture : coming soon...



 Software components :  
-Cross-compilation toolchain : Compiler that runs on the development machine, but generates code for the target.

-Bootloader : Started by the hardware, responsible for basic initialization,loading and executing the kernel

-Linux Kernel : Contains the process and memory management, network stack, device drivers and provides services to userspace applications.

-C library : The interface between the kernel and the userspace applications

-Libraries and applications : Third-party or in-house

 Embedded Linux work :
Several distinct tasks are needed when deploying embedded Linux in a product:

-Board Support Package development : A BSP contains a bootloader and kernel with the suitable device drivers for the targeted hardware which needs Kernel Development training

-System integration : Integrate all the components, bootloader, kernel, third-party libraries and applications and in-house applications into a working system and the Purpose of my blog.

-Development of applications : Normal Linux applications, but using speci cally chosen libraries.



So thats all about the introduction of Embedded linux... Last heading "Embedded linux work" tells about the work scenario of embedded linux development....

Good day !!

Abhishek Mourya 


1 comment:

  1. hi abhi ,you have not respond me yet on the question of boot loader for PIC microcontroller
    reply me soon

    ReplyDelete