• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

GPIO debug

702

New member
Здравствуйте.
Собираю во FreeRTOS SDK прошивку ESP8266 для макета , содержащего I2C устройство.
Поскольку сейчас под рукой только ESP-01, временно решил реализовать I2C программно на GPIO_0
и GPIO_2. Драйвер в процессе работы постоянно перепрограммирует GPIO пины на вход и на выход.
Каждое такое перепрограммирование вызывает вывод в консоль длиннющей строки с состоянием
пина, видимо откуда-то из внутренностей библиотеки GPIO .
Как это можно отключить?
 

702

New member
Установите LOG LEVEL в ESP_LOG_NONE
Спасибо, это я находил.
Функции esp_log_level_set(...) в качестве параметра нужно передать тег. Какое значение тега для управления логом на GPIO?
Где можно прочитать или как догадаться?
 

702

New member
У чипа ESP8266 нет аппаратного I2C. Только "ногодрыгом", т.е. программно на GPIOx...
У меня нет описания аппаратных регистров GPIO от ESP8266. Поэтому я не знаю, какой сакральный смысл в рекомендации в даташите использовать
в качестве I2C_SCL ногу GPIO_14. Возможно, он есть.
 

Алексей.

Active member
Где можно прочитать или как догадаться?
В заголовочном файле исчерпывающая информация
* @param tag Tag of the log entries to enable. Must be a non-NULL zero terminated string.
* Value "*" resets log level for all tags to the given value.
Тот уровень логирования, который установили для метки (тега) и будет использоваться когда для данной метки будет вызвана esp_log_write
Если установили
Код:
esp_log_level_set("my-app", ESP_LOG_ERROR);
esp_log_level_set("my-i2c", ESP_LOG_DEBUG);
То выполняя esp_log_write для "my-app" и "my-i2c"
Код:
esp_log_write(ESP_LOG_ERROR, "my-app", "error 1");
esp_log_write(ESP_LOG_WARN, "my-app", "warning 2");
esp_log_write(ESP_LOG_DEBUG, "my-app", "debug 3");
esp_log_write(ESP_LOG_ERROR, "my-i2c", "error 4");
esp_log_write(ESP_LOG_WARN, "my-i2c", "warning 5");
esp_log_write(ESP_LOG_DEBUG, "my-i2c", "debug 6");
Вы получите в логе не 6 сообщений, а 4, в соответствии с установленными уровнями логирования для меток, одно от "my-app" и три от "my-i2c".

Можете установить свой обработчик вывода лога вызвав esp_log_set_putchar, направить вывод не в uart, а куда угодно.
 

702

New member
В заголовочном файле исчерпывающая информация
В заголовочном файле esp_log.h значения тега для управления логом GPIO я не нашел. Если таковое имеется,
прошу ткнуть меня в строчку.

Если установили
Задача у меня не сделать свой лог, а отключить имеющийся: только для GPIO.

Можете установить свой обработчик вывода лога вызвав esp_log_set_putchar, направить вывод не в uart, а куда угодно.
Такой способ "отключения" лога не годится, - функция printf будет молотить впустую, жрать процессорное время и греть небо.
 

Алексей.

Active member
Задача у меня не сделать свой лог, а отключить имеющийся: только для GPIO.
Если вы посмотрите на выводимые сообщения в логе, то там найдете тот самый тег о котором спрашивали
Какое значение тега для управления логом на GPIO?
Первый ответ на ваш вопрос #2 установите для этого тега ESP_LOG_NONE
 

Алексей.

Active member
Драйвер в процессе работы постоянно перепрограммирует GPIO пины на вход и на выход.
Каждое такое перепрограммирование вызывает вывод в консоль длиннющей строки с состоянием
пина, видимо откуда-то из внутренностей библиотеки GPIO .
Как это можно отключить?
В драйвере ESP8266_RTOS_SDK-3.2/components/esp8266/driver/gpio.c
объявлен тег
Код:
static const char *GPIO_TAG = "gpio";
Информационные сообщения от драйвера при вызове gpio_config
Код:
ESP_LOGI(GPIO_TAG, "GPIO[%d]| InputEn: %d| OutputEn: %d| OpenDrain: %d| Pullup: %d| Pulldown: %d| Intr:%d ", ...
 

pvvx

Активный участник сообщества
@Алексей. - концепция ардуино в действии и распространяется на всё. :)
Рожден ещё один участник сообщества ардуино-попрошаек.
Надо было дать полный скетч сразу, а не направление где и как это меняется.
 
Сверху Снизу