• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Добавить в UDK утилиту MemUsage

CHERTS

Moderator
Команда форума
Идея pvvx вполне понятна и логична, но к сожалению я не представляю как её можно организовать, тут даже дело не в моей UDK, а в принципах сборки прошивок с помощью gcc, в организации памяти и работы с ней у ESP, да во много, я подозреваю. Это Вам не linux, где можно подгрузить модуль ядра на ходу, использовать его функции, а потом выгрузить и освободить память.

P.S. Красивая картинка в TCP2UART, это уже новая web-морда?
 

pvvx

Активный участник сообщества
Идея pvvx вполне понятна и логична, но к сожалению я не представляю как её можно организовать, тут даже дело не в моей UDK, а в принципах сборки прошивок с помощью gcc, в организации памяти и работы с ней у ESP, да во много, я подозреваю. Это Вам не linux, где можно подгрузить модуль ядра на ходу, использовать его функции, а потом выгрузить и освободить память.
Ничё - как нить прорвемся, было бы на это время. Транслировать gcc в фиксированную память умеет... Архитектура чипа именно к этому располагает, с его ограничениями по памяти и организацией системы шин ALU к памяти...
P.S. Красивая картинка в TCP2UART, это уже новая web-морда?
Там много сменилось - а это на базе дизайна страниц от Algis
 
Последнее редактирование:

pvvx

Активный участник сообщества
Проще добавить в eptool.py
в конце
elif args.operation == 'elf2image':
сразу перед
elif args.operation == 'read_mac':
этот код
Код:
        print "{0:>10}|{1:>30}|{2:>12}|{3:>12}|{4:>8}".format("Section", "Description", "Start (hex)", "End (hex)", "Used space")   
        print "------------------------------------------------------------------------------"
        sec_name = ["data", "rodata", "bss", "text", "irom0_text"]
        sec_des = ["Initialized Data (RAM)", "ReadOnly Data (RAM)", "Uninitialized Data (RAM)", "Uncached Code (IRAM)", "Cached Code (SPI)"]
        sec_size = []
        for i in range(len(sec_name)):
         ss = e.get_symbol_addr('_' + sec_name[i] + '_start')
         se = e.get_symbol_addr('_' + sec_name[i] + '_end')
         sec_size.append(int(se-ss))
         print "{0:>10}|{1:>30}|{2:>12X}|{3:>12X}|{4:>8d}".format(sec_name[i], sec_des[i], ss, se, sec_size[i])
        print "------------------------------------------------------------------------------"
        print "{0} : {1:X} {2}()".format("Entry Point", image.entrypoint, args.entry_symbol)
        ram_used = sec_size[0] + sec_size[1] + sec_size[2]
        print "{0} : {1:d}".format("Total Used RAM", ram_used)
        print "{0} : {1:d}".format("Free RAM", 0x014000 - ram_used)
        print "{0} : {1:d}".format("Free IRam", 0x08000 - sec_size[3])
и не мучаться с запуском доп утилит (или "вынь" там или "пингвин")...

Полный, с исправлениями ошибок esptool.py и встроенным кодом указанным выше обычно тут:
https://github.com/pvvx/esp8266web/blob/master/esptool.py

Пример вывода:
Код:
   Section|                   Description| Start (hex)|   End (hex)|Used space
------------------------------------------------------------------------------
      data|        Initialized Data (RAM)|    3FFE8000|    3FFE858C|    1420
    rodata|           ReadOnly Data (RAM)|    3FFE8590|    3FFE9264|    3284
       bss|      Uninitialized Data (RAM)|    3FFE9268|    3FFEFF48|   27872
      text|          Uncached Code (IRAM)|    40100000|    40104C90|   19600
irom0_text|             Cached Code (SPI)|    40240000|    40271774|  202612
------------------------------------------------------------------------------
Entry Point : 40100078 call_user_start()
Total Used RAM : 32576
Free RAM : 49344
Free IRam : 13168
 
Последнее редактирование:

CHERTS

Moderator
Команда форума
Полный, с исправлениями ошибок esptool.py и встроенным кодом указанным выше обычно тут:
Хех, вот добавить бы эти исправления в официальный esptool.py... но его автор не сильно торопиться в принятии патчей
 

pvvx

Активный участник сообщества
Хех, вот добавить бы эти исправления в официальный esptool.py... но его автор не сильно торопиться в принятии патчей
А что в esptool.py осталось от начального варианта автора? Имя или ник? :)
Знаю - масса ошибок, исправленных другими.
 
Сверху Снизу