[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/