Presentation is loading. Please wait.

Presentation is loading. Please wait.

The World Leader in High Performance Signal Processing Solutions Toolchain Basics.

Similar presentations


Presentation on theme: "The World Leader in High Performance Signal Processing Solutions Toolchain Basics."— Presentation transcript:

1 The World Leader in High Performance Signal Processing Solutions Toolchain Basics

2 a 2  Components that make up blackfin toolchain  GCC 3.4.4, GCC 4.0 already in place  Compiler  Binutils 2.15  Includes assembler and linker  Elf2flt  Utility that converts files from elf format to a flat file format  Three different install options are available (first 2 recommended)  Binaries  Pre-compiled Binaries  RPM  Pre-Compiled Binaries in RPM Package Manager (RPM) format  Compiling Source

3 a 3 Development Environment—Libraries What‘s the uClibc ?  is a C library for developing embedded Linux systems. It is much smaller than the GNU C Library (glibc), but nearly all applications supported by glibc also work perfectly with uClibc. Why you need uClibc ?  Any Unix-like operating system needs a C library: e.g. library which defines the „system calls'' open, read, write, ioctl, close and other basic facilities such as printf, molloc, exit...

4 a 4 Development Environment—Toolchain  To use uClibc, you need to have a toolchain, which is composed of  binutils,  gcc,  uClibc.  The GNU Binutils are a collection of binary tools. The main ones are:  ld - the GNU linker.  as - the GNU assembler.  Ar - A utility for creating, modifying and extracting from archives.  c++filt - Filter to demangle encoded C++ symbols.  addr2line - Converts addresses into filenames and line numbers. Gprof, Nlmconv, nm, objcopy, objdump, ranlib, Readelf, Size, Strings, strip, windres

5 a 5 Development Process — IDEs 1/3 Debugger  Linux Platform (gdb or DDD)  Breakpoints  Watchpoints  Backtrace  Disassembled code  Examine Memory  Examine Registers GNU DDD is a graphical front-end for command-line debuggers such as GDB, DBX, WDB, Ladebug, JDB, XDB, the Perl debugger

6 a 6 Development Process — IDEs 2/3  Source Navigator  Works under Windows and Linux  Provides cross- reference information for all sources in a project  Free (http://sourcenav.sourceforge.net)

7 a 7 Development Process — IDEs 3/3  Eclipse  Java™-based IDE  Commercial plug- ins available  Cross-platform support  Blackfin interface provided by Analog Devices  Zero cost (http://www.eclipse.org)

8 a 8 BFLT file format  Lightweight binary format for uClinux  -Wl,-elf2flt options to convert ELF to bFLT  Compared with ELF: Simpler header, Smaller size (no symbol table), Quick loading (relocation)  Structure:

9 a 9 BFLT file format - header  flat header:  flthdr utility to display and modify header  struct flat_hdr { char magic[4]; unsigned long rev; /* version */ unsigned long entry; /* Offset of first executable instruction with text segment from beginning of file */ unsigned long data_start; /* Offset of data segment from beginning of file */ unsigned long data_end; /* Offset of end of data segment from beginning of file */ unsigned long bss_end; /* Offset of end of bss segment from beginning of file */ /* (It is assumed that data_end through bss_end forms the bss segment.) */ unsigned long stack_size; /* Size of stack, in bytes */ unsigned long reloc_start; /* Offset of relocation records from beginning of file */ unsigned long reloc_count; /* Number of relocation records */ unsigned long flags; unsigned long filler[6]; /* Reserved, set to zero */ };

10 a 10 Relocation  #define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */  #define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */  #define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */  #define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */  #define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */  Do relocate while program loading  Each entry in the relocation table is an address of a location that needs to be relocated.

11 a 11 Demo - Adding User Applications to the uClinux Distribution  To add your own user application to the Blackfin uClinux-dist, follow the link: http://docs.blackfin.uclinux.org/doku.php?id=addin g_user_applications http://docs.blackfin.uclinux.org/doku.php?id=addin g_user_applications

12 a 12 Demo: Debug kernel using KGDB  To do source code kernel debug using KGDB: http://docs.blackfin.uclinux.org/doku.php?id=debuggers#deb ugging_kernel

13 a 13 Demo: Debug using JTAG (gdbproxy)  http://docs.blackfin.uclinux.org/doku.php?id=debuggers#de bugging_via_jtag_gdbproxy

14 a 14 Demo – Debug application (gdbserver)  http://docs.blackfin.uclinux.org/doku.php?id=debuggers#de bugging_via_ethernet


Download ppt "The World Leader in High Performance Signal Processing Solutions Toolchain Basics."

Similar presentations


Ads by Google