[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [microblaze-uclinux] doubt about uclinux distribution and toolchain concepts



Hi Moises,

i know that you need mainly 3 "set" of files to build your own Petalinux kernel: 1) the uClinux kernel (linux-2.6.x-petalogix directory), 2) the uClinux distribution (petalinux-dist directory) and 3) the microblaze gcc tool-chain (microblaze-uclinux-tools directory)
Hm, 1) and 2) come together as I remember... But you're right.


but i am not sure what is the difference, or what is the function of 2) and 3) ??, between uClinux distribution and the tool-chain??

1) is the Linux kernel source tree, containing all source files, header files, configuration files etc. needed to make a kernel.

2) The uCLinux distribution consists of the uCLinux kernel and a heap of sources of user space software and scripts which help you to get a root filesystem image that can be used with the uCLinux kernel. In fact, your kernel just boots and gets in panic, dying and crying, if you don't have a root filesystem containing software to be run on top of the kernel. At least one program is needed to have a working Linux system. Without a program, the kernel just has nothing to administrate and dies. In the uCLinux dist you will find everything to make a small complete system, with init, login, a shell, reboot etc. The PetaLinux consists of a customized Linux kernel tree and a customized ucLinux dist and some magic tools and scripts that help you to (nearly automagically) adapt your kernel and tools to your hardware design done with Xilinx EDK. There are also some ready to run reference designs in PetaLinux-dist.


i know that uClinux distribution has tools to configure the kernel (like menuconfig or xconfig), but what else?,
See above. menuconfig etc. are standard with bare uCLinux, too. But PetaLogix customized all the stuff. Or better: added some stuff.

and the microblaze tool-chain "include everything you need to build uclinux kernels under linux" (i found this definition in a tutorial), then when i do - make dep all - what tools are in action??
Ok, the toolchain. The most important part of the toolchain is the compiler, for microblaze it's a GNU gcc. The other tools of the chain are the GNU assembler "as", the linker "ld" and some other utilities involved in creating runnable software from sources. On a linux system, you will find gcc, as, ld etc. all installed. But they produce output for the platform your Linux is running on - most probably a PC. So if you want to compile code for another kind of CPU, you have to use a cross-compiler and cross-binutils (the compiler's little friends as mentioned above). The compiler and his friends together form the toolchain. To distinguish them from your PC's native PC, their names are prefixed with either "mb-" (from Xilinx) or "microblaze-uclinux-" so that theyr names become mb-gcc, mb-as, mb-ld etc.


when i buil my kernel or when i do my own applications??
For BOTH, of course!

When compiling the kernel or userspace software, some script magic and tools contained in the sources are working hand in hand with the native toolchain (to compile the menuconfig stuff etc.) of your machine, GNU make, and, of course, the cross toolchain for your target processor.

i am confused of what things do the uclinux distribution and what things do the microblaze tool-chain.
I hope you find my superficial explanations helpful...

Best regards,

Philipp :-)



--
http://www.hachti.de
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/