mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Files at this revision

API Documentation at this revision

Comitter:
mbed_official
Date:
Mon Sep 22 09:30:07 2014 +0100
Parent:
326:da258e7d377e
Child:
328:b751ca1a0ef0
Commit message:
Synchronized with git revision 2e5c761dc8e734c323e36f495cc9b1c97cf31400

Full URL: https://github.com/mbedmicro/mbed/commit/2e5c761dc8e734c323e36f495cc9b1c97cf31400/

[NUCLEO_F4x1RE] test MBED_A7 InterruptIn - new test case - both interrupts disabled

Changed in this revision

targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/PinNames.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pinmap.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/PinNames.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/pinmap.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_STM32F407VG/TARGET_DISCO_F407VG/PinNames.h Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_STM32F407VG/gpio_irq_api.c Show annotated file Show diff for this revision Revisions of this file
targets/hal/TARGET_STM/TARGET_STM32F407VG/pinmap.c Show annotated file Show diff for this revision Revisions of this file
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/PinNames.h	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/PinNames.h	Mon Sep 22 09:30:07 2014 +0100
@@ -53,6 +53,7 @@
 #define STM_MODE_EVT_RISING         (9)
 #define STM_MODE_EVT_FALLING        (10)
 #define STM_MODE_EVT_RISING_FALLING (11)
+#define STM_MODE_IT_EVT_RESET       (12)
 
 // High nibble = port number (0=A, 1=B, 2=C, 3=D, 4=E, 5=F, 6=G, 7=H)
 // Low nibble  = pin number
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/gpio_irq_api.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/gpio_irq_api.c	Mon Sep 22 09:30:07 2014 +0100
@@ -222,7 +222,29 @@
     } else {
         mode = STM_MODE_INPUT;
         pull = GPIO_NOPULL;
-        obj->event = EDGE_NONE;
+        if (event == IRQ_RISE) {
+            if ((obj->event == EDGE_FALL) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_FALLING;
+                obj->event = EDGE_FALL;
+            } else if (obj->event == EDGE_RISE) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else if (event == IRQ_FALL) {
+            if ((obj->event == EDGE_RISE) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_RISING;
+                obj->event = EDGE_RISE;
+            } else if (obj->event == IRQ_FALL) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else {
+        	  mode = STM_MODE_IT_EVT_RESET;
+            obj->event = EDGE_NONE;
+        }
+        	
     }
 
     pin_function(obj->pin, STM_PIN_DATA(mode, pull, 0));
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pinmap.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F401RE/pinmap.c	Mon Sep 22 09:30:07 2014 +0100
@@ -33,7 +33,7 @@
 #include "mbed_error.h"
 
 // GPIO mode look-up table
-static const uint32_t gpio_mode[12] = {
+static const uint32_t gpio_mode[13] = {
     0x00000000, //  0 = GPIO_MODE_INPUT
     0x00000001, //  1 = GPIO_MODE_OUTPUT_PP
     0x00000011, //  2 = GPIO_MODE_OUTPUT_OD
@@ -45,7 +45,8 @@
     0x10310000, //  8 = GPIO_MODE_IT_RISING_FALLING
     0x10120000, //  9 = GPIO_MODE_EVT_RISING
     0x10220000, // 10 = GPIO_MODE_EVT_FALLING
-    0x10320000  // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10320000, // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10000000  // 12 = Reset GPIO_MODE_IT_EVT
 };
 
 // Enable GPIO clock and return GPIO base address
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/PinNames.h	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/PinNames.h	Mon Sep 22 09:30:07 2014 +0100
@@ -53,6 +53,7 @@
 #define STM_MODE_EVT_RISING         (9)
 #define STM_MODE_EVT_FALLING        (10)
 #define STM_MODE_EVT_RISING_FALLING (11)
+#define STM_MODE_IT_EVT_RESET       (12)
 
 // High nibble = port number (0=A, 1=B, 2=C, 3=D, 4=E, 5=F, 6=G, 7=H)
 // Low nibble  = pin number
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/gpio_irq_api.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/gpio_irq_api.c	Mon Sep 22 09:30:07 2014 +0100
@@ -233,7 +233,28 @@
     } else {
         mode = STM_MODE_INPUT;
         pull = GPIO_NOPULL;
-        obj->event = EDGE_NONE;
+        if (event == IRQ_RISE) {
+            if ((obj->event == EDGE_FALL) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_FALLING;
+                obj->event = EDGE_FALL;
+            } else if (obj->event == EDGE_RISE) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else if (event == IRQ_FALL) {
+            if ((obj->event == EDGE_RISE) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_RISING;
+                obj->event = EDGE_RISE;
+            } else if (obj->event == IRQ_FALL) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else {
+        	  mode = STM_MODE_IT_EVT_RESET;
+            obj->event = EDGE_NONE;
+        }
     }
 
     pin_function(obj->pin, STM_PIN_DATA(mode, pull, 0));
--- a/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/pinmap.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_NUCLEO_F411RE/pinmap.c	Mon Sep 22 09:30:07 2014 +0100
@@ -33,7 +33,7 @@
 #include "mbed_error.h"
 
 // GPIO mode look-up table
-static const uint32_t gpio_mode[12] = {
+static const uint32_t gpio_mode[13] = {
     0x00000000, //  0 = GPIO_MODE_INPUT
     0x00000001, //  1 = GPIO_MODE_OUTPUT_PP
     0x00000011, //  2 = GPIO_MODE_OUTPUT_OD
@@ -45,7 +45,8 @@
     0x10310000, //  8 = GPIO_MODE_IT_RISING_FALLING
     0x10120000, //  9 = GPIO_MODE_EVT_RISING
     0x10220000, // 10 = GPIO_MODE_EVT_FALLING
-    0x10320000  // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10320000, // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10000000  // 12 = Reset GPIO_MODE_IT_EVT
 };
 
 // Enable GPIO clock and return GPIO base address
--- a/targets/hal/TARGET_STM/TARGET_STM32F407VG/TARGET_DISCO_F407VG/PinNames.h	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_STM32F407VG/TARGET_DISCO_F407VG/PinNames.h	Mon Sep 22 09:30:07 2014 +0100
@@ -53,6 +53,7 @@
 #define STM_MODE_EVT_RISING         (9)
 #define STM_MODE_EVT_FALLING        (10)
 #define STM_MODE_EVT_RISING_FALLING (11)
+#define STM_MODE_IT_EVT_RESET       (12)
 
 // High nibble = port number (0=A, 1=B, 2=C, 3=D, 4=E, 5=F, 6=G, 7=H)
 // Low nibble  = pin number
--- a/targets/hal/TARGET_STM/TARGET_STM32F407VG/gpio_irq_api.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_STM32F407VG/gpio_irq_api.c	Mon Sep 22 09:30:07 2014 +0100
@@ -223,7 +223,28 @@
     } else {
         mode = STM_MODE_INPUT;
         pull = GPIO_NOPULL;
-        obj->event = EDGE_NONE;
+        if (event == IRQ_RISE) {
+            if ((obj->event == EDGE_FALL) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_FALLING;
+                obj->event = EDGE_FALL;
+            } else if (obj->event == EDGE_RISE) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else if (event == IRQ_FALL) {
+            if ((obj->event == EDGE_RISE) || (obj->event == EDGE_BOTH)) {
+                mode = STM_MODE_IT_RISING;
+                obj->event = EDGE_RISE;
+            } else if (obj->event == IRQ_FALL) {
+                mode = STM_MODE_IT_EVT_RESET;
+                obj->event = EDGE_NONE;
+            }
+        }
+        else {
+        	  mode = STM_MODE_IT_EVT_RESET;
+            obj->event = EDGE_NONE;
+        }
     }
     
     pin_function(obj->pin, STM_PIN_DATA(mode, pull, 0));
--- a/targets/hal/TARGET_STM/TARGET_STM32F407VG/pinmap.c	Sat Sep 20 11:30:07 2014 +0100
+++ b/targets/hal/TARGET_STM/TARGET_STM32F407VG/pinmap.c	Mon Sep 22 09:30:07 2014 +0100
@@ -33,7 +33,7 @@
 #include "mbed_error.h"
 
 // GPIO mode look-up table
-static const uint32_t gpio_mode[12] = {
+static const uint32_t gpio_mode[13] = {
     0x00000000, //  0 = GPIO_MODE_INPUT
     0x00000001, //  1 = GPIO_MODE_OUTPUT_PP
     0x00000011, //  2 = GPIO_MODE_OUTPUT_OD
@@ -45,7 +45,8 @@
     0x10310000, //  8 = GPIO_MODE_IT_RISING_FALLING
     0x10120000, //  9 = GPIO_MODE_EVT_RISING
     0x10220000, // 10 = GPIO_MODE_EVT_FALLING
-    0x10320000  // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10320000, // 11 = GPIO_MODE_EVT_RISING_FALLING
+    0x10000000  // 12 = Reset GPIO_MODE_IT_EVT
 };
 
 // Enable GPIO clock and return GPIO base address