From 755ffd694c8a5a9a70f70bb2d4fc2f2f812036e9 Mon Sep 17 00:00:00 2001
From: mculover666 <2412828003@qq.com>
Date: Tue, 4 Aug 2020 14:30:49 +0800
Subject: [PATCH] add iot explorer project based mqttclient on iothub evb l2
board
---
.../BSP/Src/stm32l4xx_it_module.c | 1 +
.../TencentOS_tiny.uvoptx | 1550 +++++++++++++++++
.../TencentOS_tiny.uvprojx | 1003 +++++++++++
.../startup_stm32l431xx.s | 404 +++++
board/IoTClub_EVB_L2/TOS-CONFIG/mqtt_config.h | 48 +
devices/bc26/bc26.c | 103 +-
.../mqttclient_iot_explorer.c | 171 ++
7 files changed, 3275 insertions(+), 5 deletions(-)
create mode 100644 board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvoptx
create mode 100644 board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvprojx
create mode 100644 board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/startup_stm32l431xx.s
create mode 100644 board/IoTClub_EVB_L2/TOS-CONFIG/mqtt_config.h
create mode 100644 examples/mqttclient_iot_explorer/mqttclient_iot_explorer.c
diff --git a/board/IoTClub_EVB_L2/BSP/Src/stm32l4xx_it_module.c b/board/IoTClub_EVB_L2/BSP/Src/stm32l4xx_it_module.c
index fe9d3043..d234d509 100644
--- a/board/IoTClub_EVB_L2/BSP/Src/stm32l4xx_it_module.c
+++ b/board/IoTClub_EVB_L2/BSP/Src/stm32l4xx_it_module.c
@@ -24,6 +24,7 @@
#include "tos_k.h"
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
+#include "tos_at.h"
/* USER CODE END Includes */
/* Private typedef -----------------------------------------------------------*/
diff --git a/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvoptx b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvoptx
new file mode 100644
index 00000000..f3553445
--- /dev/null
+++ b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvoptx
@@ -0,0 +1,1550 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+
+ 80000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\list\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 6
+
+
+
+
+
+
+
+
+
+
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L70 -Z18 -C0 -M0 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+ (105=-1,-1,-1,-1,0)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256 -FS08000000 -FL040000 -FP0($$Device:STM32L431RCTx$CMSIS\Flash\STM32L4xx_256.FLM))
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U303030303030303030303031 -O10446 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(2BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256.FLM -FS08000000 -FL040000 -FP0($$Device:STM32L431RCTx$CMSIS\Flash\STM32L4xx_256.FLM)
+
+
+
+
+
+ 0
+ 1
+ huart3
+
+
+
+
+ 0
+ 2
+ con_param
+
+
+
+ 0
+
+
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ Application/MDK-ARM
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 2
+ 0
+ 0
+ 0
+ startup_stm32l431xx.s
+ startup_stm32l431xx.s
+ 0
+ 0
+
+
+
+
+ Application/User
+ 1
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\gpio.c
+ gpio.c
+ 0
+ 0
+
+
+ 2
+ 3
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\main.c
+ main.c
+ 0
+ 0
+
+
+ 2
+ 4
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\mcu_init.c
+ mcu_init.c
+ 0
+ 0
+
+
+ 2
+ 5
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32l4xx_hal_msp.c
+ stm32l4xx_hal_msp.c
+ 0
+ 0
+
+
+ 2
+ 6
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\usart.c
+ usart.c
+ 0
+ 0
+
+
+ 2
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\stm32l4xx_it_module.c
+ stm32l4xx_it_module.c
+ 0
+ 0
+
+
+
+
+ examples
+ 1
+ 0
+ 0
+ 0
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\examples\mqttclient_iot_explorer\mqttclient_iot_explorer.c
+ mqttclient_iot_explorer.c
+ 0
+ 0
+
+
+
+
+ Drivers/STM32L4xx_HAL_Driver
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 9
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+ stm32l4xx_hal_tim.c
+ 0
+ 0
+
+
+ 4
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+ stm32l4xx_hal_tim_ex.c
+ 0
+ 0
+
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+ stm32l4xx_hal_uart.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+ stm32l4xx_hal_uart_ex.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+ stm32l4xx_hal.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+ stm32l4xx_hal_i2c.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+ stm32l4xx_hal_i2c_ex.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+ stm32l4xx_hal_rcc.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+ stm32l4xx_hal_rcc_ex.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+ stm32l4xx_hal_flash.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+ stm32l4xx_hal_flash_ex.c
+ 0
+ 0
+
+
+ 4
+ 20
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+ stm32l4xx_hal_flash_ramfunc.c
+ 0
+ 0
+
+
+ 4
+ 21
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+ stm32l4xx_hal_gpio.c
+ 0
+ 0
+
+
+ 4
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+ stm32l4xx_hal_dma.c
+ 0
+ 0
+
+
+ 4
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+ stm32l4xx_hal_dma_ex.c
+ 0
+ 0
+
+
+ 4
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+ stm32l4xx_hal_pwr.c
+ 0
+ 0
+
+
+ 4
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+ stm32l4xx_hal_pwr_ex.c
+ 0
+ 0
+
+
+ 4
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+ stm32l4xx_hal_cortex.c
+ 0
+ 0
+
+
+ 4
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+ stm32l4xx_hal_adc_ex.c
+ 0
+ 0
+
+
+ 4
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+ stm32l4xx_hal_adc.c
+ 0
+ 0
+
+
+ 4
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac.c
+ stm32l4xx_hal_dac.c
+ 0
+ 0
+
+
+ 4
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac_ex.c
+ stm32l4xx_hal_dac_ex.c
+ 0
+ 0
+
+
+ 4
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+ stm32l4xx_hal_spi.c
+ 0
+ 0
+
+
+ 4
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+ stm32l4xx_hal_spi_ex.c
+ 0
+ 0
+
+
+
+
+ Drivers/CMSIS
+ 0
+ 0
+ 0
+ 0
+
+ 5
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\BSP\Src\system_stm32l4xx.c
+ system_stm32l4xx.c
+ 0
+ 0
+
+
+
+
+ kernel
+ 1
+ 0
+ 0
+ 0
+
+ 6
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+ tos_binary_heap.c
+ 0
+ 0
+
+
+ 6
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+ tos_char_fifo.c
+ 0
+ 0
+
+
+ 6
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_completion.c
+ tos_completion.c
+ 0
+ 0
+
+
+ 6
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+ tos_countdownlatch.c
+ 0
+ 0
+
+
+ 6
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_event.c
+ tos_event.c
+ 0
+ 0
+
+
+ 6
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_global.c
+ tos_global.c
+ 0
+ 0
+
+
+ 6
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+ tos_mail_queue.c
+ 0
+ 0
+
+
+ 6
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_message_queue.c
+ tos_message_queue.c
+ 0
+ 0
+
+
+ 6
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmblk.c
+ tos_mmblk.c
+ 0
+ 0
+
+
+ 6
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mmheap.c
+ tos_mmheap.c
+ 0
+ 0
+
+
+ 6
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_mutex.c
+ tos_mutex.c
+ 0
+ 0
+
+
+ 6
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_pend.c
+ tos_pend.c
+ 0
+ 0
+
+
+ 6
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+ tos_priority_mail_queue.c
+ 0
+ 0
+
+
+ 6
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+ tos_priority_message_queue.c
+ 0
+ 0
+
+
+ 6
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+ tos_priority_queue.c
+ 0
+ 0
+
+
+ 6
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+ tos_ring_queue.c
+ 0
+ 0
+
+
+ 6
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_robin.c
+ tos_robin.c
+ 0
+ 0
+
+
+ 6
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sched.c
+ tos_sched.c
+ 0
+ 0
+
+
+ 6
+ 52
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sem.c
+ tos_sem.c
+ 0
+ 0
+
+
+ 6
+ 53
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_sys.c
+ tos_sys.c
+ 0
+ 0
+
+
+ 6
+ 54
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_task.c
+ tos_task.c
+ 0
+ 0
+
+
+ 6
+ 55
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_tick.c
+ tos_tick.c
+ 0
+ 0
+
+
+ 6
+ 56
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_time.c
+ tos_time.c
+ 0
+ 0
+
+
+ 6
+ 57
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_timer.c
+ tos_timer.c
+ 0
+ 0
+
+
+ 6
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\kernel\core\tos_stopwatch.c
+ tos_stopwatch.c
+ 0
+ 0
+
+
+
+
+ cpu
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 59
+ 2
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+ port_s.S
+ 0
+ 0
+
+
+ 7
+ 60
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+ tos_cpu.c
+ 0
+ 0
+
+
+ 7
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+ port_c.c
+ 0
+ 0
+
+
+
+
+ cmsis
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 62
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+ cmsis_os.c
+ 0
+ 0
+
+
+
+
+ config
+ 0
+ 0
+ 0
+ 0
+
+ 9
+ 63
+ 5
+ 0
+ 0
+ 0
+ ..\..\TOS-CONFIG\tos_config.h
+ tos_config.h
+ 0
+ 0
+
+
+
+
+ at
+ 1
+ 0
+ 0
+ 0
+
+ 10
+ 64
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\net\at\src\tos_at.c
+ tos_at.c
+ 0
+ 0
+
+
+ 10
+ 65
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\net\sal_module_wrapper\sal_module_wrapper.c
+ sal_module_wrapper.c
+ 0
+ 0
+
+
+
+
+ devices
+ 1
+ 0
+ 0
+ 0
+
+ 11
+ 66
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\devices\bc26\bc26.c
+ bc26.c
+ 0
+ 0
+
+
+
+
+ hal
+ 0
+ 0
+ 0
+ 0
+
+ 12
+ 67
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\platform\hal\st\stm32l4xx\src\tos_hal_uart.c
+ tos_hal_uart.c
+ 0
+ 0
+
+
+
+
+ mqttclient
+ 1
+ 0
+ 0
+ 0
+
+ 13
+ 68
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqttclient\mqttclient.c
+ mqttclient.c
+ 0
+ 0
+
+
+
+
+ mqttclient/mqtt
+ 0
+ 0
+ 0
+ 0
+
+ 14
+ 69
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTConnectClient.c
+ MQTTConnectClient.c
+ 0
+ 0
+
+
+ 14
+ 70
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTConnectServer.c
+ MQTTConnectServer.c
+ 0
+ 0
+
+
+ 14
+ 71
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTDeserializePublish.c
+ MQTTDeserializePublish.c
+ 0
+ 0
+
+
+ 14
+ 72
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTFormat.c
+ MQTTFormat.c
+ 0
+ 0
+
+
+ 14
+ 73
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTPacket.c
+ MQTTPacket.c
+ 0
+ 0
+
+
+ 14
+ 74
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSerializePublish.c
+ MQTTSerializePublish.c
+ 0
+ 0
+
+
+ 14
+ 75
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSubscribeClient.c
+ MQTTSubscribeClient.c
+ 0
+ 0
+
+
+ 14
+ 76
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSubscribeServer.c
+ MQTTSubscribeServer.c
+ 0
+ 0
+
+
+ 14
+ 77
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTUnsubscribeClient.c
+ MQTTUnsubscribeClient.c
+ 0
+ 0
+
+
+ 14
+ 78
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTUnsubscribeServer.c
+ MQTTUnsubscribeServer.c
+ 0
+ 0
+
+
+
+
+ mqttclient/salof
+ 0
+ 0
+ 0
+ 0
+
+ 15
+ 79
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\log\arch\tencentos-tiny\arch.c
+ arch.c
+ 0
+ 0
+
+
+ 15
+ 80
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\log\fifo.c
+ fifo.c
+ 0
+ 0
+
+
+ 15
+ 81
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\log\format.c
+ format.c
+ 0
+ 0
+
+
+ 15
+ 82
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\log\salof.c
+ salof.c
+ 0
+ 0
+
+
+ 15
+ 83
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\log\salof_config.h
+ salof_config.h
+ 0
+ 0
+
+
+
+
+ mqttclient/common
+ 0
+ 0
+ 0
+ 0
+
+ 16
+ 84
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\random.c
+ random.c
+ 0
+ 0
+
+
+ 16
+ 85
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_list.c
+ mqtt_list.c
+ 0
+ 0
+
+
+ 16
+ 86
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_log.h
+ mqtt_log.h
+ 0
+ 0
+
+
+ 16
+ 87
+ 5
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_error.h
+ mqtt_error.h
+ 0
+ 0
+
+
+
+
+ mqttclient/network
+ 0
+ 0
+ 0
+ 0
+
+ 17
+ 88
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\network\network.c
+ network.c
+ 0
+ 0
+
+
+ 17
+ 89
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\network\nettype_tls.c
+ nettype_tls.c
+ 0
+ 0
+
+
+ 17
+ 90
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\network\nettype_tcp.c
+ nettype_tcp.c
+ 0
+ 0
+
+
+
+
+ mqttclient/platform
+ 0
+ 0
+ 0
+ 0
+
+ 18
+ 91
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_memory.c
+ platform_memory.c
+ 0
+ 0
+
+
+ 18
+ 92
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_mutex.c
+ platform_mutex.c
+ 0
+ 0
+
+
+ 18
+ 93
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_net_socket.c
+ platform_net_socket.c
+ 0
+ 0
+
+
+ 18
+ 94
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_thread.c
+ platform_thread.c
+ 0
+ 0
+
+
+ 18
+ 95
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_timer.c
+ platform_timer.c
+ 0
+ 0
+
+
+
+
+ mqttclient/config
+ 1
+ 0
+ 0
+ 0
+
+ 19
+ 96
+ 5
+ 0
+ 0
+ 0
+ ..\..\TOS-CONFIG\mqtt_config.h
+ mqtt_config.h
+ 0
+ 0
+
+
+
+
+ cjson
+ 1
+ 0
+ 0
+ 0
+
+ 20
+ 97
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\components\utils\JSON\src\cJSON.c
+ cJSON.c
+ 0
+ 0
+
+
+
+
+ ::CMSIS
+ 0
+ 0
+ 0
+ 1
+
+
+
diff --git a/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvprojx b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvprojx
new file mode 100644
index 00000000..55a7beb6
--- /dev/null
+++ b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/TencentOS_tiny.uvprojx
@@ -0,0 +1,1003 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ TencentOS_tiny
+ 0x4
+ ARM-ADS
+ 5060750::V5.06 update 6 (build 750)::.\ARMCC
+ 0
+
+
+ STM32L431RCTx
+ STMicroelectronics
+ Keil.STM32L4xx_DFP.2.4.0
+ https://www.keil.com/pack/
+ IRAM(0x20000000-0x2000FFFF) IROM(0x8000000-0x803FFFF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4")
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $$Device:STM32L431RCTx$CMSIS\SVD\STM32L4x1.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ TencentOS_tiny
+ 1
+ 0
+ 1
+ 1
+ 0
+ .\list\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4107
+
+ 1
+ STLink\ST-LINKIII-KEIL_SWO.dll
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 0
+ 0
+ 8
+ 1
+ 0
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x40000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x40000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x10000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+ USE_HAL_DRIVER,STM32L431xx
+
+ ..\..\BSP\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Inc;..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Legacy;..\..\..\..\platform\vendor_bsp\st\CMSIS\Device\ST\STM32L4xx\Include;..\..\..\..\platform\vendor_bsp\st\CMSIS\Include;..\..\..\..\kernel\core\include;..\..\TOS-CONFIG;..\..\..\..\platform\arch\arm\cortex-m4\keil;..\..\..\..\kernel\pm\include;..\..\..\..\osal\cmsis_os;..\..\..\..\arch\arm\arm-v7m\common\include;..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc;..\..\BSP\Hardware\DHT11;..\..\BSP\Hardware\BH1750;..\..\BSP\Hardware\OLED;..\..\..\..\examples\helloworld;..\..\..\..\net\at\include;..\..\..\..\kernel\hal\include;..\..\..\..\net\sal_module_wrapper;..\..\..\..\examples\mqtt;..\..\..\..\devices\bc26;..\..\..\..\components\connectivity\mqttclient\common;..\..\..\..\components\connectivity\mqttclient\common\log;..\..\..\..\components\connectivity\mqttclient\mqtt;..\..\..\..\components\connectivity\mqttclient\mqttclient;..\..\..\..\components\connectivity\mqttclient\network;..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny;..\..\..\..\components\utils\JSON\include
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ Application/MDK-ARM
+
+
+ startup_stm32l431xx.s
+ 2
+ startup_stm32l431xx.s
+
+
+
+
+ Application/User
+
+
+ gpio.c
+ 1
+ ..\..\BSP\Src\gpio.c
+
+
+ main.c
+ 1
+ ..\..\BSP\Src\main.c
+
+
+ mcu_init.c
+ 1
+ ..\..\BSP\Src\mcu_init.c
+
+
+ stm32l4xx_hal_msp.c
+ 1
+ ..\..\BSP\Src\stm32l4xx_hal_msp.c
+
+
+ usart.c
+ 1
+ ..\..\BSP\Src\usart.c
+
+
+ stm32l4xx_it_module.c
+ 1
+ ..\..\BSP\Src\stm32l4xx_it_module.c
+
+
+
+
+ examples
+
+
+ mqttclient_iot_explorer.c
+ 1
+ ..\..\..\..\examples\mqttclient_iot_explorer\mqttclient_iot_explorer.c
+
+
+
+
+ Drivers/STM32L4xx_HAL_Driver
+
+
+ stm32l4xx_hal_tim.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim.c
+
+
+ stm32l4xx_hal_tim_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_tim_ex.c
+
+
+ stm32l4xx_hal_uart.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart.c
+
+
+ stm32l4xx_hal_uart_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_uart_ex.c
+
+
+ stm32l4xx_hal.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal.c
+
+
+ stm32l4xx_hal_i2c.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c.c
+
+
+ stm32l4xx_hal_i2c_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_i2c_ex.c
+
+
+ stm32l4xx_hal_rcc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc.c
+
+
+ stm32l4xx_hal_rcc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_rcc_ex.c
+
+
+ stm32l4xx_hal_flash.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash.c
+
+
+ stm32l4xx_hal_flash_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ex.c
+
+
+ stm32l4xx_hal_flash_ramfunc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_flash_ramfunc.c
+
+
+ stm32l4xx_hal_gpio.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_gpio.c
+
+
+ stm32l4xx_hal_dma.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma.c
+
+
+ stm32l4xx_hal_dma_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dma_ex.c
+
+
+ stm32l4xx_hal_pwr.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr.c
+
+
+ stm32l4xx_hal_pwr_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_pwr_ex.c
+
+
+ stm32l4xx_hal_cortex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_cortex.c
+
+
+ stm32l4xx_hal_adc_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc_ex.c
+
+
+ stm32l4xx_hal_adc.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_adc.c
+
+
+ stm32l4xx_hal_dac.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac.c
+
+
+ stm32l4xx_hal_dac_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_dac_ex.c
+
+
+ stm32l4xx_hal_spi.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi.c
+
+
+ stm32l4xx_hal_spi_ex.c
+ 1
+ ..\..\..\..\platform\vendor_bsp\st\STM32L4xx_HAL_Driver\Src\stm32l4xx_hal_spi_ex.c
+
+
+
+
+ Drivers/CMSIS
+
+
+ system_stm32l4xx.c
+ 1
+ ..\..\BSP\Src\system_stm32l4xx.c
+
+
+
+
+ kernel
+
+
+ tos_binary_heap.c
+ 1
+ ..\..\..\..\kernel\core\tos_binary_heap.c
+
+
+ tos_char_fifo.c
+ 1
+ ..\..\..\..\kernel\core\tos_char_fifo.c
+
+
+ tos_completion.c
+ 1
+ ..\..\..\..\kernel\core\tos_completion.c
+
+
+ tos_countdownlatch.c
+ 1
+ ..\..\..\..\kernel\core\tos_countdownlatch.c
+
+
+ tos_event.c
+ 1
+ ..\..\..\..\kernel\core\tos_event.c
+
+
+ tos_global.c
+ 1
+ ..\..\..\..\kernel\core\tos_global.c
+
+
+ tos_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_mail_queue.c
+
+
+ tos_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_message_queue.c
+
+
+ tos_mmblk.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmblk.c
+
+
+ tos_mmheap.c
+ 1
+ ..\..\..\..\kernel\core\tos_mmheap.c
+
+
+ tos_mutex.c
+ 1
+ ..\..\..\..\kernel\core\tos_mutex.c
+
+
+ tos_pend.c
+ 1
+ ..\..\..\..\kernel\core\tos_pend.c
+
+
+ tos_priority_mail_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_mail_queue.c
+
+
+ tos_priority_message_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_message_queue.c
+
+
+ tos_priority_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_priority_queue.c
+
+
+ tos_ring_queue.c
+ 1
+ ..\..\..\..\kernel\core\tos_ring_queue.c
+
+
+ tos_robin.c
+ 1
+ ..\..\..\..\kernel\core\tos_robin.c
+
+
+ tos_sched.c
+ 1
+ ..\..\..\..\kernel\core\tos_sched.c
+
+
+ tos_sem.c
+ 1
+ ..\..\..\..\kernel\core\tos_sem.c
+
+
+ tos_sys.c
+ 1
+ ..\..\..\..\kernel\core\tos_sys.c
+
+
+ tos_task.c
+ 1
+ ..\..\..\..\kernel\core\tos_task.c
+
+
+ tos_tick.c
+ 1
+ ..\..\..\..\kernel\core\tos_tick.c
+
+
+ tos_time.c
+ 1
+ ..\..\..\..\kernel\core\tos_time.c
+
+
+ tos_timer.c
+ 1
+ ..\..\..\..\kernel\core\tos_timer.c
+
+
+ tos_stopwatch.c
+ 1
+ ..\..\..\..\kernel\core\tos_stopwatch.c
+
+
+
+
+ cpu
+
+
+ port_s.S
+ 2
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_s.S
+
+
+ tos_cpu.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\common\tos_cpu.c
+
+
+ port_c.c
+ 1
+ ..\..\..\..\arch\arm\arm-v7m\cortex-m4\armcc\port_c.c
+
+
+
+
+ cmsis
+
+
+ cmsis_os.c
+ 1
+ ..\..\..\..\osal\cmsis_os\cmsis_os.c
+
+
+
+
+ config
+
+
+ tos_config.h
+ 5
+ ..\..\TOS-CONFIG\tos_config.h
+
+
+
+
+ at
+
+
+ tos_at.c
+ 1
+ ..\..\..\..\net\at\src\tos_at.c
+
+
+ sal_module_wrapper.c
+ 1
+ ..\..\..\..\net\sal_module_wrapper\sal_module_wrapper.c
+
+
+
+
+ devices
+
+
+ bc26.c
+ 1
+ ..\..\..\..\devices\bc26\bc26.c
+
+
+
+
+ hal
+
+
+ tos_hal_uart.c
+ 1
+ ..\..\..\..\platform\hal\st\stm32l4xx\src\tos_hal_uart.c
+
+
+
+
+ mqttclient
+
+
+ mqttclient.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqttclient\mqttclient.c
+
+
+
+
+ mqttclient/mqtt
+
+
+ MQTTConnectClient.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTConnectClient.c
+
+
+ MQTTConnectServer.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTConnectServer.c
+
+
+ MQTTDeserializePublish.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTDeserializePublish.c
+
+
+ MQTTFormat.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTFormat.c
+
+
+ MQTTPacket.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTPacket.c
+
+
+ MQTTSerializePublish.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSerializePublish.c
+
+
+ MQTTSubscribeClient.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSubscribeClient.c
+
+
+ MQTTSubscribeServer.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTSubscribeServer.c
+
+
+ MQTTUnsubscribeClient.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTUnsubscribeClient.c
+
+
+ MQTTUnsubscribeServer.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\mqtt\MQTTUnsubscribeServer.c
+
+
+
+
+ mqttclient/salof
+
+
+ arch.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\log\arch\tencentos-tiny\arch.c
+
+
+ fifo.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\log\fifo.c
+
+
+ format.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\log\format.c
+
+
+ salof.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\log\salof.c
+
+
+ salof_config.h
+ 5
+ ..\..\..\..\components\connectivity\mqttclient\common\log\salof_config.h
+
+
+
+
+ mqttclient/common
+
+
+ random.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\random.c
+
+
+ mqtt_list.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_list.c
+
+
+ mqtt_log.h
+ 5
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_log.h
+
+
+ mqtt_error.h
+ 5
+ ..\..\..\..\components\connectivity\mqttclient\common\mqtt_error.h
+
+
+
+
+ mqttclient/network
+
+
+ network.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\network\network.c
+
+
+ nettype_tls.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\network\nettype_tls.c
+
+
+ nettype_tcp.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\network\nettype_tcp.c
+
+
+
+
+ mqttclient/platform
+
+
+ platform_memory.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_memory.c
+
+
+ platform_mutex.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_mutex.c
+
+
+ platform_net_socket.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_net_socket.c
+
+
+ platform_thread.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_thread.c
+
+
+ platform_timer.c
+ 1
+ ..\..\..\..\components\connectivity\mqttclient\platform\TencentOS-tiny\platform_timer.c
+
+
+
+
+ mqttclient/config
+
+
+ mqtt_config.h
+ 5
+ ..\..\TOS-CONFIG\mqtt_config.h
+
+
+
+
+ cjson
+
+
+ cJSON.c
+ 1
+ ..\..\..\..\components\utils\JSON\src\cJSON.c
+
+
+
+
+ ::CMSIS
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+
+
+
+
+
+ 0
+ 1
+
+
+
+
+
diff --git a/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/startup_stm32l431xx.s b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/startup_stm32l431xx.s
new file mode 100644
index 00000000..6a5c15a5
--- /dev/null
+++ b/board/IoTClub_EVB_L2/KEIL/mqttclient_iot_explorer/startup_stm32l431xx.s
@@ -0,0 +1,404 @@
+;********************** COPYRIGHT(c) 2017 STMicroelectronics ******************
+;* File Name : startup_stm32l431xx.s
+;* Author : MCD Application Team
+;* Description : STM32L431xx Ultra Low Power devices vector table for MDK-ARM toolchain.
+;* This module performs:
+;* - Set the initial SP
+;* - Set the initial PC == Reset_Handler
+;* - Set the vector table entries with the exceptions ISR address
+;* - Branches to __main in the C library (which eventually
+;* calls main()).
+;* After Reset the Cortex-M4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;* <<< Use Configuration Wizard in Context Menu >>>
+;*******************************************************************************
+;*
+;* Redistribution and use in source and binary forms, with or without modification,
+;* are permitted provided that the following conditions are met:
+;* 1. Redistributions of source code must retain the above copyright notice,
+;* this list of conditions and the following disclaimer.
+;* 2. Redistributions in binary form must reproduce the above copyright notice,
+;* this list of conditions and the following disclaimer in the documentation
+;* and/or other materials provided with the distribution.
+;* 3. Neither the name of STMicroelectronics nor the names of its contributors
+;* may be used to endorse or promote products derived from this software
+;* without specific prior written permission.
+;*
+;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+;*
+;*******************************************************************************
+;
+; Amount of memory (in bytes) allocated for Stack
+; Tailor this value to your application needs
+; Stack Configuration
+; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Stack_Size EQU 0x100
+
+ AREA STACK, NOINIT, READWRITE, ALIGN=3
+Stack_Mem SPACE Stack_Size
+__initial_sp
+
+
+; Heap Configuration
+; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
+;
+
+Heap_Size EQU 0x100
+
+ AREA HEAP, NOINIT, READWRITE, ALIGN=3
+__heap_base
+Heap_Mem SPACE Heap_Size
+__heap_limit
+
+ PRESERVE8
+ THUMB
+
+
+; Vector Table Mapped to Address 0 at Reset
+ AREA RESET, DATA, READONLY
+ EXPORT __Vectors
+ EXPORT __Vectors_End
+ EXPORT __Vectors_Size
+
+__Vectors DCD __initial_sp ; Top of Stack
+ DCD Reset_Handler ; Reset Handler
+ DCD NMI_Handler ; NMI Handler
+ DCD HardFault_Handler ; Hard Fault Handler
+ DCD MemManage_Handler ; MPU Fault Handler
+ DCD BusFault_Handler ; Bus Fault Handler
+ DCD UsageFault_Handler ; Usage Fault Handler
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SVC_Handler ; SVCall Handler
+ DCD DebugMon_Handler ; Debug Monitor Handler
+ DCD 0 ; Reserved
+ DCD PendSV_Handler ; PendSV Handler
+ DCD SysTick_Handler ; SysTick Handler
+
+ ; External Interrupts
+ DCD WWDG_IRQHandler ; Window WatchDog
+ DCD PVD_PVM_IRQHandler ; PVD/PVM1/PVM2/PVM3/PVM4 through EXTI Line detection
+ DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
+ DCD FLASH_IRQHandler ; FLASH
+ DCD RCC_IRQHandler ; RCC
+ DCD EXTI0_IRQHandler ; EXTI Line0
+ DCD EXTI1_IRQHandler ; EXTI Line1
+ DCD EXTI2_IRQHandler ; EXTI Line2
+ DCD EXTI3_IRQHandler ; EXTI Line3
+ DCD EXTI4_IRQHandler ; EXTI Line4
+ DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1
+ DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2
+ DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3
+ DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4
+ DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5
+ DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6
+ DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7
+ DCD ADC1_IRQHandler ; ADC1
+ DCD CAN1_TX_IRQHandler ; CAN1 TX
+ DCD CAN1_RX0_IRQHandler ; CAN1 RX0
+ DCD CAN1_RX1_IRQHandler ; CAN1 RX1
+ DCD CAN1_SCE_IRQHandler ; CAN1 SCE
+ DCD EXTI9_5_IRQHandler ; External Line[9:5]s
+ DCD TIM1_BRK_TIM15_IRQHandler ; TIM1 Break and TIM15
+ DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16
+ DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and Commutation
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
+ DCD TIM2_IRQHandler ; TIM2
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD I2C1_EV_IRQHandler ; I2C1 Event
+ DCD I2C1_ER_IRQHandler ; I2C1 Error
+ DCD I2C2_EV_IRQHandler ; I2C2 Event
+ DCD I2C2_ER_IRQHandler ; I2C2 Error
+ DCD SPI1_IRQHandler ; SPI1
+ DCD SPI2_IRQHandler ; SPI2
+ DCD USART1_IRQHandler ; USART1
+ DCD USART2_IRQHandler ; USART2
+ DCD USART3_IRQHandler ; USART3
+ DCD EXTI15_10_IRQHandler ; External Line[15:10]
+ DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD SDMMC1_IRQHandler ; SDMMC1
+ DCD 0 ; Reserved
+ DCD SPI3_IRQHandler ; SPI3
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
+ DCD TIM7_IRQHandler ; TIM7
+ DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1
+ DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2
+ DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3
+ DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4
+ DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD COMP_IRQHandler ; COMP Interrupt
+ DCD LPTIM1_IRQHandler ; LP TIM1 interrupt
+ DCD LPTIM2_IRQHandler ; LP TIM2 interrupt
+ DCD 0 ; Reserved
+ DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6
+ DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7
+ DCD LPUART1_IRQHandler ; LP UART1 interrupt
+ DCD QUADSPI_IRQHandler ; Quad SPI global interrupt
+ DCD I2C3_EV_IRQHandler ; I2C3 event
+ DCD I2C3_ER_IRQHandler ; I2C3 error
+ DCD SAI1_IRQHandler ; Serial Audio Interface 1 global interrupt
+ DCD 0 ; Reserved
+ DCD SWPMI1_IRQHandler ; Serial Wire Interface 1 global interrupt
+ DCD TSC_IRQHandler ; Touch Sense Controller global interrupt
+ DCD 0 ; Reserved
+ DCD 0 ; Reserved
+ DCD RNG_IRQHandler ; RNG global interrupt
+ DCD FPU_IRQHandler ; FPU
+ DCD CRS_IRQHandler ; CRS interrupt
+
+__Vectors_End
+
+__Vectors_Size EQU __Vectors_End - __Vectors
+
+ AREA |.text|, CODE, READONLY
+
+; Reset handler
+Reset_Handler PROC
+ EXPORT Reset_Handler [WEAK]
+ IMPORT SystemInit
+ IMPORT __main
+
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__main
+ BX R0
+ ENDP
+
+; Dummy Exception Handlers (infinite loops which can be modified)
+
+NMI_Handler PROC
+ EXPORT NMI_Handler [WEAK]
+ B .
+ ENDP
+HardFault_Handler\
+ PROC
+ EXPORT HardFault_Handler [WEAK]
+ B .
+ ENDP
+MemManage_Handler\
+ PROC
+ EXPORT MemManage_Handler [WEAK]
+ B .
+ ENDP
+BusFault_Handler\
+ PROC
+ EXPORT BusFault_Handler [WEAK]
+ B .
+ ENDP
+UsageFault_Handler\
+ PROC
+ EXPORT UsageFault_Handler [WEAK]
+ B .
+ ENDP
+SVC_Handler PROC
+ EXPORT SVC_Handler [WEAK]
+ B .
+ ENDP
+DebugMon_Handler\
+ PROC
+ EXPORT DebugMon_Handler [WEAK]
+ B .
+ ENDP
+PendSV_Handler PROC
+ EXPORT PendSV_Handler [WEAK]
+ B .
+ ENDP
+SysTick_Handler PROC
+ EXPORT SysTick_Handler [WEAK]
+ B .
+ ENDP
+
+Default_Handler PROC
+
+ EXPORT WWDG_IRQHandler [WEAK]
+ EXPORT PVD_PVM_IRQHandler [WEAK]
+ EXPORT TAMP_STAMP_IRQHandler [WEAK]
+ EXPORT RTC_WKUP_IRQHandler [WEAK]
+ EXPORT FLASH_IRQHandler [WEAK]
+ EXPORT RCC_IRQHandler [WEAK]
+ EXPORT EXTI0_IRQHandler [WEAK]
+ EXPORT EXTI1_IRQHandler [WEAK]
+ EXPORT EXTI2_IRQHandler [WEAK]
+ EXPORT EXTI3_IRQHandler [WEAK]
+ EXPORT EXTI4_IRQHandler [WEAK]
+ EXPORT DMA1_Channel1_IRQHandler [WEAK]
+ EXPORT DMA1_Channel2_IRQHandler [WEAK]
+ EXPORT DMA1_Channel3_IRQHandler [WEAK]
+ EXPORT DMA1_Channel4_IRQHandler [WEAK]
+ EXPORT DMA1_Channel5_IRQHandler [WEAK]
+ EXPORT DMA1_Channel6_IRQHandler [WEAK]
+ EXPORT DMA1_Channel7_IRQHandler [WEAK]
+ EXPORT ADC1_IRQHandler [WEAK]
+ EXPORT CAN1_TX_IRQHandler [WEAK]
+ EXPORT CAN1_RX0_IRQHandler [WEAK]
+ EXPORT CAN1_RX1_IRQHandler [WEAK]
+ EXPORT CAN1_SCE_IRQHandler [WEAK]
+ EXPORT EXTI9_5_IRQHandler [WEAK]
+ EXPORT TIM1_BRK_TIM15_IRQHandler [WEAK]
+ EXPORT TIM1_UP_TIM16_IRQHandler [WEAK]
+ EXPORT TIM1_TRG_COM_IRQHandler [WEAK]
+ EXPORT TIM1_CC_IRQHandler [WEAK]
+ EXPORT TIM2_IRQHandler [WEAK]
+ EXPORT I2C1_EV_IRQHandler [WEAK]
+ EXPORT I2C1_ER_IRQHandler [WEAK]
+ EXPORT I2C2_EV_IRQHandler [WEAK]
+ EXPORT I2C2_ER_IRQHandler [WEAK]
+ EXPORT SPI1_IRQHandler [WEAK]
+ EXPORT SPI2_IRQHandler [WEAK]
+ EXPORT USART1_IRQHandler [WEAK]
+ EXPORT USART2_IRQHandler [WEAK]
+ EXPORT USART3_IRQHandler [WEAK]
+ EXPORT EXTI15_10_IRQHandler [WEAK]
+ EXPORT RTC_Alarm_IRQHandler [WEAK]
+ EXPORT SDMMC1_IRQHandler [WEAK]
+ EXPORT SPI3_IRQHandler [WEAK]
+ EXPORT TIM6_DAC_IRQHandler [WEAK]
+ EXPORT TIM7_IRQHandler [WEAK]
+ EXPORT DMA2_Channel1_IRQHandler [WEAK]
+ EXPORT DMA2_Channel2_IRQHandler [WEAK]
+ EXPORT DMA2_Channel3_IRQHandler [WEAK]
+ EXPORT DMA2_Channel4_IRQHandler [WEAK]
+ EXPORT DMA2_Channel5_IRQHandler [WEAK]
+ EXPORT COMP_IRQHandler [WEAK]
+ EXPORT LPTIM1_IRQHandler [WEAK]
+ EXPORT LPTIM2_IRQHandler [WEAK]
+ EXPORT DMA2_Channel6_IRQHandler [WEAK]
+ EXPORT DMA2_Channel7_IRQHandler [WEAK]
+ EXPORT LPUART1_IRQHandler [WEAK]
+ EXPORT QUADSPI_IRQHandler [WEAK]
+ EXPORT I2C3_EV_IRQHandler [WEAK]
+ EXPORT I2C3_ER_IRQHandler [WEAK]
+ EXPORT SAI1_IRQHandler [WEAK]
+ EXPORT SWPMI1_IRQHandler [WEAK]
+ EXPORT TSC_IRQHandler [WEAK]
+ EXPORT RNG_IRQHandler [WEAK]
+ EXPORT FPU_IRQHandler [WEAK]
+ EXPORT CRS_IRQHandler [WEAK]
+
+WWDG_IRQHandler
+PVD_PVM_IRQHandler
+TAMP_STAMP_IRQHandler
+RTC_WKUP_IRQHandler
+FLASH_IRQHandler
+RCC_IRQHandler
+EXTI0_IRQHandler
+EXTI1_IRQHandler
+EXTI2_IRQHandler
+EXTI3_IRQHandler
+EXTI4_IRQHandler
+DMA1_Channel1_IRQHandler
+DMA1_Channel2_IRQHandler
+DMA1_Channel3_IRQHandler
+DMA1_Channel4_IRQHandler
+DMA1_Channel5_IRQHandler
+DMA1_Channel6_IRQHandler
+DMA1_Channel7_IRQHandler
+ADC1_IRQHandler
+CAN1_TX_IRQHandler
+CAN1_RX0_IRQHandler
+CAN1_RX1_IRQHandler
+CAN1_SCE_IRQHandler
+EXTI9_5_IRQHandler
+TIM1_BRK_TIM15_IRQHandler
+TIM1_UP_TIM16_IRQHandler
+TIM1_TRG_COM_IRQHandler
+TIM1_CC_IRQHandler
+TIM2_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C2_EV_IRQHandler
+I2C2_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+USART2_IRQHandler
+USART3_IRQHandler
+EXTI15_10_IRQHandler
+RTC_Alarm_IRQHandler
+SDMMC1_IRQHandler
+SPI3_IRQHandler
+TIM6_DAC_IRQHandler
+TIM7_IRQHandler
+DMA2_Channel1_IRQHandler
+DMA2_Channel2_IRQHandler
+DMA2_Channel3_IRQHandler
+DMA2_Channel4_IRQHandler
+DMA2_Channel5_IRQHandler
+COMP_IRQHandler
+LPTIM1_IRQHandler
+LPTIM2_IRQHandler
+DMA2_Channel6_IRQHandler
+DMA2_Channel7_IRQHandler
+LPUART1_IRQHandler
+QUADSPI_IRQHandler
+I2C3_EV_IRQHandler
+I2C3_ER_IRQHandler
+SAI1_IRQHandler
+SWPMI1_IRQHandler
+TSC_IRQHandler
+RNG_IRQHandler
+FPU_IRQHandler
+CRS_IRQHandler
+
+ B .
+
+ ENDP
+
+ ALIGN
+
+;*******************************************************************************
+; User Stack and Heap initialization
+;*******************************************************************************
+ IF :DEF:__MICROLIB
+
+ EXPORT __initial_sp
+ EXPORT __heap_base
+ EXPORT __heap_limit
+
+ ELSE
+
+ IMPORT __use_two_region_memory
+ EXPORT __user_initial_stackheap
+
+__user_initial_stackheap
+
+ LDR R0, = Heap_Mem
+ LDR R1, =(Stack_Mem + Stack_Size)
+ LDR R2, = (Heap_Mem + Heap_Size)
+ LDR R3, = Stack_Mem
+ BX LR
+
+ ALIGN
+
+ ENDIF
+
+ END
+
+;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/board/IoTClub_EVB_L2/TOS-CONFIG/mqtt_config.h b/board/IoTClub_EVB_L2/TOS-CONFIG/mqtt_config.h
new file mode 100644
index 00000000..cfc0c976
--- /dev/null
+++ b/board/IoTClub_EVB_L2/TOS-CONFIG/mqtt_config.h
@@ -0,0 +1,48 @@
+/*
+ * @Author: jiejie
+ * @Github: https://github.com/jiejieTop
+ * @LastEditTime: 2020-06-17 19:31:41
+ * @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
+ */
+#ifndef _MQTT_CONFIG_H_
+#define _MQTT_CONFIG_H_
+
+//#define MQTT_LOG_IS_SALOF
+
+#define MQTT_NETSOCKET_USING_AT
+
+#define MQTT_LOG_LEVEL MQTT_LOG_DEBUG_LEVEL //MQTT_LOG_WARN_LEVEL MQTT_LOG_DEBUG_LEVEL
+
+#ifdef MQTT_LOG_IS_SALOF
+ #define SALOF_USING_LOG (1U)
+ #define SALOF_USING_SALOF (1U)
+ #define SALOF_LOG_LEVEL MQTT_LOG_LEVEL
+ #define SALOF_OS SALOF_USING_TENCENTOS
+ #define SALOF_USING_IDLE_HOOK (0U)
+ #define SALOF_LOG_COLOR (1U)
+ #define SALOF_LOG_TS (0U)
+ #define SALOF_LOG_TAR (0U)
+ #define SALOF_BUFF_SIZE 512
+ #define SALOF_FIFO_SIZE 4096
+ #define SALOF_TASK_STACK_SIZE 1024
+ #define SALOF_TASK_TICK 50
+#endif
+
+#define MQTT_MAX_PACKET_ID (0xFFFF - 1)
+#define MQTT_TOPIC_LEN_MAX 64
+#define MQTT_ACK_HANDLER_NUM_MAX 64
+#define MQTT_DEFAULT_BUF_SIZE 1024
+#define MQTT_DEFAULT_CMD_TIMEOUT 10000
+#define MQTT_MAX_CMD_TIMEOUT 20000
+#define MQTT_MIN_CMD_TIMEOUT 10000
+#define MQTT_KEEP_ALIVE_INTERVAL 50 // unit: second
+#define MQTT_VERSION 4 // 4 is mqtt 3.1.1
+#define MQTT_RECONNECT_DEFAULT_DURATION 1000
+#define MQTT_THREAD_STACK_SIZE 2048
+#define MQTT_THREAD_PRIO 5
+#define MQTT_THREAD_TICK 50
+
+
+#define MQTT_NETWORK_TYPE_NO_TLS
+
+#endif /* _MQTT_CONFIG_H_ */
diff --git a/devices/bc26/bc26.c b/devices/bc26/bc26.c
index f77d4956..b1a24ede 100644
--- a/devices/bc26/bc26.c
+++ b/devices/bc26/bc26.c
@@ -6,6 +6,15 @@
#include "stdbool.h"
#include "ctype.h"
+typedef struct ip_addr_st {
+ int seg1;
+ int seg2;
+ int seg3;
+ int seg4;
+}ip_addr_t;
+
+static ip_addr_t domain_parser_addr={0};
+
static int bc26_reset(void)
{
at_echo_t echo;
@@ -210,6 +219,8 @@ static int bc26_init(void)
return -1;
}
printf("Init BC26 done\n");
+
+ return 0;
}
static int bc26_connect(const char *ip, const char *port, sal_proto_t proto)
@@ -235,7 +246,7 @@ static int bc26_connect(const char *ip, const char *port, sal_proto_t proto)
sscanf(port, "%d", &send_port);
while (try++ < 10) {
- tos_at_cmd_exec(&echo, 2000, "AT+QSOCON=%d,%d,\"%s\"\r\n", id, send_port,ip);
+ tos_at_cmd_exec(&echo, 8000, "AT+QSOCON=%d,%d,\"%s\"\r\n", id, send_port,ip);
if (echo.status == AT_ECHO_STATUS_OK) {
is_connected = 1;
break;
@@ -321,9 +332,35 @@ static int bc26_recv(int id, void *buf, size_t len)
return bc26_recv_timeout(id, buf, len, (uint32_t)4000);
}
+k_sem_t domain_parser_sem;
+
static int bc26_parse_domain(const char *host_name, char *host_ip, size_t host_ip_len)
{
- printf("parse_domain-%s,%s.\r\n", host_name, host_ip);
+ at_echo_t echo;
+ char echo_buffer[128];
+
+ tos_sem_create_max(&domain_parser_sem, 0, 1);
+
+ tos_at_echo_create(&echo, echo_buffer, sizeof(echo_buffer), NULL);
+ tos_at_cmd_exec(&echo, 2000, "AT+QIDNSGIP=1,\"%s\"\r\n", host_name);
+
+ if (echo.status != AT_ECHO_STATUS_OK)
+ {
+ return -1;
+ }
+
+ tos_sem_pend(&domain_parser_sem, TOS_TIME_FOREVER);
+
+ /*
+ +QIURC: "dnsgip",0,1,0
+
+ +QIURC: "dnsgip","xxx.xxx.xxx"
+ */
+ snprintf(host_ip, host_ip_len, "%d.%d.%d.%d", domain_parser_addr.seg1, domain_parser_addr.seg2, domain_parser_addr.seg3, domain_parser_addr.seg4);
+ host_ip[host_ip_len - 1] = '\0';
+
+ printf("GOT IP: %s\n", host_ip);
+
return 0;
}
@@ -358,9 +395,9 @@ __STATIC__ void __asciistr2hex(char *in, uint8_t *out, int len) {
}
}
-__STATIC__ uint8_t incoming_data_buffer[512];
-__STATIC__ char ascii_stream[512];
-__STATIC__ uint8_t hex_stream[256];
+__STATIC__ uint8_t incoming_data_buffer[1024];
+__STATIC__ char ascii_stream[1024];
+__STATIC__ uint8_t hex_stream[512];
__STATIC__ void bc26_incoming_data_process(void)
{
@@ -521,8 +558,64 @@ __STATIC__ void bc26_incoming_data_process(void)
tos_at_channel_write(channel_id, hex_stream, length);
}
+__STATIC__ void bc26_demoin_parser_data_process(void)
+{
+ uint8_t data;
+ if (tos_at_uart_read(&data, 1) != 1) {
+ return;
+ }
+
+ if (data == '0') {
+ return;
+ }
+
+ if (data == '\"') {
+ /* start parser domain */
+ while (1) {
+ if (tos_at_uart_read(&data, 1) != 1) {
+ return;
+ }
+ if (data == '.') {
+ break;
+ }
+ domain_parser_addr.seg1 = domain_parser_addr.seg1 *10 + (data-'0');
+ }
+ while (1) {
+ if (tos_at_uart_read(&data, 1) != 1) {
+ return;
+ }
+ if (data == '.') {
+ break;
+ }
+ domain_parser_addr.seg2 = domain_parser_addr.seg2 *10 + (data-'0');
+ }
+ while (1) {
+ if (tos_at_uart_read(&data, 1) != 1) {
+ return;
+ }
+ if (data == '.') {
+ break;
+ }
+ domain_parser_addr.seg3 = domain_parser_addr.seg3 *10 + (data-'0');
+ }
+ while (1) {
+ if (tos_at_uart_read(&data, 1) != 1) {
+ return;
+ }
+ if (data == '\"') {
+ break;
+ }
+ domain_parser_addr.seg4 = domain_parser_addr.seg4 *10 + (data-'0');
+ }
+ tos_sem_post(&domain_parser_sem);
+ }
+ return;
+
+}
+
at_event_t bc26_at_event[] = {
{ "+QSONMI=", bc26_incoming_data_process },
+ { "+QIURC: \"dnsgip\",", bc26_demoin_parser_data_process}
};
sal_module_t nb_iot_module_bc26 = {
diff --git a/examples/mqttclient_iot_explorer/mqttclient_iot_explorer.c b/examples/mqttclient_iot_explorer/mqttclient_iot_explorer.c
new file mode 100644
index 00000000..ffd09184
--- /dev/null
+++ b/examples/mqttclient_iot_explorer/mqttclient_iot_explorer.c
@@ -0,0 +1,171 @@
+#include "stm32l4xx_hal.h"
+#include "mcu_init.h"
+#include "tos_k.h"
+#include "mqttclient.h"
+#include "cjson.h"
+#include "sal_module_wrapper.h"
+
+//#define USE_ESP8266
+//#define USE_NB_BC35
+#define USE_BC26
+
+#if defined(USE_ESP8266)
+#include "esp8266.h"
+#elif defined(USE_BC26)
+#include "bc26.h"
+#endif
+
+#ifdef USE_ESP8266
+static hal_uart_port_t esp8266_port = HAL_UART_PORT_0;
+
+void mqtt_set_esp8266_port(hal_uart_port_t port) {
+ esp8266_port = port;
+}
+#endif
+
+k_event_t report_result_event;
+k_event_flag_t report_success = 1<<0;
+k_event_flag_t report_fail = 1<<1;
+
+static void tos_topic_handler(void* client, message_data_t* msg)
+{
+ (void) client;
+ cJSON* cjson_root = NULL;
+ cJSON* cjson_status = NULL;
+ char* status = NULL;
+
+ /* 打印日志 */
+ MQTT_LOG_I("-----------------------------------------------------------------------------------");
+ MQTT_LOG_I("%s:%d %s()...\ntopic: %s, qos: %d. \nmessage:\n\t%s\n", __FILE__, __LINE__, __FUNCTION__,
+ msg->topic_name, msg->message->qos, (char*)msg->message->payload);
+ MQTT_LOG_I("-----------------------------------------------------------------------------------\n");
+
+ /* 使用cjson解析上报响应数据 */
+ cjson_root = cJSON_Parse((char*)msg->message->payload);
+ if (cjson_root == NULL) {
+ printf("report reply message parser fail\r\n");
+ tos_event_post(&report_result_event, report_fail);
+ goto exit;
+ }
+
+ /* 提取status状态 */
+ cjson_status = cJSON_GetObjectItem(cjson_root, "status");
+ status = cJSON_GetStringValue(cjson_status);
+ if (cjson_status == NULL || status == NULL) {
+ printf("report reply status parser fail\r\n");
+ tos_event_post(&report_result_event, report_fail);
+ goto exit;
+ }
+
+ /* 判断status状态 */
+ if (strstr(status,"success")) {
+ tos_event_post(&report_result_event, report_success);
+ }else {
+ tos_event_post(&report_result_event, report_fail);
+ }
+
+exit:
+ cJSON_free(cjson_root);
+ cjson_root = NULL;
+ status = NULL;
+ return;
+}
+
+#define REPORT_DATA_TEMPLATE "{\"method\":\"report\",\"clientToken\":\"00000001\",\"params\":{\"brightness\":%d,\"name\":\"bedroom\"}}"
+
+char report_buf[200];
+
+void mqttclient_task(void)
+{
+ int error;
+
+ int lightness = 0;
+
+ mqtt_client_t *client = NULL;
+
+ mqtt_message_t msg;
+
+ k_event_flag_t match_flag;
+
+ char host_ip[20];
+
+ memset(&msg, 0, sizeof(msg));
+
+#ifdef USE_ESP8266
+ esp8266_sal_init(esp8266_port);
+ esp8266_join_ap("Supowang", "13975428888");
+#endif
+
+#ifdef USE_NB_BC35
+ int bc35_28_95_sal_init(hal_uart_port_t uart_port);
+ bc35_28_95_sal_init(HAL_UART_PORT_0);
+#endif
+
+#ifdef USE_BC26
+ bc26_sal_init(HAL_UART_PORT_2);
+#endif
+
+ mqtt_log_init();
+
+ client = mqtt_lease();
+
+ tos_event_create(&report_result_event, (k_event_flag_t)0u);
+
+ /* Domain Format: .iotcloud.tencentdevices.com */
+ tos_sal_module_parse_domain("fwr8pgacus.iotcloud.tencentdevices.com",host_ip,sizeof(host_ip));
+
+ /*
+ These infomation is generated by mqtt_config_gen.py tool in "TencentOS-tiny\tools" directory.
+ */
+ mqtt_set_port(client, "1883");
+ mqtt_set_host(client, host_ip);
+ mqtt_set_client_id(client, "FWR8PGACUSdev001");
+ mqtt_set_user_name(client, "FWR8PGACUSdev001;21010406;12365;4294967295");
+ mqtt_set_password(client, "273f218b35f52900b8b85183d93c1fcc6b9c9444;hmacsha1");
+ mqtt_set_clean_session(client, 1);
+
+ error = mqtt_connect(client);
+
+ MQTT_LOG_D("mqtt connect error is %#0x", error);
+
+ error = mqtt_subscribe(client, "$thing/down/property/FWR8PGACUS/dev001", QOS0, tos_topic_handler);
+
+ MQTT_LOG_D("mqtt subscribe error is %#0x", error);
+
+ while (1) {
+ memset(&msg, 0, sizeof(msg));
+
+ snprintf(report_buf, sizeof(report_buf), REPORT_DATA_TEMPLATE, lightness++);
+
+ msg.qos = QOS0;
+ msg.payload = (void *) report_buf;
+
+ error = mqtt_publish(client, "$thing/up/property/FWR8PGACUS/dev001", &msg);
+
+ MQTT_LOG_D("mqtt publish error is %#0x", error);
+
+ tos_event_pend(&report_result_event,
+ report_success|report_fail,
+ &match_flag,
+ TOS_TIME_FOREVER,
+ TOS_OPT_EVENT_PEND_ANY | TOS_OPT_EVENT_PEND_CLR);
+
+ if (match_flag == report_success) {
+ printf("report to Tencent IoT Explorer success\r\n");
+
+ }else if (match_flag == report_fail){
+ printf("report to Tencent IoT Explorer fail\r\n");
+ }
+
+ tos_task_delay(10000);
+ }
+}
+
+void application_entry(void *arg)
+{
+ mqttclient_task();
+ while (1) {
+ printf("This is a mqtt demo!\r\n");
+ tos_task_delay(1000);
+ }
+}