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

SDK 1.1.1

pvvx

Активный участник сообщества
esp_iot_sdk_v1.1.1_15_06_05 (Пт 5 июня 2015 9:17 вечера)
http://bbs.espressif.com/viewtopic.php?f=5&t=554

Решены проблемы (ошибки из программы для Баунти (для "телепузиков")):
1. Задание слишком короткого периода таймера в os_arm_timer_us, приводящего к перезагрузке. [Томми]
2. Вызова os_malloc при малом 'heap' может привести к аварии. [MeneerThijs]
3. Утечки памяти когда сбой подключения SSL. [孙新虎]

Оптимизация:
1. JSON синтаксический анализ дополнительных исключений и информированности при не корректных параметрах.
2. Обновление вызывает функцию user_esp_platform_check_ip в параметре user_websever.c в IOT_Demo.
3. Обновление драйвера UART для решения проблемы при постоянной отправке данных в последовательный порт UART.
4. Smartconfig обновление до версии 2.2, мобильный APP v0.3.2. И обновление описание и пример smartconfig_start в документе «Руководство 2C_ESP8266__Programming»
5. Обновление кода в iram для решения проблемы, что пространство для текста недостаточно.
6. Обновлен драйвер PWM и выделен в отдельный libpwm.a в esp_iot_sdk, обновление PWM API в «Справочник 2C_ESP8266__Programming», более подробно в «Добавил API» ниже.
7. Исправлен сбой отправки многоадресных пакетов в режиме softAP ESP8266.
8. Обновление папки «driver», добавить папку «driver_lib» в \esp_iot_sdk\examples, добавить «hw_timer.c» о frc1 аппаратного таймера.
9. Удаление бесполезного кода драйверов в IOT_Demo
10. Обновление IOT_Demo для использования последней версию драйвера PWM.
11. Создана отдельная версия liblwip_536.a, в которой MSS имеет размер 536 байт.
12. Пересмотренный вопрос загрузки при опции SPI 80 МГц.
13. Обновление esp_init_data_default.bin с RF параметрами в \esp_iot_sdk\bin

Добавлен API:
1. ШИМ API:
Обновлено: pwm_init, добавлен параметр для задания канала ШИМ и GPIO pin
Добавлено:
(1) информацию о PWM драйвер версии get_pwm_version:get
период PWM (2) pwm_set_period:set
период PWM (3) pwm_get_period:get
Удалены:
(1) частота ШИМ pwm_set_freq:set
Частота PWM (2) pwm_get_freq:get
2.Read/записи Flash-с защитой
(1) system_param_save_with_protect:write данные в приложение flash с резервной защиты
(2) system_param_load:read данные, которые сохраняются в flash с резервной защиты
3.system_get_rst_info:Get информация о текущем запуске, это нормальный запуск или WDT. struct rst_info представлен в документе «Руководство 2C_ESP8266__Programming»
4.at_response: задает ответ на выходе
5.at_register_response_func: зарегистрировать настраиваемый ответ функции at_response
6. Обновлен документ «руководство 2C_ESP8266__Programming» на определение прерываний в ets_sys.h

Примечание по версии AT_v0.25:

Примечание: Для микропрограммы для поддержки FОТА, флэш-размер должны быть 1024 КБ или больше.

Оптимизация:
1. Добавлен параметр о локальный порте UDP в команде «AT + SAVETRANSLINK»

Добавлено в команду:
1. AT+CIPDINFO: отображать удаленный IP и удаленный порт информацию с "+IPD" или нет.
 
Последнее редактирование:

pvvx

Активный участник сообщества
Отличия от SDK 1.1.0 в базовых библиотеках, которые я использую: (libpp.a, libwpa.a, libnet80211.a, куски из libphy.a, eagle_lib.o, mem_manager.o, user_interface.o).
Увеличен размер занимаемой памяти RAM в SDK:
1) на таблицу Таймеров (перенесены из области занятой ROM-BIOS в основную пользовательскую память по кляузе от баунти - Томми - говорилось же не писать им больше об ошибках! Теперь всё связанное с таймерами перенесено из ROM-BIOS в либы! Можно было исправить и самому ) libmain.a:ets_timer.o
2) на всякую новую никому не нужную фигню - от 200 байт (это только в базовых, самых необходимых кусках от библитек Espressif)
Уменьшен размер занимаемой памяти IRAM на ~600 байт - поставили атрибут ICACHE_FLASH_ATTR у никому не нужных функций.

Из хорошего - выкинут PWM в отдельную либу, но вектора прерываний и их обработчики c отладчиками (дублирующие код ROM-BIOS) для него так и остались в iram и увеличились в размерах, что для обычных пользователей, не обгрызающих либы на необходимые куски (obj), засунуто в libmain.a.

По пунктам:
1. JSON - увеличен код для задающих неверно параметры.
2. Только для примера IOT_Demo
3. Этот драйвер не используется ни в одном стороннем ПО (в open-source прошивках)
4. Smart для данного чипа не требуется - у него достаточно ресурсов самому подключиться и предоставить любой нормальный интерфейс.
5. Ещё китай-программер забыл у многих процедур выставить ICACHE_FLASH_ATTR, особенно у локальных, т.к. расставлял в хидерах.
6. Никому не нужен данный софтовый PWM - включите штатный аппаратный в чипе - зачем он там болтается?
7. Сбой опять в espconn? :) Её уже никто не использует.
8. Это такая китай-оптимазе - не вписать самим в IOT_Demo, а заствить пользователя переписывать самому папки :)
9. Лучше вообще удалить IOT_Demo, а дать исходники на остатки.
10. Всё равно IOT_Demo и есть demo - она только для демы, т.к. багов много.
11. Кому нужны такие короткие пакеты? Это по причине - китай-программера не умеет писать и от этого не хватает памяти для нормальных пакетов :)
12. Разделение на 2 flash, того, что можно запихать в одну всегда приводит к проблемам, тем более это отняло обе SPI и потребовалось написать новые драйверы, заместо использования кода ROM-BIOS. Т.е. потребовалось увеличить код всех прошивок :)
13. Сравнение файлов ESP_IOT_SDK_V1.1.1\BIN\esp_init_data_default.bin и ESP_IOT_SDK_V1.1.0\BIN\esp_init_data_default.bin:
00000070: 03 00 (=3?: auto measure frequency offset and correct it, bbpll is 160M, it only can correct + frequency offset.)

Добавлено:
1. ШИМ API. Софтовый ШИМ, дергающий ножкой по таймеру.
2. Чтение/Запись c защитой.
Ранее, в старых SDK это была функция wifi_param_save_protect(), теперь переименовали.
Протирает дырку в flash, т.к. после записи в сектор -2 или -3 от конца flash, переписывает последний сектор и пишет туда контрольную сумму, составленную в system_get_checksum() путем суммы байт с xor 0xEF. Крутая контролька :)
При изменении практически любых параметров WiFi последний сектор flash с контролькой стирается и переписывается 2 раза, чтобы flash быстрее вышла из строя.
3. system_get_rst_info - содрали у меня , а сохранение регистров в структуру и в память RTC существует с SDK 0.9.x.
4. далее ерунда всякая для кривого AT ....
 
Последнее редактирование:

pvvx

Активный участник сообщества
а не подскажите где про аппаратный pwm почитать?
На данном форуме - ШИМ :)
Он описан в хидерах о регистрах I/O и в xls, да найден на просторах инета в 2014 году

Известно и работает это https://github.com/pvvx/esp8266web/blob/master/app/driver/sigma_delta.c , но так и никто до конца не разобрался с правильной установкой duty и prescaler.
 
Последнее редактирование:
Сверху Снизу