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

📄 tcpip stack version.txt

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


********
v4.13		02 October 2007
********
Changes:
1. Added command line support to the MPFS2.exe tool.  You can now generate MPFS 
   output files using batch scripts or other console applications.
2. Added dynamic variable parameter capabilities to the MPFS2 utility.  To use, add 
   the parameters you wish to pass to the end of the dynamic variable.  All 
   parameters are passed as WORD values.  (ex: ~myArray(2,5)~ )
3. Added TCPWasReset() API to allow the application layer to be notified if an 
   underlying socket reset has occurred (ex: remote node disconnects, cable is 
   disconnected and times out, user calls TCPDisconnect(), etc.).  The reset state is 
   latching, which allows the application layer to detect if a remote node disconnects 
   and a new connection occurs on the same socket before the application can detect 
   the original disconnection through the TCPIsConnected() API.
4. Added a counter to the UDPPerformanceTest module and made it supress transmission 
   if an Ethernet link is not present.
5. Added TCPIP WebVend App example application to the main stack distribution.  This 
   corresponds to three new Microchip Webinars being published on the HTTP2 server 
   usage topic.

Fixes:
1. Fixed MPFS2.exe PC utility from crashing if you attempt to generate an MPFS 
   classic .bin/.c/.s output file.
2. Fixed RCONbits definition for HPC_EXPLORER hardware profile when using the HI TECH 
   PICC-18 compiler.
3. Fixed a MPFSGetFilename() bug when using C30 and MPFS2 images stored in program 
   memory.  Thanks to Billy Walton on the Microchip Ethernet forum for identifying
   this issue.
4. Fixed a TCP RX FIFO corruption problem which would occur if the remote node sent 
   more data than could fit in our RX FIFO in a single packet.  The GeneticTCPClient.c 
   module was subject to experiencing this problem when connected to www.google.com's 
   servers.
5. Fixed a DHCP client UDP socket leak if you called DHCPDisable() after the DHCP 
   client had already obtained a UDP socket.  Thanks go to Matthew Kendall on the 
   Microchip Ethernet forum for identifying this problem.
6. Fixed a SNMP Server module bug testing a string length (with respect to 
   SNMP_COMMUNITY_MAX_LEN) being off by one, resulting in possible memory corruption.  
   Thanks go to Matthew Kendall on the Microchip Ethernet forum for identifying this 
   problem.
7. Cleaned up some C30 compiler warnings related to macro definitions with inadequate 
   parenthesis in them.
8. Fixed HTTP2 module sometimes returning a 501 error instead of a correct web page 
   when being bombarded with new connection requests.
9. Fixed a TickGet*() API problem where the returned tick value could be off by 64K 
   ticks occasionally on PIC24 and dsPIC processors.
10.Fixed SMTP client module failing to send email when attempting to send an email 
   with a `CC' or `BCC' field that was in ROM while the `To' field was in RAM or visa 
   versa.
11.Fixed TCP module sending an incorrect sequence number in RST packets sent when in 
   the TCP_SYN_SENT state and an invalid segment arrives.  In prior stack versions, 
   some TCP client applications might take a very long time to recover in the event 
   of a power failure, reset, and subsequent reconnect to a remote server that still 
   thinks the old connection is still active.  With this fix, reconnections should be 
   possible almost immediately after a power failure because the correct RST packet 
   will cause the old connection to get closed right away.
12.Fixed a TCP socket leak problem that would occur over if the local PIC called 
   TCPDisconnect() and the remote node didn't send us a correct FIN response.  
   Sockets could previously get lost in the TCP_FIN_WAIT_2 state and wouldn't 
   recover unless the application called TCPDisconnect() a second time with the same 
   socket handle.

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. HI-TECH PICC-18 projects will not correctly set the processor configuration fuses 
   through code using the __CONFIG() macro.  Ensure that the configuration fuses are 
   manually set correctly via the MPLAB IDE Configuration Bits dialog.  This problem 
   has been observed with compiler version 9.50PL3.
6. 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.
7. GenericTCPClient example of downloading a web page from www.google.com is extremely 
   slow.  The default TCP socket has too little RX space to accept a full packet sent 
   from Google's servers, so the remote server must retransmit a lot of data, slowing 
   the transfer down a lot.  Making TCP_RX_FIFO_SIZE 536 bytes or bigger and 
   correspondingly shrinking MAX_TCP_SOCKETS will correct this problem.



********
v4.11		27 August 2007
********
IMPORTANT NOTE: You must use MPLAB 7.62 or higher to successfully open the 
                MPLAB projects.

Changes:
1. Added a Microchip TCP/IP Stack Users' Guide to document the stack 
   features/modules/and APIs and address the stale AN833 documentation.  Note that this 
   is a work in progress.  Many modules have yet to be documented in the Users' Guide.
2. Added HTTP2 module.  This HTTP module includes a whole new API and supreme new 
   features, such as POST support, cookies support, browser authentication support, and 
   more.
3. Added MPFS2 module.  This module is required for the new HTTP2 module and performs 
   better while having fewer limitations.  Long filenames and folders are now 
   supported.
4. Added a new GUI based MPFS2.exe PC utility.  The older MPFSv2.exe GUI application 
   and MPFS.exe command line tool has been retired.  The new utility has advanced 
   features, such as MPFS2 file format support, GZIP compress, etc.
5. Added a TFTP bootloader.  This is a stand alone project and currently only supports 
   the PIC18F97J60 family of PIC processors with internal Ethernet.
6. Added UART2TCPBridge.c file and STACK_USE_UART2TCP_BRIDGE option to TCPIPConfig.h.  
   This new module acts as a TCP and UART bridge, with a high priority UART interrupt 
   and dedicated UART TX and RX FIFOs for minimum UART latency and maximum performance.  
   By default, the bridge acts as a TCP server and listens on port 9761.  The UART baud 
   rate defaults to 19200.  The bridge can be reconfigured to act as a TCP client.
7. Added Simple Network Time Protocol (SNTP) client.  This module automatically 
   obtains the current time (date) from the Internet.  Enable this module by defining 
   STACK_USE_SNTP_CLIENT in TCPIPConfig.h.  Obtain the current time (in seconds since 
   00:00:00 1970) by calling the SNTPGetUTCSeconds() API.
8. Added support functions Base64Encode() and Base64Decode() in Helpers.c.  Base 64 is 
   required for the new HTTP2 module, but of general use to many applications. 
9. Added SMTP Authentication support to the SMTP Client.  To use this, set the 
   SMTPClient.Username and SMTPClient.Password string pointers to a non-NULL value 
   before calling SMTPSendMail().  Applications implementing email transmission 
   capabilities should expose these options to the end-user for configuration.  To use 
   SMTP servers that do not support the AUTH LOGIN authentication command, simply 
   leave the SMTPClient.Username and SMTPClient.Password pointers as their default 
   NULL value.
10.Converted DHCPDisable() from a macro to a real function and added the complementary 
   DHCPEnable() function.  These two functions can be used at run time to dynamically 
   switch between using a static IP address and configuration and DHCP assigned IP 
   address and configuration.
11.Updated StringToIPAddress() to work more robustly, including the ability to decode 
   host name strings and determine if they contain a valid IP address or not.  Also, 
   the complementary ROMStringToIPAddress() function was added.
12.Updated the DNS module.  Now, if you give it an IP address string to resolve, it 
   will convert the string to an IP address and immediately return without querying 
   the DNS.
13.Shrunk the advertised TCP Maximum Segment Size from 576 bytes to 528 bytes.  This 
   might improve compatibility if your TCP data has to propagate over nodes with small 
   MTUs and you have a correspondingly large TCP RX FIFO defined.
14.Performed some maintenance on the FTP.c file.  No significant functionality has 
   been changed, but some potential problems were corrected.
15.Altered Tick.c file and API.  Now, the Tick module can operate maximum precision, 
   returning the value of the actual Timer as it is counting, without disturbing the 
   timer count by writing to it or disabling it.  Three new APIs were added, 
   TickGetDiv256(), TickGetDiv64K(), and TickConvertToMilliseconds().  Internally the 
   tick counter is now 48-bits wide and as accurate as your Timer clock source, 
   allowing you to use it as a Real Time Clock.
16.Added PIC24FJ64GA004_PIM hardware profile.  This hardware profile is intended for 
   use with the PIC24FJ64GA004 PIM on the Explorer 16 development board.  In this mode, 
   BUTTON2 and BUTTON3 and several of the LEDs do not work correctly due to lack of 
   I/O pins on this device.  Also, you cannot have the POT and TEMP jumpers on the PIM 
   bridged because these signals are multiplexed with the SDO1/SDI1 pins needed for 
   the Ethernet PICtail Plus.
17.Removed most ROM APIs when using a 16-bit compiler (C30).  PIC24s and dsPICs usually 
   don't need separate ROM functions since the Program Space Visibility feature maps 
   ROM into RAM space.  All ROM APIs are still supported, but they are now macros to 
   base RAM APIs.  This change saves a couple of kilobytes of code space on PIC24 and 
   dsPICs.
18.Improved MyTCB structure caching.  This should reduce TCP packet processing 
   overhead with the ENC28J60 where TCBs are stored in the Ethernet RAM.
19.MAX_RETRY_COUNTS TCP configuration option has been renamed to TCP_MAX_RETRIES.
20.FTP server is no longer enabled by default.  HTTP2 now supports POST, so you can 
   upload new webpages through the /mpfsupload page now.  FTP required two precious TCP 
   sockets.
21.Began adding hooks for an SSL/TLS transport for secure HTTPS and other future stack 
   modules.  Note that these cryptographic modules are not available at this time.  
   Configuration options such as MAX_SSL_CONNECTIONS do nothing and should not be 
   modified.
22.Username has changed for all of the modules.  Now all modules have a default 
   username of "admin" and password of "microchip".  Previously, the FTP and Telnet 
   modules used "ftp" and "telnet" respectively for the usernames.

Fixes:
1. Fixed a SendFile() bug in HTTP.c where parsing dynamic cgi files could send garbage 
   back to the web browser sometimes.  Thanks go to Matt Watkins on the Microchip 
   Ethernet forum for identifying this issue.
2. Fixed an off by one error in the calculation of RESERVED_TCP_MEMORY.  Previously, 
   the last TCP socket's RX FIFO would incorrectly overlap with the Ethernet RX buffer, 
   causing incoming packets to occasionally be corrupted or the incoming data on the 
   last socket to get corrupted.
3. Fixed the QWORD_VAL's dword struct element types.  dword.LD and dword.HD were 
   incorrectly defined as WORDs instead of DWORDs.  Thanks go to I馻ki Esparza on the 
   Microchip Ethernet forum for identifying this issue.
4. Fixed the incorrect processing of received IP fragments with a non-zero offset.  
   This stack does not support IP packet reconstruction due to the limited amount of 
   available RAM.  Thanks go to I馻ki Esparza on the Microchip Ethernet forum for 
   noticing this behavior.
5. Board now only responds to ping requests to our IP address, the directed subnet 
   broadcast address, or the broadcast address of 255.255.255.255.  Previously, it 
   would respond to any ping request to any IP address, assuming the MAC address was 

⌨️ 快捷键说明

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