⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcpip stack version.txt

📁 完整的tcp-ip协议栈,可以用于单片机和arm上
💻 TXT
📖 第 1 页 / 共 5 页
字号:
********
Microchip TCP/IP Stack Version Log:
********

Note: Please file bug-reports/bug-fixes at http://support.microchip.com/ or post 
      to the Microchip TCP/IP -> Ethernet Forum at http://forum.microchip.com/
      Look for stack updates at http://www.microchip.com/tcpip/

********
v4.18 		28 November 2007
********
Changes:
1. Added C32 and PIC32MX support.  Some things were cleaned up in the process.
2. Removed linker scripts from C30 MPLAB projects.  MPLAB IDE 8.00 
   can automatically select the correct linker script for 16-bit and 32-bit 
   products.
3. Updated TCPPerformanceTest.c module.  Now it automatically calculates the TX 
   throughput and displays it for you.  Also, there is now an RX throughput 
   testing mode, which listens on a separate TCP socket (port 9763) when a TCP 
   socket of type TCP_PURPOSE_TCP_PERFORMANCE_RX is allocated in TCPIPConfig.h.  
   The RX socket is by default not enabled to save memory, so you must create a 
   TCP_PURPOSE_TCP_PERFORMANCE_RX socket in TCPIPConfig.h and ensure that enough 
   memory is allocated to accommodate it to test the RX performance test.  When 
   connected to port 9763, send a large amount of data and the PIC 
   microcontroller will send back a count of how many bytes were received per 
   second.  
4. UDPPerformanceTest.c module now transmits 1024 packets on start up and then 
   stops to prevent continually broadcast flooding your network.  To transmit 
   more packets after 1024 is reached, hold down BUTTON3 (left-most button on 
   most boards).
5. Significantly improved the speed of the MD5 and SHA-1 functions.  Gains for 
   the 8-bit compilers were 50-75%, while 16-bit parts saw more modest
   improvements (~10%).
6. Reimplemented TCP_CLOSE_WAIT TCP state ("CLOSE WAIT" in RFC793).  Now, TCP 
   sockets that receive a FIN from the remote node will hold off transmitting 
   a FIN back to the remote node until the TCP_CLOSE_WAIT_TIMEOUT (defined at 
   the top of TCP.c) elapses or immediately when the application calls the 
   TCPDisconnect() function.  This makes it possible for the application to 
   transmit a response back to the remote node before the socket becomes closed 
   on our end.  Similarly, it simplifies application usage of the last RX bytes 
   received as these bytes are now assured to still be in the RX FIFO for at 
   least TCP_CLOSE_WAIT_TIMEOUT seconds.  TCP_CLOSE_WAIT_TIMEOUT defaults to 
   200ms in this stack version.
7. Pushed the SNTP requery on failure timeout up some.  It was ~14 seconds and 
   is now ~20 seconds.
8. Added TFTPOpenROMFile() API to complement TFTPOpenFile() when using PIC18 
   products.
9. Added a fourth parameter to newAJAXCommand() in mchp.js, allowing data to be
   POSTed along with the AJAX request.
10.Deprecated the TCP Loopback functions, which includes TCPOpenLoopback, 
   TCPCloseLoopback, TCPIsLoopback, TCPInject, and TCPSteal.  These functions
   were added in 4.10 for future SSL support, but have since become 
   unnecessary.  They are of limited usefulness, and so are being removed to save
   code space.  The functions are still available in this version, but will 
   be removed in the next release.
11.Added SMTPClient.ServerPort field to the SMTP API.  This allows the remote 
   server port number to be specified dynamically at run time instead of being 
   hard coded to the SMTP_PORT value defined at the top of SMTP.c.  SMTP_PORT is 
   now only a default.
12.Added web interface to the SMTP module in the TCPIP Demo App applications.  
   You can now configure the SMTP module and send emails directly from within 
   your web browser.  The HTTPPostEmail() function in CustomHTTPApp.c also 
   demonstrates how to send MIME encoded attachments in emails.  The default demo 
   will send button states, LED states, and the current potentiometer reading as 
   a CSV file attached to the email.
13.Changed SMTPDemo() in MainDemo.c to trigger on BUTTON2 and BUTTON3 
   simultaneously held down instead of BUTTON0 only.

Fixes:
1. Fixed an ENC28J60.c MACGetArray() bug which would overwrite one byte of memory 
   at address 0xFFFFFFFF if you provided NULL for the destination address pointer.
2. Fixed an MPFS2.c MPFSGet() bug which would overwrite memory address 0x00000000 
   if a NULL pointer was provided as the destination.
3. Fixed a bug in the HTTP2 server accessing incorrect sockets if an inadequate 
   number of sockets were available on POR.
4. Fixed Internet Bootloader project from failing with a timeout if an ARP packet 
   arrived during the Erase/Write operation.
5. Fixed DHCP client RFC non-compliance where it would send the ciaddr field in 
   the initial SELECTING state.  Also, in the RENEWING state, the Requested IP 
   Address option was being sent, which is illegal.  These changes may fix 
   compatibility problems with certain DHCP servers.
6. Fixed TFTP Client's TFTPCloseFile() function from sending data using a wrong 
   UDP socket if StackTsk() was called after TFTPIsFileOpened() was last called.
7. Added two zero bytes to the ICMP echo request payload to improve compatibility 
   with some buggy NAT routers.

Known Problems:
1. Telnet server module does not implement a lot of Telnet functions.  As a 
   result, it will likely not display correctly or work at all with some Telnet 
   clients.  The server was tested with the Microsoft telnet.exe utility which 
   is provided with Microsoft Windows.
2. If the DHCP client and DHCP server are used at the same time and you connect 
   two similar boards to each other (ex: two PICDEM.net 2 boards connected via 
   a crossover cable), a race condition can occur where both nodes will disable 
   their DHCP server and neither board will get a successful DHCP lease.  If 
   this unlikely scenario occurs, as a work around, simply reset one of the 
   boards to reenable it's DHCP server.
3. HI-TECH PICC-18 projects may not compile when targeting the external 
   ENC28J60 chip on the PICDEM.net 2 development board (instead of the 
   internal Ethernet controller).  This problem only applies when a 
   PIC18F97J60 family part is the target.  I.e. it compiles correctly for the 
   HPC_EXPLORER + Ethernet PICtail.
4. MAC.h RXSIZE precompiler test for proper range doesn't work.  This is not a 
   functional problem, just a compile-time configuration test.  Ensure that you don't 
   over allocate TCP_ETH_RAM_SIZE or MAX_HTTP_CONNECTIONS.



********
v4.16 		06 November 2007
********
Changes:
1. Added Internet Radio application.  This is a TCP client application which 
   downloads streaming MP3 audio from a Shoutcast server and then plays it back to 
   stereo earphones via a VLSI VS1011 audio decoder.
2. Added SPIRAM.c module.  This module is intended for interfacing to an AMI 
   Semiconductor N256S0830HDA SPI RAM chip.  The TCP module can now interface 
   directly to this SPIRAM module to store TCP socket FIFO buffers and other TCB 
   data in the external RAM.
3. Added TCP_OPTIMIZE_FOR_SIZE compile time configuration macro to TCP.c file.  When 
   optimizing for small code size, the TCP module ROM footprint shrinks up to 6KB, 
   but performance may slow down on some processors (namely PIC18s, where the 
   penalty is approximately 15%).
4. Added USE_EEPROM_25LC1024 compile time configuration macro to TCPIPConfig.h.  
   Enable this definition if you are storing your MPFS[2] on a 1Mbit 25LC1024 or 
   similar EEPROM device that uses 24-bit addressing and a 256 byte write page size.
5. Changed LCDBlocking.c module initialization code.  It should now be possible to 
   use 4-bit mode on certain "unusual" LCD controllers, like the Samsung S6A0032.  
   Most PICDEM.net 2 and Explorer 16 boards use an LCD with this controller.
6. SNTP client now attempts to requery the SNTP server about every 14 seconds if the 
   last query attempt fails.  This allows the internal time value to become valid 
   quickly should the board be powered up before an Ethernet cable is attached or if 
   the DHCP client doesn't obtain an IP address quickly enough.  Previously, it would 
   take up to 10 minutes after plugging the Ethernet cable in to get a correct time 
   value from the SNTP server.
7. Added UDP_USE_TX_CHECKSUM compile time configuration macro to TCPIPConfig.h.  
   When enabled, all UDP packets will have a correct UDP checksum computed and 
   inserted into the UDP header of outbound packets.  If you do not define this 
   macro, the UDP checksum will be disabled (left as 0x0000), which is how previous 
   stack versions operated.  Note that enabling checksum generation cuts your 
   maximum UDP TX throughput by nearly half due to the required computations.
8. Substantially changed TCP socket RX and TX FIFO allocation.  Now, sockets can be 
   stored either in Ethernet RAM, PIC RAM, or external (SPI) RAM.  Previously, 
   sockets could only be allocated in Ethernet RAM, which was not scalable.
9. Added TCPOpen() API function.  This replaces TCPListen() and TCPConnect().  
   TCPOpen() supports a large number of options that will make the creation of 
   client mode sockets much easier.  You can specify the remote node as a hostname 
   that needs DNS and ARP resolution, an IP address that only needs ARP resolution, 
   or legacy NODE_INFO pointer for direct compatibility with the previous 
   TCPListen() and TCPConnect() APIs.  TCPOpen() also supports a socket type 
   parameter which will allow you to use the new TCP socket RAM allocation system.
10.Added TCP Keep Alive mechanism defined by RFC 1122 section 4.2.3.6 to the TCP 
   module.  This helps automatically detect lost connections.  If the remote node 
   sends back an RST, this immediately closes the lost connection on our end.  
   Currently, no action is taken if the keep alive gets no response.  Note that this 
   feature deviates from the standard by defaulting to only 10 seconds instead of 
   over 2 hours.  Also deviating from the standard, this feature is enabled by 
   default.  To disable it, undefine TCP_KEEP_ALIVE_TIMEOUT at the top of TCP.c.
11.Moved TCPPerformanceTest.c module from default port 12345 to 9762.
12.Moved UDPPerformanceTest.c module from default port 12345 to 9, the "discard" 
   protocol port.

Fixes:
1. The DHCP client now specifically requests the previous IP address when a DHCP 
   renewal occurs.
2. The SNTP client now correctly maintains time when repetitively calling 
   SNTPGetUTCSeconds() between an NTP requery event.  Thanks go to Rob Haverkort on 
   the Microchip Ethernet forum for noticing the time value incrementing far faster 
   than it should have.
3. TCP module will not transmit a bunch of unnecessary duplicate ACK packets when 
   data is ready to be transmitted but the remote RX window is zero.  This previously 
   didn't cause anything to break, but would waste CPU time and bandwidth sometimes.
4. TCP sockets will no longer automatically close if the remote RX window stays zero 
   for several seconds.
5. Fixed TFTP Internet Bootloader project from corrupting the configuration fuses.  
   Previously, this would result in the Watchdog timer being enabled and causing an 
   unintentional reboot every few minutes with the demo TCP/IP stack.

Known Problems:
1. Telnet server module does not implement a lot of Telnet functions.  As a 
   result, it will likely not display correctly or work at all with some Telnet 
   clients.  The server was tested with the Microsoft telnet.exe utility which 
   is provided with Microsoft Windows.
2. TFTPc module has not been tested with this version.
3. If the DHCP client and DHCP server are used at the same time and you connect 
   two similar boards to each other (ex: two PICDEM.net 2 boards connected via 
   a crossover cable), a race condition can occur where both nodes will disable 
   their DHCP server and neither board will get a successful DHCP lease.  If 
   this unlikely scenario occurs, as a work around, simply reset one of the 
   boards to reenable it's DHCP server.
4. HI-TECH PICC-18 projects may not compile when targeting the external 
   ENC28J60 chip on the PICDEM.net 2 development board (instead of the 
   internal Ethernet controller).  This problem only applies when a 
   PIC18F97J60 family part is the target.  I.e. it compiles correctly for the 
   HPC_EXPLORER + Ethernet PICtail.
5. MAC.h RXSIZE precompiler test for proper range doesn't work.  This is not a 
   functional problem, just a compile-time configuration test.  Ensure that you don't 
   over allocate MAX_TCP_SOCKETS, TCP_TX_FIFO_SIZE, TCP_RX_FIFO_SIZE, or 
   MAX_HTTP_CONNECTIONS.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -