Difference between revisions of "Toolbox"
Yclinda666 (talk | contribs) (→Emulators) |
(→Debuggers: add link for KDB) |
||
Line 20: | Line 20: | ||
* [http://www.gnu.org/software/ddd/ DDD - Data Display Debugger] | * [http://www.gnu.org/software/ddd/ DDD - Data Display Debugger] | ||
* [[kgdb| kgdb - kernel source level debugger]] | * [[kgdb| kgdb - kernel source level debugger]] | ||
+ | * [KBD] - In-kernel debugger | ||
* [[Valgrind|valgrind - memory, cache and other debuggers and profilers]] | * [[Valgrind|valgrind - memory, cache and other debuggers and profilers]] | ||
Revision as of 15:06, 22 June 2011
This page has information about developing Embedded Linux, including links to toolchains, debuggers and other development tools. Also, it has links to pages with debugging tips.
Contents
- 1 Development Tools
- 1.1 Logic Analyzers
- 1.2 Toolchains
- 1.3 Build Systems
- 1.4 Embedded Linux Distributions
- 1.5 Debuggers
- 1.6 Memory Debuggers
- 1.7 Other debugging tools(not debuggers)
- 1.8 Integrated Development Environments
- 1.9 Emulators
- 1.10 Tracers and Profilers
- 1.11 Benchmarks
- 1.12 Source Management Tools
- 1.13 Test Systems
- 2 Developer Resources
- 3 Wishlist Items
Development Tools
Logic Analyzers
- see Logic_Analyzers
Toolchains
- see Toolchains
Build Systems
- see Build Systems
Embedded Linux Distributions
Debuggers
Debugging is one of the most common activities of an embedded developper. Here are some debuggers howto and links:
- Open On-Chip Debugger
- GDB - The GNU debugger
- DDD - Data Display Debugger
- kgdb - kernel source level debugger
- [KBD] - In-kernel debugger
- valgrind - memory, cache and other debuggers and profilers
Memory Debuggers
See Memory Debuggers
Other debugging tools(not debuggers)
- addr2line for kernel debugging
- decode an ioctl
- Exception Analysis tools
- This includes things like oops emitters, exception monitors, coredump analysis, etc.
Integrated Development Environments
- Eclipse - Powerfull IDE written in JAVA.
- jEdit - Editor written in JAVA which can be expanded to a full IDE with plug-ins.
- KDevelop - Standard IDE for KDE.
- Emacs - Powerful IDE, extensible in LISP, ships with modes to integrates with SCM (GIT, SVN, CVS...), build systems, debugger and even fancy multi-window with ECB.
- VIm - Powerful IDE, extensible with scripting, can use various modules for completion and more.
- KScope - Cscope based source editing environment with KDE.
- Anjuta - IDE with nice plugin support
- FIXTHIS - need more links for IDEs
- Embest IDE for ARM
Emulators
- Qemu - hardware emulator - for everything (try this first)
- Skyeye - for ARM
- Aranym - for M68K
- Hercules - For S390
- UNetICE for ARM7 and ARM9 processors from Embest
- XDS100v2 for TI processor available from Embest
Tracers and Profilers
- Strace - trace system calls by a program (or set of programs) (very handy)
- ltrace - trace library calls
- see Kernel Trace Systems
- see Profilers
Benchmarks
Source Management Tools
There are a number of tools for managing patches, which are useful for different tasks. There's now a whole page devoted to this. See Source Management Tools
For some simple tools for managing patches, see Diff And Patch Tricks
Test Systems
- See Test Systems
Developer Resources
mailing lists, web sites, etc.
Articles on kernel subsystems
- The TTY Demystified - excellent explanation of kernel tty system
- Device Trees - a structure used to describe system hardware at startup - can be passed or modified by firmware, or built into kernel
Documentation
Kernel
- See Linux Kernel Resources - the rest of this material is (mostly) about userspace.
Online
- Papers from the Ottawa Linux Symposium - broken out - see http://kernel.org/doc/ols/
- Free Software tools for embedded systems - http://free-electrons.com/training/devtools
- Real time in embedded Linux systems - http://free-electrons.com/articles/realtime/
- Embedded Linux optimizations - http://free-electrons.com/articles/optimizations
- Audio in embedded Linux systems - http://free-electrons.com/training/audio
- Multimedia in embedded Linux systems - http://free-electrons.com/training/multimedia
- Embedded Linux From Scratch... in 40 minutes! - http://free-electrons.com/articles/elfs/
Books
- Embedded Linux System Design and Development - by P. Raghavan, Amol Lad, and Sriram Neelakandan (Hardcover - Dec 21, 2005)
- This one looks quite good.
- Embedded Linux Primer: A Practical Real-World Approach - by Christopher Hallinan
- So does this one.
- Building Embedded Linux Systems - by Karim Yaghmour
- Be sure to get the second edition (from 2008). The first edition (from 2003) is outdated.
- Advanced Programming in the UNIX Environment, Second Edition by the late W. Richard Stevens and Stephen A. Rago
- Not embedded specific, but THE reference for Linux/Unix programming
- Linux System Programming - by Robert Love
- Good introduction to Linux system programming
- Linux Debugging and Performance Tuning - by Steve Best
- OMAP and DaVinci Software for Dummies - by Steve Blonstein, Alan Campbell, Texas Instruments
- Essential Linux Device Drivers
- Linux Device Drivers
See also Category:Books
Reference Material
- ARM Processor Reference Manuals - Registration required, but it's free.
- go to http://infocenter.arm.com/ => ARM architecture => Reference Manuals => ... => registration link (only name, e-mail address and company name are strictly required).
- The UHAPI Forum standardizes hardware-independent application programming interfaces (APIs) for analog and digital televisions, set top boxes, DVD players and recorders, personal video recorders (PVRs), home servers and other consumer audio/video (A/V) devices.
- Hello_World_in_C
- How traceroute works!
- How DNS works!
- Order_One_Study
- RTWG-discussion-points
- Subset_Libc_Specification
- Extern_Vs_Static_Inline
- Slab_allocator
- Size_Tunables
Podcasts
- [1] - The (Original) Linux Link Tech Show, weekly Linux podcast with archive going back to 2003.
- [2] - Timesys LinuxLink Radio. (Despite the name, it's has nothing to do with the older Linux Link podcast, and it's not on the radio. No longer updates on a regular schedule, but the archives are available.)
Code Style Tips
- See Code Styling Tips
- see also Sparse
Debugging Tips
- See the Kernel Debugging Tips page
- See also Debugging Makefiles
- Printk
- Debug user-space initialization:
- If you get a panic - "not syncing: Attempted to kill init!" it can be for many different reasons. Try setting CONFIG_DEBUG_USER=y in your .config and pass 'user_debug=255' in the kernel command line. That will give you a more verbose output about why user space programs crash. Thanks to Daniel Mack on the linux-arm-kernel mailing list for this tip.
GCC Tips and Tricks
- This section of GCC Tips is a collection of tips and tricks helpful for embedded developers
Network Setup
- Settings up a Bluetooth Network