Changes

User:Pau pajuelo

923 bytes removed, 15:28, 5 September 2014
m
DM3730: Decode an AAC audio file (OK)
= Write your first C Program using Eclipse IDE TODO: =
== Overview ==Categorize new tutorials
Eclipse IDE is a software development environtment, this software package is very popular because you can extend its functionalities using pluggins. C applications can be compiled in Eclipse using Autoconf tools or Makefile. Autoconf tools can be useful if you want How to develop a huge application with a lot of software dependencies, but this method can be tedious if you want to develop a simple application. manage the kernel modules on Linux
At IGEP v3.0 VM, Eclipse includes Linux tools and Yocto plugin to develop C applications for IGEP firmware as quickly and easily as possible. How do I edit my kernel command line
== PreAUDIO DSP-requisites ARM==
To follow this How===Included (IGEP GST DSP):==='''AACHEDEC -to you need: > DEC AACHE (OK)'''
*VMware or VirtualBox virtualization software *IGEP SDK v3http://download.0 Virtual Machine RC2 with Eclipse IDE<br> *IGEP BOARD with Ethernet communication (for example IGEPv2)<br> *MANUAL IGEP SDK v3wavetlan.0 VM<br>com/SVV/Media/HTTP/FAAC-HE-AAC.aac
gst-launch --gst-debug-level=2 filesrc location= Getting started sampleaache.m4a ! TIAuddec1 codecName=aachedec engineName=codecServer ! volume volume=0.25 ! alsasink sync==false
First at all, you should read MANUAL IGEP SDK v3.0 VM and follow the next instructions: outofthebox->ok
*Install your Virtual Machine *Install your Virtual Machine Guest additions *Prepare your Rootfs in your Micro SD Card *Connect to your IGEP Board using Ethernet Commnication *Build programs using Eclipse IDE----
== Hello world compiled with Eclipse<br'''MP3DEC -> ==DEC MP3 (AUDIO ERRORS)'''
If you follow "Getting started" chapter you have compiled some source example programs for Eclipse, these programs use Autotools to generate binary code for - Followed README file from ISEE - IGEPDSP - GST + DMAI Support Package 3. Now is time to compile your Helloworld example program without using autotools40. 00
=== Create your new projecthttp: ===//www.stephaniequinn.com/Music/Canon.mp3
Open Eclipsegst-&gt;Filelaunch -&gt;New-&gt;C Project gst-debug-level=2 filesrc location=Canon.mp3 ! TIAuddec1 codecName=mp3dec engineName=codecServer ! volume volume=0.25 ! alsasink sync=false
At C Project Window: '''Random fatal bit error'''
Yocto Project ADT Project '''mp3-&gt;Empty Project plugin doesn't resolve the error'''
Insert your project name and finish. At Project explorer panel you will see your new project----
=== Create your source files: ==='''G711DEC -> DEC PCM uLAW (speech) (NOT TESTED)'''
Go to New C/C++ Source File button and write at "Source file:" field your source file name, for example main.c. Finish the assistant and copy the next code at this file: <pre'''G711ENC ->#include &lt;stdio.h&gt; int main(void){ printfENC PCM uLAW ("Hello world\n"speech); return 0;} </pre> Follow the instructions above and create a Source File named Makefile and copy the next code: <pre>all: main.c $(CCNOT TESTED) -g -O0 -o main main.c'''
clean===Not included (IGEP GST DSP):=== rm '''ACCLCDEC -f main main.o</pre> CC is an environment variable that links with arm-poky-linux-gnueabi-gcc binary DEC AACLE (IGEP SDK GCCNOT TESTED). Environment variables are a set of dynamic named values that can affect the way running processes will behave on a computer. It is very useful because you can generate a Makefile that can be compiled with multiple toolchains. '''
IGEP SDK Environtment variables are located at /opt/poky/1.2/environment'''AACLDDEC -setup-armv7a-vfp-neon-poky-linux-gnueabi. You can add this variables using "source" command or see your current environtment variables using "env" command. > DEC AACLD (NOT TESTED)'''
If you need to develop more complex programs, you should read this [http://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ Makefile tutorial].<br'''WMA9 ->DEC WMA9 (COMPILING ISSUES)'''
=== Compile your program: ==='''ACCLCENC -> ENC AACLE (NOT TESTED)'''
Now you can compile, run and debug your program using the MANUAL IGEP SDK v3.0 VM<br'''ACCHEENC -> ENC AACHE (NOT TESTED)'''
= How to develop with Qt under IGEP ='''AACLDENC -> ENC AACLD (NOT TESTED)'''
== Overview =='''WMA8 -> ENC WMA8 (NOT TESTED)'''
This guide can be helpful to learnt to develop Qt applications under IGEP Boards. Qt is a cross'''Problems adding codecs into igep-platform application framework that is widely used for developing application software with a graphical user interface, and also used for developing nongst-GUI programs such as command-line tools and consoles for servers. You can get more information [http://qt.nokia.com/ here]. dsp'''
== Requirements<br> DM3730==
There are some requisites to follow this guide=== DM3730: Decode a MP3 file (OK) (ADDED TO REPOSISTORIES)===
*IGEP SDK VM: follow the IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 2.3 "Setting up and running the VM")<br> *IGEP Qt Demo: follow the IGEP&nbsp;SDK SOFTWARE&nbsp;USER&nbsp;MANUAL (chapter 6.1 "Create IGEP firmware bootable micro-sd card") and install&nbsp;qt4e-demo-image-igep00x0.tar.bz2 instead IGEP firmware. *[http://www.isee.biz/products/processor-boards/igepv2-board IGEPv2], [http://www.isee.biz/products/expansion-boards/product-igep-berlin IGEP BERLIN] or [http://www.isee.biz/products/expansion-boards/product-igep-paris IGEP PARIS] *MicroSD Card (at least 2Gbytes)<br>'''under contruction'''
'''''"Link software "''does not have an accelerated audio decoder element'''
== Download and install Qt demo image to a SD<br> ==- Compiled gst-plugins-ugly using yocto tools
Once you have open IGEP SDK VM, launch a terminal and&nbsp;: <pre>cd Desktop/wget http://downloads.isee.biz/denzil/binary/qt4e-demorpm -image-igep00x0.tar.bz2 wget http://downloads.isee.biz/denzil/binary/igep_firmwareigst-yoctoplugins-1.2.1ugly-1.tar0.bz2tar jxf igep_firmware-yocto-*.tar.bz2cd igep_firmware-yocto-*</pre> Insert a SD-Card media and use the igep-media-create script to copy the firmware to SD-Card media, required options are: rpm
*-rpm -i libmad0-mmc &lt;/dev/sdX&gt;0.*.rpm
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unformated MMC Card - rpm -i gst-plugins-ugly-mad-0.*.rpm
*-gst-image &lt;filename&gt;launch filesrc location=sample.mp3 ! mad ! volume volume=0.25 ! alsasink
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify === DM3730: Decode a RA or RM audio file used to create the bootable SD card. (ERRORS)===
*gst-launch -machine &lt;machine&gt;-gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; specify the machinehttp://www. Options are igep0020, igep0030 or igep0032<br> superluminal.com/andalib/ra/listen.ra
For example, assuming the SD card device takes "/dev/sdf" and you have and IGEPv2 board (igep0020), type: <pre>./igepgst-mediaplugins-create ugly-rmdemux-mmc /dev/sdf --machine igep0020 -0.10.19-image /home/jdoe/Desktop/qt4e-demo-image-igep00x0r1.tararmv7a.bz2</pre> This should give you a bootable SD-card<br> rpm
== Prepare Qt demo image ==libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm:libgstsdp-0.10-0 libgstsdp-0.10.so.0
Qt demo image is a root filesystem build by Yocto that contains Qt embedded libraries, also this image has some Qt examples for testing purposeslibgstrtsp-0. 10-0-0.10.36-r3.armv7a.rpm:libgstrtsp-0.10-0 libgstrtsp-0.10.so.0
This image doesn't have openssh and gdbserver, so we should install these packages to develop Qt applications. Open a shell prompt using serial communication (IGEP&nbsp;SDK&nbsp;SOFTWARE&nbsp;MANUAL chapter 3.1 "Using serial mode") and type the following commands''Error: <pre>zypper refzypper in opensshzypper in gdbserver</pre> Now you can connect between IGEP and VM using SSH protocol:<br> <pre>ssh root@192.168.5.1</pre> == Using Qt Creator =='''
=== First Steeps0:00:00.084839071 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<brrmdemux0> ===Bogus looking header, unprintable FOURCC
==== Open Program0:00:00.085052695 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<brrmdemux0> ====Bogus looking header, unprintable FOURCC
Go to Applications -&gt; IGEP development -&gt; Qt Creator0:00:00.085540976 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<brrmdemux0> Unknown object_id .ra4
{| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[Image0:Openqtv200:00.085693564 1550 0xa137b0 WARN rmdemux rmdemux.png|331x249px]]<br> | [[Imagec:1012:gst_rmdemux_chain:Qtopenedv2.png|331x249px]]<brrmdemux0>|}Bogus looking header, unprintable FOURCC
==== Open an example0:00:00.085815634 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<brrmdemux0> ====Bogus looking header, unprintable FOURCC
Copy your desired example from0: /opt/QtSDK/Examples/400:00.7 to your desktop085907187 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<brrmdemux0>Unknown object_id RaTC
{| width="200" cellspacing="1" cellpadding="1" borderDM3730: Decode an AAC audio file (OK)==="1"|-| [[Image:Qtcopyanexamplev2.png|496x373px]]|}
EXTRA_OECONF += "--disable-examples --disable-experimental --disable-sdl --disable-cdaudio --disable-directfb \ --with-plugins=musicbrainz,wavpack,ivorbis,mpegvideoparse,'''NOTE:faad2''' some examples (like hellogl) cannot be compiled to ARM --disable-vdpau --disable-apexsink \ --disable-orc"Install:
Open this example with Qt Creator, set Desktop target and use for each Qt Version one debug and one release
{| cellspacing="1" cellpadding="1" border="1" style="width: 675px; height: 256px;"faad2-2.7-r2.armv7a.rpm|libfaad2-2.7-r2.armv7a.rpm| [[Image:Qtopenanexamplev2gst-plugins-bad-faad-0.png|331x249px]] | [[Image:Qtopenanexample2v210.23-r2.png|331x249px]] | [[Image:Qtopenanexample3v2armv7a.png|331x249px]]|}rpm
=== ARM Platform'''maybe there are necessary more packages, compare actual gst-bad-recipe and add changes. Necessary add faad2 recipe'''<brpre> bitbake faad2 gst-plugins-bad</pre><pre> rpm -i faad2-2.7-r2.armv7a.rpmrpm -i libfaad2-2.7-r2.armv7a.rpmrpm -i gst-plugins-bad-faad-0.10.23-r2.1.armv7a.rpm ===</pre>
gst-launch --gst-debug-level=3 filesrc location=sample.aac ! faad ! volume volume= Build Programs <br> ===0.10 ! alsasink
To compile to ARM for IGEP go to Project use the following configuration at Projects field -&gt; Build==== DM3730: Decode an WMA audio file (OK)====
{| width="200" cellspacing="1" cellpadding="1" border="1"|<pre>bitbake gst-| [[Image:Qtarmconfigv2.png|496px]]|}ffmpeg</pre>
'''NOTE:''' Use Debug Release if you want to debug later <pre>gst-launch -v filesrc location=sample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume=0.25 ! alsasink </pre>
Compile with=== DM3730: Build-&gt;Clean All and Build-&gt;Build All Decode an OGG audio file (Ctrl+Shift+BOK). ===
==== Run Programs ===='''Into repositories (base plugins):'''
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and typehttp: <pre>scp "pathtobinary" root@192.168//upload.5wikimedia.1:org/homewikipedia/root<en/pre> Get a remote shell prompt and run your program: <br><pre>ssh root@192.168.5.1.0/"binary" "optional:arguments"<04/pre> {| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[Image:Qtrunarmv2Rayman_2_music_sample.jpg|496x373px]]|}ogg
'''NOTE:''' You cannot use igepgst-remotelaunch -x program because Qt-demo image doesn't have X installedv filesrc location=sample.ogg ! oggdemux ! vorbisdec ! audioconvert ! volume volume=0.<br> 25 ! alsasink
==== Debug Programs ==BASE0033 CONNECTOR SUMMARY TABLE==
Once you compiled the program pass it from VM to IGEP&nbsp;via SSH, launch a terminal and type: <pre>scp "pathtobinary" root@192.168.5.1:/home/root</pre> Get == Configure a remote shell prompt and run gdbserver: <pre>ssh root@192.168.5.1gdbserver "hostip,for example 192.168.5.10":1000 "pathtobinary" "optional:armguments"</pre> Now use static IP using the followings steps to debug program:<br>same private network range ==
{| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[Image:Qtdebugx861v2.png|331x249px]] | [[Image:Qtarmdebug1v2.png|331x249px]]|-| [[Image:Qtarmdebug2v2.png|331x249px]] | [[Image:Qtarmdebug3v2.png|331x249px]]|}'''under construction'''
Set breakpoints in your source codeIGEP Firmware Yocto uses the following Ethernet network configuration (IP addresses)
At Start Debugger window (image 3), use the following configuration*eth0 − 192.168.5.1*eth0:0 − assigned via dhcp.
*Debugger: /opt/poky/1This Ethernet network configuration is really useful when you work using a Linux operating system like IGEP SDK Virtual Machine.2/sysroots/i686-pokysdk-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi/arm-poky-linux-gnueabi-gdb*Local executable: "pathtohostbinary"*Host Because you use eth0 device to communicate easily with your board and port: 192.168.5.1:1000*Architecture: arm*GNU target: arm-none-linux-gnueabi*Sysroot: /opt/poky/1.2/sysroots/armv7a-vfp-neon-poky-linux-gnueabi*Location of debugging informationeth0: (empty)*Override host GDB starrt script0 device to get Internet acces using dhcp protocol. (empty)
But some scenarios this network configuration is not useful, for example: if you use a non-Linux operating system, connect to two IP private range interfaces is not simple. This How-to can be useful to
(Make diagram one: IGEP and Linux defualt communication. Diagram 2 IGEP and other SO alternative configuration)
'''NOTE:''' You cannot use = igep-remote-x program because Qt-demo image doesn't have X installed.<br> ini parameters =
The kernel command line syntax is name=== x86 Platform<br> ===value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:
==== Build Programs [kernel] ====
To compile to x86 go to Project use the following configuration at Projects field -&gt; Build:  {| widthalign="200JUSTIFY" cellspacingcellpadding="1" cellpaddingborder="1" borderstyle="1width: 900px; height: 240px;"|-| '''Parameter Name''' | '''Description''' | '''Default value''' | '''Comments'''|-| kaddress | Kernel copy address | =0x80008000 | Hex memory address|-| rdaddress | Ram Disk location address | =0x81600000 | Hex memory address;<br>disabled by default|-| serial.low | Serial number (low part) | =00000001 | Numeric|-| serial.high | Serial number (high part) | =00000000 | Numeric|-| revision | Revision ID | =0003 | Numeric|-| kImageName | Kernel, binary image name | =zImage | Kernel or binary image name|-| kRdImageName | Kernel RAM Disk Image Name | - | Ram Disk image name|-| MachineID | Machine ID (kernel ID) | ;IGEPv2<br>=2344 | ;Module<br>=2717<br>;Proton<br>=3203
|-
| Mode | Boot Mode | ;Linux kernel<br>=kernel | ;Other image (like uboot)<br>[[Image:Qtx86configv2.png|496px]binary image]
|}
'''NOTE:''' Use Debug Release if you want to debug later<br> === [kparams] ===
Compile with{| align="JUSTIFY" cellpadding="1" border="1" style="width: 900px; height: Build1095px;"|-| '''Parameter Name''' | '''Description''' | '''Default value''' | '''Comments'''|-| buddy | Enable/disable expansion board support | &gtnbsp;Clean All ;IGEPv2 Expansion Board support<br>=igep0022 | &nbsp;;Berlin and BuildParis Expansion Board support<br>=base0010<br>New York Expansion<br>=ilms0015|-&gt;Build All (Ctrl+Shift+B). | console | Setup the kernel console parameters | =ttyO2,115200n8 | -|-| earlyprintk | Enable early printk | - | -|-| mem | Setup the Board Memory Configuration | =430M | -|-| boot_delay | Setup the boot delay | =0 | -|-| mpurate | Setup ARM Processor Speed | - | -|-| loglevel | Setup the loglevel | - | -|-| debug | Enable kernel debug output | - | -|-| fixrtc | Fix RTC variable | - | -|-| nocompcache | Configure nocompcache variable | = Run Programs 1 | -|-| omapfb.mode | Configure frame bugger configuration | =dvi:hd720-16@50 | &nbsp;;Other configuration<br>=dvi:1280x720MR-16@60|-| vram | Configure Video RAM assigned to every frame buffer | - | -|-| omapfb.vram | Configure Video RAM assigned to every frame buffer | - | -|-| omapfb.debug | Configure frame buffer debug output | - | -|-| omapdss.debug | Configure DSS Video debug output | - | -|-| smsc911x.mac0 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEP BERLIN|-| smsc911x.mac1 | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xdf  Use run button | For IGEP BERLIN (Ctrl+Ronly with IGEP PROTON)|-| smsc911x. mac | Configure Board Ethernet Mac Address | =0xb2,0xb0,0x14,0xb5,0xcd,0xde | For IGEPv2, IGEP PROTON, IGEP PARIS and IGEP BERLIN|-| ubi.mtd | Fot UBI FS boot | - | -|-| root | Configure root directory for MMC, NFS or UBI {| width&nbsp;;For mmc memory<br>="200" cellspacing/dev/mmcblk0p2 rw rootwait | &nbsp;;For flash memory<br>="1" cellpadding/dev/mtdblock2|-| nfsroot | For NFS boot | - | -|-| rootfstype | For UBI FS boot | - | -|-| ip | For NFS boot | - | -|-| init | Assign init program | - | -|-| musb_hdrc.debug | USB debug | - | -|-| musb_hdrc.use_dma | USB over network | - | -|-| libertas.libertas_debug | Configure libertas debug | - | -|-| board.ei485 | Enable/disable RS485 | &nbsp;;Enable RS485<br>="1" borderyes | &nbsp;;Disable RS485<br>="1"no
|-
| [[Image:Qtrunx86v2board.pngmodem |496x373px]]Enable/disable GPRS modem |} ==== Debug Programs ===&nbsp;;Enable modem (IGEPv2 Expansion)<br>=no  Set breakpoints in your source code and press debug button | &nbsp;;Enable modem (F5IGEPv2 Expansion)  {| width="200" cellspacing="1" cellpadding="1" border<br>="1"yes
|-
| [[Image:Qtdebugx861v2buddy.pngrevision |331x249px]Enable hardware buddy revision [A or B] | [[Image:Qtdebugx862v2.pngOnly for base0010<br>=A |331x249px]]Only for base0010<br>=B
|}
4,199
edits