Это не ошибка программиста, стек универсален и действительно хорош. Это связано с архитектурой процессора при обращении к памяти, и на других процессорах корректировка программы может и не потребоваться. Это надо учитывать при разработке программ, как пишет автор обнаруживший это под нынешние (ARM, MIPS & like cores), чтобы не было неожиданности. Как например, придя обнаружить ворота гаража открытыми, потому что esp на миг сошел с ума, к чему мы все тут так или иначе стремимся, чтобы все было по уму.2006 год... круто...
Используйте любое число, не совпадающее с имеющимися. Это ID номер, по которому ищется блок в записях.что обозначают числа после определений, и как мне вставить свой блок данных и какое число присвоить, чтоб не нарушить нормальную работу, проект esp8266web-0.6.2, желательно объяснить как для "чайника"
Операнд там байтовый и с данным процессором там не должно быть проблем - тип памяти, где находится блок позволяет байтовое обращение, что для ARM, что для L106...Это не ошибка программиста, стек универсален и действительно хорош. Это связано с архитектурой процессора при обращении к памяти, и на других процессорах корректировка программы может и не потребоваться. Это надо учитывать при разработке программ, как пишет автор обнаруживший это под нынешние (ARM, MIPS & like cores), чтобы не было неожиданности.
При включенной подстройке модуль отваливается и при +25. Достаточно рядом включиться другому устройству c WiFi...Похоже подстройка частоты [112] в каком-то виде нужна.
При -30 модуль отвалился с концами.
Спасибо, посмотрел где используется, к таким же выводам пришел.Используйте любое число, не совпадающее с имеющимися. Это ID номер, по которому ищется блок в записях.
В принципе данный ID и размер блока является полным идентификатором сохраненного объекта...Спасибо, посмотрел где используется, к таким же выводам пришел.
Не знаю с чем связано, чекбокс по сбросу параметров по пину убираю при настройке, но уже второй раз с утра слетают настройки, точнее не понятно или настройки или программа, приходится перепрошивать и настраивать пароли и все настройки wi-fi, есть ли возможность выгрузить из esp блок с уже настроенными параметрами и потом загрузить отдельно?В принципе данный ID и размер блока является полным идентификатором сохраненного объекта...
Если "(исключение доступа к памяти)" то это перезагрука модуля.Не знаю, правильно-ли я понимаю из исправления эту ситуацию. Обращение производится к 16 битным данным. И если первый пакет был нечетным, то возникает отказ выравнивания (исключение доступа к памяти). В моем случае возвращался вдвое меньший буфер.
Все добавил, но что-то у меня не сохраняет, и загрузка успешная, а на деле ничего не меняется. При сохранении настроек создался файл 4 Mb, правда перед этим я его добавил, переименовав один из существующих bin файлов, так и должно быть, или я где-то накосячил?@Urbas81, сохранение/восстановление настроек у меня тут сделано: WirelessCO2_esp8266/web_srv.c at master · vad7/WirelessCO2_esp8266 · GitHub
Добавляется в htm такое: WirelessCO2_esp8266/setmeter.htm at master · vad7/WirelessCO2_esp8266 · GitHub
Ошибка не фатальная, и проявляется только возвратом неверного значения snd_buf. Меня тоже эта конструкция обескуражила pcb->snd_buf += ((pcb->acked+1) & ~0x1), зачем приводить к четности, словно выравнивая по 16 битному слову, ведь это даже не указатель. Проверял и на других проектах с LwIP в UDK. Проблема неочевидна, и при определенных размерах пакета может и не обнаружиться, но время от времени snd_buf урезался ровно на один разряд без очевидных на то причин. С исправлением все работает как часы, без отладчика трудно понять почему так происходит. Ведь глядя на исправление, все вообще должно было порушиться, но это не так!Если "(исключение доступа к памяти)" то это перезагрука модуля. Бегло прочитав про данную правку - вроде это связанно с расчетом контрольной суммы или ещё чего-то.
Нету для UDK отладчика...Кто нибудь с отладчиком может прояснить почему так происходит.
Ясно спасибо, надо скачать наверное весь проект.@Urbas81, лучше полностью upload_boundary() перенести, в ней еще изменения есть.
Также файл settings.bin нужен и еще в web_int_callbacks.c :
WirelessCO2_esp8266/web_int_callbacks.c at master · vad7/WirelessCO2_esp8266 · GitHub
Еще во flash_epp.c функция current_cfg_length().
А вообще, там много доработок...
Надо глядеть как работает распределитель памяти pbuf.c, memp.c, .. и связанное с ними. Может там стоит коррекция на aligned (т.е. там её толпа). Распределение памяти в LwIP имеет много опций...Ошибка не фатальная, и проявляется только возвратом неверного значения snd_buf. Меня тоже эта конструкция обескуражила pcb->snd_buf += ((pcb->acked+1) & ~0x1), зачем приводить к четности, словно выравнивая по 16 битному слову, ведь это даже не указатель. Проверял и на других проектах с LwIP в UDK. Проблема неочевидна, и при определенных размерах пакета может и не обнаружиться, но время от времени snd_buf урезался ровно на один разряд без очевидных на то причин. С исправлением все работает как часы, без отладчика трудно понять почему так происходит. Ведь глядя на исправление, все вообще должно было порушиться, но это не так!
Кто нибудь с отладчиком может прояснить почему так происходит.
Добавил все недостающие функции, проект компилируется, в железо еще не грузил.@Urbas81, лучше полностью upload_boundary() перенести, в ней еще изменения есть.
Также файл settings.bin нужен и еще в web_int_callbacks.c :
WirelessCO2_esp8266/web_int_callbacks.c at master · vad7/WirelessCO2_esp8266 · GitHub
Еще во flash_epp.c функция current_cfg_length().
А вообще, там много доработок...