Documentation/devtools

(New page: =Developer tools documentation= * Developer tools for Maemo 5 Documentation/devtools/maemo5 * Developer tools for Maemo 4 [http://maemo.org/development/tools/diablo http://maemo.org/...)
(add information from Maemo developer tools)
 
(2 intermediate revisions not shown)
Line 1: Line 1:
-
=Developer tools documentation=
 
-
 
* Developer tools for Maemo 5 [[Documentation/devtools/maemo5]]
* Developer tools for Maemo 5 [[Documentation/devtools/maemo5]]
-
 
* Developer tools for Maemo 4 [http://maemo.org/development/tools/diablo http://maemo.org/development/tools/diablo]
* Developer tools for Maemo 4 [http://maemo.org/development/tools/diablo http://maemo.org/development/tools/diablo]
 +
 +
== Other developer tools ==
 +
 +
===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===
 +
 +
{{main|Documentation/Maemo 5 Developer Guide/Development Environment/Maemo Flasher-3.5}}
 +
 +
Using the flasher program to [[updating the firmware|update firmware]].
 +
 +
===Qemu===
 +
 +
[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 !)
 +
 +
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 [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.
 +
  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 [[User:lbt|lbt]] 14:41, 1 July 2008 (UTC)
 +
 +
[[Category:Devtools]]
 +
[[Category:Documentation]]

Latest revision as of 11:36, 1 February 2011

Contents

[edit] Other developer tools

[edit] 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.

[edit] ESBox

Main article: Documentation/Maemo Eclipse Tutorial


Use Eclipse to develop Maemo applications.

[edit] Flasher tool instructions

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


Using the flasher program to update firmware.

[edit] 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.

[edit] 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)