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:
-
=Developer Tools=
 
-
 
== Standard maemo developer tools ==
== Standard maemo developer tools ==
-
[http://maemo.org/development/tools/ Many free software development tools] are shipped for maemo. These include:
+
{{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
-
More standard tools and instructions on how to install them are available in [http://maemo.org/development/tools/ the developer section of maemo.org].
+
There are also [http://maemo.org/development/tools/diablo/ developer tools for Maemo 4].
-
==VistaMax IDE==
+
==Maemo Virtual SDK image==
-
http://www.wirelexsoft.com VistaMax IDE for Maemo (beta): a visual Integrated Development Environment with Novel Features Wirelexsoft (www.wirelexsoft.com) offers VistaMax IDE for Maemo, a complete end-to-end graphical based Integrated Development Environment based on Eclipse.
+
-
==Maemo Live CD==
+
{{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo SDK Virtual Images}}
-
Live CD : a pre configured environment for testing, demonstrating and development.
+
A preconfigured virtualized environment for testing, demonstrating and development.
-
==Laika==
+
==ESBox==
-
Laika - Scratchbox Eclipse-plugin project (http://www.cs.tut.fi/~laika/) New version 2.0 has been released. There are improvements such as Glade and Gazpacho support Download Laika straight from kooditakomo (http://kooditakomo.cs.tut.fi/projects/laika/)
+
 
 +
{{main|Documentation/Maemo Eclipse Tutorial}}
 +
 
 +
Use Eclipse to develop Maemo applications.
==Flasher tool instructions==
==Flasher tool instructions==
-
tool usage" - Using the flasher program. (You can find the flasher program on the maemo.org downloads -> tools page)
+
 
 +
{{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 opensource 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.
+
[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 gnu graphical debugger. http://www.gnu.org/software/ddd/
+
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:
-
 
+
-
This 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

Main article: Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5


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)