1)开发包全称:PHY6222_TUYAOS_3.9.0 烧录软件:PhyPlusKit_v2.5.2a
2)固件烧录时 第12个part 起始地址是0x1103C000,官方有介绍APP172K的起始地址是0X11000-0X3C000,这不是超过区域了吗?我出现的问题是用户存储数据起始刚好是0X3C000开始,然后烧录固件上电就不停的复位,我把存储区改到0X4C000就正常了。
[求助]【tuyaos】PHY6222 固件烧录part的地址问题
[求助]【tuyaos】PHY6222 固件烧录part的地址问题
Tags:
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
如果说“固件烧录时 第12个part 起始地址是0x1103C000”,那说明您的固件大小已经超出了范围,建议您按照教程文档(https://www.tuyaos.com/viewtopic.php?t=12)将演示代码和Log关掉,或者优化您应用层的代码。
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
但是实际我看生成的map文件,我的固件大小只有136.8啊,不是说可使用的是172吗?
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
那为什么没占满呢,跟代码有什么关系吗
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
据了解跟芯片原厂的代码分布有关系,原厂将代码分为两部分,0x11000 ~ 0x20000为“Map to RAM”区域,是说这部分代码上电后会搬到RAM区域运行,因为RAM最大64KB,所以这块区域预留了60KB,0x20000 ~ 0x3C000为“XIP”区域,也就是我们常见的普通Flash区域,参考原厂提供的分区图可以看出上述信息:
应用层的代码默认都是放到“XIP”区域的,所以有时候会导致你目前遇到的这种情况,建议实际产品将以下几个宏关闭,可以节约很多代码空间:
Code: Select all
#define ENABLE_LOG 0
#define BOARD_ENABLE_LOG 0
#define TUYA_SDK_TEST 0
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
官方文档介绍的说明里面0x11000-0x3C000这172K的空间是app使用的flash区,而其中0x11000-0x20000这60K是预留了60k,实际我们能使用的只有112K的flash空间,而其中涂鸦与原厂SDK所占用的又103K,能供开发者使用的就只有9K的flash,这个大小随便写点东西就超了;
超了不要紧,后面还有unused区的80K可以使用,但是超了之后会不会影响到设备OTA?
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
- 根据你的截图:0x11000 ~ 0x20000这块区域是占用了0x6094 = 24724字节空间的,这部分也是总的Flash的一部分;
- unused区的80K可以使用,使用的前提是OTA部分也要增加同样大小的空间,Flash分区要平移一下;
- 你描述的空间是关闭了上述三个宏之后的计算结果吗?如果不是,请先关闭上述三个宏,计算出的空间才是实际需要的空间,如果关闭了还不够,再考虑使用unused区域;
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
好的,就算超了也是有办法通过平移扇区来保证OTA的是吧?
Re: [求助]【tuyaos】PHY6222 固件烧录part的地址问题
理论上可以,不过用得不多,能用前面提到的办法解决是最好的