board_button_irq: Button IRQ logic no longer returns the xcpt_t oldhandler. There value is useless and dangerous after the recent changes to interrupt argument passing.
This commit is contained in:
parent
0f46d714a9
commit
4f5e0e3519
@ -178,10 +178,11 @@ uint8_t board_buttons(void)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_LPC43_GPIO_IRQ)
|
#if defined(CONFIG_ARCH_IRQBUTTONS) && defined(CONFIG_LPC43_GPIO_IRQ)
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
#if 0 /* Not yet implemented */
|
#if 0 /* Not yet implemented */
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
int ret = -EINVAL;
|
||||||
int irq;
|
int irq;
|
||||||
|
|
||||||
/* Verify that the button ID is within range */
|
/* Verify that the button ID is within range */
|
||||||
@ -213,9 +214,10 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
|
ret = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OK;
|
return ret;
|
||||||
#else
|
#else
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
#endif /* Not yet implemented */
|
#endif /* Not yet implemented */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/saml21-xplained/src/sam_buttons.c
|
* configs/saml21-xplained/src/sam_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -40,6 +40,7 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
@ -53,22 +54,6 @@
|
|||||||
|
|
||||||
#ifdef CONFIG_ARCH_BUTTONS
|
#ifdef CONFIG_ARCH_BUTTONS
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Pre-processor Definitions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Private Data
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
#if defined(CONFIG_PORTA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
|
||||||
static xcpt_t g_irqsw0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/****************************************************************************
|
|
||||||
* Private Functions
|
|
||||||
****************************************************************************/
|
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* Public Functions
|
* Public Functions
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
@ -123,9 +108,9 @@ uint8_t board_buttons(void)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#if defined(CONFIG_PORTA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
#if defined(CONFIG_PORTA_IRQ) && defined(CONFIG_ARCH_IRQBUTTONS)
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
int ret = -EINVAL;
|
||||||
|
|
||||||
if (id == BUTTON_SW0)
|
if (id == BUTTON_SW0)
|
||||||
{
|
{
|
||||||
@ -137,22 +122,19 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
|
|
||||||
flags = enter_critical_section();
|
flags = enter_critical_section();
|
||||||
|
|
||||||
/* Get the old button interrupt handler and save the new one */
|
|
||||||
|
|
||||||
oldhandler = *g_irqsw0;
|
|
||||||
*g_irqsw0 = irqhandler;
|
|
||||||
|
|
||||||
/* Configure the interrupt */
|
/* Configure the interrupt */
|
||||||
|
|
||||||
sam_portirq(IRQ_SW0);
|
sam_portirq(IRQ_SW0);
|
||||||
(void)irq_attach(IRQ_SW0, irqhandler, arg);
|
(void)irq_attach(IRQ_SW0, irqhandler, arg);
|
||||||
sam_portirqenable(IRQ_SW0);
|
sam_portirqenable(IRQ_SW0);
|
||||||
|
|
||||||
leave_critical_section(flags);
|
leave_critical_section(flags);
|
||||||
|
ret = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Return the old button handler (so that it can be restored) */
|
/* Return the old button handler (so that it can be restored) */
|
||||||
|
|
||||||
return oldhandler;
|
return ret;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -84,8 +84,8 @@
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef HAVE_IRQBUTTONS
|
#ifdef HAVE_IRQBUTTONS
|
||||||
static xcpt_t board_button_irqx(gpio_pinset_t pinset, int irq,
|
static int board_button_irqx(gpio_pinset_t pinset, int irq, xcpt_t irqhandler,
|
||||||
xcpt_t irqhandler, void *arg)
|
void *arg)
|
||||||
{
|
{
|
||||||
irqstate_t flags;
|
irqstate_t flags;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm3210e-eval/src/stm32_buttons.c
|
* configs/stm3210e-eval/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2009, 2011, 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2009, 2011, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -160,7 +160,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -172,7 +172,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm3220g-eval/src/stm32_buttons.c
|
* configs/stm3220g-eval/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012, 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -156,7 +156,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -168,7 +168,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm3240g-eval/src/stm32_buttons.c
|
* configs/stm3240g-eval/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011, 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2011, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -156,7 +156,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -168,7 +168,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f103-minimum/src/stm32_buttons.c
|
* configs/stm32f103-minimum/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2016 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2016-2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -151,7 +151,7 @@ uint8_t board_buttons(void)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -163,7 +163,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f3discovery/src/stm32_buttons.c
|
* configs/stm32f3discovery/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013, 2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2013, 2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -151,7 +151,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -163,7 +163,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f429i-disco/src/stm32_buttons.c
|
* configs/stm32f429i-disco/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2012, 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2011-2012, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -151,7 +151,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -163,7 +163,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f4discovery/src/stm32_buttons.c
|
* configs/stm32f4discovery/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2011-2012, 2014=2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2011-2012, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -151,7 +151,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -163,7 +163,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f4discovery/src/stm32_pm_buttons.c
|
* configs/stm32f4discovery/src/stm32_pm_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012, 2015-2016 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012, 2015-2017 Gregory Nutt. All rights reserved.
|
||||||
* Authors: Gregory Nutt <gnutt@nuttx.org>
|
* Authors: Gregory Nutt <gnutt@nuttx.org>
|
||||||
* Diego Sanchez <dsanchez@nx-engineering.com>
|
* Diego Sanchez <dsanchez@nx-engineering.com>
|
||||||
*
|
*
|
||||||
@ -130,14 +130,7 @@ void stm32_pm_buttons(void)
|
|||||||
board_button_initialize();
|
board_button_initialize();
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t oldhandler = board_button_irq(0, button_handler, NULL);
|
(void)board_button_irq(0, button_handler, NULL);
|
||||||
|
|
||||||
if (oldhandler != NULL)
|
|
||||||
{
|
|
||||||
_warn("WARNING: oldhandler:%p is not NULL! "
|
|
||||||
"Button events may be lost or aliased!\n",
|
|
||||||
oldhandler);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32f746g-disco/src/stm32_buttons.c
|
* configs/stm32f746g-disco/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -39,6 +39,8 @@
|
|||||||
|
|
||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/irq.h>
|
#include <nuttx/irq.h>
|
||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
|
|
||||||
@ -103,9 +105,10 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
#warning Missing logic
|
#warning Missing logic
|
||||||
|
return -ENOSYS;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include <nuttx/config.h>
|
#include <nuttx/config.h>
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
#include <nuttx/arch.h>
|
#include <nuttx/arch.h>
|
||||||
#include <nuttx/board.h>
|
#include <nuttx/board.h>
|
||||||
@ -149,9 +150,9 @@ uint8_t board_buttons(void)
|
|||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
int ret = OK;
|
int ret = -EINVAL;
|
||||||
|
|
||||||
if (id >= MIN_IRQBUTTON && id <= MAX_IRQBUTTON)
|
if (id >= MIN_IRQBUTTON && id <= MAX_IRQBUTTON)
|
||||||
{
|
{
|
||||||
@ -159,8 +160,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNUSED(ret);
|
return ret;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -244,19 +244,13 @@ void board_button_initialize(void)
|
|||||||
{
|
{
|
||||||
stm32l4_configgpio(g_buttons[i]);
|
stm32l4_configgpio(g_buttons[i]);
|
||||||
|
|
||||||
/* It's not clear if this is correct; I think so, but then there are
|
/* It's not clear if this is correct; I think so, but then there are
|
||||||
* conflicts with the 'buttons' sample app.
|
* conflicts with the 'buttons' sample app.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t oldhandler = board_button_irq(i, button_handler);
|
(void)board_button_irq(i, button_handler);
|
||||||
if (oldhandler != NULL)
|
|
||||||
{
|
|
||||||
warn("WARNING: oldhandler:%p is not NULL! "
|
|
||||||
"Button events may be lost or aliased!\n",
|
|
||||||
oldhandler);
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -324,9 +318,9 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
int ret = OK;
|
int ret = -EINVAL;
|
||||||
|
|
||||||
/* The following should be atomic */
|
/* The following should be atomic */
|
||||||
|
|
||||||
@ -335,8 +329,7 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
ret = stm32l4_gpiosetevent(g_buttons[id], true, true, true, irqhandler, arg);
|
ret = stm32l4_gpiosetevent(g_buttons[id], true, true, true, irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
UNUSED(ret);
|
return ret;
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32ldiscovery/src/board_buttons.c
|
* configs/stm32ldiscovery/src/board_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2013-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@ -151,7 +151,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -163,7 +163,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
irqhandler, arg);
|
irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
* configs/stm32vldiscovery/src/stm32_buttons.c
|
* configs/stm32vldiscovery/src/stm32_buttons.c
|
||||||
*
|
*
|
||||||
* Copyright (C) 2012, 2014-2015 Gregory Nutt. All rights reserved.
|
* Copyright (C) 2012, 2014-2015, 2017 Gregory Nutt. All rights reserved.
|
||||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||||
* Freddie Chopin <freddie_chopin@op.pl>
|
* Freddie Chopin <freddie_chopin@op.pl>
|
||||||
*
|
*
|
||||||
@ -106,7 +106,7 @@ uint8_t board_buttons(void)
|
|||||||
************************************************************************************/
|
************************************************************************************/
|
||||||
|
|
||||||
#ifdef CONFIG_ARCH_IRQBUTTONS
|
#ifdef CONFIG_ARCH_IRQBUTTONS
|
||||||
xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
int board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
||||||
{
|
{
|
||||||
xcpt_t oldhandler = NULL;
|
xcpt_t oldhandler = NULL;
|
||||||
|
|
||||||
@ -115,7 +115,8 @@ xcpt_t board_button_irq(int id, xcpt_t irqhandler, FAR void *arg)
|
|||||||
oldhandler = stm32_gpiosetevent(GPIO_BTN_0, true, true, true, irqhandler, arg);
|
oldhandler = stm32_gpiosetevent(GPIO_BTN_0, true, true, true, irqhandler, arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
return oldhandler;
|
UNUSED(oldhandler);
|
||||||
|
return OK;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#endif /* CONFIG_ARCH_BUTTONS */
|
#endif /* CONFIG_ARCH_BUTTONS */
|
||||||
|
Loading…
Reference in New Issue
Block a user