Changes

User:Pau pajuelo

2,560 bytes added, 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 3: 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'''
== Prepare Qt demo image ==- Compiled gst-plugins-ugly using yocto tools
Qt demo image is a root filesystem build by Yocto that contains Qt embedded libraries, also this image has some Qt examples for testing purposes- rpm -igst-plugins-ugly-0. *.rpm
This image doesn't have openssh and gdbserver, so we should install these packages to develop Qt applications, get a shell prompt using serial mode and type: <pre>zypper refzypper in opensshzypper in gdbserver</pre> Now you can connect between IGEP and VM using SSH protocol:<br> <pre>ssh root@192- rpm -i libmad0-0.168*.5.1</pre> == Using Qt Creator ==rpm
=== First Steeps<br> ===- rpm -i gst-plugins-ugly-mad-0.*.rpm
- gst-launch filesrc location=sample.mp3 ! mad ! volume volume=== Open Program:<br> ====0.25 ! alsasink
Go to Applications -&gt; IGEP development -&gt; Qt Creator<br> === DM3730: Decode a RA or RM audio file (ERRORS)===
{| widthgst-launch --gst-debug-level=3 filesrc location=sample.ra ! rmdemux ! volume volume=0.25 ! alsasink http://www.superluminal.com/andalib/ra/listen.ra gst-plugins-ugly-rmdemux-0.10.19-r1.armv7a.rpm libgstsdp-0.10-0-0.10.36-r3.armv7a.rpm:libgstsdp-0.10-0 libgstsdp-0.10.so.0 libgstrtsp-0.10-0-0.10.36-r3.armv7a.rpm:libgstrtsp-0.10-0 libgstrtsp-0.10.so.0 '''Error:'''  0:00:00.084839071 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC 0:00:00.085052695 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC 0:00:00.085540976 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id .ra4 0:00:00.085693564 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC 0:00:00.085815634 1550 0xa137b0 WARN rmdemux rmdemux.c:1012:gst_rmdemux_chain:<rmdemux0> Bogus looking header, unprintable FOURCC 0:00:00.085907187 1550 0xa137b0 WARN rmdemux rmdemux.c:1057:gst_rmdemux_chain:<rmdemux0> Unknown object_id RaTC === DM3730: Decode an AAC audio file (OK)=="200" cellspacing="1" cellpadding EXTRA_OECONF +="1" border--disable-examples --disable-experimental --disable-sdl --disable-cdaudio --disable-directfb \ --with-plugins=musicbrainz,wavpack,ivorbis,mpegvideoparse,'''faad2''' --disable-vdpau --disable-apexsink \ --disable-orc"Install:  faad2-2.7-r2.armv7a.rpmlibfaad2-2.7-r2.armv7a.rpmgst-plugins-bad-faad-0.10.23-r2.armv7a.rpm '''maybe there are necessary more packages, compare actual gst-bad-recipe and add changes. Necessary add faad2 recipe'''<pre>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=0.10 ! alsasink| [[Image==== DM3730:Openqtv2.png|331x249px]]Decode an WMA audio file (OK)==== <pre>bitbake gst-ffmpeg<br/pre> | [[Image:Qtopenedv2<pre>gst-launch -v filesrc location=sample.wma ! asfdemux ! decodebin ! audioconvert ! volume volume=0.png|331x249px]]25 ! alsasink <br/pre>|}
==== Open DM3730: Decode an example:<br> =OGG audio file (OK)===
Copy your desired example at desktop, examples are located at'''Into repositories (base plugins): /opt/QtSDK/Examples/4.7 '''
{| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[Imagehttp:Qtcopyanexamplev2//upload.png|496x373px]]|}wikimedia.org/wikipedia/en/0/04/Rayman_2_music_sample.ogg
'''NOTE:''' some examples (like hellogl) cannot be compiled to ARM gst-launch -v filesrc location=sample.ogg ! oggdemux ! vorbisdec ! audioconvert ! volume volume=0.25 ! alsasink
Open this example with Qt Creato, set Desktop target setup and use for each Qt Version one debug and one release == BASE0033 CONNECTOR SUMMARY TABLE==
{| cellspacing="1" cellpadding="1" borderConfigure a static IP using the same private network range ="1" style="width: 675px; height: 256px;"|-| [[Image:Qtopenanexamplev2.png|331x249px]] | [[Image:Qtopenanexample2v2.png|331x249px]] | [[Image:Qtopenanexample3v2.png|331x249px]]|}
=== x86 Platform<br> ==='''under construction'''
==== Build Programs ====IGEP Firmware Yocto uses the following Ethernet network configuration (IP addresses)
To compile to x86 go to Project use the following configuration at Projects field -&gt; Build*eth0 − 192.168.5.1*eth0: 0 − assigned via dhcp.
{| width="200" cellspacing="1" cellpadding="1" border="1"|-| [[ImageThis Ethernet network configuration is really useful when you work using a Linux operating system like IGEP SDK Virtual Machine. Because you use eth0 device to communicate easily with your board and eth0:Qtx86configv20 device to get Internet acces using dhcp protocol.png|496px]]|}
'''NOTEBut some scenarios this network configuration is not useful, for example:''' Use Debug Release if you want use a non-Linux operating system, connect to two IP private range interfaces is not simple. This How-to can be useful to debug later<br>
==== Debug Programs ====(Make diagram one: IGEP and Linux defualt communication. Diagram 2 IGEP and other SO alternative configuration)
=== ARM Platform<br> igep.ini parameters ===
The kernel command line syntax is name==== Build Programs <br> ====value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:
To compile to ARM for IGEP go to Project use the following configuration at Projects field -&gt; Build: === [kernel] ===
{| 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:Qtarmconfigv2.pngName | - | Ram Disk image name|-| MachineID | Machine ID (kernel ID) | ;IGEPv2<br>=2344 | ;Module<br>=2717<br>;Proton<br>=3203|-|496px]Mode | Boot Mode | ;Linux kernel<br>=kernel | ;Other image (like uboot)<br>[binary image]
|}
NOTE:=== [kparams] ===
{| align="JUSTIFY" cellpadding="1" border="1" style= Debug Programs"width: 900px; height: 1095px;"|-| '''Parameter Name''' | '''Description''' | '''Default value''' | '''Comments'''|-| buddy | Enable/disable expansion board support | &nbsp;;IGEPv2 Expansion Board support<br> =igep0022 | &nbsp;;Berlin and Paris Expansion Board support<br>=base0010<br>New York Expansion<br>=ilms0015|-| 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 | =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 | For IGEP BERLIN (only 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 | &nbsp;;For mmc memory<br>=/dev/mmcblk0p2 rw rootwait | &nbsp;;For flash memory<br>=/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>=yes | &nbsp;;Disable RS485<br>=no|-| board.modem | Enable/disable GPRS modem | &nbsp;;Enable modem (IGEPv2 Expansion)<br>=no | &nbsp;;Enable modem (IGEPv2 Expansion)<br>=yes|-| buddy.revision | Enable hardware buddy revision [A or B] | Only for base0010<br>=A | Only for base0010<br>=B|}
4,199
edits