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
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
|
LCD screen
|
||||||
MicroSD card slot
|
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
|
config ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
|
||||||
bool "LilyGO TBeam V1.1 LoRa/GPS"
|
bool "LilyGO TBeam V1.1 LoRa/GPS"
|
||||||
depends on ARCH_CHIP_ESP32WROOM32
|
depends on ARCH_CHIP_ESP32WROOM32
|
||||||
@ -3040,6 +3046,7 @@ config ARCH_BOARD
|
|||||||
default "esp32-pico-kit" if ARCH_BOARD_ESP32_PICO_KIT
|
default "esp32-pico-kit" if ARCH_BOARD_ESP32_PICO_KIT
|
||||||
default "esp32-sparrow-kit" if ARCH_BOARD_ESP32_SPARROWKIT
|
default "esp32-sparrow-kit" if ARCH_BOARD_ESP32_SPARROWKIT
|
||||||
default "esp32-wrover-kit" if ARCH_BOARD_ESP32_WROVERKIT
|
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" if ARCH_BOARD_ESP32C3_DEVKIT
|
||||||
default "esp32c3-devkit-rust-1" if ARCH_BOARD_ESP32C3_DEVKIT_RUST1
|
default "esp32c3-devkit-rust-1" if ARCH_BOARD_ESP32C3_DEVKIT_RUST1
|
||||||
default "esp32c3-generic" if ARCH_BOARD_ESP32C3_GENERIC
|
default "esp32c3-generic" if ARCH_BOARD_ESP32C3_GENERIC
|
||||||
@ -4168,6 +4175,9 @@ endif
|
|||||||
if ARCH_BOARD_ESP32_WROVERKIT
|
if ARCH_BOARD_ESP32_WROVERKIT
|
||||||
source "boards/xtensa/esp32/esp32-wrover-kit/Kconfig"
|
source "boards/xtensa/esp32/esp32-wrover-kit/Kconfig"
|
||||||
endif
|
endif
|
||||||
|
if ARCH_BOARD_ESP32_2432S028
|
||||||
|
source "boards/xtensa/esp32/esp32-2432S028/Kconfig"
|
||||||
|
endif
|
||||||
if ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
|
if ARCH_BOARD_LILYGO_TBEAM_LORA_GPS
|
||||||
source "boards/xtensa/esp32/lilygo_tbeam_lora_gps/Kconfig"
|
source "boards/xtensa/esp32/lilygo_tbeam_lora_gps/Kconfig"
|
||||||
endif
|
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…
x
Reference in New Issue
Block a user