Page 1 of 1
[已解决]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 24日 16:51
by Bryan Guo
你好,我从3.8.1切换到3.11.0, 做OTA的时候,出现错误:tuya_ble_ota_file_info_handler errorid: 3。 OTA size超范围。 我需要知道这个版本的SDK flash map。 我可以把这个size调整到多大? 另外,目前我的用户参数放在0x00034000 - 0x0003f000,是否有冲突?
下面的宏定义,我不知道ota_program_offset 的值是多少。
请麻烦帮我看一下应该如何调整OTA size已经用户区参数的地址范围,谢谢。
Code: Select all
#ifndef BOARD_FLASH_OTA_START_ADDR
#define BOARD_FLASH_OTA_START_ADDR (ota_program_offset)
#endif
#ifndef BOARD_FLASH_OTA_END_ADDR
#define BOARD_FLASH_OTA_END_ADDR (ota_program_offset + BOARD_FLASH_OTA_SIZE)
#endif
#if BOARD_FLASH_OTA_SIZE > 0x3F000
#error "BOARD_FLASH_OTA_SIZE must <= 0x3F000 !!!!"
#endif
Code: Select all
// program code address
#define CODE1_START_ADDR 0x00000
#define CODE1_STOP_ADDR (BOARD_FLASH_OTA_SIZE)
#define CODE2_START_ADDR 0x40000
#define CODE2_STOP_ADDR (CODE2_START_ADDR + BOARD_FLASH_OTA_SIZE)
// user code address
#define USER1_DATA_START_ADDR CODE1_STOP_ADDR
#define USER1_DATA_STOP_ADDR 0x3F000
#define USER2_DATA_START_ADDR (CODE2_STOP_ADDR + 0x1000)
#define USER2_DATA_STOP_ADDR 0x74000
// 0x74000 - 0x75FFFF be used for SDK BLE Stack Info area
// 0x76000 be used for SDK mac address data area
// 0x77000 be used for SDK calibration data area
#define USER3_DATA_START_ADDR 0x78000
#define USER3_DATA_STOP_ADDR 0x80000
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 24日 17:14
by jinyuan
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 24日 17:48
by Bryan Guo
所以,这个BTU模块,支持的最大固件空间是 0x2B000 ?
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 24日 18:06
by jinyuan
- ota_program_offset 的值应用层不需要关心也不要做任何改动
- 如果要增加固件size,根据具体情况调整board.h 中
- BOARD_FLASH_OTA_SIZE(固件能够OTA 的最大size,也是固件的最大size)
- BOARD_FLASH_TUYA_INFO_START_ADDR(授权以及配对信息存储的地方,如果固件size变大,就要对这个地址做迁移,如果没有迁移则授权和配网信息会丢失)
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 25日 14:16
by Bryan Guo
一、您好,我看文档,是这样描述flash空间:
TLSR825x 系列芯片平台低功耗蓝牙的 SDK 采用双备份升级方案,固件分为两片区域。
• 第一片区域为 0x00000 - 0x2B000。(因为芯片内部原因,要预留 4K 的空间不使用)
• 第二片区域为 0x40000 – 0x6B000。(因为芯片内部原因,要预留 4K 的空间不使用)
留给用户区的区域为:
• 0x2C000 - 0x40000
• 0x71000 - 0x74000
• 0x78000 – 0x80000
二、我想把APP和OTA扩充到200K的空间,这样划分:
• 第一片区域为 0x00000 - 0x32000。(因为芯片内部原因,0x32000 ~ 0x33000要预留 4K 的空间不使用)
• 第二片区域为 0x39000 – 0x6B000。(因为芯片内部原因,0x6B000 ~ 0x6C000要预留 4K 的空间不使用)
留给用户区的区域为:
• 0x33000 - 0x39000
• 0x71000 - 0x74000
• 0x78000 – 0x80000
三、不修改BOARD_FLASH_TUYA_INFO_START_ADDR,默认还是0x6C000;
四、相关宏配置:
1) BOARD_FLASH_OTA_SIZE:
#ifndef BOARD_FLASH_OTA_SIZE
#define BOARD_FLASH_OTA_SIZE (0x32000) // default = 0x2B000
#endif
2) CODE1 区域(APP区域):
// program code address
#define CODE1_START_ADDR 0x00000
#define CODE1_STOP_ADDR (BOARD_FLASH_OTA_SIZE)
3) 用户参数区域:
#define USER1_DATA_START_ADDR (CODE1_STOP_ADDR+0x1000) // 0x33000
#define USER1_DATA_STOP_ADDR 0x39000
4) CODE2 区域(OTA区域):
#define CODE2_START_ADDR 0x39000
#define CODE2_STOP_ADDR (CODE2_START_ADDR + BOARD_FLASH_OTA_SIZE) // 0x6B000
5) TUYAOS 授权信息区域:
#ifndef BOARD_FLASH_TUYA_INFO_START_ADDR
#define BOARD_FLASH_TUYA_INFO_START_ADDR (0x6C000)
#endif
请帮我看下上面划分是否可行,主要是521K的flash是完整的一块吗?
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 25日 17:15
by Bryan Guo
ota_program_offset的值好像在库里写死了, ota_program_offset = 0x40000;
把现在把OTA开始地址的定义改成这样,不知道行不行,不再使用ota_program_offset。
SDK中的代码:
#ifndef BOARD_FLASH_OTA_START_ADDR
#define BOARD_FLASH_OTA_START_ADDR (ota_program_offset)
#endif
#ifndef BOARD_FLASH_OTA_END_ADDR
#define BOARD_FLASH_OTA_END_ADDR (ota_program_offset+ BOARD_FLASH_OTA_SIZE)
#endif
修改为:
#ifndef BOARD_FLASH_OTA_START_ADDR
#define BOARD_FLASH_OTA_START_ADDR (0x39000)
#endif
#ifndef BOARD_FLASH_OTA_END_ADDR
#define BOARD_FLASH_OTA_END_ADDR (BOARD_FLASH_OTA_START_ADDR + BOARD_FLASH_OTA_SIZE)
#endif
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 25日 18:07
by Bryan Guo
测试了一下,不行,OTA区域的开始地址好像必须是从0x40000开始才行,修改到0x39000行不通,OTA成功后直接挂了,程序跑不起来。
如果改动授权地址0x6C000,也只有16K空间,如果OTA要扩大到200K,后面要修改很多地方的地址,不方便。
这个SDK升级后空间越来越大,留给用户空间越来越小。不知道有没有可以裁剪的地方,裁剪小一点,多出30K的空间给用户。
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 25日 18:25
by jinyuan
- 日志占代码空间很多 ,测试OTA 的时候 ,固件有关日志吗?
- TUYA_SDK_TEST 相关的代码有删除吗?
- 主要还是要在业务逻辑上做优化,SDK 里面没有用到的能力 编译的时候也不会编译进去,有编译进去的大多也是必要的。
Re: [求助]tyos sdk 3.11.0 flash map
Posted: 2025年 Jul 28日 09:39
by Bryan Guo
多谢回答,后续只能裁剪应用和关闭log了,增加一点空间。