Adding initial support to board esp32-2432S028, is a board with SD Card, RGB LED, output for speak and display LCD
Signed-off-by: halyssonJr <halysson1007@gmail.com>
This commit is contained in:
parent
6e94f7432f
commit
48a878fd06
15 changed files with 1153 additions and 0 deletions
Binary file not shown.
After Width: | Height: | Size: 983 KiB |
Binary file not shown.
After Width: | Height: | Size: 471 KiB |
|
@ -0,0 +1,105 @@
|
|||
==============
|
||||
ESP32-2432S028
|
||||
==============
|
||||
|
||||
The ESP32-2432S028 is a development board based on an ESP32-WROVER-32 module. It is designed for a
|
||||
wide range of applications, particularly in the field of the Internet of Things (IoT).
|
||||
|
||||
.. list-table::
|
||||
:align: center
|
||||
|
||||
* - .. figure:: esp32-2432S028-front.png
|
||||
:align: center
|
||||
|
||||
ESP32-2432S028 board layout - front
|
||||
|
||||
- .. figure:: esp32-2432s028-back.png
|
||||
:align: center
|
||||
|
||||
ESP32-2432S028 board layout - back
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
- LCD screen (2.8 inch)
|
||||
- MicroSD card slot
|
||||
- RGB LED
|
||||
- Audio
|
||||
- Light Dependent Resistor (LDR)
|
||||
|
||||
Most of I/O pins are broken out to the boards, but from the back side of the board, there are
|
||||
some pins available are separated into two connectors femme JST 1.28 mm 4P.
|
||||
|
||||
Serial Console
|
||||
==============
|
||||
|
||||
UART0 is, by default, the serial console. It connects to the on-board
|
||||
CH340 converter.
|
||||
|
||||
Buttons and LEDs
|
||||
================
|
||||
|
||||
Board Buttons
|
||||
-------------
|
||||
|
||||
There are two buttons labeled BOOT and RST. The RST button is not available
|
||||
to software. It pulls the chip enable line that doubles as a reset line.
|
||||
|
||||
The BOOT button is connected to IO0. On reset it is used as a strapping
|
||||
pin to determine whether the chip boots normally or into the serial
|
||||
bootloader. After reset, however, the BOOT button can be used for software
|
||||
input.
|
||||
|
||||
Board LEDs
|
||||
----------
|
||||
|
||||
There is one RGB LED available.
|
||||
|
||||
Pin Mapping
|
||||
===========
|
||||
|
||||
===== ========================= ==========
|
||||
Pin Signal Notes
|
||||
===== ========================= ==========
|
||||
0 BOOT Button
|
||||
2 LCD Reset
|
||||
4 RGB LED Green
|
||||
12 LCD MISO
|
||||
13 LCD MOSI
|
||||
14 LCD Clock
|
||||
15 LCD CS
|
||||
16 RGB LED Blue
|
||||
17 RGB LED Red
|
||||
21 LCD Backlight
|
||||
26 Audio Out
|
||||
34 LDR
|
||||
===== ========================= ==========
|
||||
|
||||
Configurations
|
||||
==============
|
||||
|
||||
All of the configurations presented below can be tested by running the following commands::
|
||||
|
||||
$ ./tools/configure.sh esp32-2432S028:<config_name>
|
||||
$ make flash ESPTOOL_PORT=/dev/ttyUSB0 -j
|
||||
|
||||
Where <config_name> is the name of board configuration you want to use, i.e.: nsh, buttons, wifi...
|
||||
Then use a serial console terminal like ``picocom`` configured to 115200 8N1.
|
||||
|
||||
lvgl
|
||||
----
|
||||
|
||||
This is a demonstration of the LVGL graphics library running on the NuttX LCD
|
||||
driver. You can find LVGL here::
|
||||
|
||||
https://www.lvgl.io/
|
||||
https://github.com/lvgl/lvgl
|
||||
|
||||
This configuration uses the LVGL demonstration at `apps/examples/lvgldemo`.
|
||||
|
||||
nsh
|
||||
---
|
||||
|
||||
Basic NuttShell configuration (console enabled in UART0, exposed via
|
||||
USB connection by means of CH340 converter, at 115200 bps).
|
||||
|
|
@ -309,6 +309,12 @@ config ARCH_BOARD_ESP32_WROVERKIT
|
|||
LCD screen
|
||||
MicroSD card slot
|
||||
|
||||
config ARCH_BOARD_ESP32_2432S028
|
||||
bool "ESP32-2432S028"
|
||||
depends on ARCH_CHIP_ESP32WROVER
|
||||
---help---
|
||||
ESP32-2432S028 is an ESP32 board with LCD Display, LED RGB and SD Cards.
|
||||
|
||||
config ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
|
||||
bool "LilyGO TBeam V1.1 LoRa/GPS"
|
||||
depends on ARCH_CHIP_ESP32WROOM32
|
||||
|
@ -3040,6 +3046,7 @@ config ARCH_BOARD
|
|||
default "esp32-pico-kit" if ARCH_BOARD_ESP32_PICO_KIT
|
||||
default "esp32-sparrow-kit" if ARCH_BOARD_ESP32_SPARROWKIT
|
||||
default "esp32-wrover-kit" if ARCH_BOARD_ESP32_WROVERKIT
|
||||
default "esp32-2432S028" if ARCH_BOARD_ESP32_2432S028
|
||||
default "esp32c3-devkit" if ARCH_BOARD_ESP32C3_DEVKIT
|
||||
default "esp32c3-devkit-rust-1" if ARCH_BOARD_ESP32C3_DEVKIT_RUST1
|
||||
default "esp32c3-generic" if ARCH_BOARD_ESP32C3_GENERIC
|
||||
|
@ -4168,6 +4175,9 @@ endif
|
|||
if ARCH_BOARD_ESP32_WROVERKIT
|
||||
source "boards/xtensa/esp32/esp32-wrover-kit/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_ESP32_2432S028
|
||||
source "boards/xtensa/esp32/esp32-2432S028/Kconfig"
|
||||
endif
|
||||
if ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
|
||||
source "boards/xtensa/esp32/lilygo_tbeam_lora_gps/Kconfig"
|
||||
endif
|
||||
|
|
8
boards/xtensa/esp32/esp32-2432S028/Kconfig
Normal file
8
boards/xtensa/esp32/esp32-2432S028/Kconfig
Normal file
|
@ -0,0 +1,8 @@
|
|||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see the file kconfig-language.txt in the NuttX tools repository.
|
||||
#
|
||||
|
||||
if ARCH_BOARD_ESP32_2432S028
|
||||
|
||||
endif # ARCH_BOARD_ESP32_2432S028
|
44
boards/xtensa/esp32/esp32-2432S028/configs/nsh/defconfig
Normal file
44
boards/xtensa/esp32/esp32-2432S028/configs/nsh/defconfig
Normal file
|
@ -0,0 +1,44 @@
|
|||
#
|
||||
# This file is autogenerated: PLEASE DO NOT EDIT IT.
|
||||
#
|
||||
# You can use "make menuconfig" to make any modifications to the installed .config file.
|
||||
# You can then do "make savedefconfig" to generate a new defconfig file that includes your
|
||||
# modifications.
|
||||
#
|
||||
# CONFIG_NSH_ARGCAT is not set
|
||||
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
|
||||
CONFIG_ARCH="xtensa"
|
||||
CONFIG_ARCH_BOARD="esp32-2432S028"
|
||||
CONFIG_ARCH_BOARD_COMMON=y
|
||||
CONFIG_ARCH_BOARD_ESP32_2432S028=y
|
||||
CONFIG_ARCH_CHIP="esp32"
|
||||
CONFIG_ARCH_CHIP_ESP32=y
|
||||
CONFIG_ARCH_CHIP_ESP32WROVER=y
|
||||
CONFIG_ARCH_STACKDUMP=y
|
||||
CONFIG_ARCH_XTENSA=y
|
||||
CONFIG_BOARD_LOOPSPERMSEC=16717
|
||||
CONFIG_BUILTIN=y
|
||||
CONFIG_ESP32_UART0=y
|
||||
CONFIG_FS_PROCFS=y
|
||||
CONFIG_HAVE_CXX=y
|
||||
CONFIG_HAVE_CXXINITIALIZE=y
|
||||
CONFIG_IDLETHREAD_STACKSIZE=3072
|
||||
CONFIG_INIT_ENTRYPOINT="nsh_main"
|
||||
CONFIG_INTELHEX_BINARY=y
|
||||
CONFIG_MM_REGIONS=3
|
||||
CONFIG_NSH_ARCHINIT=y
|
||||
CONFIG_NSH_BUILTIN_APPS=y
|
||||
CONFIG_NSH_FILEIOSIZE=512
|
||||
CONFIG_NSH_LINELEN=64
|
||||
CONFIG_NSH_READLINE=y
|
||||
CONFIG_PREALLOC_TIMERS=4
|
||||
CONFIG_RAM_SIZE=114688
|
||||
CONFIG_RAM_START=0x20000000
|
||||
CONFIG_RR_INTERVAL=200
|
||||
CONFIG_SCHED_WAITPID=y
|
||||
CONFIG_START_DAY=6
|
||||
CONFIG_START_MONTH=12
|
||||
CONFIG_START_YEAR=2011
|
||||
CONFIG_SYSLOG_BUFFER=y
|
||||
CONFIG_SYSTEM_NSH=y
|
||||
CONFIG_UART0_SERIAL_CONSOLE=y
|
55
boards/xtensa/esp32/esp32-2432S028/include/board.h
Normal file
55
boards/xtensa/esp32/esp32-2432S028/include/board.h
Normal file
|
@ -0,0 +1,55 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/include/board.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_H
|
||||
#define __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_H
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Clocking *****************************************************************/
|
||||
|
||||
/* The ESP32-2432S28 board uses a 40MHz crystal oscillator. */
|
||||
|
||||
#define BOARD_XTAL_FREQUENCY 40000000
|
||||
|
||||
#ifdef CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ
|
||||
# define BOARD_CLOCK_FREQUENCY (CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ * 1000000)
|
||||
#else
|
||||
# define BOARD_CLOCK_FREQUENCY 80000000
|
||||
#endif
|
||||
|
||||
/* GPIO definitions *********************************************************/
|
||||
|
||||
/* Display */
|
||||
|
||||
#define DISPLAY_SPI 2
|
||||
#define DISPLAY_DC 2
|
||||
#define DISPLAY_RST 12
|
||||
#define DISPLAY_BCKL 21
|
||||
|
||||
/* GPIO pins used by the GPIO Subsystem */
|
||||
|
||||
#define BOARD_NGPIOIN 1 /* Amount of GPIO Input pins */
|
||||
#define BOARD_NGPIOOUT 1 /* Amount of GPIO Output pins */
|
||||
#define BOARD_NGPIOINT 1 /* Amount of GPIO Input w/ Interruption pins */
|
||||
|
||||
#endif /* __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_H */
|
128
boards/xtensa/esp32/esp32-2432S028/include/board_memorymap.h
Normal file
128
boards/xtensa/esp32/esp32-2432S028/include/board_memorymap.h
Normal file
|
@ -0,0 +1,128 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/include/board_memorymap.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_MEMORYMAP_H
|
||||
#define __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_MEMORYMAP_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* Kernel ROM */
|
||||
|
||||
#define KIROM_START (uintptr_t)__kirom_start
|
||||
#define KIROM_SIZE (uintptr_t)__kirom_size
|
||||
#define KDROM_START (uintptr_t)__kdrom_start
|
||||
#define KDROM_SIZE (uintptr_t)__kdrom_size
|
||||
|
||||
/* Kernel RAM */
|
||||
|
||||
#define KIRAM_0_START (uintptr_t)__kiram_0_start
|
||||
#define KIRAM_0_SIZE (uintptr_t)__kiram_0_size
|
||||
#define KIRAM_0_END (uintptr_t)__kiram_0_end
|
||||
#define KIRAM_1_START (uintptr_t)__kiram_1_start
|
||||
#define KIRAM_1_SIZE (uintptr_t)__kiram_1_size
|
||||
#define KIRAM_1_END (uintptr_t)__kiram_1_end
|
||||
#define KDRAM_0_START (uintptr_t)__kdram_0_start
|
||||
#define KDRAM_0_SIZE (uintptr_t)__kdram_0_size
|
||||
#define KDRAM_0_END (uintptr_t)__kdram_0_end
|
||||
#define KDRAM_1_START (uintptr_t)__kdram_1_start
|
||||
#define KDRAM_1_SIZE (uintptr_t)__kdram_1_size
|
||||
#define KDRAM_1_END (uintptr_t)__kdram_1_end
|
||||
|
||||
/* Exception vectors */
|
||||
|
||||
#define VECTORS_START (uintptr_t)__vectors_start
|
||||
#define VECTORS_END (uintptr_t)__vectors_end
|
||||
|
||||
/* User ROM */
|
||||
|
||||
#define UIROM_START (uintptr_t)__uirom_start
|
||||
#define UIROM_SIZE (uintptr_t)__uirom_size
|
||||
#define UIROM_END (uintptr_t)__uirom_end
|
||||
#define UDROM_START (uintptr_t)__udrom_start
|
||||
#define UDROM_SIZE (uintptr_t)__udrom_size
|
||||
#define UDROM_END (uintptr_t)__udrom_end
|
||||
|
||||
/* User RAM */
|
||||
|
||||
#define UIRAM_START (uintptr_t)__uiram_start
|
||||
#define UIRAM_SIZE (uintptr_t)__uiram_size
|
||||
#define UIRAM_END (uintptr_t)__uiram_end
|
||||
#define UDRAM_START (uintptr_t)__udram_start
|
||||
#define UDRAM_SIZE (uintptr_t)__udram_size
|
||||
#define UDRAM_END (uintptr_t)__udram_end
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/* Kernel ROM (RX) */
|
||||
|
||||
extern uint8_t __kirom_start[];
|
||||
extern uint8_t __kirom_size[];
|
||||
extern uint8_t __kdrom_start[];
|
||||
extern uint8_t __kdrom_size[];
|
||||
|
||||
/* Kernel RAM (RW) */
|
||||
|
||||
extern uint8_t __kiram_0_start[];
|
||||
extern uint8_t __kiram_0_size[];
|
||||
extern uint8_t __kiram_0_end[];
|
||||
extern uint8_t __kiram_1_start[];
|
||||
extern uint8_t __kiram_1_size[];
|
||||
extern uint8_t __kiram_1_end[];
|
||||
extern uint8_t __kdram_0_start[];
|
||||
extern uint8_t __kdram_0_size[];
|
||||
extern uint8_t __kdram_0_end[];
|
||||
extern uint8_t __kdram_1_start[];
|
||||
extern uint8_t __kdram_1_size[];
|
||||
extern uint8_t __kdram_1_end[];
|
||||
|
||||
/* Exception vectors */
|
||||
|
||||
extern uint8_t __vectors_start[];
|
||||
extern uint8_t __vectors_end[];
|
||||
|
||||
/* User ROM (RX) */
|
||||
|
||||
extern uint8_t __uirom_start[];
|
||||
extern uint8_t __uirom_size[];
|
||||
extern uint8_t __uirom_end[];
|
||||
extern uint8_t __udrom_start[];
|
||||
extern uint8_t __udrom_size[];
|
||||
extern uint8_t __udrom_end[];
|
||||
|
||||
/* User RAM (RW) */
|
||||
|
||||
extern uint8_t __uiram_start[];
|
||||
extern uint8_t __uiram_size[];
|
||||
extern uint8_t __uiram_end[];
|
||||
extern uint8_t __udram_start[];
|
||||
extern uint8_t __udram_size[];
|
||||
extern uint8_t __udram_end[];
|
||||
|
||||
#endif /* __BOARDS_XTENSA_ESP32_ESP32_2432S028_INCLUDE_BOARD_MEMORYMAP_H */
|
72
boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
Normal file
72
boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
Normal file
|
@ -0,0 +1,72 @@
|
|||
############################################################################
|
||||
# boards/xtensa/esp32/esp32-2432S028/scripts/Make.defs
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
include $(TOPDIR)/.config
|
||||
include $(TOPDIR)/tools/Config.mk
|
||||
include $(TOPDIR)/tools/esp32/Config.mk
|
||||
include $(TOPDIR)/arch/xtensa/src/lx6/Toolchain.defs
|
||||
|
||||
ARCHSCRIPT += $(BOARD_COMMON_DIR)$(DELIM)scripts$(DELIM)esp32_rom.ld
|
||||
|
||||
# Pick the linker scripts from the board level if they exist, if not
|
||||
# pick the common linker scripts.
|
||||
|
||||
ifeq ($(CONFIG_BUILD_PROTECTED),y)
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,protected_memory.ld)
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,kernel-space.ld)
|
||||
else
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,flat_memory.ld)
|
||||
|
||||
ifeq ($(CONFIG_ESP32_APP_FORMAT_MCUBOOT),y)
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,mcuboot_sections.ld)
|
||||
else
|
||||
ARCHSCRIPT += $(call FINDSCRIPT,legacy_sections.ld)
|
||||
endif
|
||||
endif
|
||||
|
||||
ARCHPICFLAGS = -fpic
|
||||
|
||||
# if SPIRAM/PSRAM is used then we need to include a workaround
|
||||
|
||||
ifeq ($(CONFIG_ESP32_SPIRAM),y)
|
||||
ARCHCFLAGS += -mfix-esp32-psram-cache-issue
|
||||
endif
|
||||
|
||||
CFLAGS := $(ARCHCFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
|
||||
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
|
||||
CXXFLAGS := $(ARCHCXXFLAGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS) -pipe
|
||||
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
|
||||
CPPFLAGS := $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRAFLAGS)
|
||||
AFLAGS := $(CFLAGS) -D__ASSEMBLY__
|
||||
|
||||
# Loadable module definitions
|
||||
|
||||
CMODULEFLAGS = $(CFLAGS) -mtext-section-literals
|
||||
|
||||
LDMODULEFLAGS = -r -e module_initialize
|
||||
LDMODULEFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)/libs/libc/modlib/gnu-elf.ld)
|
||||
|
||||
# ELF module definitions
|
||||
|
||||
CELFFLAGS = $(CFLAGS) -mtext-section-literals
|
||||
CXXELFFLAGS = $(CXXFLAGS) -mtext-section-literals
|
||||
|
||||
LDELFFLAGS = -r -e main
|
||||
LDELFFLAGS += -T $(call CONVERT_PATH,$(TOPDIR)$(DELIM)binfmt$(DELIM)libelf$(DELIM)gnu-elf.ld)
|
35
boards/xtensa/esp32/esp32-2432S028/src/Make.defs
Normal file
35
boards/xtensa/esp32/esp32-2432S028/src/Make.defs
Normal file
|
@ -0,0 +1,35 @@
|
|||
#############################################################################
|
||||
# boards/xtensa/esp32/esp32-2432S028/src/Make.defs
|
||||
#
|
||||
# Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
# contributor license agreements. See the NOTICE file distributed with
|
||||
# this work for additional information regarding copyright ownership. The
|
||||
# ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance with the
|
||||
# License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
#
|
||||
#############################################################################
|
||||
|
||||
include $(TOPDIR)/Make.defs
|
||||
|
||||
CSRCS = esp32_boot.c esp32_bringup.c
|
||||
|
||||
ifeq ($(CONFIG_BOARDCTL),y)
|
||||
CSRCS += esp32_appinit.c
|
||||
ifeq ($(CONFIG_BOARDCTL_RESET),y)
|
||||
CSRCS += esp32_reset.c
|
||||
endif
|
||||
endif
|
||||
|
||||
DEPPATH += --dep-path board
|
||||
VPATH += :board
|
||||
CFLAGS += ${INCDIR_PREFIX}$(TOPDIR)$(DELIM)arch$(DELIM)$(CONFIG_ARCH)$(DELIM)src$(DELIM)board$(DELIM)board
|
||||
|
92
boards/xtensa/esp32/esp32-2432S028/src/esp32-2432S028.h
Normal file
92
boards/xtensa/esp32/esp32-2432S028/src/esp32-2432S028.h
Normal file
|
@ -0,0 +1,92 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/src/esp32-2432S028.h
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __BOARDS_XTENSA_ESP32_ESP32_2432S028_SRC_ESP32_2432S028_H
|
||||
#define __BOARDS_XTENSA_ESP32_ESP32_2432S028_SRC_ESP32_2432S028_H
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <nuttx/compiler.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/* BOOT Button */
|
||||
|
||||
#define BUTTON_BOOT 0
|
||||
|
||||
/* TIMERS */
|
||||
|
||||
#define TIMER0 0
|
||||
#define TIMER1 1
|
||||
#define TIMER2 2
|
||||
#define TIMER3 3
|
||||
|
||||
/* ONESHOT */
|
||||
|
||||
#define ONESHOT_TIMER 1
|
||||
#define ONESHOT_RESOLUTION_US 1
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
|
||||
/****************************************************************************
|
||||
* Public Function Prototypes
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: esp32_bringup
|
||||
*
|
||||
* Description:
|
||||
* Perform architecture-specific initialization
|
||||
*
|
||||
* CONFIG_BOARD_LATE_INITIALIZE=y :
|
||||
* Called from board_late_initialize().
|
||||
*
|
||||
* CONFIG_BOARD_LATE_INITIALIZE=y && CONFIG_BOARDCTL=y :
|
||||
* Called from the NSH library via board_app_initialize()
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int esp32_bringup(void);
|
||||
|
||||
/****************************************************************************
|
||||
* Name: esp32_spiflash_init
|
||||
*
|
||||
* Description:
|
||||
* Initialize the SPIFLASH and register the MTD device.
|
||||
****************************************************************************/
|
||||
|
||||
int esp32_spiflash_init(void);
|
||||
|
||||
#endif /* __ASSEMBLY__ */
|
||||
#endif /* __BOARDS_XTENSA_ESP32_ESP32_2432S028_SRC_ESP32_2432S028_H */
|
80
boards/xtensa/esp32/esp32-2432S028/src/esp32_appinit.c
Normal file
80
boards/xtensa/esp32/esp32-2432S028/src/esp32_appinit.c
Normal file
|
@ -0,0 +1,80 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/src/esp32_appinit.c
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#include "esp32-2432S028.h"
|
||||
|
||||
#ifdef CONFIG_BOARDCTL
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_app_initialize
|
||||
*
|
||||
* Description:
|
||||
* Perform application specific initialization. This function is never
|
||||
* called directly from application code, but only indirectly via the
|
||||
* (non-standard) boardctl() interface using the command BOARDIOC_INIT.
|
||||
*
|
||||
* Input Parameters:
|
||||
* arg - The boardctl() argument is passed to the board_app_initialize()
|
||||
* implementation without modification. The argument has no
|
||||
* meaning to NuttX; the meaning of the argument is a contract
|
||||
* between the board-specific initialization logic and the
|
||||
* matching application logic. The value could be such things as a
|
||||
* mode enumeration value, a set of DIP switch settings, a
|
||||
* pointer to configuration data read from a file or serial FLASH,
|
||||
* or whatever you would like to do with it. Every implementation
|
||||
* should accept zero/NULL as a default configuration.
|
||||
*
|
||||
* Returned Value:
|
||||
* Zero (OK) is returned on success; a negated errno value is returned on
|
||||
* any failure to indicate the nature of the failure.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int board_app_initialize(uintptr_t arg)
|
||||
{
|
||||
#ifdef CONFIG_BOARD_LATE_INITIALIZE
|
||||
/* Board initialization already performed by board_late_initialize() */
|
||||
|
||||
return OK;
|
||||
#else
|
||||
/* Perform board-specific initialization */
|
||||
|
||||
return esp32_bringup();
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif /* CONFIG_BOARDCTL */
|
97
boards/xtensa/esp32/esp32-2432S028/src/esp32_boot.c
Normal file
97
boards/xtensa/esp32/esp32-2432S028/src/esp32_boot.c
Normal file
|
@ -0,0 +1,97 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/src/esp32_boot.c
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <debug.h>
|
||||
|
||||
#include <nuttx/board.h>
|
||||
#include <nuttx/mm/mm.h>
|
||||
#include <arch/board/board.h>
|
||||
#include <arch/esp32/memory_layout.h>
|
||||
|
||||
#include "esp32-2432S028.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: esp32_board_initialize
|
||||
*
|
||||
* Description:
|
||||
* All ESP32 architectures must provide the following entry point.
|
||||
* This entry point is called early in the initialization -- after all
|
||||
* memory has been configured and mapped but before any devices have been
|
||||
* initialized.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
void esp32_board_initialize(void)
|
||||
{
|
||||
/* Configure on-board LEDs if LED support has been selected. */
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_late_initialize
|
||||
*
|
||||
* Description:
|
||||
* If CONFIG_BOARD_LATE_INITIALIZE is selected, then an additional
|
||||
* initialization call will be performed in the boot-up sequence to a
|
||||
* function called board_late_initialize(). board_late_initialize() will
|
||||
* be called immediately after up_initialize() is called and just before
|
||||
* the initial application is started. This additional initialization
|
||||
* phase may be used, for example, to initialize board-specific device
|
||||
* drivers.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_BOARD_LATE_INITIALIZE
|
||||
void board_late_initialize(void)
|
||||
{
|
||||
/* Perform board-specific initialization */
|
||||
|
||||
esp32_bringup();
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* To avoid corrupting the heap, this region of memory (~3KB) is not
|
||||
* included until the APP CPU has started.
|
||||
* So we can't add it with the rest of the regions at xtensa_add_region(),
|
||||
* that function is called early from up_initialize(). We wait until the
|
||||
* SMP bringup is complete.
|
||||
*/
|
||||
|
||||
umm_addregion((void *)HEAP_REGION_ROMAPP_START,
|
||||
(size_t)(HEAP_REGION_ROMAPP_END - HEAP_REGION_ROMAPP_START));
|
||||
#endif
|
||||
}
|
||||
#endif
|
364
boards/xtensa/esp32/esp32-2432S028/src/esp32_bringup.c
Normal file
364
boards/xtensa/esp32/esp32-2432S028/src/esp32_bringup.c
Normal file
|
@ -0,0 +1,364 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/src/esp32_bringup.c
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <syslog.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <sys/types.h>
|
||||
#include <syslog.h>
|
||||
#include <debug.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <syslog.h>
|
||||
#include <errno.h>
|
||||
#include <nuttx/fs/fs.h>
|
||||
#include <nuttx/himem/himem.h>
|
||||
|
||||
#include "esp32_partition.h"
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#ifdef CONFIG_TIMER
|
||||
#include <esp32_tim_lowerhalf.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ONESHOT
|
||||
# include "esp32_board_oneshot.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_WATCHDOG
|
||||
# include "esp32_board_wdt.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_SPIFLASH
|
||||
# include "esp32_board_spiflash.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_WIFI
|
||||
# include "esp32_board_wlan.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_RT_TIMER
|
||||
# include "esp32_rt_timer.h"
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_DEV
|
||||
# include <nuttx/board.h>
|
||||
# include <nuttx/lcd/lcd_dev.h>
|
||||
#endif
|
||||
|
||||
#include "esp32-2432S028.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: esp32_bringup
|
||||
*
|
||||
* Description:
|
||||
* Perform architecture-specific initialization
|
||||
*
|
||||
* CONFIG_BOARD_LATE_INITIALIZE=y :
|
||||
* Called from board_late_initialize().
|
||||
*
|
||||
* CONFIG_BOARD_LATE_INITIALIZE=n && CONFIG_BOARDCTL=y :
|
||||
* Called from the NSH library
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int esp32_bringup(void)
|
||||
{
|
||||
int ret;
|
||||
|
||||
#if defined(CONFIG_ESP32_SPIRAM) && \
|
||||
defined(CONFIG_ESP32_SPIRAM_BANKSWITCH_ENABLE)
|
||||
ret = esp_himem_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to init HIMEM: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FS_PROCFS
|
||||
/* Mount the procfs file system */
|
||||
|
||||
ret = nx_mount(NULL, "/proc", "procfs", 0, NULL);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to mount procfs at /proc: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_FS_TMPFS
|
||||
/* Mount the tmpfs file system */
|
||||
|
||||
ret = nx_mount(NULL, CONFIG_LIBC_TMPDIR, "tmpfs", 0, NULL);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to mount tmpfs at %s: %d\n",
|
||||
CONFIG_LIBC_TMPDIR, ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_BACKPACK
|
||||
/* slcd:0, i2c:0, rows=2, cols=16 */
|
||||
|
||||
ret = board_lcd_backpack_init(0, 0, 2, 16);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize PCF8574 LCD, error %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MMCSD
|
||||
ret = esp32_mmcsd_initialize(0);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize SD slot: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_SPIFLASH
|
||||
ret = esp32_spiflash_init();
|
||||
if (ret)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to initialize SPI Flash\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_PARTITION_TABLE
|
||||
ret = esp32_partition_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to initialize partition error=%d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_RT_TIMER
|
||||
ret = esp32_rt_timer_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize RT timer: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_BLE
|
||||
ret = esp32_ble_initialize();
|
||||
if (ret)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to initialize BLE: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_WIFI
|
||||
ret = board_wlan_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to initialize wireless subsystem=%d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* First, register the timer drivers and let timer 1 for oneshot
|
||||
* if it is enabled.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_TIMER
|
||||
|
||||
#if defined(CONFIG_ESP32_TIMER0) && !defined(CONFIG_ESP32_RT_TIMER)
|
||||
ret = esp32_timer_initialize("/dev/timer0", TIMER0);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to initialize timer driver: %d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_ESP32_TIMER1) && !defined(CONFIG_ONESHOT)
|
||||
ret = esp32_timer_initialize("/dev/timer1", TIMER1);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to initialize timer driver: %d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_TIMER2
|
||||
ret = esp32_timer_initialize("/dev/timer2", TIMER2);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to initialize timer driver: %d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_TIMER3
|
||||
ret = esp32_timer_initialize("/dev/timer3", TIMER3);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to initialize timer driver: %d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_TIMER */
|
||||
|
||||
/* Now register one oneshot driver */
|
||||
|
||||
#if defined(CONFIG_ONESHOT) && defined(CONFIG_ESP32_TIMER1)
|
||||
|
||||
ret = esp32_oneshot_init(ONESHOT_TIMER, ONESHOT_RESOLUTION_US);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: esp32_oneshot_init() failed: %d\n", ret);
|
||||
}
|
||||
|
||||
#endif /* CONFIG_ONESHOT */
|
||||
|
||||
#ifdef CONFIG_USERLED
|
||||
/* Register the LED driver */
|
||||
|
||||
ret = userled_lower_initialize("/dev/userleds");
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: userled_lower_initialize() failed: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_WATCHDOG
|
||||
/* Configure watchdog timer */
|
||||
|
||||
ret = board_wdt_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to initialize watchdog drivers: %d\n",
|
||||
ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DEV_GPIO
|
||||
ret = esp32_gpio_init();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize GPIO Driver: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_I2C_DRIVER
|
||||
|
||||
#ifdef CONFIG_ESP32_I2C0
|
||||
ret = esp32_i2c_register(0);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize I2C Driver for I2C0: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP32_I2C1
|
||||
ret = esp32_i2c_register(1);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize I2C Driver for I2C1: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SENSORS_BMP180
|
||||
/* Try to register BMP180 device in I2C0 */
|
||||
|
||||
ret = board_bmp180_initialize(0, 0);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "Failed to initialize BMP180 driver: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_INPUT_BUTTONS
|
||||
/* Register the BUTTON driver */
|
||||
|
||||
ret = btn_lower_initialize("/dev/buttons");
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: btn_lower_initialize() failed: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VIDEO_FB
|
||||
ret = fb_register(0, 0);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: Failed to initialize Frame Buffer Driver.\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LCD_DEV
|
||||
ret = board_lcd_initialize();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: board_lcd_initialize() failed: %d\n", ret);
|
||||
}
|
||||
|
||||
ret = lcddev_register(0);
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR, "ERROR: lcddev_register() failed: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_RTC_DRIVER
|
||||
/* Instantiate the ESP32 RTC driver */
|
||||
|
||||
ret = esp32_rtc_driverinit();
|
||||
if (ret < 0)
|
||||
{
|
||||
syslog(LOG_ERR,
|
||||
"ERROR: Failed to Instantiate the RTC driver: %d\n", ret);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* If we got here then perhaps not all initialization was successful, but
|
||||
* at least enough succeeded to bring-up NSH with perhaps reduced
|
||||
* capabilities.
|
||||
*/
|
||||
|
||||
UNUSED(ret);
|
||||
return OK;
|
||||
}
|
||||
|
63
boards/xtensa/esp32/esp32-2432S028/src/esp32_reset.c
Normal file
63
boards/xtensa/esp32/esp32-2432S028/src/esp32_reset.c
Normal file
|
@ -0,0 +1,63 @@
|
|||
/****************************************************************************
|
||||
* boards/xtensa/esp32/esp32-2432S028/src/esp32_reset.c
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership. The
|
||||
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
* License for the specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/board.h>
|
||||
|
||||
#ifdef CONFIG_BOARDCTL_RESET
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: board_reset
|
||||
*
|
||||
* Description:
|
||||
* Reset board. Support for this function is required by board-level
|
||||
* logic if CONFIG_BOARDCTL_RESET is selected.
|
||||
*
|
||||
* Input Parameters:
|
||||
* status - Status information provided with the reset event. This
|
||||
* meaning of this status information is board-specific. If not
|
||||
* used by a board, the value zero may be provided in calls to
|
||||
* board_reset().
|
||||
*
|
||||
* Returned Value:
|
||||
* If this function returns, then it was not possible to power-off the
|
||||
* board due to some constraints. The return value in this case is a
|
||||
* board-specific reason for the failure to shutdown.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
int board_reset(int status)
|
||||
{
|
||||
up_systemreset();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_BOARDCTL_RESET */
|
Loading…
Reference in a new issue