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

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Files at this revision

API Documentation at this revision

Comitter:
simon.ford@mbed.co.uk
Date:
Mon Nov 16 17:23:08 2009 +0000
Parent:
14:20a79241b4a0
Child:
16:32af5db564d4
Commit message:
* Update Serial to support primitive interrupt event
* Update some CMSIS-level interrupt functions

Changed in this revision

LPC1768/LPC17xx.h Show annotated file Show diff for this revision Revisions of this file
LPC1768/capi.ar Show annotated file Show diff for this revision Revisions of this file
LPC1768/cmsis_nvic.o Show annotated file Show diff for this revision Revisions of this file
LPC1768/core_cm3.o Show annotated file Show diff for this revision Revisions of this file
LPC1768/mbed.ar Show annotated file Show diff for this revision Revisions of this file
LPC2368/capi.ar Show annotated file Show diff for this revision Revisions of this file
LPC2368/cmsis_nvic.o Show annotated file Show diff for this revision Revisions of this file
LPC2368/mbed.ar Show annotated file Show diff for this revision Revisions of this file
Serial.h Show annotated file Show diff for this revision Revisions of this file
cmsis.h Show annotated file Show diff for this revision Revisions of this file
cmsis_nvic.h Show annotated file Show diff for this revision Revisions of this file
--- a/LPC1768/LPC17xx.h	Wed Oct 28 17:43:46 2009 +0000
+++ b/LPC1768/LPC17xx.h	Mon Nov 16 17:23:08 2009 +0000
@@ -138,7 +138,7 @@
   __IO uint32_t PCLKSEL1;
        uint32_t RESERVED8[4];
   __IO uint32_t USBIntSt;               /* USB Device/OTG Interrupt Register  */
-       uint32_t DMAREQSEL;
+       uint32_t RESERVED9;
   __IO uint32_t CLKOUTCFG;              /* Clock Output Configuration         */
  } LPC_SC_TypeDef;
 
Binary file LPC1768/capi.ar has changed
Binary file LPC1768/cmsis_nvic.o has changed
Binary file LPC1768/core_cm3.o has changed
Binary file LPC1768/mbed.ar has changed
Binary file LPC2368/capi.ar has changed
Binary file LPC2368/cmsis_nvic.o has changed
Binary file LPC2368/mbed.ar has changed
--- a/Serial.h	Wed Oct 28 17:43:46 2009 +0000
+++ b/Serial.h	Mon Nov 16 17:23:08 2009 +0000
@@ -10,6 +10,7 @@
 #include "PinNames.h"
 #include "PeripheralNames.h"
 #include "Stream.h"
+#include "FunctionPointer.h"
 
 namespace mbed {
 
@@ -122,6 +123,27 @@
      */
     int writeable();
 
+    /* Function: attach
+     *  Attach a function to call whenever a serial interrupt is generated
+     *
+     * Variables:
+     *  fptr - A pointer to a void function, or 0 to set as none
+     */
+    void attach(void (*fptr)(void));
+
+    /* Function: attach
+     *  Attach a member function to call whenever a serial interrupt is generated
+     *     
+     * Variables:
+     *  tptr - pointer to the object to call the member function on
+     *  mptr - pointer to the member function to be called
+     */
+    template<typename T>
+    void attach(T* tptr, void (T::*mptr)(void)) {
+        _irq.attach(tptr, mptr);
+        setup_interrupt();
+    }
+
 #ifdef MBED_RPC
     virtual const struct rpc_method *get_rpc_methods();
     static struct rpc_class *get_rpc_class();
@@ -129,10 +151,14 @@
 
 protected:
 
+    void setup_interrupt();
+    void remove_interrupt();
+
     virtual int _getc();
     virtual int _putc(int c);
 
     UARTName _uart;
+    FunctionPointer _irq;
 
 };
 
--- a/cmsis.h	Wed Oct 28 17:43:46 2009 +0000
+++ b/cmsis.h	Mon Nov 16 17:23:08 2009 +0000
@@ -16,4 +16,6 @@
 #error "CMSIS Target not recognised"
 #endif
 
+#include "cmsis_nvic.h"
+
 #endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cmsis_nvic.h	Mon Nov 16 17:23:08 2009 +0000
@@ -0,0 +1,24 @@
+/* mbed Microcontroller Library - cmsis_nvic
+ * Copyright (c) 2009 ARM Limited. All rights reserved.
+ * sford
+ *
+ * CMSIS-style functionality to support dynamic vectors
+ */ 
+
+#ifndef MBED_CMSIS_NVIC_H
+#define MBED_CMSIS_NVIC_H
+
+#include "cmsis.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void NVIC_SetVector(IRQn_Type IRQn, uint32_t vector);
+uint32_t NVIC_GetVector(IRQn_Type IRQn);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif