0.19.0
Pre-release
Pre-release
Added
- Added
Ethernet.loop()
calls to theEthernetClient::write()
functions when the send buffer is full. - Added Ethernet hardware detection to support (well, "non-support") the Teensy 4.1 NE.
Changed
- Updated lwipopts.h to examine
LWIP_MDNS_RESPONDER
when setting certain values. Ethernet.loop()
calls are now attached/detached to/from yield inEthernet.begin(...)
/end()
.- Improved pin configurations and comments.
- Disabled
LWIP_STATS
option by default. Saves a little memory. - Updated Arduino Ethernet API links in keywords.txt.
- Only add 1 to
MEMP_NUM_SYS_TIMEOUT
option for mDNS instead of 3. - Updated examples to use both address and link state on network changes. This accommodates when a static IP is used.
- Changed UDP and TCP PCB creation to use an appropriate
ip_addr_t
type instead of the unspecified default. - Changed CRC-32 function for multicast lookup to not use a lookup table. This saves 1KiB of flash but makes the calculation about 4.7x slower but still in the microsecond range (~0.090µs -> ~0.42µs).
- Moved
EthernetClass
,EthernetFrameClass
, andMDNSClass
constructors and destructors toFLASHMEM
(where possible). This saves a little RAM1 space. - Moved lwIP's memory pools into 4-byte aligned
DMAMEM
(RAM2). This saves a lot of RAM1 space, about 27KiB with the current configuration. - Changed the promiscuous mode macro name from
QNETHERNET_PROMISCUOUS_MODE
toQNETHERNET_ENABLE_PROMISCUOUS_MODE
. - Changed all the DHCP timeouts in the examples to 15 seconds.
- Changed
EthernetUDP::send()
functions to return an lwIP error code instead of a 1-or-0 Boolean value. Zero (ERR_OK
) means no error. This makes it easier to diagnose any problems.
Fixed
- Reverted how interrupts were being cleared to use assignment instead of OR'ing the bits. This seemed to fix an apparent freeze. (See this issue: #26)
- Fixed a signedness comparison warning in
OSCPrinter
example. - Addressed "extra" (
-Wextra
) and pedantic (-Wpedantic
) warnings.