• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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 осталось от начального варианта автора? Имя или ник? :)
Знаю - масса ошибок, исправленных другими.
 
Сверху Снизу