[求助]【tuyaos】PHY6222 固件烧录part的地址问题

蓝牙 BLE设备、蓝牙 MESH设备、蓝牙 Beacon设备、Sub-G设备等


Post Reply
luzhihui
Posts: 26

1)开发包全称:PHY6222_TUYAOS_3.9.0 烧录软件:PhyPlusKit_v2.5.2a
2)固件烧录时 第12个part 起始地址是0x1103C000,官方有介绍APP172K的起始地址是0X11000-0X3C000,这不是超过区域了吗?我出现的问题是用户存储数据起始刚好是0X3C000开始,然后烧录固件上电就不停的复位,我把存储区改到0X4C000就正常了。

112222.png
11111.png
Last edited by luzhihui on 2023年 Dec 27日 15:51, edited 1 time in total.

Tags:
User avatar
逻辑的院子
Posts: 220
Contact:

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

如果说“固件烧录时 第12个part 起始地址是0x1103C000”,那说明您的固件大小已经超出了范围,建议您按照教程文档(https://www.tuyaos.com/viewtopic.php?t=12)将演示代码和Log关掉,或者优化您应用层的代码。

luzhihui
Posts: 26

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

但是实际我看生成的map文件,我的固件大小只有136.8啊,不是说可使用的是172吗?

User avatar
逻辑的院子
Posts: 220
Contact:

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

从上面的截图可以看到:NO.4区域并没有占满

luzhihui
Posts: 26

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

那为什么没占满呢,跟代码有什么关系吗

User avatar
逻辑的院子
Posts: 220
Contact:

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

据了解跟芯片原厂的代码分布有关系,原厂将代码分为两部分,0x11000 ~ 0x20000为“Map to RAM”区域,是说这部分代码上电后会搬到RAM区域运行,因为RAM最大64KB,所以这块区域预留了60KB,0x20000 ~ 0x3C000为“XIP”区域,也就是我们常见的普通Flash区域,参考原厂提供的分区图可以看出上述信息:

Image

应用层的代码默认都是放到“XIP”区域的,所以有时候会导致你目前遇到的这种情况,建议实际产品将以下几个宏关闭,可以节约很多代码空间:

Code: Select all

#define ENABLE_LOG 0
#define BOARD_ENABLE_LOG 0
#define TUYA_SDK_TEST 0
sandia
Posts: 61

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

官方文档介绍的说明里面0x11000-0x3C000这172K的空间是app使用的flash区,而其中0x11000-0x20000这60K是预留了60k,实际我们能使用的只有112K的flash空间,而其中涂鸦与原厂SDK所占用的又103K,能供开发者使用的就只有9K的flash,这个大小随便写点东西就超了;
超了不要紧,后面还有unused区的80K可以使用,但是超了之后会不会影响到设备OTA?

User avatar
逻辑的院子
Posts: 220
Contact:

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

  1. 根据你的截图:0x11000 ~ 0x20000这块区域是占用了0x6094 = 24724字节空间的,这部分也是总的Flash的一部分;
  2. unused区的80K可以使用,使用的前提是OTA部分也要增加同样大小的空间,Flash分区要平移一下;
  3. 你描述的空间是关闭了上述三个宏之后的计算结果吗?如果不是,请先关闭上述三个宏,计算出的空间才是实际需要的空间,如果关闭了还不够,再考虑使用unused区域;
sandia
Posts: 61

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

好的,就算超了也是有办法通过平移扇区来保证OTA的是吧?

User avatar
逻辑的院子
Posts: 220
Contact:

Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题

理论上可以,不过用得不多,能用前面提到的办法解决是最好的

Post Reply