Difference between revisions of "How to use GPIOs"
From IGEP - ISEE Wiki
m (→Generate interrupts) |
m (→Result) |
||
Line 63: | Line 63: | ||
echo 1 > value</pre> | echo 1 > value</pre> | ||
− | == Result == | + | === Result === |
At first remote terminal you should read a message similar like this: | At first remote terminal you should read a message similar like this: | ||
<pre>poll() GPIO 157 interrupt occurred </pre> | <pre>poll() GPIO 157 interrupt occurred </pre> |
Revision as of 18:54, 14 September 2012
Contents
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 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
- 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
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.
You can do this sourcing once the environment-setup script.
jdoe@ubuntu ~ $ source /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi
- Download 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:
jdoe@ubuntu ~/Desktop $ arm-poky-linux-gnueabi-gcc -o gpio_example gpio_examplebeta1.c
- 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):
root@igep00x0:~# ./gpio_example 157
Result will be:
root@igep00x0:~# ./gpio_example 157 gpio/direction: No such file or directory poll() GPIO 157 interrupt occurred .............
Generate interrupts
Open a second remote terminal and type:
cd /sys/class/gpio/ echo 156 > export cd gpio156/ echo out > direction echo 0 > value echo 1 > value
Result
At first remote terminal you should read a message similar like this:
poll() GPIO 157 interrupt occurred