Difference between revisions of "Toolbox"

From eLinux.org
Jump to: navigation, search
(Reference Material)
(Remove new page - already covered in other pages)
 
(51 intermediate revisions by 11 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]]
 +
;[[Debug Assist Boards]]
 +
;[[Memory Debuggers]]
 +
;[[Tools]]
 +
;[[Integrated Development Environments]]
 +
;[[Emulators]]
 +
;[[Tracers and Profilers]]
 +
;[[Benchmark Programs | Benchmarks]]
 +
;[[Source Management Tools]]
 +
;[[Test Systems]]
 +
;[[Test Tools]]
 +
;[[Scripting]]
  
== Toolchains ==
 
* see [[Toolchains]]
 
  
== Debuggers ==
+
</div>
* [http://openocd.berlios.de/web/ Open On-Chip Debugger]
+
| valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"|
* [[GDB|GDB - The GNU debugger]]
+
<div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Developer Resources </div>
* [http://www.gnu.org/software/ddd/ DDD - Data Display Debugger]
+
<div style="margin: 0 0 0 1em;">
* [[kgdb| kgdb - kernel source level debugger]]
+
;[[Linux Kernel Resources]]
* [[Valgrind|valgrind - memory, cache and other debuggers and profilers]]
+
;Kernel Subsystems
* [[Electric Fence| efence - Memory Debugger]]
+
*[http://www.linusakesson.net/programming/tty/index.php The TTY Demystified] - excellent explanation of kernel tty system
 +
* [[Device Tree]] - 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]]
 +
;[[Beginning Programming]]
  
== Integrated Development Environments ==
+
</div>
* [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.
+
| valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"|
* [http://www.kdevelop.org KDevelop] - Standard IDE for KDE.
+
<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>
* [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].
+
<div style="margin: 0 0 0 1em;">
* [http://www.vim.org/ VIm] - Powerful IDE, extensible with scripting, can use various modules for completion and more.
+
;[[Chip_Identification|How to Identify IC Markings]]
* [http://kscope.sourceforge.net/ KScope] - Cscope based source editing environment with KDE.
+
;[[Code Styling Tips]]
* [http://www.anjuta.org Anjuta] - IDE with nice plugin support
+
;[[Debugging Tips]]
* FIXTHIS - need more links for IDEs
+
;[[GDB Tips]]
 +
;[[GCC Tips]]
 +
;[[Editor Tips]]
 +
;[[:Category:Tips and Tricks]]
 +
</div>
  
== Emulators ==
+
| valign="top" style="margin: 0 0 0.5em 1em; border:1px solid #aaa; text-align:left; width: 33%;" cellpadding="5"|
* [[Qemu| Qemu - hardware emulator]]
+
<div style="background: #eeeeee; border: 1px solid #2C547A; padding: 5px; margin: 3px; font-weight:bold;text-align:center;font-size:120%;">Misc & Wishlist</div>
* [http://www.skyeye.org/ Skyeye]
+
<div style="margin: 0 0 0 1em;">
 
+
;[[Bluetooth Network| Setting up a Bluetooth Network]]
== Tracers and Profilers ==
+
;[[Continuous Logging for Watchdog Timer Expiration]]
* see [[Kernel Trace Systems]]
+
;[[Crash Diagnostics]]
* 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
 
 
 
== Documentation ==
 
==== Online ====
 
* Linux Device Drivers, 3rd edition - http://lwn.net/Kernel/LDD3/
 
* Papers from the Ottawa Linux Symposium - broken out - see http://kernel.org/doc/ols/
 
* Embedded Linux kernel and driver development - http://free-electrons.com/training/drivers
 
* 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
 
 
 
* [[Essential_Linux_Device_Drivers|Essential Linux Device Drivers]] - by Sreekrishnan Venkateswaran
 
* [[Linux_Device_Drivers|Linux Device Drivers]] - by Christopher Jonathan Corbet, Alessandro Rubini, Greg Kroah-Hartman
 
* [[Linux Debugging and Performance Tuning]] - by Steve Best
 
 
 
 
 
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://www.timesys.com/resources/podcast - a series of podcasts from timesys (on linux of course)
 
 
 
== Code Style Tips ==
 
* This section is for good [[Code Styling Tips]]
 
* [[Extern_Vs_Static_Inline]] is a short explanation on the proper use of "inline" in kernel code.
 
 
 
== Debugging Tips ==
 
* See the [[Kernel Debugging Tips]] page
 
* See also [[Debugging Makefiles]]
 
* [[Printk]]
 
 
 
== 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]]

Latest revision as of 10:31, 9 January 2020