|
@@ -10,7 +10,7 @@
|
|
*******************************************************************************
|
|
*******************************************************************************
|
|
*/
|
|
*/
|
|
#include "init_task.h"
|
|
#include "init_task.h"
|
|
-#include "common_config.h"
|
|
|
|
|
|
+#include "common_config.h"
|
|
#include "wdg.h"
|
|
#include "wdg.h"
|
|
#include "usart.h"
|
|
#include "usart.h"
|
|
//#include "port_microrl.h"
|
|
//#include "port_microrl.h"
|
|
@@ -68,9 +68,9 @@
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#include "FreeRTOS.h"
|
|
#include "FreeRTOS.h"
|
|
-#include "task.h"
|
|
|
|
|
|
+#include "task.h"
|
|
|
|
|
|
-extern bool dhcp;
|
|
|
|
|
|
+extern bool dhcp;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @brief Общая структура настроек
|
|
* @brief Общая структура настроек
|
|
@@ -89,168 +89,166 @@ TaskHandle_t xHandleSntpOnceSinhro = NULL;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @brief Задача инициализации. Запускает основные задачи девайса и умирает.
|
|
* @brief Задача инициализации. Запускает основные задачи девайса и умирает.
|
|
- * @retval
|
|
|
|
|
|
+ * @retval
|
|
*/
|
|
*/
|
|
void InitTask(void *params)
|
|
void InitTask(void *params)
|
|
{
|
|
{
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
- InitUSART();
|
|
|
|
- log_init(false);
|
|
|
|
- ups_megatec_init();
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
- //SETTINGS_SetAllDefault();
|
|
|
|
- //SETTINGS_Save();
|
|
|
|
- SETTINGS_Load();
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+ InitUSART();
|
|
|
|
+ log_init(false);
|
|
|
|
+ ups_megatec_init();
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+ //SETTINGS_SetAllDefault();
|
|
|
|
+ //SETTINGS_Save();
|
|
|
|
+ SETTINGS_Load();
|
|
|
|
|
|
- if(set_mode_jumper()){
|
|
|
|
- SETTINGS_SetServiceDef();
|
|
|
|
- SETTINGS_Save();
|
|
|
|
- log_event_data(LOG_PSW_CHANGE, "Сброс к заводскому");
|
|
|
|
- }
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+ if (set_mode_jumper()) {
|
|
|
|
+ SETTINGS_SetServiceDef();
|
|
|
|
+ SETTINGS_Save();
|
|
|
|
+ log_event_data(LOG_PSW_CHANGE, "Сброс к заводскому");
|
|
|
|
+ }
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
#ifdef USART_DEBUG_ENABLE
|
|
#ifdef USART_DEBUG_ENABLE
|
|
- InitUSART();
|
|
|
|
- // MICRORL_Init();
|
|
|
|
-#endif
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+ InitUSART();
|
|
|
|
+ // MICRORL_Init();
|
|
|
|
+#endif
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
#ifdef LED_ENABLE
|
|
#ifdef LED_ENABLE
|
|
- LED_Init();
|
|
|
|
- /* Простая мигалка для подтверждения живучести контроллера */
|
|
|
|
- xTaskCreate(vTaskLedBlink, "LED_Blink", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
-#endif
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-#ifdef BUTTON_ENABLE
|
|
|
|
- BUTTON_Init();
|
|
|
|
- xTaskCreate(vTaskButtons, "Buttons", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
|
|
+ LED_Init();
|
|
|
|
+ /* Простая мигалка для подтверждения живучести контроллера */
|
|
|
|
+ xTaskCreate(vTaskLedBlink, "LED_Blink", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
#endif
|
|
#endif
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-#ifdef RTC_ENABLE
|
|
|
|
- TM_RTC_Init(TM_RTC_ClockSource_External);
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+#ifdef BUTTON_ENABLE
|
|
|
|
+ BUTTON_Init();
|
|
|
|
+ xTaskCreate(vTaskButtons, "Buttons", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+#endif
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+#ifdef RTC_ENABLE
|
|
|
|
+ TM_RTC_Init(TM_RTC_ClockSource_External);
|
|
#endif
|
|
#endif
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
#ifdef UPS_ENABLE
|
|
#ifdef UPS_ENABLE
|
|
- xTaskCreate(UPS_Monitor, "UPS_Monitor", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
|
|
+ xTaskCreate(UPS_Monitor, "UPS_Monitor", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
#endif
|
|
#endif
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
#ifdef DALLAS_SENSOR_ENABLE
|
|
#ifdef DALLAS_SENSOR_ENABLE
|
|
OW_Init();
|
|
OW_Init();
|
|
#endif
|
|
#endif
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
/* Random number generator */
|
|
/* Random number generator */
|
|
- RNG_Init();
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+ RNG_Init();
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// -----------------------------------------------------------------------------
|
|
#ifdef NET_ENABLE
|
|
#ifdef NET_ENABLE
|
|
- ETH_BSP_Config();
|
|
|
|
- LwIP_Init();
|
|
|
|
|
|
+ ETH_BSP_Config();
|
|
|
|
+ LwIP_Init();
|
|
|
|
|
|
#ifdef HTTP_SERVER_ENABLE
|
|
#ifdef HTTP_SERVER_ENABLE
|
|
- HTTP_Init();
|
|
|
|
|
|
+ HTTP_Init();
|
|
#endif
|
|
#endif
|
|
#ifdef SSL_SERVER_ENABLE
|
|
#ifdef SSL_SERVER_ENABLE
|
|
HTTP_Init();
|
|
HTTP_Init();
|
|
- HTTPS_Init();
|
|
|
|
-//#define SSL_TASK_PRIO ( configMAX_PRIORITIES - 3 )
|
|
|
|
- xTaskCreate(ssl_server, "SSL", 24*configMINIMAL_STACK_SIZE, NULL, SSL_TASK_PRIO, NULL);
|
|
|
|
|
|
+ HTTPS_Init();
|
|
|
|
+ //#define SSL_TASK_PRIO ( configMAX_PRIORITIES - 3 )
|
|
|
|
+ xTaskCreate(ssl_server, "SSL", 24 * configMINIMAL_STACK_SIZE, NULL, SSL_TASK_PRIO, NULL);
|
|
#endif
|
|
#endif
|
|
- // UDP for net settings
|
|
|
|
- if(strncmp(sSettings.sFlags.testState, "T2OK", 4)){
|
|
|
|
- xTaskCreate(vTaskTesting, "Testing", 2*configMINIMAL_STACK_SIZE,
|
|
|
|
- NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- UDP_netsetting_init();
|
|
|
|
- }
|
|
|
|
|
|
+// UDP for net settings
|
|
|
|
+ if (strncmp(sSettings.sFlags.testState, "T2OK", 4)) {
|
|
|
|
+ xTaskCreate(vTaskTesting, "Testing", 2 * configMINIMAL_STACK_SIZE,
|
|
|
|
+ NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+ } else {
|
|
|
|
+ UDP_netsetting_init();
|
|
|
|
+ }
|
|
#ifdef CLI_ENABLE
|
|
#ifdef CLI_ENABLE
|
|
cli_init();
|
|
cli_init();
|
|
#endif
|
|
#endif
|
|
#if defined TELNET_ENABLE
|
|
#if defined TELNET_ENABLE
|
|
- telnet_server_init();
|
|
|
|
|
|
+ telnet_server_init();
|
|
#ifdef SSH_ENABLE
|
|
#ifdef SSH_ENABLE
|
|
- ssh_server_init();
|
|
|
|
|
|
+ ssh_server_init();
|
|
#endif
|
|
#endif
|
|
#endif
|
|
#endif
|
|
-
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+ /* SNTP */
|
|
|
|
+ SNTP_Init();
|
|
|
|
+ xTaskCreate(vTaskOnceSynchro, "sntpOnceSinhro", 2 * configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY,
|
|
|
|
+ &xHandleSntpOnceSinhro);
|
|
|
|
+ xTaskCreate(vTaskPeriodicSynchro, "sntpPeriodicSinhro", 2 * configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
#ifdef SNMP_ENABLE
|
|
#ifdef SNMP_ENABLE
|
|
- SNMP_Init();
|
|
|
|
- xTaskCreate(snmp_trap_tread, "snmpTrapTest", 4*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
-#endif
|
|
|
|
|
|
+ SNMP_Init();
|
|
|
|
+ xTaskCreate(snmp_trap_tread, "snmpTrapTest", 4 * configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+#endif
|
|
#endif
|
|
#endif
|
|
-
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
-/* SNTP */
|
|
|
|
- SNTP_Init();
|
|
|
|
- xTaskCreate(vTaskOnceSynchro, "sntpOnceSinhro", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandleSntpOnceSinhro);
|
|
|
|
- xTaskCreate(vTaskPeriodicSynchro, "sntpPeriodicSinhro", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
// Прозрачный порт
|
|
// Прозрачный порт
|
|
#ifdef PORTGW_ENABLE
|
|
#ifdef PORTGW_ENABLE
|
|
- portgw_init();
|
|
|
|
|
|
+ portgw_init();
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
// Тестирование
|
|
// Тестирование
|
|
-
|
|
|
|
- // Тест таблицы трапов
|
|
|
|
- //xTaskCreate(vTestTrap, "Trap_test", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+// Тест таблицы трапов
|
|
|
|
+ //xTaskCreate(vTestTrap, "Trap_test", 2*configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
#ifdef DEBUG_FREERTOS
|
|
#ifdef DEBUG_FREERTOS
|
|
- xTaskCreate(vTaskDebug, "Debug", 800, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
-#endif
|
|
|
|
-// -----------------------------------------------------------------------------
|
|
|
|
|
|
+ xTaskCreate(vTaskDebug, "Debug", 800, NULL, tskIDLE_PRIORITY, NULL);
|
|
|
|
+#endif
|
|
|
|
+// -----------------------------------------------------------------------------
|
|
|
|
+
|
|
|
|
+ log_event_data(LOG_TURN_ON, " ");
|
|
|
|
+ /* Контроль успешной загрузки. Сброс флага bootry */
|
|
|
|
+ /* Сброс флага и сохранение нового значения во флеш памяти происходт после
|
|
|
|
+ некоторой задержки для запуска всех задач */
|
|
|
|
+ vTaskDelay(4000);
|
|
|
|
+
|
|
|
|
+ SETTINGS_ResetBootTry();
|
|
|
|
+
|
|
|
|
+ // Отправка трапа о перезагрузке в случае статического IP
|
|
|
|
+ /* if (!dhcp)
|
|
|
|
+ SNMP_SendUserTrap(DEVICE_REBOOTED);
|
|
|
|
+
|
|
|
|
+ printf("Hello world\r\n");*/
|
|
|
|
|
|
- log_event_data(LOG_TURN_ON, " ");
|
|
|
|
- /* Контроль успешной загрузки. Сброс флага bootry */
|
|
|
|
- /* Сброс флага и сохранение нового значения во флеш памяти происходт после
|
|
|
|
- некоторой задержки для запуска всех задач */
|
|
|
|
- vTaskDelay(4000);
|
|
|
|
-
|
|
|
|
- SETTINGS_ResetBootTry();
|
|
|
|
-
|
|
|
|
- // Отправка трапа о перезагрузке в случае статического IP
|
|
|
|
- /* if (!dhcp)
|
|
|
|
- SNMP_SendUserTrap(DEVICE_REBOOTED);
|
|
|
|
-
|
|
|
|
- printf("Hello world\r\n");*/
|
|
|
|
-
|
|
|
|
- vTaskDelete(NULL);
|
|
|
|
- taskYIELD();
|
|
|
|
|
|
+ vTaskDelete(NULL);
|
|
|
|
+ taskYIELD();
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef DEBUG_FREERTOS
|
|
#ifdef DEBUG_FREERTOS
|
|
-static void vTaskDebug(void *pvParameters)
|
|
|
|
|
|
+static void vTaskDebug(void *pvParameters)
|
|
{
|
|
{
|
|
- char msg[700];
|
|
|
|
- for(;;)
|
|
|
|
- {
|
|
|
|
- /*vTaskList(msg);
|
|
|
|
- DBG printf(msg);
|
|
|
|
- DBG printf("\n\r\r\n");*/
|
|
|
|
|
|
+ char msg[700];
|
|
|
|
+ for (;;) {
|
|
|
|
+ DBG printf("Free memory %d\n\r\r\n", xPortGetFreeHeapSize());
|
|
|
|
+ DBG vTaskList(msg);
|
|
|
|
+ DBG printf(msg);
|
|
|
|
+ DBG printf("\n\r\r\n");
|
|
#if LWIP_STATS
|
|
#if LWIP_STATS
|
|
- stats_display();
|
|
|
|
- DBG printf("\r\n\r\n");
|
|
|
|
|
|
+ stats_display();
|
|
|
|
+ DBG printf("\r\n\r\n");
|
|
#endif
|
|
#endif
|
|
- vTaskDelay(5000);
|
|
|
|
- }
|
|
|
|
|
|
+ vTaskDelay(5000);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|