Библиотека EtherCard без TCP
Я подключил некоторые датчики к Arduino Uno (но окончательный код должен работать на Pro-Mini) с экраном ENC28J60. Код датчика работает нормально - пока я не добавлю EtherCard. Сначала я попробовал UIPEthernet, но это еще хуже. Проблема заключается в объеме памяти. Библиотеки ethernet потребляют так много памяти, что возникают случайные сбои.
Поэтому я подумывал об удалении TCP из библиотеки EtherCard, потому что он мне все равно не нужен. Мне нужны только IP, ARP, UDP и на основе этого DHCP, DNS и NTP.
Кто-то уже сделал это?
Есть ли здесь урезанная библиотека?
Файл tcp.cpp
довольно большой (самый большой в этой библиотеке). Безопасно ли удалять все методы с "tcp" в их названии?
Или есть лучшее решение для этой ситуации?
@zx485, 👍0
Обсуждение1 ответ
Лучший ответ:
Моя библиотека EthernetENC, основанная на оригинальной библиотеке UIPEthernet от Norbert Truchsess, имеет настройки для баланса производительности и использования памяти. Эти настройки находятся в файле utility/uipethernet-conf.h или могут быть заданы как параметры-D для компиляции.
UIP_CONF_MAX_CONNECTIONS
-это максимальное количество подключенных соединений EthernetClient. Значение по умолчанию-4. Вы можете установить его равным 0, если не используете TCP-соединения EthernetClient. Это сэкономит много динамической памяти.
Arduino IDE не имеет возможности задавать определения для скетча(например, у Sloeber). В качестве некоторого обходного пути для установки определений для различных плат для Arduino IDE можно создать файл boards.local.txt рядом boards.txt файл в аппаратном пакете. Установите build.extra_flags для отдельных плат.
комментарий ОП:
Установка uno.build.extra_flags= -DUIP_CONF_MAX_CONNECTIONS=0 in "boards.txt" в папке arduino IDE использование программной памяти сократилось на 2442 байта, а динамической-на 290 байт.
- Как настроить константы UIPEthernet?
- Как получить исходные файлы для библиотек Arduino?
- Ошибка: "недопустимое использование нестатической функции-члена" при вызове функции из моего собственного класса-метода
- Как подключить Wi-Fi Shield ESP-12E-ESP8266-UART-WIFI-Wireless-Shield к Arduino
- Существуют ли библиотеки сглаживания сигналов для Arduino?
- Wire.h не найден!
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как эта строка кода определяет, подключен ли последовательный интерфейс?
попробуйте мой EthernetENC с пользовательскими настройками https://github.com/jandrassy/EthernetENC/wiki/Settings, @Juraj
@Juraj: Спасибо. Это выглядит многообещающе., @zx485
Установка
uno.build.extra_flags= -DUIP_CONF_MAX_CONNECTIONS=0
в "boards.txt" в папке arduino IDE использование программной памяти сократилось на 2442 байта, а использование динамической памяти-на 290 байт. Кстати, изменив#define
в "uipethernet-conf.h" не возымел никакого эффекта. Тем не менее, спасибо вам за отличную работу :-), @zx485