Updating gpio manual page
diff --git a/examples/Makefile b/examples/Makefile
index 450e0dc..16bf7e2 100644
--- a/examples/Makefile
+++ b/examples/Makefile
@@ -39,7 +39,12 @@
OBJ = test1.o test2.o speed.o lcd.o wfi.o piface.o gertboard.o nes.o delayTest.o softPwm.o
-all: test1 test2 speed lcd wfi piface gertboard nes softPwm
+BINS = test1 test2 speed lcd wfi piface gertboard nes delayTest softPwm
+
+all:
+ @cat README.TXT
+ @echo " $(BINS)" | fmt
+ @echo ""
test1: test1.o
@echo [link]
@@ -77,7 +82,6 @@
@echo [link]
$(CC) -o $@ softPwm.o $(LDFLAGS) $(LIBS) -lm -lpthread
-
delayTest: delayTest.o
@echo [link]
$(CC) -o $@ delayTest.o $(LDFLAGS) $(LIBS)
diff --git a/gpio/Makefile b/gpio/Makefile
index a92dd5f..cd56e5e 100644
--- a/gpio/Makefile
+++ b/gpio/Makefile
@@ -41,7 +41,7 @@
all: gpio
-gpio: gpio.o /usr/local/lib/libwiringPi.a
+gpio: gpio.o /usr/local/lib/libwiringPi.a /usr/local/lib/libwiringPi.so.1.0
@echo [LD]
@$(CC) -o $@ gpio.o $(LDFLAGS) $(LIBS)
@@ -60,11 +60,14 @@
makedepend -Y $(SRC)
install:
- cp gpio /usr/local/bin
- chown root.root /usr/local/bin/gpio
- chmod 4755 /usr/local/bin/gpio
- mkdir -p /usr/local/man/man1
- cp gpio.1 /usr/local/man/man1
+ @echo -n "Installing... "
+ @cp gpio /usr/local/bin
+ @chown root.root /usr/local/bin/gpio
+ @chmod 4755 /usr/local/bin/gpio
+ @mkdir -p /usr/local/man/man1
+ @cp gpio.1 /usr/local/man/man1
+ @echo "Done."
+
uninstall:
rm -f /usr/local/bin/gpio
diff --git a/gpio/gpio.1 b/gpio/gpio.1
index bc8e36e..ba0183f 100644
--- a/gpio/gpio.1
+++ b/gpio/gpio.1
@@ -48,9 +48,9 @@
.SH DESCRIPTION
.B GPIO
-is a swiss army knofe of a command line tool to allow the user easy
+is a swiss army knife of a command line tool to allow the user easy
access to the GPIO pins on the Raspberry Pi and the SPI A/D and D/A
-convertors on the Gertboard. It's designed for simple testing and
+converters on the Gertboard. It's designed for simple testing and
diagnostic purposes, but can be used in shell scripts for general if
somewhat slow control of the GPIO pins.
@@ -122,7 +122,7 @@
above and note that \fBBCM_GPIO\fR pin number is used not not wiringPi pin
numbering.
-Like the export commands abovem ownership is set to that of the
+Like the export commands above, ownership is set to that of the
calling user, allowing subsequent access from user programs without
requiring root/sudo.
@@ -155,7 +155,7 @@
.B gbr
channel
-This reads the analog to digital convertor on the Gertboard on the given
+This reads the analog to digital converter on the Gertboard on the given
channel. The board jumpers need to be in-place to do this operation.
.TP
@@ -163,7 +163,7 @@
channel value
This writes the supplied value to the output channel on the Gertboards
-SPI digital to analogue convertor.
+SPI digital to analogue converter.
The board jumpers need to be in-place to do this operation.
@@ -171,26 +171,30 @@
.PP
.TS
-r r l.
-WiringPi GPIO Function
+r r r l.
+WiringPi GPIO-r1 GPIO-r2 Function
_
-0 17
-1 18 (PWM)
-2 21
-3 22
-4 23
-5 24
-6 25
-7 4
-8 0 SDA0
-9 1 SCL0
-10 8 SPI CE0
-11 7 SPI CE1
-12 10 SPI MOSI
-13 9 SPI MISO
-14 11 SPI SCLK
-15 14 TxD
-16 15 RxD
+0 17 17
+1 18 18 (PWM)
+2 21 27
+3 22 22
+4 23 23
+5 24 24
+6 25 25
+7 4 4
+8 0 2 I2C: SDA0
+9 1 3 I2C: SCL0
+10 8 8 SPI: CE0
+11 7 7 SPI: CE1
+12 10 10 SPI: MOSI
+13 9 9 SPI: MISO
+14 11 11 SPI: SCLK
+15 14 14 TxD
+16 15 16 RxD
+17 - 28
+18 - 29
+19 - 30
+20 - 31
.TE
.SH FILES
diff --git a/gpio/gpio.c b/gpio/gpio.c
index 8b15eea..b3534c8 100644
--- a/gpio/gpio.c
+++ b/gpio/gpio.c
@@ -40,7 +40,7 @@
# define FALSE (1==2)
#endif
-#define VERSION "1.2"
+#define VERSION "1.3"
static int wpMode ;
@@ -753,7 +753,7 @@
if (argc == 1)
{
- fprintf (stderr, "%s: %s\n", argv [0], usage) ;
+ fprintf (stderr, "%s\n", usage) ;
return 1 ;
}
@@ -769,6 +769,8 @@
printf ("Copyright (c) 2012 Gordon Henderson\n") ;
printf ("This is free software with ABSOLUTELY NO WARRANTY.\n") ;
printf ("For details type: %s -warranty\n", argv [0]) ;
+ printf ("\n") ;
+ printf ("This Raspberry Pi is a revision %d board.\n", piBoardRev ()) ;
return 0 ;
}
@@ -807,9 +809,8 @@
else if (strcasecmp (argv [1], "unexportall") == 0) { doUnexportall (argc, argv) ; return 0 ; }
else if (strcasecmp (argv [1], "unexport" ) == 0) { doUnexport (argc, argv) ; return 0 ; }
-// Check for drive or load commands:
+// Check for load command:
- if (strcasecmp (argv [1], "drive") == 0) { doPadDrive (argc, argv) ; return 0 ; }
if (strcasecmp (argv [1], "load" ) == 0) { doLoad (argc, argv) ; return 0 ; }
// Gertboard commands
@@ -861,14 +862,15 @@
wpMode = WPI_MODE_PINS ;
}
-// Check for PWM operations
+// Check for PWM or Pad Drive operations
if (wpMode != WPI_MODE_PIFACE)
{
- if (strcasecmp (argv [1], "pwm-bal") == 0) { doPwmMode (PWM_MODE_BAL) ; return 0 ; }
- if (strcasecmp (argv [1], "pwm-ms") == 0) { doPwmMode (PWM_MODE_MS) ; return 0 ; }
- if (strcasecmp (argv [1], "pwmr") == 0) { doPwmRange (argc, argv) ; return 0 ; }
- if (strcasecmp (argv [1], "pwmc") == 0) { doPwmClock (argc, argv) ; return 0 ; }
+ if (strcasecmp (argv [1], "pwm-bal") == 0) { doPwmMode (PWM_MODE_BAL) ; return 0 ; }
+ if (strcasecmp (argv [1], "pwm-ms") == 0) { doPwmMode (PWM_MODE_MS) ; return 0 ; }
+ if (strcasecmp (argv [1], "pwmr") == 0) { doPwmRange (argc, argv) ; return 0 ; }
+ if (strcasecmp (argv [1], "pwmc") == 0) { doPwmClock (argc, argv) ; return 0 ; }
+ if (strcasecmp (argv [1], "drive") == 0) { doPadDrive (argc, argv) ; return 0 ; }
}
// Check for wiring commands
diff --git a/wiringPi/Makefile b/wiringPi/Makefile
index dc189cd..2d7967f 100644
--- a/wiringPi/Makefile
+++ b/wiringPi/Makefile
@@ -21,14 +21,17 @@
# along with wiringPi. If not, see <http://www.gnu.org/licenses/>.
#################################################################################
+DYN_VERS_MAJ=1
+DYN_VERS_MIN=0
-TARGET=libwiringPi.a
+STATIC=libwiringPi.a
+DYNAMIC=libwiringPi.so.$(DYN_VERS_MAJ).$(DYN_VERS_MIN)
#DEBUG = -g -O0
-DEBUG = -O3
+DEBUG = -O2
CC = gcc
INCLUDE = -I.
-CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe
+CFLAGS = $(DEBUG) -Wall $(INCLUDE) -Winline -pipe -fPIC
LIBS =
@@ -45,20 +48,25 @@
piNes.o \
lcd.o piHiPri.o piThread.o softPwm.o wiringPiSPI.o
-all: $(TARGET)
+all: $(STATIC) $(DYNAMIC)
-$(TARGET): $(OBJ)
- @echo [AR] $(OBJ)
- @ar rcs $(TARGET) $(OBJ)
- @ranlib $(TARGET)
- @size $(TARGET)
+$(STATIC): $(OBJ)
+ @echo [STATIC]
+ @ar rcs $(STATIC) $(OBJ)
+ @ranlib $(STATIC)
+
+# @size $(STATIC)
+
+$(DYNAMIC): $(OBJ)
+ @echo [DYNAMIC]
+ @gcc -shared -Wl,-soname,libwiringPi.so.1 -o libwiringPi.so.1.0 -lpthread $(OBJ)
.c.o:
@echo [CC] $<
@$(CC) -c $(CFLAGS) $< -o $@
clean:
- rm -f $(OBJ) $(TARGET) *~ core tags Makefile.bak
+ rm -f $(OBJ) *~ core tags Makefile.bak libwiringPi.*
tags: $(SRC)
@echo [ctags]
@@ -69,27 +77,34 @@
install: $(TARGET)
@echo [install]
- install -m 0755 -d /usr/local/lib
- install -m 0755 -d /usr/local/include
- install -m 0644 wiringPi.h /usr/local/include
- install -m 0644 wiringSerial.h /usr/local/include
- install -m 0644 wiringShift.h /usr/local/include
- install -m 0644 gertboard.h /usr/local/include
- install -m 0644 piNes.h /usr/local/include
- install -m 0644 softPwm.h /usr/local/include
- install -m 0644 lcd.h /usr/local/include
- install -m 0644 wiringPiSPI.h /usr/local/include
- install -m 0644 libwiringPi.a /usr/local/lib
+ @install -m 0755 -d /usr/local/lib
+ @install -m 0755 -d /usr/local/include
+ @install -m 0644 wiringPi.h /usr/local/include
+ @install -m 0644 wiringSerial.h /usr/local/include
+ @install -m 0644 wiringShift.h /usr/local/include
+ @install -m 0644 gertboard.h /usr/local/include
+ @install -m 0644 piNes.h /usr/local/include
+ @install -m 0644 softPwm.h /usr/local/include
+ @install -m 0644 lcd.h /usr/local/include
+ @install -m 0644 wiringPiSPI.h /usr/local/include
+ @install -m 0644 libwiringPi.a /usr/local/lib
+ @install -m 0755 libwiringPi.so.1.0 /usr/local/lib
+ @ln -sf /usr/local/lib/libwiringPi.so.1.0 /usr/local/lib/libwiringPi.so
+ @ln -sf /usr/local/lib/libwiringPi.so.1.0 /usr/local/lib/libwiringPi.so.1
+ @ldconfig
uninstall:
@echo [uninstall]
- rm -f /usr/local/include/lcd.h
- rm -f /usr/local/include/lpiNes.h
- rm -f /usr/local/include/gertboard.h
- rm -f /usr/local/include/wiringShift.h
- rm -f /usr/local/include/wiringSerial.h
- rm -f /usr/local/include/wiringPi.h
- rm -f /usr/local/lib/libwiringPi.a
+ @rm -f /usr/local/include/wiringPi.h
+ @rm -f /usr/local/include/wiringSerial.h
+ @rm -f /usr/local/include/wiringShift.h
+ @rm -f /usr/local/include/gertboard.h
+ @rm -f /usr/local/include/piNes.h
+ @rm -f /usr/local/include/softPwm.h
+ @rm -f /usr/local/include/lcd.h
+ @rm -f /usr/local/include/wiringPiSPI.h
+ @rm -f /usr/local/lib/libwiringPi.*
+ @ldconfig
# DO NOT DELETE
@@ -98,8 +113,10 @@
wiringPiFace.o: wiringPi.h
wiringSerial.o: wiringSerial.h
wiringShift.o: wiringPi.h wiringShift.h
-gertboard.o: gertboard.h
+gertboard.o: wiringPiSPI.h gertboard.h
piNes.o: wiringPi.h piNes.h
lcd.o: wiringPi.h lcd.h
piHiPri.o: wiringPi.h
piThread.o: wiringPi.h
+softPwm.o: wiringPi.h softPwm.h
+wiringPiSPI.o: wiringPiSPI.h
diff --git a/wiringPi/lcd.c b/wiringPi/lcd.c
index 6826a60..aa58cab 100644
--- a/wiringPi/lcd.c
+++ b/wiringPi/lcd.c
@@ -75,7 +75,10 @@
static void strobe (struct lcdDataStruct *lcd)
{
- digitalWrite (lcd->strbPin, 1) ; delayMicroseconds (1) ;
+
+// Note timing changes for new version of delayMicroseconds ()
+
+ digitalWrite (lcd->strbPin, 1) ; delayMicroseconds (50) ;
digitalWrite (lcd->strbPin, 0) ; delayMicroseconds (50) ;
}
diff --git a/wiringPi/lcd.h b/wiringPi/lcd.h
index d4c724c..ecd1d25 100644
--- a/wiringPi/lcd.h
+++ b/wiringPi/lcd.h
@@ -26,6 +26,10 @@
#define MAX_LCDS 8
+#ifdef __cplusplus
+extern "C" {
+#endif
+
extern void lcdHome (int fd) ;
extern void lcdClear (int fd) ;
extern void lcdPosition (int fd, int x, int y) ;
@@ -33,10 +37,6 @@
extern void lcdPuts (int fd, char *string) ;
extern void lcdPrintf (int fd, char *message, ...) ;
-#ifdef __cplusplus
-extern "C" {
-#endif
-
extern int lcdInit (int rows, int cols, int bits, int rs, int strb,
int d0, int d1, int d2, int d3, int d4, int d5, int d6, int d7) ;
diff --git a/wiringPi/wiringPi.c b/wiringPi/wiringPi.c
index b572dde..ad62082 100644
--- a/wiringPi/wiringPi.c
+++ b/wiringPi/wiringPi.c
@@ -427,6 +427,7 @@
}
fclose (cpuFd) ;
+
if (r == -1)
{
fprintf (stderr, "piBoardRev: Unable to determine board revision from /proc/cpuinfo\n") ;
@@ -449,9 +450,11 @@
boardRev = 2 ;
else
{
- fprintf (stderr, "piBoardRev: Unable to determine board revision from %d\n", r) ;
- errno = 0 ;
- return -1 ;
+ fprintf (stderr, "WARNING: wiringPi: Unable to determine board revision from \"%d\"\n", r) ;
+ fprintf (stderr, " -> You may want to check:\n") ;
+ fprintf (stderr, " -> http://www.raspberrypi.org/phpBB3/viewtopic.php?p=184410#p184410\n") ;
+ fprintf (stderr, " -> Assuming a Rev 1 board\n") ;
+ boardRev = 1 ;
}
if (wiringPiDebug)