Merged in masayuki2009/nuttx.nuttx/lc823450_autoled (pull request #532)
lc823450 auto LED support * arch/arm/src/lc823450: Add auto LED for CPU activity Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> * configs/lc823450-xgevk: Add auto LED support Signed-off-by: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com> Approved-by: Gregory Nutt <gnutt@nuttx.org>
This commit is contained in:
parent
509d729825
commit
da78c18397
@ -42,6 +42,8 @@
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/clock.h>
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "nvic.h"
|
||||
#include "up_internal.h"
|
||||
@ -129,6 +131,8 @@ void up_idle(void)
|
||||
leave_critical_section(flags);
|
||||
#endif /* CONFIG_LC823450_SLEEP_MODE */
|
||||
|
||||
board_autoled_off(LED_CPU0 + up_cpu_index());
|
||||
|
||||
/* Sleep until an interrupt occurs to save power */
|
||||
|
||||
asm("WFI");
|
||||
|
@ -47,6 +47,8 @@
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <arch/irq.h>
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "nvic.h"
|
||||
#include "ram_vectors.h"
|
||||
@ -690,6 +692,13 @@ void up_enable_irq(int irq)
|
||||
|
||||
void up_ack_irq(int irq)
|
||||
{
|
||||
if (irq < LC823450_IRQ_SYSTICK)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
board_autoled_on(LED_CPU0 + up_cpu_index());
|
||||
|
||||
#ifdef CONFIG_DVFS
|
||||
lc823450_dvfs_exit_idle(irq);
|
||||
#endif
|
||||
|
@ -247,6 +247,7 @@ config ARCH_BOARD_HYMINI_STM32V
|
||||
config ARCH_BOARD_LC823450_XGEVK
|
||||
bool "ON Semiconductor LC823450-XGEVK development board"
|
||||
depends on ARCH_CHIP_LC823450
|
||||
select ARCH_HAVE_LEDS
|
||||
---help---
|
||||
This port uses the ON Semiconductor LC823450-XGEVK development board.
|
||||
|
||||
|
@ -40,6 +40,8 @@ Currently SMP feature works on the board but might not be stable.
|
||||
In addition, console output might be corrupted if the both CPUs
|
||||
output into the console because UART operates in FIFO mode.
|
||||
|
||||
CPU activities are shown at D9 (CPU0) and D10 (CPU1) respectively.
|
||||
|
||||
1. "nsh> smp" works but the result will be corrupted.
|
||||
2. "nsh> ostest" works but might cause a deadlock or assertion.
|
||||
|
||||
@ -207,4 +209,4 @@ TODO
|
||||
^^^^
|
||||
|
||||
The following features will be supported.
|
||||
LED, Accelerometer, etc.
|
||||
Accelerometer, etc.
|
||||
|
@ -38,6 +38,21 @@
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
|
||||
#define LED_STARTED 0 /* N/A */
|
||||
#define LED_HEAPALLOCATE 1 /* N/A */
|
||||
#define LED_IRQSENABLED 2 /* N/A */
|
||||
#define LED_STACKCREATED 3 /* N/A */
|
||||
#define LED_INIRQ 4 /* N/A */
|
||||
#define LED_SIGNAL 5 /* N/A */
|
||||
#define LED_ASSERTION 6 /* N/A */
|
||||
#define LED_PANIC 7 /* N/A */
|
||||
#define LED_CPU0 8 /* LED0 (D9) */
|
||||
#define LED_CPU1 9 /* LED1 (D10) */
|
||||
|
||||
/************************************************************************************
|
||||
* Public Data
|
||||
************************************************************************************/
|
||||
|
@ -76,4 +76,8 @@ ifeq ($(CONFIG_AUDIO_WM8776),y)
|
||||
CSRCS += lc823450_wm8776.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_ARCH_LEDS),y)
|
||||
CSRCS += lc823450_autoleds.c
|
||||
endif
|
||||
|
||||
include $(TOPDIR)/configs/Board.mk
|
||||
|
115
configs/lc823450-xgevk/src/lc823450_autoleds.c
Normal file
115
configs/lc823450-xgevk/src/lc823450_autoleds.c
Normal file
@ -0,0 +1,115 @@
|
||||
/****************************************************************************
|
||||
* configs/lc823450-xgevk/src/lc823450_autoleds.c
|
||||
*
|
||||
* Copyright (C) 2017 Sony Corporation. All rights reserved.
|
||||
* Author: Masayuki Ishikawa <Masayuki.Ishikawa@jp.sony.com>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "chip.h"
|
||||
#include "up_arch.h"
|
||||
#include "up_internal.h"
|
||||
|
||||
#include "lc823450_gpio.h"
|
||||
#include "lc823450-xgevk.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
#define LED0_PIN (GPIO_PORT0 | GPIO_PIN0)
|
||||
#define LED1_PIN (GPIO_PORT2 | GPIO_PINF)
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_initialize(void)
|
||||
{
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_on
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_on(int led)
|
||||
{
|
||||
switch (led)
|
||||
{
|
||||
case LED_CPU0:
|
||||
lc823450_gpio_write(LED0_PIN, 1);
|
||||
break;
|
||||
|
||||
case LED_CPU1:
|
||||
lc823450_gpio_write(LED1_PIN, 1);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_autoled_off
|
||||
****************************************************************************/
|
||||
|
||||
void board_autoled_off(int led)
|
||||
{
|
||||
switch (led)
|
||||
{
|
||||
case LED_CPU0:
|
||||
lc823450_gpio_write(LED0_PIN, 0);
|
||||
break;
|
||||
|
||||
case LED_CPU1:
|
||||
lc823450_gpio_write(LED1_PIN, 0);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user