[examples-v2 commit] example-v2 patch for RPi B+ (led)

Joel Sherrill joel at rtems.org
Fri Aug 29 18:24:58 UTC 2014


Module:    examples-v2
Branch:    master
Commit:    944b4f1f73e8f173fd9c3efaaf79a4b542375106
Changeset: http://git.rtems.org/examples-v2/commit/?id=944b4f1f73e8f173fd9c3efaaf79a4b542375106

Author:    Pierre Ficheux <pierre.ficheux at openwide.fr>
Date:      Fri Aug 29 08:16:23 2014 -0500

example-v2 patch for RPi B+ (led)

Hi,

Here is the patch for "example-v2" project to support Raspberry Pi B+ as led number is now 47 instead of 16 on RPi B.

regards

--
Pierre FICHEUX -/- CTO OW/OWI, France -\- pierre.ficheux at openwide.fr
                                         http://ingenierie.openwide.fr
                                         http://www.linuxembedded.fr
I would love to change the world, but they won't give me the source code
>From e4d8edfb8650207641bc8e2716cf15ce958ede0f Mon Sep 17 00:00:00 2001
From: Pierre FICHEUX <pierre.ficheux at openwide.fr>
Date: Fri, 29 Aug 2014 15:11:41 +0200
Subject: [PATCH] Added led blink support for RPi B+

---

 led/led.h |   16 ++++++++++++----
 1 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/led/led.h b/led/led.h
index 152b76a..3fee684 100644
--- a/led/led.h
+++ b/led/led.h
@@ -67,10 +67,18 @@ uint8_t MPC8313_LED_Count;
 #define OUT_GPIO(g) *(gpio+((g)/10)) |=  (1<<(((g)%10)*3)) 
 #define GPIO_SET *(gpio+7)   // sets   bits which are 1 ignores bits which are 0 
 #define GPIO_CLR *(gpio+10) // clears bits which are 1 ignores bits which are 0
-
-#define LED_INIT()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(16);} while(0)
-#define LED_ON()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR = 1 << 16;} while(0)
-#define LED_OFF()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET = 1 << 16;} while(0)
+// For GPIO# >= 32 (RPi B+)
+#define GPIO_SET_EXT *(gpio+8)  // sets   bits which are 1 ignores bits which are 0
+#define GPIO_CLR_EXT *(gpio+11) // clears bits which are 1 ignores bits which are 0
+
+// RPi B
+//#define LED_INIT()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(16);} while(0)
+//#define LED_ON()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR = 1 << 16;} while(0)
+//#define LED_OFF()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET = 1 << 16;} while(0)
+// RPi B+ => led 47
+#define LED_INIT()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; OUT_GPIO(47);} while(0)
+#define LED_ON()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_CLR_EXT = 1 << (47 % 32);} while(0)
+#define LED_OFF()  do { unsigned int *gpio = (unsigned int *)BCM2835_GPIO_REGS_BASE; GPIO_SET_EXT = 1 << (47 % 32);} while(0)
 
 #else
 /* default case is to print */



More information about the vc mailing list