【蓝牙】PHY6222资源优化

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


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

目前 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 功能。

luzhihui
Posts: 26

Re: 【蓝牙】PHY6222资源优化

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

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

Re: 【蓝牙】PHY6222资源优化

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

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

Re: 【蓝牙】PHY6222资源优化

luzhihui 2023年 Dec 27日 15:56

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

给你点赞!

Post Reply