|
|
(36 intermediate revisions by 9 users not shown) |
Line 1: |
Line 1: |
| 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. | | 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. |
| | | |
− | = Development Tools = | + | <div style="width=100%; background:#FFF;"> |
− | == Logic Analyzers == | + | {| width="100%" cellspacing="5" cellpadding="0" valign="top" style="background:inherit;" |
− | * see [[Logic_Analyzers]]
| + | | valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5" | |
| + | <div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Development Tools</div> |
| + | <div style="margin: 0 0 0 1em;"> |
| + | ;[[Logic_Analyzers]] |
| + | ;[[Toolchains]] |
| + | ;[[Build Systems]] |
| + | ;[[Embedded Linux Distributions]] |
| + | ;[[Debuggers]] |
| + | ;[[Memory Debuggers]] |
| + | ;[[Tools]] |
| + | ;[[Integrated Development Environments]] |
| + | ;[[Emulators]] |
| + | ;[[Tracers and Profilers]] |
| + | ;[[Benchmark Programs | Benchmarks]] |
| + | ;[[Source Management Tools]] |
| + | ;[[Test Systems]] |
| + | ;[[Test Tools]] |
| | | |
− | == Toolchains ==
| + | </div> |
− | * see [[Toolchains]]
| + | | valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"| |
− | | + | <div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Developer Resources </div> |
− | == Debuggers ==
| + | <div style="margin: 0 0 0 1em;"> |
− | Debugging is one of the most common activities of an embedded developper. Here are some debuggers howto and links:
| + | ;[[Linux Kernel Resources]] |
− | * [http://openocd.berlios.de/web/ Open On-Chip Debugger]
| + | ;Kernel Subsystems |
− | * [[GDB|GDB - The GNU debugger]]
| + | *[http://www.linusakesson.net/programming/tty/index.php The TTY Demystified] - excellent explanation of kernel tty system |
− | * [http://www.gnu.org/software/ddd/ DDD - Data Display Debugger]
| |
− | * [[kgdb| kgdb - kernel source level debugger]]
| |
− | * [[Valgrind|valgrind - memory, cache and other debuggers and profilers]]
| |
− | * [[Electric Fence| efence - Memory Debugger]]
| |
− | == Other debugging tools(not debuggers) ==
| |
− | * [[Strace]]
| |
− | | |
− | == Integrated Development Environments ==
| |
− | * [http://www.eclipse.org Eclipse] - Powerfull IDE written in JAVA.
| |
− | * [http://www.jedit.org jEdit] - Editor written in JAVA which can be expanded to a full IDE with plug-ins.
| |
− | * [http://www.kdevelop.org KDevelop] - Standard IDE for KDE.
| |
− | * [http://www.gnu.org/software/emacs 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 [http://ecb.sourceforge.net/ ECB].
| |
− | * [http://www.vim.org/ VIm] - Powerful IDE, extensible with scripting, can use various modules for completion and more.
| |
− | * [http://kscope.sourceforge.net/ KScope] - Cscope based source editing environment with KDE.
| |
− | * [http://www.anjuta.org Anjuta] - IDE with nice plugin support
| |
− | * FIXTHIS - need more links for IDEs
| |
− | | |
− | == Emulators ==
| |
− | * [[Qemu| Qemu - hardware emulator]] - for everything (try this first)
| |
− | * [http://www.skyeye.org/ Skyeye] - for ARM
| |
− | * [http://aranym.org Aranym] - for M68K
| |
− | * [http://www.hercules-390.org Hercules] - For S390
| |
− | | |
− | == Tracers and Profilers ==
| |
− | * see [[Kernel Trace Systems]]
| |
− | * see [[Profilers]]
| |
− | | |
− | == Benchmarks ==
| |
− | * see [[Benchmark Programs]]
| |
− | | |
− | == 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. == | |
− | * See [[Linux Kernel Resources]]
| |
− | | |
− | == Articles on kernel subsystems ==
| |
− | * [http://www.linusakesson.net/programming/tty/index.php 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 | | * [[Device Trees]] - a structure used to describe system hardware at startup - can be passed or modified by firmware, or built into kernel |
| + | ;Online Documentation |
| + | * [http://kernel.org/doc/ols/ Papers from the Ottawa Linux Symposium] |
| + | * [http://free-electrons.com/training/devtools Free Software tools for embedded systems] |
| + | * [http://free-electrons.com/articles/realtime/ Real time in embedded Linux systems] |
| + | * [http://free-electrons.com/articles/optimizations Embedded Linux optimizations] |
| + | * [http://free-electrons.com/training/audio Audio in embedded Linux systems] |
| + | * [http://free-electrons.com/training/multimedia Multimedia in embedded Linux systems] |
| + | * [http://free-electrons.com/articles/elfs/ Embedded Linux From Scratch... in 40 minutes!] |
| + | * [http://www.makelinux.net/reference Linux technology reference] |
| + | ;[[:Category:Books| Books]] |
| + | ;[[Reference Material]] |
| + | ;[[Podcasts]] |
| + | ;[[Device drivers]] |
| + | </div> |
| + | |- |
| + | | valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"| |
| + | <div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Tips and Tricks</div> |
| + | <div style="margin: 0 0 0 1em;"> |
| + | ;[[Chip_Identification|How to Identify IC Markings]] |
| + | ;[[Code Styling Tips]] |
| + | ;[[Debugging Tips]] |
| + | ;[[GDB Tips]] |
| + | ;[[GCC Tips]] |
| + | ;[[:Category:Tips and Tricks]] |
| + | </div> |
| | | |
− | == Documentation == | + | | valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"| |
− | ==== Kernel ====
| + | <div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Misc & Wishlist</div> |
− | * See [[Linux Kernel Resources]] - the rest of this material is (mostly) about userspace.
| + | <div style="margin: 0 0 0 1em;"> |
− | | + | ;[[Bluetooth Network| Setting up a Bluetooth Network]] |
− | ==== Online ====
| + | ;[[Continuous Logging for Watchdog Timer Expiration]] |
− | * Papers from the Ottawa Linux Symposium - broken out - see http://kernel.org/doc/ols/
| + | ;[[Crash Diagnostics]] |
− | * 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 | 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.
| |
− | | |
− | * [http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949/ref=sr_1_1?ie=UTF8&s=books&qid=1259788186&sr=8-1 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
| |
− | | |
− | * [http://www.amazon.com/Linux-System-Programming-Robert-Love/dp/0596009585/ref=sr_1_1?ie=UTF8&s=books&qid=1259788281&sr=1-1 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
| |
− | | |
− | 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.
| |
− | | |
− | ==== Podcasts ====
| |
− | * [http://tllts.org] - The (Original) Linux Link Tech Show, weekly Linux podcast with archive going back to 2003.
| |
− | * [http://www.timesys.com/resources/podcast] - 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]]
| |
− | | |
− | == 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]]
| |
− | | |
− | = Embedded Linux Distributions =
| |
− | * see [[Embedded Linux Distributions]]
| |
− | | |
− | = Wishlist Items =
| |
− | *[[Continuous Logging for Watchdog Timer Expiration]]
| |
− | *[[Crash Diagnostics]]
| |
| | | |
| + | </div> |
| + | |} |
| + | </div> |
| [[Category:Development Tools]] | | [[Category:Development Tools]] |
| + | [[Category:Tips and Tricks]] |