summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2018-05-26 21:16:12 +0200
committerTrygve Laugstøl <trygvis@inamo.no>2018-05-26 21:16:12 +0200
commitd4abcad280df631b09a8cfe4c9387a9d8c610c1f (patch)
tree0e7286ec20a90d5598f2b3a9c2535628a35766b4
downloadmodern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.gz
modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.bz2
modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.tar.xz
modern-esp-sandbox-d4abcad280df631b09a8cfe4c9387a9d8c610c1f.zip
wip
-rw-r--r--.gitignore4
-rw-r--r--.gitmodules3
-rw-r--r--Makefile10
-rw-r--r--main/Kconfig30
-rw-r--r--main/component.mk0
-rw-r--r--main/main.c184
-rw-r--r--sdkconfig246
m---------thirdparty/ESP8266_RTOS_SDK0
8 files changed, 477 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e92f667
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+build
+sdkconfig.old
+
+main/include/main-config.h
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..9f40785
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "thirdparty/ESP8266_RTOS_SDK"]
+ path = thirdparty/ESP8266_RTOS_SDK
+ url = https://github.com/espressif/ESP8266_RTOS_SDK
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..a8e792b
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,10 @@
+#
+# This is a project Makefile. It is assumed the directory this Makefile resides in is a
+# project subdirectory.
+#
+
+PROJECT_NAME := mqtt_test
+
+IDF_PATH=thirdparty/ESP8266_RTOS_SDK
+
+include $(IDF_PATH)/make/project.mk
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);
+}
diff --git a/sdkconfig b/sdkconfig
new file mode 100644
index 0000000..15f4368
--- /dev/null
+++ b/sdkconfig
@@ -0,0 +1,246 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Espressif IoT Development Framework Configuration
+#
+
+#
+# SDK tool configuration
+#
+CONFIG_TOOLPREFIX="xtensa-lx106-elf-"
+CONFIG_PYTHON="python"
+CONFIG_MAKE_WARN_UNDEFINED_VARIABLES=y
+
+#
+# Serial flasher config
+#
+CONFIG_ESPTOOLPY_PORT="/dev/ttyUSB0"
+CONFIG_ESPTOOLPY_BAUD_115200B=
+CONFIG_ESPTOOLPY_BAUD_230400B=y
+CONFIG_ESPTOOLPY_BAUD_921600B=
+CONFIG_ESPTOOLPY_BAUD_2MB=
+CONFIG_ESPTOOLPY_BAUD_OTHER=
+CONFIG_ESPTOOLPY_BAUD_OTHER_VAL=115200
+CONFIG_ESPTOOLPY_BAUD=230400
+CONFIG_ESPTOOLPY_COMPRESSED=y
+CONFIG_FLASHMODE_QIO=
+CONFIG_FLASHMODE_QOUT=
+CONFIG_FLASHMODE_DIO=y
+CONFIG_FLASHMODE_DOUT=
+CONFIG_ESPTOOLPY_FLASHMODE="dio"
+CONFIG_ESPTOOLPY_FLASHFREQ_80M=
+CONFIG_ESPTOOLPY_FLASHFREQ_40M=y
+CONFIG_ESPTOOLPY_FLASHFREQ_26M=
+CONFIG_ESPTOOLPY_FLASHFREQ_20M=
+CONFIG_ESPTOOLPY_FLASHFREQ="40m"
+CONFIG_ESPTOOLPY_FLASHSIZE_512KB=
+CONFIG_ESPTOOLPY_FLASHSIZE_1MB=
+CONFIG_ESPTOOLPY_FLASHSIZE_2MB=
+CONFIG_ESPTOOLPY_FLASHSIZE_2MB_C1=
+CONFIG_ESPTOOLPY_FLASHSIZE_4MB=y
+CONFIG_ESPTOOLPY_FLASHSIZE_4MB_C1=
+CONFIG_ESPTOOLPY_FLASHSIZE_8MB=
+CONFIG_ESPTOOLPY_FLASHSIZE_16MB=
+CONFIG_ESPTOOLPY_FLASHSIZE="4MB"
+CONFIG_ESPTOOLPY_APP_NUM_APP1=y
+CONFIG_ESPTOOLPY_APP_NUM_APP2=
+CONFIG_ESPTOOLPY_APP_NUM="app1"
+CONFIG_ESPTOOLPY_BEFORE_RESET=y
+CONFIG_ESPTOOLPY_BEFORE_NORESET=
+CONFIG_ESPTOOLPY_BEFORE="default_reset"
+CONFIG_ESPTOOLPY_AFTER_RESET=y
+CONFIG_ESPTOOLPY_AFTER_NORESET=
+CONFIG_ESPTOOLPY_AFTER="hard_reset"
+CONFIG_MONITOR_BAUD_9600B=
+CONFIG_MONITOR_BAUD_57600B=
+CONFIG_MONITOR_BAUD_74880B=y
+CONFIG_MONITOR_BAUD_115200B=
+CONFIG_MONITOR_BAUD_230400B=
+CONFIG_MONITOR_BAUD_921600B=
+CONFIG_MONITOR_BAUD_2MB=
+CONFIG_MONITOR_BAUD_OTHER=
+CONFIG_MONITOR_BAUD_OTHER_VAL=74880
+CONFIG_MONITOR_BAUD=74880
+
+#
+# Compiler options
+#
+CONFIG_OPTIMIZATION_LEVEL_DEBUG=y
+CONFIG_OPTIMIZATION_LEVEL_RELEASE=
+CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y
+CONFIG_OPTIMIZATION_ASSERTIONS_SILENT=
+CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED=
+CONFIG_CXX_EXCEPTIONS=
+CONFIG_STACK_CHECK_NONE=y
+CONFIG_STACK_CHECK_NORM=
+CONFIG_STACK_CHECK_STRONG=
+CONFIG_STACK_CHECK_ALL=
+CONFIG_STACK_CHECK=
+
+#
+# Component config
+#
+
+#
+# FreeRTOS
+#
+CONFIG_FREERTOS_ENABLE_REENT=
+
+#
+# LWIP
+#
+
+#
+# ARP
+#
+CONFIG_LWIP_ARP_TABLE_SIZE=10
+CONFIG_LWIP_ARP_MAXAGE=300
+
+#
+# SOCKET
+#
+CONFIG_LWIP_MAX_SOCKETS=10
+CONFIG_LWIP_SO_REUSE=y
+CONFIG_LWIP_SO_REUSE_RXTOALL=y
+CONFIG_LWIP_SO_RCVBUF=
+CONFIG_LWIP_SO_LINGER=
+CONFIG_LWIP_RECV_BUFSIZE_DEFAULT=11680
+CONFIG_LWIP_TCP_CLOSE_TIMEOUT_MS_DEFAULT=10000
+CONFIG_LWIP_IP_FRAG=
+CONFIG_LWIP_IP_REASSEMBLY=
+CONFIG_LWIP_IP_REASS_MAX_PBUFS=10
+CONFIG_LWIP_IP_SOF_BROADCAST=
+CONFIG_LWIP_IP_SOF_BROADCAST_RECV=
+CONFIG_LWIP_ICMP=y
+CONFIG_LWIP_MULTICAST_PING=
+CONFIG_LWIP_BROADCAST_PING=
+CONFIG_LWIP_RAW=
+
+#
+# DHCP
+#
+CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y
+CONFIG_LWIP_DHCP_MAX_NTP_SERVERS=1
+CONFIG_LWIP_DHCPS_LEASE_UNIT=60
+CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8
+CONFIG_LWIP_AUTOIP=
+CONFIG_LWIP_IGMP=y
+CONFIG_DNS_MAX_SERVERS=2
+CONFIG_LWIP_NETIF_LOOPBACK=
+
+#
+# TCP
+#
+CONFIG_LWIP_MAX_ACTIVE_TCP=5
+CONFIG_LWIP_MAX_LISTENING_TCP=8
+CONFIG_TCP_MAXRTX=12
+CONFIG_TCP_SYNMAXRTX=6
+CONFIG_TCP_MSS=1460
+CONFIG_TCP_SND_BUF_DEFAULT=2920
+CONFIG_TCP_WND_DEFAULT=5840
+CONFIG_TCP_RECVMBOX_SIZE=6
+CONFIG_TCP_QUEUE_OOSEQ=
+CONFIG_TCP_OVERSIZE_MSS=y
+CONFIG_TCP_OVERSIZE_QUARTER_MSS=
+CONFIG_TCP_OVERSIZE_DISABLE=
+CONFIG_LWIP_TCP_TIMESTAMPS=
+
+#
+# UDP
+#
+CONFIG_LWIP_MAX_UDP_PCBS=4
+CONFIG_UDP_RECVMBOX_SIZE=6
+CONFIG_TCPIP_TASK_STACK_SIZE=512
+
+#
+# LWIP RAW API
+#
+CONFIG_LWIP_MAX_RAW_PCBS=4
+CONFIG_LWIP_IPV6=y
+CONFIG_LWIP_IPV6_NUM_ADDRESSES=3
+CONFIG_LWIP_IPV6_FORWARD=
+CONFIG_LWIP_IPV6_FRAG=
+CONFIG_LWIP_STATS=
+CONFIG_LWIP_DEBUG=
+
+#
+# Main
+#
+CONFIG_MAIN_FLASH_SIZE_KB=128
+CONFIG_MAIN_FLASH_FLASH_ADDR_KB=1024
+CONFIG_MAIN_FLASH_SECTOR_SIZE_KB=4
+CONFIG_MAIN_FLASH_LOG_BLOCK_SIZE_KB=4
+CONFIG_MAIN_FLASH_LOG_PAGE_SIZE=128
+CONFIG_MAIN_FLASH_FD_BUF_SIZE=128
+
+#
+# Newlib
+#
+CONFIG_NEWLIB_ENABLE=y
+CONFIG_NEWLIB_LIBRARY_LEVEL_NORMAL=
+CONFIG_NEWLIB_LIBRARY_LEVEL_NANO=y
+
+#
+# SSL
+#
+CONFIG_SSL_USING_MBEDTLS=y
+CONFIG_SSL_USING_AXTLS=
+CONFIG_SSL_USING_WOLFSSL=
+
+#
+# mbedTLS
+#
+CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN=4096
+CONFIG_MBEDTLS_DEBUG=
+CONFIG_MBEDTLS_HAVE_TIME=y
+CONFIG_MBEDTLS_HAVE_TIME_DATE=
+CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y
+CONFIG_MBEDTLS_TLS_SERVER_ONLY=
+CONFIG_MBEDTLS_TLS_CLIENT_ONLY=
+CONFIG_MBEDTLS_TLS_DISABLED=
+CONFIG_MBEDTLS_TLS_SERVER=y
+CONFIG_MBEDTLS_TLS_CLIENT=y
+CONFIG_MBEDTLS_TLS_ENABLED=y
+
+#
+# TLS Key Exchange Methods
+#
+CONFIG_MBEDTLS_PSK_MODES=
+CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y
+CONFIG_MBEDTLS_KEY_EXCHANGE_DHE_RSA=
+CONFIG_MBEDTLS_SSL_RENEGOTIATION=
+CONFIG_MBEDTLS_SSL_PROTO_SSL3=
+CONFIG_MBEDTLS_SSL_PROTO_TLS1=y
+CONFIG_MBEDTLS_SSL_PROTO_TLS1_1=y
+CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y
+CONFIG_MBEDTLS_SSL_PROTO_DTLS=
+CONFIG_MBEDTLS_SSL_ALPN=
+CONFIG_MBEDTLS_SSL_SESSION_TICKETS=
+
+#
+# Symmetric Ciphers
+#
+CONFIG_MBEDTLS_AES_C=y
+CONFIG_MBEDTLS_CAMELLIA_C=
+CONFIG_MBEDTLS_DES_C=
+CONFIG_MBEDTLS_RC4_DISABLED=y
+CONFIG_MBEDTLS_RC4_ENABLED_NO_DEFAULT=
+CONFIG_MBEDTLS_RC4_ENABLED=
+CONFIG_MBEDTLS_BLOWFISH_C=
+CONFIG_MBEDTLS_XTEA_C=y
+CONFIG_MBEDTLS_CCM_C=
+CONFIG_MBEDTLS_GCM_C=
+CONFIG_MBEDTLS_RIPEMD160_C=
+
+#
+# Certificates
+#
+CONFIG_MBEDTLS_PEM_PARSE_C=y
+CONFIG_MBEDTLS_PEM_WRITE_C=y
+CONFIG_MBEDTLS_X509_CRL_PARSE_C=y
+CONFIG_MBEDTLS_X509_CSR_PARSE_C=y
+CONFIG_MBEDTLS_ECP_C=
+
+#
+# tcpip adapter
+#
+CONFIG_TCPIP_ADAPER_DEBUG=
diff --git a/thirdparty/ESP8266_RTOS_SDK b/thirdparty/ESP8266_RTOS_SDK
new file mode 160000
+Subproject 970ef9e70394c4fc8114000f386b09338f817e5