add saola button pin support, esp32 build with board_test

This commit is contained in:
hathach 2020-04-07 13:42:48 +07:00
parent 51944f0dc9
commit 6a9f971882
8 changed files with 62 additions and 7 deletions

View File

@ -0,0 +1,14 @@
# The following five lines of boilerplate have to be in your project's
# CMakeLists in this exact order for cmake to work correctly
cmake_minimum_required(VERSION 3.5)
# example src directory
set(EXTRA_COMPONENT_DIRS "src")
# TOP is absolute path to root directory of TinyUSB git repo
set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(board_test)

View File

@ -0,0 +1,4 @@
CONFIG_IDF_CMAKE=y
CONFIG_IDF_TARGET="esp32s2"
CONFIG_IDF_TARGET_ESP32S2=y

View File

@ -0,0 +1,19 @@
idf_component_register(SRCS "main.c"
INCLUDE_DIRS "."
REQUIRES freertos soc)
target_compile_options(${COMPONENT_TARGET} PUBLIC
"-DCFG_TUSB_MCU=OPT_MCU_ESP32S2"
"-DCFG_TUSB_OS=OPT_OS_FREERTOS"
)
idf_component_get_property( FREERTOS_ORIG_INCLUDE_PATH freertos ORIG_INCLUDE_PATH)
target_include_directories(${COMPONENT_TARGET} PUBLIC
"${FREERTOS_ORIG_INCLUDE_PATH}"
"${TOP}/hw"
"${TOP}/src"
)
target_sources(${COMPONENT_TARGET} PUBLIC
"${TOP}/hw/bsp/esp32s2_saola/esp32s2_saola.c"
)

View File

@ -73,3 +73,10 @@ int main(void)
return 0; return 0;
} }
#if CFG_TUSB_MCU == OPT_MCU_ESP32S2
void app_main(void)
{
main();
}
#endif

View File

@ -39,8 +39,11 @@
#error CFG_TUSB_MCU must be defined #error CFG_TUSB_MCU must be defined
#endif #endif
#ifndef CFG_TUSB_OS
#define CFG_TUSB_OS OPT_OS_NONE
#endif
#define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE #define CFG_TUSB_RHPORT0_MODE OPT_MODE_NONE
#define CFG_TUSB_OS OPT_OS_NONE
// CFG_TUSB_DEBUG is defined by compiler in DEBUG build // CFG_TUSB_DEBUG is defined by compiler in DEBUG build
// #define CFG_TUSB_DEBUG 0 // #define CFG_TUSB_DEBUG 0

View File

@ -5,6 +5,10 @@ cmake_minimum_required(VERSION 3.5)
# example src directory # example src directory
set(EXTRA_COMPONENT_DIRS "src") set(EXTRA_COMPONENT_DIRS "src")
# TOP is absolute path to root directory of TinyUSB git repo
set(TOP "../../..")
get_filename_component(TOP "${TOP}" REALPATH)
include($ENV{IDF_PATH}/tools/cmake/project.cmake) include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(cdc_msc_freertos) project(cdc_msc_freertos)

View File

@ -1,7 +1,3 @@
# TOP is absolute path to root directory of TinyUSB git repo
set(TOP "../../../..")
get_filename_component(TOP "${TOP}" REALPATH)
idf_component_register(SRCS "main.c" "usb_descriptors.c" "msc_disk.c" idf_component_register(SRCS "main.c" "usb_descriptors.c" "msc_disk.c"
INCLUDE_DIRS "." INCLUDE_DIRS "."
REQUIRES freertos soc) REQUIRES freertos soc)

View File

@ -32,7 +32,10 @@
// MACRO TYPEDEF CONSTANT ENUM DECLARATION // MACRO TYPEDEF CONSTANT ENUM DECLARATION
//--------------------------------------------------------------------+ //--------------------------------------------------------------------+
#define LED_PIN 21 #define LED_PIN 21
#define BUTTON_PIN 0
#define BUTTON_STATE_ACTIVE 0
// Initialize on-board peripherals : led, button, uart and USB // Initialize on-board peripherals : led, button, uart and USB
void board_init(void) void board_init(void)
@ -41,6 +44,11 @@ void board_init(void)
gpio_pad_select_gpio(LED_PIN); gpio_pad_select_gpio(LED_PIN);
gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(LED_PIN, GPIO_MODE_OUTPUT);
// Button
gpio_pad_select_gpio(BUTTON_PIN);
gpio_set_direction(BUTTON_PIN, GPIO_MODE_INPUT);
gpio_set_pull_mode(BUTTON_PIN, BUTTON_STATE_ACTIVE ? GPIO_PULLDOWN_ONLY : GPIO_PULLUP_ONLY);
// USB Controller Hal init // USB Controller Hal init
usb_hal_context_t hal = { usb_hal_context_t hal = {
.use_external_phy = false // use built-in PHY .use_external_phy = false // use built-in PHY
@ -58,7 +66,7 @@ void board_led_write(bool state)
// a '1' means active (pressed), a '0' means inactive. // a '1' means active (pressed), a '0' means inactive.
uint32_t board_button_read(void) uint32_t board_button_read(void)
{ {
return 0; return gpio_get_level(BUTTON_PIN) == BUTTON_STATE_ACTIVE;
} }
// Get characters from UART // Get characters from UART