Difference between revisions of "User:Pau pajuelo"

From IGEP - ISEE Wiki

Jump to: navigation, search
m (Result)
m (How to use GPIOs (update it))
Line 231: Line 231:
 
| Only for base0010<br>=B
 
| Only for base0010<br>=B
 
|}
 
|}
 
= How to use GPIOs (update it)  =
 
 
== Overview  ==
 
 
This How-To is meant to be a starting point for people to learn use GPIOs for IGEP devices as quickly and easily as possible. For this How-To I used [http://labs.isee.biz/index.php/IGEP_firmware_Yocto IGEP firmware Yocto]
 
 
There are more ways to use GPIOs, but this one is very simple.
 
 
== Feedback and Contributing  ==
 
 
At any point, if you see a mistake you can contribute to this How-To.
 
 
== Requirements ==
 
 
For this How-to, I used:
 
* IGEPv2 Board
 
* [http://labs.isee.biz/images/6/69/Gpio_examplebeta1.tar.bz2 GPIO example]
 
 
== Configure IGEPv2==
 
By default, GPIO 156 (J990:20) and GPIO 157 (J990:22) are available, connect J990:20 and J990:22 with a cable.
 
 
== Example program ==
 
 
Example program contains some libraries to control GPIOs, libraries can do:
 
* Export and unexport GPIOs
 
* Set GPIO direction
 
* Set GPIO value
 
* Get GPIO value
 
* Configure hardware interrupts
 
 
Example program configures a GPIO to wait a hardware interrupt. Once the GPIO value change from 0 value to 1 value (rising), program gives you a message.
 
 
=== Compile example program ===
 
[http://labs.isee.biz/index.php/How_to_setup_a_cross_compiler#Download.2FInstall_IGEP_SDK Download an Install] IGEP SDK if you don't have it.
 
 
First of all you need to initialize a suitable environment in the bash shell console inside your machine. <br> You can do this sourcing once the environment-setup script.
 
<pre>jdoe@ubuntu ~ $ source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi </pre>
 
 
* Download [http://labs.isee.biz/images/6/69/Gpio_examplebeta1.tar.bz2 source code]
 
* Extract source code
 
* Build source code:
 
 
Cross toolchain tools are available into the built-in virtual machine Poky SDK. You only need open bash terminal prompt and write command:
 
<pre>jdoe@ubuntu ~/Desktop $ arm-poky-linux-gnueabi-gcc -o gpio_example gpio_examplebeta1.c</pre>
 
 
* Copy binary file to IGEP Board
 
 
== Execute program ==
 
Open a remote terminal and locate your program binary, execute program and pass like a parameter 157 value (GPIO 157):
 
<pre>root@igep00x0:~# ./gpio_example 157 </pre>
 
Result will be:
 
<pre>root@igep00x0:~# ./gpio_example 157
 
gpio/direction: No such file or directory
 
 
poll() GPIO 157 interrupt occurred
 
............. </pre>
 
 
== Generate interrupts ==
 
Open a second remote terminal and type:
 
<pre>cd /sys/class/gpio/
 
echo 156 > export
 
cd gpio156/
 
echo out > direction
 
echo 0 > value
 
echo 1 > value</pre>
 
== Result ==
 
At first remote terminal you should read a message similar like this:
 
<pre>poll() GPIO 157 interrupt occurred </pre>
 

Revision as of 18:55, 14 September 2012

TODO:

Update peripheral tutorials, finish gpio example program

Categorize new tutorials

Finish tutorials below

How to manage the kernel modules on Linux

How do I edit my kernel command line

Basic Software instructions

igep.ini parameters

The kernel command line syntax is name=value1. These next parameters are supported in igep.ini since IGEP-X_Loader 2.4.0-2:

[kernel]

Parameter Name Description Default value Comments
kaddress Kernel copy address =0x80008000 Hex memory address
rdaddress Ram Disk location address =0x81600000 Hex memory address;
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
=2344
 ;Module
=2717
;Proton
=3203
Mode Boot Mode  ;Linux kernel
=kernel
 ;Other image (like uboot)
[binary image]

[kparams]

Parameter Name Description Default value Comments
buddy Enable/disable expansion board support  ;IGEPv2 Expansion Board support
=igep0022
 ;Berlin and Paris Expansion Board support
=base0010
New York Expansion
=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  ;Other configuration
=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  ;For mmc memory
=/dev/mmcblk0p2 rw rootwait
 ;For flash memory
=/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  ;Enable RS485
=yes
 ;Disable RS485
=no
board.modem Enable/disable GPRS modem  ;Enable modem (IGEPv2 Expansion)
=no
 ;Enable modem (IGEPv2 Expansion)
=yes
buddy.revision Enable hardware buddy revision [A or B] Only for base0010
=A
Only for base0010
=B