GPIO虽然简单,但我们处处用到。
我的这个驱动能控制GPA~GPJ的任何一个管脚的读写。
我测试过了CON4-10,CON5-3,按键,LED。
测试命令格式:
gpio cmd pin_number
Pin number: 0~255 corresponding to GPA~GPJ, each port uses 32 numbers
测试LED时,最好先用ps找到led-player的pid, 用kill pid 结束它。
copy mini2440_GPIO.c to /home/frank/work/linux-2.6.32.2/drivers/char/
cd /home/frank/work/linux-2.6.32.2
make modules
frank@frank-laptop:~$ cd /home/frank/work/linux-2.6.32.2/drivers/char
frank@frank-laptop:~/work/linux-2.6.32.2/drivers/char$ ftp 192.168.1.230
Connected to 192.168.1.230.
220 FriendlyARM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
Name (192.168.1.230:frank): plg
331 Password required for plg.
Password:
230 User plg logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> put mini2440_GPIO.ko
local: mini2440_GPIO.ko remote: mini2440_GPIO.ko
200 PORT command successful.
150 Opening BINARY mode data connection for 'mini2440_GPIO.ko'.
226 Transfer complete.
4375 bytes sent in 0.00 secs (27743.3 kB/s)
---------on the terminal
cd /lib/modules/2.6.32.2-FriendlyARM
cp /home/plg/mini2440_GPIO.ko ./
[root@FriendlyARM 2.6.32.2-FriendlyARM]# insmod mini2440_GPIO.ko
Frank_GPIO initialized
[root@FriendlyARM 2.6.32.2-FriendlyARM]# lsmod
mini2440_GPIO 1966 0 - Live 0xbf006000
we can remove it by rmmod mini2440_GPIO
on linux:
frank@frank-laptop:~/frank/test/Test-17-gpio.c$ arm-linux-gcc GPIO-test.c -o gpio
---------on the terminal
/home/plg/gpio 5 192 press and release Key1 output 0 and 1
/home/plg/gpio 5 194 press and release Key2 output 0 and 4
/home/plg/gpio 5 196 press and release Key3 output 0 and 16
......
/home/plg/gpio 1 37~40 turn off LED1~LED4
/home/plg/gpio 0 37~40 turn on LED1~LED4
root@FriendlyARM 2.6.32.2-FriendlyARM]# /home/plg/gpio 0 161 CON4-10 low
[root@FriendlyARM 2.6.32.2-FriendlyARM]# /home/plg/gpio 1 161 CON4-10 high
[root@FriendlyARM 2.6.32.2-FriendlyARM]# /home/plg/gpio 0 201 CON5-3 low
[root@FriendlyARM 2.6.32.2-FriendlyARM]# /home/plg/gpio 1 201 CON5-3 high
[attachment=1203]
[ 此帖被franktu在2010-05-13 02:48重新编辑 ]