Maemo developer tools
m (Reverted edits by kristymartin (Talk); changed back to last version by amigadave) |
(wikify slightly, cut outdated information) |
||
Line 1: | Line 1: | ||
- | |||
- | |||
== Standard maemo developer tools == | == Standard maemo developer tools == | ||
- | + | {{main|Documentation/devtools/maemo5}} | |
+ | |||
+ | Many free software development tools are shipped for Maemo. These include: | ||
* '''Valgrind''': Analyse your application's memory usage, and diagnose performance issues. | * '''Valgrind''': Analyse your application's memory usage, and diagnose performance issues. | ||
* '''gdb''': The standard GNU debugger | * '''gdb''': The standard GNU debugger | ||
Line 9: | Line 9: | ||
* '''bluez-hcidump''': Analyse bluetooth traffic | * '''bluez-hcidump''': Analyse bluetooth traffic | ||
- | + | There are also [http://maemo.org/development/tools/diablo/ developer tools for Maemo 4]. | |
- | == | + | ==Maemo Virtual SDK image== |
- | + | ||
- | + | {{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images}} | |
- | + | A preconfigured virtualized environment for testing, demonstrating and development. | |
- | == | + | ==ESBox== |
- | + | ||
+ | {{main|Documentation/Maemo Eclipse Tutorial}} | ||
+ | |||
+ | Use Eclipse to develop Maemo applications. | ||
==Flasher tool instructions== | ==Flasher tool instructions== | ||
- | + | ||
+ | {{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5}} | ||
+ | |||
+ | Using the flasher program to [[updating the firmware|update firmware]]. | ||
==Qemu== | ==Qemu== | ||
- | http://www.nongnu.org/qemu/ Qemu is an | + | [http://www.nongnu.org/qemu/ Qemu] is an open source fast and portable "universal" emulator (emulates x86, ppc, sparc, arm, mips, x86_64, ... on windows, linux, solaris, bsd and others). It can emulate full machines (like vmware does), and even can help to run arm binaries on linux/x86 without emulating a full machine (it can convert target machine instructions to native hosts instructions on the fly). Gui appz are still too device-dependant so we still can't run them this way. So this is a very good tool to test (non-gui) cross compiled softwares. |
Hope at some time somes (maybe Nokia) will contribute this project so it can emulate a 770 machine (I mean, the cpu emulator is already done, and the network layer is functional, but we need at least an emulation of the graphic card and the conversion from mouse input to touchscreen in order to test graphical applications on emulator, and of course the specifics of 770 cpu wiring) (How cool it'd be to boot straight the 770's native rootfs on host devlopment desktop !) | Hope at some time somes (maybe Nokia) will contribute this project so it can emulate a 770 machine (I mean, the cpu emulator is already done, and the network layer is functional, but we need at least an emulation of the graphic card and the conversion from mouse input to touchscreen in order to test graphical applications on emulator, and of course the specifics of 770 cpu wiring) (How cool it'd be to boot straight the 770's native rootfs on host devlopment desktop !) | ||
Line 33: | Line 38: | ||
==DDD== | ==DDD== | ||
- | The | + | The [http://www.gnu.org/software/ddd/ GNU graphical debugger] can be built fairly easily in a [[Open development/Maemo roadmap/Diablo|Diablo]] 4.1 Scratchbox: |
- | + | ||
- | + | ||
First get all the sources you'll need. This should be done outside the scratchbox but to a location the scratchbox has access to. | First get all the sources you'll need. This should be done outside the scratchbox but to a location the scratchbox has access to. | ||
apt-get source x11proto-print-dev | apt-get source x11proto-print-dev |
Revision as of 11:21, 1 February 2011
Contents |
Standard maemo developer tools
Main article: Documentation/devtools/maemo5
Many free software development tools are shipped for Maemo. These include:
- Valgrind: Analyse your application's memory usage, and diagnose performance issues.
- gdb: The standard GNU debugger
- oprofile and oprofileui: Systemwide profiling information with low overhead
- bluez-hcidump: Analyse bluetooth traffic
There are also developer tools for Maemo 4.
Maemo Virtual SDK image
Main article: Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images
A preconfigured virtualized environment for testing, demonstrating and development.
ESBox
Main article: Documentation/Maemo Eclipse Tutorial
Use Eclipse to develop Maemo applications.
Flasher tool instructions
Using the flasher program to update firmware.
Qemu
Qemu is an open source fast and portable "universal" emulator (emulates x86, ppc, sparc, arm, mips, x86_64, ... on windows, linux, solaris, bsd and others). It can emulate full machines (like vmware does), and even can help to run arm binaries on linux/x86 without emulating a full machine (it can convert target machine instructions to native hosts instructions on the fly). Gui appz are still too device-dependant so we still can't run them this way. So this is a very good tool to test (non-gui) cross compiled softwares.
Hope at some time somes (maybe Nokia) will contribute this project so it can emulate a 770 machine (I mean, the cpu emulator is already done, and the network layer is functional, but we need at least an emulation of the graphic card and the conversion from mouse input to touchscreen in order to test graphical applications on emulator, and of course the specifics of 770 cpu wiring) (How cool it'd be to boot straight the 770's native rootfs on host devlopment desktop !)
Why graphics card and touchscreen emulation is needed? Only games and multimedia use HW pixel doubling, everything else goes through X server, for which Xephyr can already be used with Qemu. Touchscreen can be emulated by using a laptop with touchscreen. DSP is used for sound output on the device, but for normal applications in the SDK that could probably be handled just by using x86 specific Gstreamer plugins and ESD.
The official Qemu releases starting from 0.8.0 supports also systen mode emulation for ARM Integrator CP. Before 0.8.0 everything else than CPU operations were given to the host OS (Linux) kernel.
DDD
The GNU graphical debugger can be built fairly easily in a Diablo 4.1 Scratchbox: First get all the sources you'll need. This should be done outside the scratchbox but to a location the scratchbox has access to.
apt-get source x11proto-print-dev apt-get source libxp-dev apt-get source lesstif2-dev apt-get source ddd
Then, in the scratchbox porting area:
cd x11proto-print-1.0.3.xsf1 fakeroot ./debian/rules build binary dpkg -i ../x11proto-print-dev_1.0.3.xsf1-1_all.deb
cd libxp-1.0.0.xsf1 fakeroot ./debian/rules build binary dpkg -i ../libxp6_1.0.0.xsf1-1_i386.deb dpkg -i ../libxp-dev_1.0.0.xsf1-1_i386.deb
cd lesstif2-0.95.0 fakeroot ./debian/rules build binary dpkg -i ../lesstif2-dev_0.95.0-2.1_i386.deb
cd ddd-3.3.11 fakeroot ./debian/rules build binary dpkg -i ../ddd_3.3.11-1_i386.deb
When running ddd, use:
run-standalone.sh ddd -display :0 <app to be debugged>
and then use Program->run to append --display :2 to get the app to appear in Xephyr.
Tested on scratchbox1 under Diablo SDK4.1, target X86 by lbt 14:41, 1 July 2008 (UTC)