Getting more into Embedded Linux : 1st part
Posted by Beyond
So, in the previous posts we got introduced with the Embedded Linux..
From now onwards, we will be learning the real stuff. I am assuming that you people are THRU with the Pre-requisites I mentioned in the previous post (at least fair knowledge of linux and C). We will be taking a real example so as to take a Practical approach towards the Embedded Linux Systems…may be it becomes easier to understand..
Be real Passionate about any of the work you do otherwise It will appear bore to you specially for the case of Embedded Systems. It is real big domain!!! Otherwise you may leave it after a while…a lot of people do..or I should say ..they quit pertaining to the difficulties faced in the Embedded linux stuff.
Introduction with a few Terms:
For this, let me say in short, (we will have a seperate post for it); the code that makes the embedded system to LIVE UP..
(please comment if you people dont agree with my term LIVE UP..I always like discussions)
what I mean by live up is that any of the Embedded System specifically SBC and pc etc. are having so much of peripherals and buses etc. So how to make them work in order.\i.e. their initiallisation part ..Its all done by Bootloader
For ex- BIOS in your PC, initialize the board necessary componenets such as Serial port, Ram, Processor, etc and peripherals(may be the case)..do a hardware test, and then loads your bootstrap loader i.e. GRUB / LILO / syslinux or your windows loader !
It simply means that to compile on my HOST(the machine where I am compiling the programs) but the compiled programs are for my target device or another platform..(as simple as the name is..CROSS..) So, we actually compile binary for another system..this is termed as Cross Compiling.
As we know, that in order to compile a program, we require a lot of tools that is a preprocessor, compiler proper, linker, assembler, loader, So, this is the case everywhere. Similarly, we require these tools to compile our application or program for the target system. For example-If I want to compile a hello world program for ARM processor based board / embedded device(i will cover it in next post); So what all you require is a TOOLCHAIN i.e. all the program to compile the code to act as a binary executable for ARM architecture..
In embedded systems, a board support package (BSP) is implementation specific support code for a given (device motherboard) board that conforms to a given operating system. It is commonly built with a bootloader that contains the minimal device support to load the operating system and device drivers for all the devices on the board. Some suppliers also provide a root file system, a toolchain for making programs to run on the embedded system (which would be part of the architecture support package), and configurators for the devices (while running). Rest, we will discuss when we will actually use the BSPs.
In most simple terms, I would say that It is the way the data and files are organised in the partition(space). All the file systems like that of ext2, ext3, ext4, ReiserFS, Btrfs, NTFS, etc. etc. are used as they are in case of embedded systems.. Other flash bsed file systems are also used because we will usually have Flash in our embedded Devices..