From 9ae58c86d0bb682dc44042649637f7581386e0d2 Mon Sep 17 00:00:00 2001 From: ZaitsevY Date: Sat, 13 Feb 2016 18:58:47 +0300 Subject: [PATCH 1/2] Initialization sequence customization is possible --- app/user/user_main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/user/user_main.c b/app/user/user_main.c index ecec737..07a7b52 100644 --- a/app/user/user_main.c +++ b/app/user/user_main.c @@ -49,6 +49,17 @@ extern void web_fini(const uint8 * fname); static const uint8 sysinifname[] ICACHE_RODATA_ATTR = "protect/init.ini"; #endif +// Custom initialization function declaration. +// Weak attribute allows for the user of this project +// to customize initialization sequence without modifying +// user_main.c source by implementing a strong function +// in his own source file. +// void ICACHE_FLASH_ATTR custom_init() +// { +// ... whatever +// } +void ICACHE_FLASH_ATTR __attribute__((weak)) custom_init() {} + void ICACHE_FLASH_ATTR init_done_cb(void) { os_printf("\nSDK Init - Ok\nCurrent 'heap' size: %d bytes\n", system_get_free_heap_size()); @@ -67,6 +78,7 @@ void ICACHE_FLASH_ATTR init_done_cb(void) rs485_drv_start(); init_mdbtab(); #endif + custom_init(); } /****************************************************************************** From 4180f60f91fed5d4a1ba2f27392e1982d12eb6cf Mon Sep 17 00:00:00 2001 From: ZaitsevY Date: Sat, 13 Feb 2016 23:05:59 +0300 Subject: [PATCH 2/2] Allow to tune application from the Eclipse IDE instead of editing user_config.h (PROGECT_NUMBER, USE_TCP2UART, etc...): 1) AutoMake build configuration: Project properties->C/C++ General->Paths and Symbols->Symbols->Add...: PROGECT_NUMBER=0, USE_TCP2UART=54321... 2) Default (makefile) build configuration additionally: Project properties->C/C++ Build->Environment->Add..: DEFINES=-DPROGECT_NUMBER=0 -DUSE_TCP2UART=54321... --- include/user_config.h | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/include/user_config.h b/include/user_config.h index 81544be..ebbafce 100644 --- a/include/user_config.h +++ b/include/user_config.h @@ -13,38 +13,58 @@ #define WEB_DEFAULT_STATION_MASK 0x00FFFFFF // mask 255.255.255.0 #define WEB_DEFAULT_STATION_GW 0x0101A8C0 // gw 192.168.1.1 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ifndef PROGECT_NUMBER #define PROGECT_NUMBER 1 // 0 -> проект "TCP2UART" // 1 -> проект MODBUS-"RS485" // 2 -> пустой web+websocket +#endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #if PROGECT_NUMBER == 0 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Конфигурация для проекта TCP2UART //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ifndef USE_WEB #define USE_WEB 80 // включить в трансялцию порт Web, если =0 - по умолчанию выключен +#endif #define WEBSOCKET_ENA // включить WEBSOCKET +#ifndef USE_TCP2UART #define USE_TCP2UART 12345 // включить в трансялцию драйвер TCP2UART, номер порта по умолчанию (=0 - отключен) +#endif #if DEBUGSOO > 0 +#ifndef UDP_TEST_PORT #define UDP_TEST_PORT 1025 // включить в трансялцию контрольный порт UDP, (=0 - отключен) #endif +#endif #define USE_CPU_SPEED 160 // установить частоту CPU по умолчанию 80 или 160 MHz +#ifndef USE_NETBIOS #define USE_NETBIOS 1 // включить в трансялцию драйвер NETBIOS, если =0 - по умолчанию выключен. +#endif +#ifndef USE_SNTP #define USE_SNTP 1 // включить в трансялцию драйвер SNTP, если =0 - по умолчанию выключен, = 1 - по умолчанию включен. +#endif +#ifndef USE_MODBUS #define USE_MODBUS 502 // включить в трансялцию Modbus TCP, если =0 - по умолчанию выключен +#endif +#ifndef MDB_ID_ESP #define MDB_ID_ESP 50 // номер устройства ESP на шине modbus +#endif +#ifndef USE_WDRV #define USE_WDRV 10201 // включить в трансялцию вывод Wave ADC по UDP, номер порта управления по умолчанию (=0 - отключен) +#endif +#ifndef USE_CAPTDNS #define USE_CAPTDNS 0 // включить в трансялцию NDS отвечающий на всё запросы клиента при соединении к AP модуля // указанием на данный WebHttp (http://aesp8266/), если =0 - по умолчанию выключен +#endif //#define USE_GPIOs_intr // включение примера с счетчиками срабатывания прерываний на GPOIs (использует ~sys_ucnst_1~ и ~sys_ucnst_2~ для сохранения в flash) // смотреть переменные ~count1~, ~count2~, ~sys_ucnst_1~, ~sys_ucnst_2~ и их запись... @@ -56,7 +76,9 @@ // Конфигурация для проекта MODBUS-RS-485 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ifndef USE_WEB #define USE_WEB 80 // включить в трансялцию порт Web, если =0 - по умолчанию выключен +#endif #define WEBSOCKET_ENA // включить WEBSOCKET #if DEBUGSOO > 0 @@ -65,22 +87,32 @@ #define USE_CPU_SPEED 160 // установить частоту CPU по умолчанию 80 или 160 MHz +#ifndef USE_NETBIOS #define USE_NETBIOS 1 // включить в трансялцию драйвер NETBIOS, если =0 - по умолчанию выключен. +#endif +#ifndef USE_SNTP #define USE_SNTP 1 // включить в трансялцию драйвер SNTP, если =0 - по умолчанию выключен, = 1 - по умолчанию включен. +#endif #ifndef USE_TCP2UART #define USE_RS485DRV // использовать RS-485 драйвер #define MDB_RS485_MASTER // Modbus RTU RS-485 master & slave #endif +#ifndef USE_MODBUS #define USE_MODBUS 502 // включить в трансялцию Modbus TCP, если =0 - по умолчанию выключен +#endif +#ifndef MDB_ID_ESP #define MDB_ID_ESP 50 // номер устройства ESP на шине modbus +#endif // #define USE_WDRV 10201 // включить в трансялцию вывод Wave ADC по UDP, номер порта управления по умолчанию (=0 - отключен) +#ifndef USE_CAPTDNS #define USE_CAPTDNS 0 // включить в трансялцию DNS отвечающий на всё запросы клиента при соединении к AP модуля // указанием на данный WebHttp (http://aesp8266/), если =0 - по умолчанию выключен +#endif //#define USE_GPIOs_intr // включение примера с счетчиками срабатывания прерываний на GPOIs (использует ~sys_ucnst_1~ и ~sys_ucnst_2~ для сохранения в flash) // смотреть переменные ~count1~, ~count2~, ~sys_ucnst_1~, ~sys_ucnst_2~ и их запись... @@ -91,10 +123,16 @@ //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Конфигурация для проекта WEB+WEBSOCEK //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#ifndef USE_WEB #define USE_WEB 80 // включить в трансялцию порт Web, если =0 - по умолчанию выключен +#endif #define WEBSOCKET_ENA // включить WEBSOCKET +#ifndef USE_NETBIOS #define USE_NETBIOS 1 // включить в трансялцию драйвер NETBIOS, если =0 - по умолчанию выключен. +#endif +#ifndef USE_SNTP #define USE_SNTP 1 // включить в трансялцию драйвер SNTP, если =0 - по умолчанию выключен, = 1 - по умолчанию включен. +#endif //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #endif // PROGECT_NAME