Просмотр исходного кода

change: fota的代码从mcu库拆分出来

Wendal Chen 3 лет назад
Родитель
Сommit
b1a52bc55a

+ 10 - 11
application/include/luat_conf_bsp.h

@@ -75,13 +75,14 @@
 //----------------------------
 // 高通字体, 需配合芯片使用
 #define LUAT_USE_GTFONT 1
-#define LUAT_USE_GTFONT_UTF8
+#define LUAT_USE_GTFONT_UTF8 1
 
 //----------------------------
 // 高级功能, 其中shell是推荐启用, 除非你打算uart0也读数据
-#define LUAT_USE_SHELL 
-#define LUAT_USE_DBG
-#define LUAT_USE_OTA
+#define LUAT_USE_SHELL 1 
+#define LUAT_USE_DBG 1
+#define LUAT_USE_OTA 1
+#define LUAT_USE_FOTA 1
 
 // 多虚拟机支持,实验性,一般不启用
 // #define LUAT_USE_VMX 1 
@@ -89,17 +90,15 @@
 
 //---------------------
 // UI
-#define LUAT_USE_LCD
+#define LUAT_USE_LCD 1
 #define LUAT_LCD_CMD_DELAY_US 7
-#define LUAT_USE_TJPGD
-#define LUAT_USE_EINK
+#define LUAT_USE_TJPGD 1
+#define LUAT_USE_EINK 1
 
 //---------------------
 // U8G2
-#define LUAT_USE_DISP 
-#define LUAT_USE_U8G2
-#define U8G2_USE_SH1106
-#define U8G2_USE_ST7567
+#define LUAT_USE_DISP  1
+#define LUAT_USE_U8G2  1
 
 /**************FONT*****************/
 /**********U8G2&LCD FONT*************/

+ 3 - 0
application/src/luat_base_air105.c

@@ -205,6 +205,9 @@ static const luaL_Reg loadedlibs[] = {
 #ifdef LUAT_USE_W5500
   {"w5500", luaopen_w5500},
   {"network", luaopen_network_adapter},
+#endif
+#ifdef LUAT_USE_FOTA
+  {"fota", luaopen_fota},
 #endif
   {"usbapp", luaopen_usbapp},
   {"audio", luaopen_multimedia_audio},

+ 106 - 0
application/src/luat_fota_air105.c

@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2022 OpenLuat & AirM2M
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of
+ * this software and associated documentation files (the "Software"), to deal in
+ * the Software without restriction, including without limitation the rights to
+ * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+ * the Software, and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+ * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+ * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#include "luat_base.h"
+#include "luat_mcu.h"
+#include "luat_spi.h"
+#include "app_interface.h"
+#include "luat_fota.h"
+
+#include "FreeRTOS.h"
+
+int luat_fota_init(uint32_t start_address, uint32_t len, luat_spi_device_t* spi_device, const char *path, uint32_t pathlen)
+{
+	PV_Union uPV;
+	CoreUpgrade_HeadStruct *Head = luat_heap_malloc(sizeof(CoreUpgrade_HeadStruct));
+	memset(Head, 0, sizeof(CoreUpgrade_HeadStruct));
+	Head->MaigcNum = __APP_START_MAGIC__;
+	uPV.u8[0] = CORE_OTA_MODE_FULL;
+	Head->DataStartAddress = start_address;
+	if (path && pathlen)
+	{
+		uPV.u8[1] = CORE_OTA_IN_FILE;
+		memcpy(Head->FilePath, path, pathlen);
+		Head->Param1 = uPV.u32;
+	}
+	else
+	{
+		if (start_address > __FLASH_BASE_ADDR__)
+		{
+			uPV.u8[1] = CORE_OTA_IN_FLASH;
+		}
+		else
+		{
+			uPV.u8[1] = CORE_OTA_OUT_SPI_FLASH;
+			uPV.u8[2] = luat_spi_get_hw_bus(spi_device->bus_id);
+			Head->Param1 = uPV.u32;
+
+			switch(luat_spi_get_hw_bus(spi_device->bus_id))
+			{
+			case HSPI_ID0:
+				uPV.u8[0] = GPIOC_13;
+				uPV.u8[1] = GPIOC_12;
+				uPV.u8[2] = GPIOC_15;
+				break;
+			case SPI_ID0:
+				uPV.u8[0] = GPIOB_14;
+				uPV.u8[1] = GPIOB_15;
+				uPV.u8[2] = GPIOB_12;
+				break;
+			case SPI_ID1:
+				uPV.u8[0] = GPIOA_08;
+				uPV.u8[1] = GPIOA_09;
+				uPV.u8[2] = GPIOA_06;
+				break;
+			case SPI_ID2:
+				uPV.u8[0] = GPIOB_04;
+				uPV.u8[1] = GPIOB_05;
+				uPV.u8[2] = GPIOB_02;
+				break;
+
+			}
+			uPV.u8[3] = spi_device->spi_config.cs;
+			Head->Param2 = uPV.u32;
+		}
+	}
+	return Core_OTAInit(Head, len);
+}
+
+int luat_fota_write(uint8_t *data, uint32_t len)
+{
+	return Core_OTAWrite(data, len);
+}
+
+int luat_fota_done(void)
+{
+	return Core_OTACheckDone();
+}
+
+int luat_fota_end(uint8_t is_ok)
+{
+	Core_OTAEnd(is_ok);
+	return 0;
+}
+
+uint8_t luat_fota_wait_ready(void)
+{
+	return Core_OTACheckReadyStart();
+}

+ 0 - 78
application/src/luat_mcu_air105.c

@@ -83,81 +83,3 @@ void luat_mcu_set_clk_source(uint8_t source_main, uint8_t source_32k, uint32_t d
 		break;
 	}
 }
-
-int luat_mcu_fota_init(uint32_t start_address, uint32_t len, luat_spi_device_t* spi_device, const char *path, uint32_t pathlen)
-{
-	PV_Union uPV;
-	CoreUpgrade_HeadStruct *Head = luat_heap_malloc(sizeof(CoreUpgrade_HeadStruct));
-	memset(Head, 0, sizeof(CoreUpgrade_HeadStruct));
-	Head->MaigcNum = __APP_START_MAGIC__;
-	uPV.u8[0] = CORE_OTA_MODE_FULL;
-	Head->DataStartAddress = start_address;
-	if (path && pathlen)
-	{
-		uPV.u8[1] = CORE_OTA_IN_FILE;
-		memcpy(Head->FilePath, path, pathlen);
-		Head->Param1 = uPV.u32;
-	}
-	else
-	{
-		if (start_address > __FLASH_BASE_ADDR__)
-		{
-			uPV.u8[1] = CORE_OTA_IN_FLASH;
-		}
-		else
-		{
-			uPV.u8[1] = CORE_OTA_OUT_SPI_FLASH;
-			uPV.u8[2] = luat_spi_get_hw_bus(spi_device->bus_id);
-			Head->Param1 = uPV.u32;
-
-			switch(luat_spi_get_hw_bus(spi_device->bus_id))
-			{
-			case HSPI_ID0:
-				uPV.u8[0] = GPIOC_13;
-				uPV.u8[1] = GPIOC_12;
-				uPV.u8[2] = GPIOC_15;
-				break;
-			case SPI_ID0:
-				uPV.u8[0] = GPIOB_14;
-				uPV.u8[1] = GPIOB_15;
-				uPV.u8[2] = GPIOB_12;
-				break;
-			case SPI_ID1:
-				uPV.u8[0] = GPIOA_08;
-				uPV.u8[1] = GPIOA_09;
-				uPV.u8[2] = GPIOA_06;
-				break;
-			case SPI_ID2:
-				uPV.u8[0] = GPIOB_04;
-				uPV.u8[1] = GPIOB_05;
-				uPV.u8[2] = GPIOB_02;
-				break;
-
-			}
-			uPV.u8[3] = spi_device->spi_config.cs;
-			Head->Param2 = uPV.u32;
-		}
-	}
-	return Core_OTAInit(Head, len);
-}
-
-int luat_mcu_fota_write(uint8_t *data, uint32_t len)
-{
-	return Core_OTAWrite(data, len);
-}
-
-int luat_mcu_fota_done(void)
-{
-	return Core_OTACheckDone();
-}
-
-int luat_mcu_fota_end(uint8_t is_ok)
-{
-	Core_OTAEnd(is_ok);
-	return 0;
-}
-
-uint8_t luat_mcu_fota_wait_ready(void)
-{
-	return Core_OTACheckReadyStart();
-}