summaryrefslogtreecommitdiff
path: root/nuttx/arch/arm/src/lm3s/lm3s_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'nuttx/arch/arm/src/lm3s/lm3s_internal.h')
-rw-r--r--nuttx/arch/arm/src/lm3s/lm3s_internal.h37
1 files changed, 34 insertions, 3 deletions
diff --git a/nuttx/arch/arm/src/lm3s/lm3s_internal.h b/nuttx/arch/arm/src/lm3s/lm3s_internal.h
index 4d99cb492..86d9514d2 100644
--- a/nuttx/arch/arm/src/lm3s/lm3s_internal.h
+++ b/nuttx/arch/arm/src/lm3s/lm3s_internal.h
@@ -213,6 +213,26 @@ extern "C" {
#define EXTERN extern
#endif
+/* These 'addresses' of these values are setup by the linker script. They are
+ * not actual uint32 storage locations! They are only used meaningfully in the
+ * following way:
+ *
+ * - The linker script defines, for example, the symbol_sdata.
+ * - The declareion extern uint32 _sdata; makes C happy. C will believe
+ * that the value _sdata is the address of a uint32 variable _data (it is
+ * not!).
+ * - We can recoved the linker value then by simply taking the address of
+ * of _data. like: uint32 *pdata = &_sdata;
+ */
+
+extern uint32 _stext; /* Start of .text */
+extern uint32 _etext; /* End_1 of .text + .rodata) */
+extern const uint32 _eronly; /* End+1 of read only section (.text + .rodata) */
+extern uint32 _sdata; /* Start of .data */
+extern uint32 _edata; /* End+1 of .data */
+extern uint32 _sbss; /* Start of .bss */
+extern uint32 _ebss; /* End+1 of .bss */
+
/****************************************************************************
* Public Function Prototypes
****************************************************************************/
@@ -261,14 +281,25 @@ EXTERN void up_clockconfig(void);
EXTERN int lm3s_configgpio(uint32 cfgset);
/****************************************************************************
- * Name: lm3s_pendsv
+ * Name: lm3s_svcall
+ *
+ * Description:
+ * This is SVCall exception handler that performs context switching
+ *
+ ****************************************************************************/
+
+EXTERN int lm3s_svcall(int irq, FAR void *context);
+
+/****************************************************************************
+ * Name: lm3s_hardfault
*
* Description:
- * This is PendSV exception handler that performs context switching
+ * This is Hard Fault exception handler. It also catches SVC call
+ * exceptions that are performed in bad contexts.
*
****************************************************************************/
-EXTERN int lm3s_pendsv(int irq, FAR void *context);
+EXTERN int lm3s_hardfault(int irq, FAR void *context);
/****************************************************************************
* Name: lm3s_gpiowrite