中
A
你好,用的什么协议栈,错误是sram在睡眠时需要保存的数据超了,参考对应协议栈的handbook把sram retention的大小改大。
这个.lst是定义OLED GARM[144][8]编译出来的,一旦大于8了,就会出现最开始问题所示的错误。然后我根据handbook把16k sram修改成32k sram发现程序有问题,请问一下详细的sram retention修改方法(sig mesh 的工程)?
@Soyo
u8 OLED_GRAM[144][8]; 是这样定义的,里面的值会改变,请问这个数组里值的改动为啥会和sram retention 联系上啊,注释掉这个数组相关的代码后就不会报错
我是在SIG MESH工程中加入oled的缓存数组后然后出现上图所示的报错,是否和这个有关?
你好,我用的是SIG MESH协议栈,参考对应的handbook发现会导致之前程序无法运行,请问一下具体的修改方法?
缓存数组是怎么修饰的呢,有没有加什么前缀,如果不需要改变值,用const。
是超sram的大小了,是否还有其他大数组呢,我测试在mesh_lpn工程下,定义u8 OLED_GRAM[144][65];这么大的数组才会超。还有能贴下编译bin文件夹的 工程名.lst文件的这部分吗?你可以看看你编译.bss段的大小
Sections: Idx Name Size VMA LMA File off Algn 0 .vectors 00000210 00000000 00000000 00008000 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .ram_code 00002b04 00000210 00000210 00008210 2**2 CONTENTS, ALLOC, LOAD, READONLY, CODE 2 .text 0001724c 00002d20 00002d20 0000ad20 2**4 CONTENTS, ALLOC, LOAD, READONLY, CODE 3 .rodata 000018e4 00019f6c 00019f6c 00021f6c 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 4 .data 0000022c 00843700 0001b850 0002b700 2**2 CONTENTS, ALLOC, LOAD, DATA 5 .bss 00004540 00843930 0001ba80 0002b930 2**4 ALLOC 6 .retention_bss 00000014 00847e70 0001ba7c 0002fe70 2**2 ALLOC 7 .TC32.attributes 00000010 00000000 00000000 0002b92c 2**0 CONTENTS, READONLY 8 .comment 0000001a 00000000 00000000 0002b93c 2**0 CONTENTS, READONLY SYMBOL TABLE:
数据自动放到retention区域了,在数据定义前缀加上_attribute_no_retention_data_或_attribute_no_retention_bss_就可以,但是休眠唤醒后数据会丢失,所以看看有啥不需要保存的数据都加上前缀,检查bss段的Size小于0x8000(32K)。
你好,用的什么协议栈,错误是sram在睡眠时需要保存的数据超了,参考对应协议栈的handbook把sram retention的大小改大。
这个.lst是定义OLED GARM[144][8]编译出来的,一旦大于8了,就会出现最开始问题所示的错误。然后我根据handbook把16k sram修改成32k sram发现程序有问题,请问一下详细的sram retention修改方法(sig mesh 的工程)?
@Soyo
@Soyo
u8 OLED_GRAM[144][8]; 是这样定义的,里面的值会改变,请问这个数组里值的改动为啥会和sram retention 联系上啊,注释掉这个数组相关的代码后就不会报错
@Soyo
我是在SIG MESH工程中加入oled的缓存数组后然后出现上图所示的报错,是否和这个有关?
@Soyo
你好,我用的是SIG MESH协议栈,参考对应的handbook发现会导致之前程序无法运行,请问一下具体的修改方法?
@Soyo
你好,用的什么协议栈,错误是sram在睡眠时需要保存的数据超了,参考对应协议栈的handbook把sram retention的大小改大。
这个.lst是定义OLED GARM[144][8]编译出来的,一旦大于8了,就会出现最开始问题所示的错误。然后我根据handbook把16k sram修改成32k sram发现程序有问题,请问一下详细的sram retention修改方法(sig mesh 的工程)?
@Soyo
@Soyo
u8 OLED_GRAM[144][8]; 是这样定义的,里面的值会改变,请问这个数组里值的改动为啥会和sram retention 联系上啊,注释掉这个数组相关的代码后就不会报错
@Soyo
我是在SIG MESH工程中加入oled的缓存数组后然后出现上图所示的报错,是否和这个有关?
@Soyo
你好,我用的是SIG MESH协议栈,参考对应的handbook发现会导致之前程序无法运行,请问一下具体的修改方法?
@Soyo
缓存数组是怎么修饰的呢,有没有加什么前缀,如果不需要改变值,用const。
是超sram的大小了,是否还有其他大数组呢,我测试在mesh_lpn工程下,定义u8 OLED_GRAM[144][65];这么大的数组才会超。还有能贴下编译bin文件夹的 工程名.lst文件的这部分吗?你可以看看你编译.bss段的大小
Sections:
Idx Name Size VMA LMA File off Algn
0 .vectors 00000210 00000000 00000000 00008000 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .ram_code 00002b04 00000210 00000210 00008210 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .text 0001724c 00002d20 00002d20 0000ad20 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
3 .rodata 000018e4 00019f6c 00019f6c 00021f6c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
4 .data 0000022c 00843700 0001b850 0002b700 2**2
CONTENTS, ALLOC, LOAD, DATA
5 .bss 00004540 00843930 0001ba80 0002b930 2**4
ALLOC
6 .retention_bss 00000014 00847e70 0001ba7c 0002fe70 2**2
ALLOC
7 .TC32.attributes 00000010 00000000 00000000 0002b92c 2**0
CONTENTS, READONLY
8 .comment 0000001a 00000000 00000000 0002b93c 2**0
CONTENTS, READONLY
SYMBOL TABLE:
数据自动放到retention区域了,在数据定义前缀加上_attribute_no_retention_data_或_attribute_no_retention_bss_就可以,但是休眠唤醒后数据会丢失,所以看看有啥不需要保存的数据都加上前缀,检查bss段的Size小于0x8000(32K)。