pvvx
Активный участник сообщества
Счас не слежу - дача, дети и всё такое... Какой комп летом, если оно у нас короткое?@pvvx, тут вот обновление 1.5.4 у китайцев вышло, случайно не смотрели, есть в нем что-нибудь стоящее?
--------
SDK 1.5.4 на тестовом (неизменном у меня с 1.1.1) примере IoT_Demo:
Различия по используемой памяти для примера IoT_Demo
Код:
В SDK 1.1.1:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8D80| 3456
rodata| ReadOnly Data (RAM)| 3FFE8D80| 3FFE9F70| 4592
bss| Uninitialized Data (RAM)| 3FFE9F70| 3FFF4378| 41992
text| Cached Code (IRAM)| 40100000| 40107466| 29798
irom0_text| Uncached Code (SPI)| 40240000| 4026DD3C| 187708
Total Used RAM : 50040
Free RAM : 31880
Free IRam : 2988
В SDK 1.1.2:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8D80| 3456
rodata| ReadOnly Data (RAM)| 3FFE8D80| 3FFE9F74| 4596
bss| Uninitialized Data (RAM)| 3FFE9F78| 3FFF4388| 42000
text| Cached Code (IRAM)| 40100000| 401074AA| 29866
irom0_text| Uncached Code (SPI)| 40240000| 4026DEEC| 188140
Total Used RAM : 50052
Free RAM : 31868
Free IRam : 2920
В SDK 1.2.0:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8D70| 3440
rodata| ReadOnly Data (RAM)| 3FFE8D70| 3FFE9F1C| 4524
bss| Uninitialized Data (RAM)| 3FFE9F20| 3FFF43E8| 42184
text| Cached Code (IRAM)| 40100000| 40106DEA| 28138
irom0_text| Uncached Code (SPI)| 40240000| 4026F78C| 194444
Total Used RAM : 50148
Free RAM : 31772
Free IRam : 4648
Другая оптимизация:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE905C| 4188
rodata| ReadOnly Data (RAM)| 3FFE9060| 3FFEAA94| 6708
bss| Uninitialized Data (RAM)| 3FFEAA98| 3FFF30E0| 34376
text| Cached Code (IRAM)| 40100000| 401071AA| 29098
irom0_text| Uncached Code (SPI)| 40240000| 40279E1C| 237084
Total Used RAM : 45272
Free RAM : 36648
Free IRam : 3688
В SDK 1.2.0 (all patch):
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8C2C| 3116
rodata| ReadOnly Data (RAM)| 3FFE8C30| 3FFEA6D4| 6820
bss| Uninitialized Data (RAM)| 3FFEA6D8| 3FFF2D28| 34384
text| Cached Code (IRAM)| 40100000| 40105717| 22295
irom0_text| Uncached Code (SPI)| 40240000| 4027A5F8| 239096
Total Used RAM : 44320
Free RAM : 37600
Free IRam : 10491
В SDK 1.3.0:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8A3C| 2620
rodata| ReadOnly Data (RAM)| 3FFE8A40| 3FFEA1AC| 5996
bss| Uninitialized Data (RAM)| 3FFEA1B0| 3FFF22A8| 33016
text| Cached Code (IRAM)| 40100000| 401056A3| 22179
irom0_text| Uncached Code (SPI)| 40240000| 4027B8C0| 243904
Total Used RAM : 41632
Free RAM : 40288
Free IRam : 10607
В SDK 1.4.0:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8778| 1912
rodata| ReadOnly Data (RAM)| 3FFE8778| 3FFE94E8| 3440
bss| Uninitialized Data (RAM)| 3FFE94E8| 3FFF1630| 33096
text| Cached Code (IRAM)| 40100000| 40105A67| 23143
irom0_text| Uncached Code (SPI)| 40240000| 40274908| 215304
Total Used RAM : 38448
Free RAM : 43472
Free IRam : 9643
В SDK 1.5.0:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8778| 1912
rodata| ReadOnly Data (RAM)| 3FFE8778| 3FFE9504| 3468
bss| Uninitialized Data (RAM)| 3FFE9508| 3FFF0E90| 31112
text| Cached Code (IRAM)| 40100000| 40105B7B| 23419
irom0_text| Uncached Code (SPI)| 40240000| 40275778| 219000
Total Used RAM : 36492
Free RAM : 45428
Free IRam : 9367
В SDK 1.5.1:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8778| 1912
rodata| ReadOnly Data (RAM)| 3FFE8780| 3FFE9514| 3476
bss| Uninitialized Data (RAM)| 3FFE9518| 3FFF0E80| 31080
text| Cached Code (IRAM)| 40100000| 40105B97| 23447
irom0_text| Uncached Code (SPI)| 40240000| 40275788| 219016
Total Used RAM : 36468
Free RAM : 45452
Free IRam : 9339
В SDK 1.5.2:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8778| 1912
rodata| ReadOnly Data (RAM)| 3FFE8780| 3FFE9514| 3476
bss| Uninitialized Data (RAM)| 3FFE9518| 3FFF0E80| 31080
text| Cached Code (IRAM)| 40100000| 40105D53| 23891
irom0_text| Uncached Code (SPI)| 40240000| 402758B8| 219320
Total Used RAM : 36468
Free RAM : 45452
Free IRam : 8895
В SDK 1.5.4:
Section| Description| Start (hex)| End (hex)|Used space
------------------------------------------------------------------------------
data| Initialized Data (RAM)| 3FFE8000| 3FFE8778| 1912
rodata| ReadOnly Data (RAM)| 3FFE8780| 3FFE9518| 3480
bss| Uninitialized Data (RAM)| 3FFE9518| 3FFF0E80| 31080
text| Cached Code (IRAM)| 40100000| 4010637B| 25467
irom0_text| Uncached Code (SPI)| 40240000| 402762A8| 221864
Total Used RAM : 36472
Free RAM : 45448
Free IRam : 7319
irom0_text (код в flash) - стало доступно меньше на 2544 байта по сравнению c 1.5.2
Heap до инициализации SDK - стало доступно меньше на 4 байта по сравнению c 1.5.2
system_deep_sleep_local_2() не исправлена. Стало ещё хуже:
Код:
void system_deep_sleep_local_2(void)
{
.....
Cache_Read_Disable();
.....
struct rst_info rst_info;
ets_memset(rst_info, 0, sizeof(rst_info));
rst_info.reason = REASON_DEEP_SLEEP_AWAKE;
system_rtc_mem_write(0, &rst_info, sizeof(rst_info));
IO_RTC_2 = 1<<20; // rtc_enter_sleep() HWREG(PERIPHS_RTC_BASEADDR, 0x08) = 0x100000;
}
----------
В асм:
----------
call0 40101634 <system_rtc_mem_write>
l32r a8, 40100530 <wdt_feed+0x168>
memw
l32r a9, 4010020c <NmiTimSetFunc+0x20>
l32i.n a0, a1, 28
addi a1, a1, 32
s32i a8, a9, 0x108 // IO_RTC_2 = 1<<20; // срабатывает с задержкой много тактов CPU !
ret.n // уход CPU в пустую отключенную "кеш" и "протектед" вместо записанного кода rst_info.reason = REASON_DEEP_SLEEP_AWAKE :)
Наверно это всё.
Последнее редактирование: