aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ports/ARMCM3/chcore.h12
-rw-r--r--ports/MSP430/chcore.c14
-rw-r--r--ports/MSP430/chcore.h55
3 files changed, 53 insertions, 28 deletions
diff --git a/ports/ARMCM3/chcore.h b/ports/ARMCM3/chcore.h
index 4ac271c79..85dcd0044 100644
--- a/ports/ARMCM3/chcore.h
+++ b/ports/ARMCM3/chcore.h
@@ -29,12 +29,16 @@
* Port-related configuration parameters.
*/
-/** Enables the use of the WFI ins. */
+/**
+ * Enables the use of the WFI ins.
+ */
#ifndef ENABLE_WFI_IDLE
#define ENABLE_WFI_IDLE 0
#endif
-/** BASEPRI user level, 0 = disabled. */
+/**
+ * BASEPRI user level, 0 = disabled.
+ */
#ifndef BASEPRI_USER
#define BASEPRI_USER 0
#endif
@@ -59,7 +63,9 @@
#define PRIORITY_SVCALL (BASEPRI_KERNEL - 0x10)
#endif
-/** SYSTICK handler priority. */
+/**
+ * SYSTICK handler priority.
+ */
#ifndef PRIORITY_SYSTICK
#define PRIORITY_SYSTICK 0x80
#endif
diff --git a/ports/MSP430/chcore.c b/ports/MSP430/chcore.c
index e56f41120..cea8d22ed 100644
--- a/ports/MSP430/chcore.c
+++ b/ports/MSP430/chcore.c
@@ -38,8 +38,10 @@
* it in your application code.
* @param msg pointer to the message string
*/
+/** @cond never */
__attribute__((weak))
-void sys_puts(char *msg) {
+/** @endcond */
+void port_puts(char *msg) {
}
/**
@@ -49,8 +51,10 @@ void sys_puts(char *msg) {
* @note The function is declared as a weak symbol, it is possible to redefine
* it in your application code.
*/
+/** @cond never */
__attribute__((naked, weak))
-void sys_switch(Thread *otp, Thread *ntp) {
+/** @endcond */
+void port_switch(Thread *otp, Thread *ntp) {
register struct intctx *sp asm("r1");
asm volatile ("push r11 \n\t" \
@@ -79,10 +83,12 @@ void sys_switch(Thread *otp, Thread *ntp) {
* @note The function is declared as a weak symbol, it is possible to redefine
* it in your application code.
*/
+/** @cond never */
__attribute__((weak))
-void sys_halt(void) {
+/** @endcond */
+void port_halt(void) {
- sys_disable();
+ port_disable();
while (TRUE) {
}
}
diff --git a/ports/MSP430/chcore.h b/ports/MSP430/chcore.h
index 807e7168f..642e53286 100644
--- a/ports/MSP430/chcore.h
+++ b/ports/MSP430/chcore.h
@@ -139,68 +139,81 @@ typedef struct {
* IRQ prologue code, inserted at the start of all IRQ handlers enabled to
* invoke system APIs.
*/
-#define SYS_IRQ_PROLOGUE()
+#define PORT_IRQ_PROLOGUE()
/**
* IRQ epilogue code, inserted at the end of all IRQ handlers enabled to
* invoke system APIs.
*/
-#define SYS_IRQ_EPILOGUE() { \
-if (chSchRescRequiredI()) \
- chSchDoRescheduleI(); \
+#define PORT_IRQ_EPILOGUE() { \
+ if (chSchRescRequiredI()) \
+ chSchDoRescheduleI(); \
}
/**
* IRQ handler function modifier. Note, it just aliases the WinMSP "interrupt"
* macro.
*/
-#define SYS_IRQ_HANDLER interrupt
+#define PORT_IRQ_HANDLER interrupt
/**
- * This port function is implemented as inlined code for performance reasons.
+ * This function is empty in this port.
*/
-#define sys_disable() asm volatile ("dint")
+#define port_init()
/**
- * This port function is implemented as inlined code for performance reasons.
+ * Implemented as global interrupt disable.
+ */
+#define port_lock() asm volatile ("dint")
+
+/**
+ * Implemented as global interrupt enable.
*/
-#define sys_enable() asm volatile ("eint")
+#define port_unlock() asm volatile ("eint")
/**
* This function is empty in this port.
*/
-#define sys_disable_from_isr()
+#define port_lock_from_isr()
/**
* This function is empty in this port.
*/
-#define sys_enable_from_isr()
+#define port_unlock_from_isr()
+
+/**
+ * Implemented as global interrupt disable.
+ */
+#define port_disable() asm volatile ("dint")
+
+/**
+ * Same as @p port_disable() in this port, there is no difference between the
+ * two states.
+ */
+#define port_suspend() asm volatile ("dint")
/**
- * Disables all the interrupt sources, even those having a priority higher
- * to the kernel.
- * In this port it is no different than sys_disable() because the simple
- * interrupt handling
+ * Implemented as global interrupt enable.
*/
-#define sys_disable_all() sys_disable()
+#define port_enable() asm volatile ("eint")
/**
* This port function is implemented as inlined code for performance reasons.
*/
#if ENABLE_WFI_IDLE != 0
-#define sys_wait_for_interrupt() { \
+#define port_wait_for_interrupt() { \
asm volatile ("wfi"); \
}
#else
-#define sys_wait_for_interrupt()
+#define port_wait_for_interrupt()
#endif
#ifdef __cplusplus
extern "C" {
#endif
- void sys_puts(char *msg);
- void sys_switch(Thread *otp, Thread *ntp);
- void sys_halt(void);
+ void port_puts(char *msg);
+ void port_switch(Thread *otp, Thread *ntp);
+ void port_halt(void);
void threadstart(void);
#ifdef __cplusplus
}