Page 1 of 1

【蓝牙】PHY6222资源优化

Posted: 2023年 Dec 22日 20:11
by 逻辑的院子

目前 TuyaOS BLE SDK V3.9.0 For PHY6222 的 Flash 分区图如下:

Image

上图中 0x11000 ~ 0x3C000 共172KB 的区域是应用程序代码存储区。其中 0x11000 ~ 0x20000 共 60KB 的区域是 Map to RAM 区域,这部分区域中的有效代码会在芯片上电后转移到 RAM 区域,以提高运行效率;而 0x20000 ~ 0x3C000 共 112KB 的区域是 XIP 区域,这部分区域中的有效代码在芯片上电后并不会直接转移到 RAM 区域。

通过分析 .hexf 格式的生产固件(如下图所示)可知:Map to RAM 区域仅占用了 0x05C34 = 23604 字节,其余空间并未使用。

Image

所以,我们可以通过修改 .\software\TuyaOS\.log\scatter_load.sct 文件将 Map to RAM 区域的空闲空间利用起来(如果使用vscode编译,请修改 \software\TuyaOS\vendor\phy6222_ble\toolchain\templates\keil\scatter_load.sct 文件):

修改

Code: Select all

……
LR_ROM_XIP  0x11020000 0x020000 {
  ER_ROM_XIP 0x11020000 0x020000  {  ; load address = execution address
……

Code: Select all

……
LR_ROM_XIP  0x11018000 0x024000 {
  ER_ROM_XIP 0x11018000 0x024000  {  ; load address = execution address
……

修改后增加了 0x8000 = 32768 字节可用 Flash 空间

修改后再次对工程进行全量编译,可以看到 .hexf 格式的生产固件中的空间分布为:

Image

因为并未修改 BootLoader 以及 OTA 备份区域的地址,所以此次优化不会影响 OTA 功能。


Re: 【蓝牙】PHY6222资源优化

Posted: 2023年 Dec 27日 15:56
by luzhihui

修改之后在vscode下一编译就变回0x11020000 0x020000
试了下修改此路径有效 software\TuyaOS\vendor\phy6222_ble\toolchain\templates\keil\scatter_load.sct


Re: 【蓝牙】PHY6222资源优化

Posted: 2023年 Dec 27日 16:05
by 逻辑的院子

如果使用vscode编译,请修改 \software\TuyaOS\vendor\phy6222_ble\toolchain\templates\keil\scatter_load.sct 文件


Re: 【蓝牙】PHY6222资源优化

Posted: 2023年 Dec 27日 16:06
by 逻辑的院子
luzhihui 2023年 Dec 27日 15:56

修改之后在vscode下一编译就变回0x11020000 0x020000
试了下修改此路径有效 software\TuyaOS\vendor\phy6222_ble\toolchain\templates\keil\scatter_load.sct

给你点赞!


Re: 【蓝牙】PHY6222资源优化

Posted: 2024年 Jun 28日 13:40
by luzhihui

请问这个修改有做过OTA验证吗?我现在遇到修改了推OTA设备就会自动复位;这个复位是刚开始OTA几秒就复位了。


Re: 【蓝牙】PHY6222资源优化

Posted: 2024年 Jun 28日 14:57
by luzhihui

Code: Select all


[14:49:16.145]收←◆[1719557356 ty I][tuya_ble_ota.c:490] ota_cmd_type: 0
[1719557356 ty I][tuya_ble_ota.c:491] ota_cmd_data 1:
00                                                      .


[14:49:18.280]收←◆SDK Version ID 00030103 
MAX_NUM_LL_CONN 1 , GATT_MAX_NUM_CONN 2
rfClk 0 rcClk 1 sysClk 1 tpCap[27 21]
sizeof(struct ll_pkt_desc) = 8, buf size = 268
sizeof(g_pConnectionBuffer) = 268, sizeof(pConnContext) = 644, sizeof(largeHeap)=3072 
[REST CAUSE] 1
 
[14:49:18.375]收←◆[0000000000 ty I][tuya_ble_protocol_callback.c:192] auth key 32:
66 73 31 52 4b 6f 65 4c 34 57 33 41 59 4e 46 53         fs1RKoeL4W3AYNFS
43 52 67 43 57 32 65 76 36 74 4f 46 6d 65 65 72         CRgCW2ev6tOFmeer

[0000000000 ty I][tuya_ble_protocol_callback.c:193] device id 16:
74 75 79 61 30 37 64 39 36 32 34 62 63 32 65 35         tuya07d9624bc2e5

Re: 【蓝牙】PHY6222资源优化

Posted: 2024年 Jun 28日 15:28
by luzhihui

测试了好像和这没关系,我改回去了,还是一样的。我现在是开发是在个人账户下,使用的开发模式,没有使用授权,升级是使用添加设备虚拟ID。升级就会复位,我没什么骚操作了啊。