Библиотека EtherCard без TCP

Я подключил некоторые датчики к Arduino Uno (но окончательный код должен работать на Pro-Mini) с экраном ENC28J60. Код датчика работает нормально - пока я не добавлю EtherCard. Сначала я попробовал UIPEthernet, но это еще хуже. Проблема заключается в объеме памяти. Библиотеки ethernet потребляют так много памяти, что возникают случайные сбои.

Поэтому я подумывал об удалении TCP из библиотеки EtherCard, потому что он мне все равно не нужен. Мне нужны только IP, ARP, UDP и на основе этого DHCP, DNS и NTP.

Кто-то уже сделал это?
Есть ли здесь урезанная библиотека?

Файл tcp.cpp довольно большой (самый большой в этой библиотеке). Безопасно ли удалять все методы с "tcp" в их названии?

Или есть лучшее решение для этой ситуации?

, 👍0

Обсуждение

попробуйте мой 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


1 ответ


Лучший ответ:

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 байт.

,