diff options
author | Trygve Laugstøl <trygvis@inamo.no> | 2018-05-26 21:16:12 +0200 |
---|---|---|
committer | Trygve Laugstøl <trygvis@inamo.no> | 2018-05-26 21:16:12 +0200 |
commit | d4abcad280df631b09a8cfe4c9387a9d8c610c1f (patch) | |
tree | 0e7286ec20a90d5598f2b3a9c2535628a35766b4 /main | |
download | modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.gz modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.bz2 modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.xz modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.zip |
wip
Diffstat (limited to 'main')
-rw-r--r-- | main/Kconfig | 30 | ||||
-rw-r--r-- | main/component.mk | 0 | ||||
-rw-r--r-- | main/main.c | 184 |
3 files changed, 214 insertions, 0 deletions
diff --git a/main/Kconfig b/main/Kconfig new file mode 100644 index 0000000..6259a3f --- /dev/null +++ b/main/Kconfig @@ -0,0 +1,30 @@ +menu "Main" + +config MAIN_FLASH_SIZE_KB + int "Size of flash file system. In kilobytes." + range 1 1024 + default 128 + +config MAIN_FLASH_FLASH_ADDR_KB + int "Start address for flash file system. In kilobytes." + default 1024 + +config MAIN_FLASH_SECTOR_SIZE_KB + int "Sector size. In kilobytes" + default 4 + range 1 16 + +config MAIN_FLASH_LOG_BLOCK_SIZE_KB + int "Log block size. In kilobytes" + default 4 + range 1 16 + +config MAIN_FLASH_LOG_PAGE_SIZE + int "Log page" + default 128 + +config MAIN_FLASH_FD_BUF_SIZE + int "FD buf size. Default: 32*4" + default 128 + +endmenu diff --git a/main/component.mk b/main/component.mk new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/main/component.mk diff --git a/main/main.c b/main/main.c new file mode 100644 index 0000000..f1d9594 --- /dev/null +++ b/main/main.c @@ -0,0 +1,184 @@ +#include "esp_sta.h" +#include "esp_system.h" +#include "esp_wifi.h" +#include "esp_spiffs.h" +#include "spiffs.h" +#include "sdkconfig.h" + +#include <assert.h> + +#include "main-config.h" + +// static bool show_ip = false; + +/****************************************************************************** + * FunctionName : user_rf_cal_sector_set + * Description : SDK just reversed 4 sectors, used for rf init data and paramters. + * We add this function to force users to set rf cal sector, since + * we don't know which sector is free in user's application. + * sector map for last several sectors : ABCCC + * A : rf cal + * B : rf init data + * C : sdk parameters + * Parameters : none + * Returns : rf cal sector +*******************************************************************************/ +uint32_t user_rf_cal_sector_set(void) +{ + flash_size_map size_map = system_get_flash_size_map(); + uint32_t rf_cal_sec = 0; + + switch (size_map) { + case FLASH_SIZE_4M_MAP_256_256: + rf_cal_sec = 128 - 5; + break; + + case FLASH_SIZE_8M_MAP_512_512: + rf_cal_sec = 256 - 5; + break; + + case FLASH_SIZE_16M_MAP_512_512: + case FLASH_SIZE_16M_MAP_1024_1024: + rf_cal_sec = 512 - 5; + break; + + case FLASH_SIZE_32M_MAP_512_512: + case FLASH_SIZE_32M_MAP_1024_1024: + rf_cal_sec = 1024 - 5; + break; + case FLASH_SIZE_64M_MAP_1024_1024: + rf_cal_sec = 2048 - 5; + break; + case FLASH_SIZE_128M_MAP_1024_1024: + rf_cal_sec = 4096 - 5; + break; + default: + rf_cal_sec = 0; + break; + } + + return rf_cal_sec; +} + +__attribute__((used)) +static int32_t fs_init(void) +{ + struct esp_spiffs_config config; + + uint32_t log_page_size = CONFIG_MAIN_FLASH_LOG_PAGE_SIZE; + + config.phys_size = CONFIG_MAIN_FLASH_SIZE_KB * 1024; + config.phys_addr = CONFIG_MAIN_FLASH_FLASH_ADDR_KB * 1024; + config.phys_erase_block = CONFIG_MAIN_FLASH_SECTOR_SIZE_KB * 1024; + config.log_block_size = CONFIG_MAIN_FLASH_LOG_BLOCK_SIZE_KB * 1024; + config.log_page_size = log_page_size; + config.fd_buf_size = CONFIG_MAIN_FLASH_FD_BUF_SIZE * 2; + config.cache_buf_size = (log_page_size + 32) * 8; + + return esp_spiffs_init(&config); +} + +void wifi_event_handler_cb(System_Event_t *event) +{ + if (event == NULL) { + os_printf("NULL event\n"); + return; + } + + if (event->event_id == EVENT_STAMODE_GOT_IP) { + printf("STA GOT IP"); + // show_ip = true; + } else if (event->event_id == EVENT_STAMODE_CONNECTED) { + os_printf("STA CONNECTED\n"); + } else if (event->event_id == EVENT_STAMODE_DISCONNECTED) { + os_printf("STA DISCONNECTED\n"); + wifi_station_connect(); + } else { + os_printf("Unknown event\n"); + } +} + +static void set_station_mode() { + printf("STATION_MODE\n"); + if (wifi_get_opmode_default() != NULL_MODE) { + printf("Setting default station mode"); + wifi_set_opmode(NULL_MODE); + } + + wifi_set_opmode_current(STATION_MODE); + + struct station_config config; + bzero(&config, sizeof(struct station_config)); + sprintf((char *)config.ssid, WIFI_SSID); + sprintf((char *)config.password, WIFI_PASSWORD); + wifi_station_set_config(&config); + + wifi_set_event_handler_cb(wifi_event_handler_cb); + + wifi_station_connect(); +} + +void ets_wdt_disable(); +void my_thread(void* ctx) { + (void) ctx; + + // wifi_set_opmode(NULL_MODE); + + int count = 0; + while (1) { + printf("Hello World! %d\n", count); + if (count == 2) { + // pvShowMalloc(); + } + + if (count == 5) { + // set_station_mode(); + } + /* + */ + + /* + show_ip = false; + if (show_ip) { + show_ip = false; + + struct ip_info info; + bool ok = wifi_get_ip_info(STATION_IF, &info); + + if (ok) { + printf("ip=" IPSTR ", nm=" IPSTR ", gw=" IPSTR "\n", IP2STR(&info.ip), IP2STR(&info.netmask), IP2STR(&info.gw)); + } else { + printf("show ip failed\n"); + } + } + */ + + count++; + vTaskDelay(500 / portTICK_PERIOD_MS); + } +} + +#define THREAD_NAME "my_thread" +#define THREAD_STACK_WORDS 2048 +#define THREAD_PRIO 8 + +void user_init() { + os_printf("SDK version: %s, free: %d\n", system_get_sdk_version(), system_get_free_heap_size()); + + set_station_mode(); + // pvShowMalloc(); + + // assert(fs_init() != -1); + + xTaskHandle thread_handle; + + // set_station_mode(); + + int ret = xTaskCreate(my_thread, + THREAD_NAME, + THREAD_STACK_WORDS, + NULL, + THREAD_PRIO, + &thread_handle); + assert(ret == pdPASS); +} |