Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Баги/глюки/проблемы в каком-то конкретном примере из пакета Sming

Тема в разделе "Sming Open Source Framework", создана пользователем JustACat, 23 мар 2015.

  1. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Если вы нашли/столкнулись с каким-либо багом/ошибкой в каком-то конкретном примере из пакета Sming - что-то не компилируется, не собирается, некорректно функционирует. Тогда постарайтесь описать эту проблему в данной теме.

    - Старайтесь быть краткими и четко формулировать мысль.
    - Опишите, что вы делали, когда обнаружили ошибку.
    - Приложите по возможности логи/скриншоты (под Спойлер), куски кода (под Спойлер и в тег Код).
    - Опишите, на каком железе (версию модуля и прочее) вы тестируете.
    - Постарайтесь привести схему подключения (если уместно и под Спойлер).

    Внимание: оффтоп будет удаляться, пожалуйста, придерживайтесь темы! Спасибо!
     
  2. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    FTP пока еще работает не очень стабильно.

    Что я делаю:

    - Запускаю пример HttpServer_Bootstrap, он работает, все нормально.

    - Запускаю немного переделанный пример FtpServer_Files, подключаюсь к FTP. Вижу три файла от HTTP сервера, но, например, скопировать их на компьютер не получается. Получается удалить, но не всегда. Бывает, два файла удаляется, а третий нет. Бывает, что после удаления третьего файла перестает читаться содержимое диска модуля, по таймауту рвется соединение. Один раз файлы после попытки их удаления стали отображаться размером 4294967295 байт... Использую Total Commander.

    Папки вообще не создаются.
     
  3. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    А spiffs и не поддерживает папки, так что не удивительно :) И, думаю, в нем и еще куча ограничений, но для mbed вполне себе!
     
  4. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    aloika, какие ошибки в логе? Пробовали ли отформатировать файловую систему перед началом тестирования?

    P.S. Папок в файловой системе нет физически, это правда.
     
  5. aloika

    aloika Активный участник сообщества

    Сообщения:
    367
    Симпатии:
    25
    Начинаем с отформатированной ФС.

    - Загружаем пример FtpServer_Files. На диске 2 файла.
    - удаляем один файл - все нормально
    - удаляем второй файл - Тотал коммандер задумывается секунд на 30 и разрывает соединение по таймауту.

    Можно снова соединиться, но там уже пойдут какие-то глюки, надо форматировать.

    еще раз:

    - Загружаем пример FtpServer_Files, вставляем туда в начало команду форматирования. На диске два файла.
    - скидываем туда еще пару-тройку файлов - нормально.
    - удаляем один файл - все нормально
    - удаляем второй файл - нормально
    - ...
    - удаляем (n-1)-й файл - нормально
    - удаляем последной файл - Тотал коммандер задумывается секунд на 30 и разрывает соединение по таймауту.

    Т.е. проблема как минимум при удалении последнего файла с ФС.

    Про папки да, глупость сказал :)

    Лог терминала (раскрыть)

    Код (Text):
    1. Terminal log file
    2. Date: 26.03.2015 - 23:21:55
    3. -----------------------------------------------
    4. DELE: 'data.bin'
    5. > 250 OK
    6.  
    7. TCP connection send: 8 (8)
    8. PORT: '10,0,0,5,241,18'
    9. connection to: 10.0.0.5, 61714
    10. > 200 OK
    11.  
    12. TCP connection send: 8 (8)
    13. LIST: ''
    14. +TCP connection
    15. TcpConnection::connect result:, 0
    16. > 150 Connecting
    17.  
    18. TCP connection send: 16 (16)
    19. OnConnected
    20. timeout updating: 70 -> 300
    21. TCP connected
    22. TCP connection send: 48 (48)
    23. TCP connection closing
    24. > 226 Transfer Complete.
    25.  
    26. TCP connection send: 24 (24)
    27. TCP sent: 48
    28. ~TCP connection
    29. -TCP connection
    30. DELE: 'example.txt'
    31. > 250 OK
    32.  
    33. TCP connection send: 8 (8)
    34. PORT: '10,0,0,5,241,23'
    35. connection to: 10.0.0.5, 61719
    36. > 200 OK
    37.  
    38. TCP connection send: 8 (8)
    39. LIST: ''
    40. +TCP connection
    41. TcpConnection::connect result:, 0
    42. > 150 Connecting
    43.  
    44. TCP connection send: 16 (16)
    45. OnConnected
    46. timeout updating: 70 -> 300
    47. TCP connected
    48. TCP connection closed by timeout: 300 (from 300)
    49. TCP connection closing
    50. ~TCP connection
    51. -TCP connection
    52. TCP connection error: -11
    53. ~TCP connection
    54. onAccept state: 0 K=0
    55. Free heap size=32136, K=0
    56. +TCP connection
    57. timeout updating: 70 -> 900
    58. TCP connection send: 26 (26)
    59. USER: 'me'
    60. > 331 OK
    61.  
    62. TCP connection send: 8 (8)
    63. PASS: '123'
    64. checkUser: me 123
    65. > 230 OK
    66.  
    67. TCP connection send: 8 (8)
    68. SYST: ''
    69. > 215 Windows_NT: Sming Framework
    70.  
    71. TCP connection send: 33 (33)
    72. FEAT: ''
    73. > 502 Not supported
    74.  
    75. TCP connection send: 19 (19)
    76. HELP: 'SITE'
    77. > 502 Not supported
    78.  
    79. TCP connection send: 19 (19)
    80. CWD: '/'
    81. > 250 OK
    82.  
    83. TCP connection send: 8 (8)
    84. PWD: ''
    85. > 257 "/"
    86.  
    87. TCP connection send: 9 (9)
    88. TYPE: 'A'
    89. > 250 OK
    90.  
    91. TCP connection send: 8 (8)
    92. PORT: '10,0,0,5,241,149'
    93. connection to: 10.0.0.5, 61845
    94. > 200 OK
    95.  
    96. TCP connection send: 8 (8)
    97. LIST: ''
    98. +TCP connection
    99. TcpConnection::connect result:, 0
    100. > 150 Connecting
    101.  
    102. TCP connection send: 16 (16)
    103. OnConnected
    104. timeout updating: 70 -> 300
    105. TCP connected
    106. ABOR: ''
    107. > 502 Not supported
    108.  
    109. TCP connection send: 19 (19)
    110. TCP received: (null)
    111. TCP connection closing
    112. -TCP connection
    113. ~TCP connection
    114.  
    115. -----------------------------------------------
    116. Date: 26.03.2015 - 23:23:07
    117. End log file
    118.  
     
    JustACat нравится это.
  6. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Вот бы все баг репорты были такими содержательными емкими и последовательными :) aloika, большое спасибо. Баг исправлен.

    Update: И добавлено кое-что вкусное, сейчас в основной ветке отпишусь подробнее.
     
    Последнее редактирование модератором: 27 мар 2015
    JustACat нравится это.
  7. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Не собирается у меня каменный цветок FtpServer_Files:
    Лог (раскрыть)

    Код (Text):
    1. 06:16:20 **** Build of configuration Default for project FtpServer_Files ****
    2. mingw32-make.exe -f C:/Sming/FtpServer_Files/Makefile all
    3. C+ ../Sming/system/stringconversion.cpp
    4. CC ../Sming/system/flashmem.c
    5. C+ ../Sming/system/esp_cplusplus.cpp
    6. C+ ../Sming/Wiring/WShift.cpp
    7. C+ ../Sming/Wiring/WMath.cpp
    8. C+ ../Sming/Wiring/SplitString.cpp
    9. C+ ../Sming/Wiring/WString.cpp
    10. C+ ../Sming/Wiring/Stream.cpp
    11. C+ ../Sming/Wiring/Print.cpp
    12. C+ ../Sming/Wiring/I2cMaster.cpp
    13. C+ ../Sming/Wiring/IPAddress.cpp
    14. C+ ../Sming/SmingCore/SPI.cpp
    15. C+ ../Sming/SmingCore/HardwareSerial.cpp
    16. C+ ../Sming/SmingCore/DataSourceStream.cpp
    17. C+ ../Sming/SmingCore/Wire.cpp
    18. C+ ../Sming/SmingCore/Clock.cpp
    19. C+ ../Sming/SmingCore/PWM.cpp
    20. C+ ../Sming/SmingCore/Digital.cpp
    21. C+ ../Sming/SmingCore/Interrupts.cpp
    22. C+ ../Sming/SmingCore/ESP8266EX.cpp
    23. C+ ../Sming/SmingCore/FileSystem.cpp
    24. C+ ../Sming/SmingCore/Timer.cpp
    25. C+ ../Sming/SmingCore/Network/HttpServerConnection.cpp
    26. C+ ../Sming/SmingCore/Network/FTPServer.cpp
    27. In file included from ../Sming/SmingCore/Network/FTPServer.cpp:12:0:
    28. ../Sming/SmingCore/Network/FTPServerConnection.h: In member function 'virtual bool FTPServer::onCommand(String, String, FTPServerConnection&)':
    29. ../Sming/SmingCore/Network/FTPServerConnection.h:34:15: error: 'virtual void FTPServerConnection::response(int, String)' is protected
    30.   virtual void response(int code, String text = "");
    31.                ^
    32. ../Sming/SmingCore/Network/FTPServer.cpp:51:63: error: within this context
    33.    connection.response(200, "File system successfully formated");
    34.                                                                ^
    35. C:/Sming/FtpServer_Files/Makefile:329: recipe for target 'out/build/../Sming/SmingCore/Network/FTPServer.o' failed
    36. mingw32-make.exe: *** [out/build/../Sming/SmingCore/Network/FTPServer.o] Error 1
    37.  
    38. 06:16:24 Build Finished (took 4s.888ms)


    Перенес пока
    Код (C):
    1. virtual void response(int code, String text = "");
    в public секцию в FTPServerConnection.h и все собралось... Но что-то мне подсказывает, что это не совсем правильное решение :-Р Ведь не зря же автор ее в protected кинул изначально :)

    Чичас буду тестировать...

    Update:
    Первое, с чем столкнулся при подключении :)
    Could not retrieve directory listing
    Passive mode not supported

    Ну тут все понятно, переключился в Active :), зашлось на FTP увидел там файло:
    /bootstrap.css.gz
    /data.bin
    /example.txt
    /index.html
    /jquery.js.gz

    Получить, отредактировать и сохранить обратно, а потом снова получить /example.txt вышло сразу.
    А вот /bootstrap.css.gz не прокатило. Предполагаю, что оно осталось в файловой системе от старого примера, и файловая повреждена.
    В UART при этом попало нечто такое:
    Раскрыть Спойлер
    TCP connection send: 8 (8)

    RETR: 'bootstrap.css.gz'

    +TCP connection

    TcpConnection::connect result:, 0

    > 150 Connecting



    TCP connection send: 16 (16)

    OnConnected

    timeout updating: 70 -> 300

    TCP connected

    > 250 Transfer started



    TCP connection send: 22 (22)

    read errno -10004


    TCP connection failed with err -1 ("")

    > 250 Transfer started



    TCP connection send: 22 (22)

    read errno -10004


    TCP connection failed with err -1 ("")

    > 250 Transfer started



    TCP connection send: 22 (22)

    read errno -10004


    Чтож, щас отформатим и попробуем. Запустил fsformat:
    Раскрыть Спойлер
    fsformat: ''

    sect_first: 44, sect_last: 7c


    fs.start:40244000, size:224 Kb


    First init file system

    sect_first: 44, sect_last: 7c


    mount res: 0


    > 200 File system successfully formated



    TCP connection send: 39 (39)


    Диск стал девственно чист :)

    Залил на него пару jpg файлов, общим размером 126 338 байт. Залилось, как на мой взгляд, мгновенно!
    Отключил питание. Кстати, при отключении питания в терминал успело прилететь некое:
    Fatal exception (0): икракозябрытутвсякие

    Не знаю, на сколько это плохо.

    Включаю. Все снова завелось. Подключаюсь к FTP, на диске нахожу кроме своих, еще файлы (пару, ну те, которые прописаны в примере и создались при запуске):
    /790940ESP12SCHEM.jpg
    /data.bin
    /esp-12.jpg
    /example.txt

    Скачиваю обратно пару своих файлов - скачка идет медленнее, чем загрузка, секунды 23 заняло (загрузка произошла мгновенно).
    WinMerge сказал, что файлы идентичны, то есть те, что я загружал, идентичны тем, что я получил обратно.
    Одно но: файл 790940ESP12SCHEMA.jpg был переименован в 790940ESP12SCHEM.jpg - одной буковки A не хватает. Видимо, ограничение на длину имени файла.
    Еще, как я понял, время создания/модификации не сохраняется, у меня у всех файлов пишет 01.01.2015 в 1:00

    Пробую удалить файл:
    790940ESP12SCHEM.jpg
    И неудача:
    Раскрыть Спойлер
    DELE: '/790940ESP12SCHEM.jpg'

    > 550 FAIL



    TCP connection send: 10 (10)

    Несколько повторных попыток: и ESP перезагрузился :(
    С другими файлами та же беда: скачать, изменить - пожалуйста. Удалить - ошибка.

    Переименовать тоже не выходит, но там проще:
    Раскрыть Спойлер
    RNFR: '/example.txt'

    > 502 Not supported


    Для справки: использовал клиент WinSCP (в нем тоже можно команды слать, да и вообще он мне последнее время для FTP, SFTP и прочего больше нравится, чем TotalCommander).
    Попробую ка в TotalCommander:
    - переименовать он тоже не дал, ну понятно - not supported
    - а вот удалить через него вышло:
    Раскрыть Спойлер
    DELE: '790940ESP12SCHEM.jpg'

    > 250 OK

    Видно, что TC посылает команду на удаление без слеша в имени, а WinSCP со слешем - думаю, это нужно предусмотреть.

    Пока что все, что нашел :)
     
    Последнее редактирование: 27 мар 2015
  8. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Перекрестно, отсюда.
    В примере HttpServer_Bootstrap, если нагрузку вешать не на GPIO0, а на GPIO2 (именно 2, некоторые другие проверил - там в норме), то напряжение на нем дергается в диапазоне 3-3,3В с некоторой периодичностью. Очень похоже, на параллельный опрос каким-то другим протоколом (скорее всего i2c, там GPIO2 по-моему используется по умолчанию). Т.е. стоит предусмотреть отключение дублирующих действий для GPIO, используемых в SDK и переназначенных в Sming-е.
     
  9. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    А в этот момент что-то ещё используется/инициализируется?
     
  10. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Нет, голый пример, с тремя изменениями - SSID, пароль и GPIO2. Отключал нагрузку (тестером голую лапку измерял) и USB-UART. Дергается.
    Изменил на GPIO13 (вот сейчас) - USB-UART подключен, диод на GPIO - все ровно. Т.е. вопрос именно с GPIO2 (может еще с какими-то, абсолютно все не проверял). Плюс сам сервер периодически перегружается (обнуляется счетчик на странице). SPI-flash - 128я, предварительно заливал однофайловую прошивку с бутлоадером 1.3b
     
  11. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    А напряжение питания не дергается случаем?
    Просто я например когда запитывал еспшку с матрицами с выхода ft232 модуля (от юсб запитанного), так постоянно просаживалось на входе напряжение, диодик подключал явно видно было как блымает периодически, кондер в 470мФ на питалово помог но не особо, ток не замерял. После пересадки на аккум от мобилки блымать переставало.
     
  12. shaman1010

    shaman1010 Читатель

    Сообщения:
    128
    Симпатии:
    14
    Нет, напряжение стабильно до третьего знака. Плюс - на нескольких проверенных других GPIO мерцания нет. Т.е. мне кажется явно программное "дерганье".
     
  13. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Закомитил обновление.

    JustACat, спасибо за помощь, попробуйте пожалуйста снова, у меня сейчас нет под рукой модуля чтобы протестировать мои исправления.

    shaman1010, странно, честно говоря пока не понимаю. До явного вызова begin() никакие классы не должны взаимодействовать с GPIO. инициализация прошла успешно, остальной код весь работает? (просто бутлоадер вполне может вести себя так).
     
  14. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Очень вовремя, начал собирать наткнулся на багу в FTPServer с инкапсуляцией связанную, обновился, пропала, но вылезла другая:

    C+ Libraries/OneWire/OneWire.cpp
    AR out/build/app_app.a
    LD out/build/app.out
    out/build/app_app.a(System.o): In function `Vector<ISystemReadyHandler*>::addElement(ISystemReadyHandler* const&)':
    C:\projects\electronic\esp8266\projects.git\Sming\Sming/SmingCore/Platform/../../Wiring/WVector.h:237: undefined reference to `system_get_cpu_freq'
    C:\projects\electronic\esp8266\projects.git\Sming\Sming/SmingCore/Platform/../../Wiring/WVector.h:237: undefined reference to `system_get_cpu_freq'
     
  15. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    А какая у Вас версия Espressif SDK?
     
  16. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Последнюю UDK только вот поставил

    И в нем кстати в папке ld в отличие от 0.9.5 нет файлика eagle.app.v6.cpp.ld
     
    Последнее редактирование: 27 мар 2015
  17. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Это ведь СДК 1.0?
    На нем, по идее, должно работать.
    Если ничего не получиться можно временно запоминтировать обращение к этой функции.
     
  18. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Судя по релизнотам в UDK - да.
    UDK 2.0, в нем SDK 1.0

    в user_interface.h эта ф-я описана, не подскажете, где оно пытается искать ее реализацию, а то я малость еще чайник в сях :) ?

    С 0.95 сдк тож вылетело, но в отличие от 1.0 нормально показало место ошибки реальное.
    Вобщем пока в System.cpp захардкодил

    CpuFrequency SystemClass::getCpuFrequency()
    {
    return eCF_80MHz;// (CpuFrequency)system_get_cpu_freq();
    }

    собралось и на 0.95 и на 1.0
     
    Последнее редактирование: 27 мар 2015
  19. anakod

    anakod Moderator Команда форума

    Сообщения:
    314
    Симпатии:
    100
    Лучше поиском. Где-то в System.cpp.
     
  20. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    В System.cpp вызов со стороны сминга, а реализация должна быть где-то на низко-низком уровне в сдк эспрессифа
     

Поделиться этой страницей