Browse Source

update:luatos ec7xx系列支持外部flash全量升级

alienwalker 1 year ago
parent
commit
e2c55f8787
2 changed files with 7 additions and 2 deletions
  1. 4 0
      demo/fota/main.lua
  2. 3 2
      luat/modules/luat_lib_fota.c

+ 4 - 0
demo/fota/main.lua

@@ -72,6 +72,10 @@ function fota_cb(ret)
         rtos.reboot()
     end
 end
+
+--支持外部flash全量更新的固件,可以打开下面的注释,做全量更新,外部flash挂载在SPI0,使用GPIO27控制上下电
+--spi_flash = spi.deviceSetup(0,8,0,0,8,44*1000*1000,spi.MSB,1,0)
+--fota.init(0xe0000000, nil, spi_flash, 27)	--GPIO27控制上下电
 
 -- 使用合宙iot平台进行升级
 sys.taskInit(function()

+ 3 - 2
luat/modules/luat_lib_fota.c

@@ -68,8 +68,8 @@ end)
 @usage
 -- 初始化fota流程
 local result = fota.init(0, 0x00300000, spi_device)	--由于105的flash从0x01000000开始,所以0就是外部spiflash
-local result = fota.init()	--ec618系列/EC718系列使用固定内部地址,所以不需要参数了
-local result = fota.init(nil, 0xe0000000, spi_device, 27)	--EC718系列允许使用外部flash更新,但是地址必须加上0xe0000000的偏移
+local result = fota.init()	--ec618系列/EC7XX系列使用固定内部地址,所以不需要参数了
+local result = fota.init(0xe0000000, 0, spi_device, 27)	--EC7XX系列允许使用外部flash更新,但是地址必须加上0xe0000000的偏移
 */
 static int l_fota_init(lua_State* L)
 {
@@ -96,6 +96,7 @@ static int l_fota_init(lua_State* L)
     {
     	spi_device->user_data = &power_pin;
     }
+
 	lua_pushboolean(L, !luat_fota_init(address, length, spi_device, buf, len));
 	return 1;
 }