AP_HAL: new HAL layer for esp32

see libraries/AP_HAL_ESP32/README.md for more.

Author: Charles Villard <charlesvillard10@gmail.com>
Author: Buzz <davidbuzz@gmail.com>
This commit is contained in:
Buzz 2021-10-27 18:06:41 +10:00 committed by Andrew Tridgell
parent bb8998bdef
commit ecfdd80bc7
3 changed files with 69 additions and 0 deletions

View File

@ -13,6 +13,7 @@
#define HAL_BOARD_VRBRAIN 8 #define HAL_BOARD_VRBRAIN 8
#define HAL_BOARD_CHIBIOS 10 #define HAL_BOARD_CHIBIOS 10
#define HAL_BOARD_F4LIGHT 11 // reserved #define HAL_BOARD_F4LIGHT 11 // reserved
#define HAL_BOARD_ESP32 12
#define HAL_BOARD_EMPTY 99 #define HAL_BOARD_EMPTY 99
/* Default board subtype is -1 */ /* Default board subtype is -1 */
@ -59,6 +60,10 @@
#define HAL_BOARD_SUBTYPE_CHIBIOS_VRCORE_V10 5019 #define HAL_BOARD_SUBTYPE_CHIBIOS_VRCORE_V10 5019
#define HAL_BOARD_SUBTYPE_CHIBIOS_VRBRAIN_V54 5020 #define HAL_BOARD_SUBTYPE_CHIBIOS_VRBRAIN_V54 5020
#define HAL_BOARD_SUBTYPE_ESP32_DIY 6001
#define HAL_BOARD_SUBTYPE_ESP32_ICARUS 6002
#define HAL_BOARD_SUBTYPE_ESP32_BUZZ 6003
/* InertialSensor driver types */ /* InertialSensor driver types */
#define HAL_INS_NONE 0 #define HAL_INS_NONE 0
#define HAL_INS_MPU60XX_SPI 2 #define HAL_INS_MPU60XX_SPI 2
@ -130,6 +135,8 @@
#include <AP_HAL/board/vrbrain.h> #include <AP_HAL/board/vrbrain.h>
#elif CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS #elif CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS
#include <AP_HAL/board/chibios.h> #include <AP_HAL/board/chibios.h>
#elif CONFIG_HAL_BOARD == HAL_BOARD_ESP32
#include <AP_HAL/board/esp32.h>
#else #else
#error "Unknown CONFIG_HAL_BOARD type" #error "Unknown CONFIG_HAL_BOARD type"
#endif #endif

View File

@ -1,6 +1,7 @@
#pragma once #pragma once
#include <stdarg.h> #include <stdarg.h>
#include <AP_Common/AP_Common.h> // for FMT_PRINTF
#include "AP_HAL_Namespace.h" #include "AP_HAL_Namespace.h"
class ExpandingString; class ExpandingString;

View File

@ -0,0 +1,61 @@
#pragma once
#if CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_ESP32_DIY
#include "esp32diy.h" // Charles
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_ESP32_BUZZ
#include "esp32buzz.h" //Buzz
#elif CONFIG_HAL_BOARD_SUBTYPE == HAL_BOARD_SUBTYPE_ESP32_ICARUS
#include "esp32icarus.h" //Alex
#endif
#define HAL_BOARD_NAME "ESP32"
#define HAL_CPU_CLASS HAL_CPU_CLASS_150
#define HAL_WITH_UAVCAN 0
#define HAL_HAVE_SAFETY_SWITCH 0
#define HAL_HAVE_BOARD_VOLTAGE 0
#define HAL_HAVE_SERVO_VOLTAGE 0
#define HAL_WITH_IO_MCU 0
#define O_CLOEXEC 0
#define HAL_STORAGE_SIZE (16384)
// allow for static semaphores
#include <AP_HAL_ESP32/Semaphores.h>
#define HAL_Semaphore ESP32::Semaphore
#define HAL_NUM_CAN_IFACES 0
#define HAL_MEM_CLASS HAL_MEM_CLASS_192
#define __LITTLE_ENDIAN 1234
#define __BYTE_ORDER __LITTLE_ENDIAN
// whenver u get ... error: "xxxxxxx" is not defined, evaluates to 0 [-Werror=undef] just define it below as 0
#define CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY 0
#define XCHAL_ERRATUM_453 0
#define CONFIG_FREERTOS_CORETIMER_0 0
#define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE 0
#define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL 0
#define CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP 0
#define CONFIG_FREERTOS_USE_TICKLESS_IDLE 0
#define CONFIG_SYSVIEW_ENABLE 0
#define CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED 0
#define CONFIG_SPI_FLASH_ENABLE_COUNTERS 0
#define USE_LIBC_REALLOC 0
#define CONFIG_LWIP_DHCP_RESTORE_LAST_IP 0
#define CONFIG_LWIP_STATS 0
#define CONFIG_LWIP_PPP_SUPPORT 0
#define CONFIG_LWIP_STATS 0
#define CONFIG_ESP32_WIFI_CSI_ENABLED 0
#define CONFIG_ESP32_WIFI_NVS_ENABLED 0
#define CONFIG_NEWLIB_NANO_FORMAT 0
#define CONFIG_LWIP_IP4_REASSEMBLY 0
#define CONFIG_LWIP_IP6_REASSEMBLY 0
#define CONFIG_LWIP_STATS 0
#define LWIP_COMPAT_SOCKET_INET 0
#define LWIP_COMPAT_SOCKET_ADDR 0
#define CONFIG_ESP32_WIFI_TX_BA_WIN 0
#define CONFIG_ESP32_WIFI_RX_BA_WIN 0