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

📄 tcpip stack version.txt

📁 完整的tcp-ip协议栈,可以用于单片机和arm上
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   are allocated for each TCP socket now.  This greatly enhances RFC compliance, 
   communications robustness, and makes application development easier.  New 
   APIs were added for putting and getting arrays and strings (including ROM 
   variants).  Several TCP related bugs are now fixed as a result.  Please 
   report any bugs found in the new implementation.
4. Added TCPPutArray() API.
5. Added TCPPutROMArray() API.
6. Added TCPPutString() API.
7. Added TCPPutROMString() API.
8. Added TCPGetArray() API.
9. Changed TCPIsPutReady() API.  Instead of returning a BOOL, it now returns a 
   WORD.  The WORD is a count of the number of bytes that TCPPut(), 
   TCPPutArray(), etc. can immediately place in the output buffer.  MAKE SURE 
   THAT YOUR CODE DOES NOT COMPARE THE RETURN RESULT OF TCPIsPutReady() 
   DIRECTLY TO TRUE.  For example, "if(TCPIsPutReady(MySocket) == TRUE){...}" 
   must be converted over to: "if(TCPIsPutReady(MySocket)){...}".
10.Changed TCPIsGetReady() API.  Instead of returning a BOOL, it now returns a 
   WORD.  The WORD is a count of the number of bytes that TCPGet() or 
   TCPGetArray() can immediately obtain.  MAKE SURE THAT YOUR CODE DOES NOT 
   COMPARE THE RETURN RESULT OF TCPIsGetReady() DIRECTLY TO TRUE.  For example, 
   "if(TCPIsGetReady(MySocket) == TRUE){...}" must be converted over to: 
   "if(TCPIsGetReady(MySocket)){...}".
11.Changed TCPDiscard() return type from BOOL to void.
12.Removed TCP_NO_WAIT_FOR_ACK option.  It was defaulted to disabled in the 
   last two releases of the stack and is not needed with the new TCP module.
13.Updated DNS module to include two new required APIs: DNSBeginUsage() and 
   DNSEndUsage().  These functions control a one bit ownership semaphore to 
   allow multiple applications to use the DNS module in series.  If invoked 
   correctly, this will prevent unintended bugs resulting from two applications 
   trying to use the DNS module at the same time.  Old applications, such as 
   those based around the GenericTCPClient.c example must be updated to use 
   these functions.
14.Started using a new project structure and folders.  You must use MPLAB 7.41 
   or higher (stack is tested on MPLAB 7.50) to use the default 
   workspaces/projects, which include files using relative paths.  This should 
   improve compatibility with some future code libraries released by Microchip. 
   StackTsk.h was broken into TCPIPConfig.h, HardwareProfile.h, and StackTsk.h.  
   TCPIPConfig.h now includes all stack configuration options and 
   HardwareProfile.h contains all hardware options.  No macros need be globally 
   defined in MPLAB project now.  TCPIP.h is the only header applications must 
   include now, for any/all modules used.
15.Combined ARP.c/ARP.h and ARPTsk.c/ARPTsk.h into a single file pair: 
   ARP.c/ARP.h.  Applications built using a prior stack revision must remove 
   all instances including "ARPTsk.h" and replace it with "ARP.h" instead.  The 
   ARP module is now simpler, more linear (easier to read), and being in one 
   source file, allows the C compiler to optimize better.
16.Added PIC18F67J60_TEST_BOARD hardware profile to HardwareProfiles.h.  This 
   hardware profile is designed for 05-60091 (Rev 1), a development board that 
   is not in production at this time.
17.Added DSPICDEMNET1 and DSPICDEMNET2 hardware profiles to HardwareProfiles.h 
   for eventual support of the Microchip dsPICDEM.net 1 and dsPICDEM.net 2 
   demo boards.  These two boards use the RTL8019AS Ethernet controller and a 
   24LC515 EEPROM.  These changes are currently incomplete and these profiles 
   cannot be used.
18.Began rewriting I2CEEPROM.c to support 16 bit CPUs, including the 
   dsPIC30F6014 used on the dsPICDEM.net 1 and 2 demo boards.  Note that work 
   here is incomplete and cannot be used as a result -- see Known Problems 
   section.
19.Partially updated RTL8019AS.c to support 16 bit CPUs, including the 
   dsPIC30F6014 used on the dsPICDEM.net 1 and 2 demo board.  Note that work 
   here is incomplete and cannot be used as a result -- see Known Problems 
   section.
20.Updated SNMP.c to use new typedefs in GenericTypedefs.h.  Also SNMP was 
   tested in this version.  SNMP.mib was updated some to better reflect current 
   hardware.
21.Added AN870 SNMP callbacks to MainDemo.c (a feature that was missing in 
   3.xx releases).  This code will get compiled when STACK_USE_SNMP_SERVER is 
   defined in TCPIPConfig.h.
22.Removed all instances of MPFS_USE_PGRM for storing in internal FLASH program 
   memory.  Storage in internal program memory is now the default. Define 
   MPFS_USE_EEPROM to override the default and store MPFS in an external EEPROM 
   memory.
23.Decreased program memory needed for Announce.c module by about 180 bytes.  
   Multiple inline calls to UDPPut() were removed.
24.UDP checksum checking logic has been improved.  The UDP layer now avoids 
   writing the pseudo header checksum in the RX buffer.
25.Swapped endianess of the returned checksum from CalcIPBufferChecksum().  
   Rewrote CalcIPBufferChecksum() in Helpers.c.  This improves consistency.
26.Improved swapl() in Helpers.c.
27.Improved USART baud rate (SPBRG) calculation for PIC18s.  Rounding is now 
   done to chose the most optimal value and the code will automatically select 
   high baud rate mode (BRGH=1) if possible.  Additional improvements can be 
   made if using a newer PIC18 with the 16 bit baud rate generator.
28.Added GenericTCPServer.c example file to complement GenericTCPClient.c.  The 
   server is enabled by defining STACK_USE_GENERIC_TCP_SERVER_EXAMPLE in 
   TCPIPConfig.h.
29.Renamed STACK_USE_GENERIC_TCP_EXAMPLE definition to 
   STACK_USE_GENERIC_TCP_CLIENT_EXAMPLE for consistency with new server 
   example.
30.Defaulted MPFS.exe to generate binary MPFS images using 32 bit addressing.  
   MPFS.h has been modified to also default to use 32 bit addressing of 
   external EEPROM images.  You must rebuild any old MPFS images and reprogram 
   them if upgrading from a previous TCP/IP stack revision, which defaulted to 
   use 16 bit addressing.
31.Updated MPFS.exe to #include "TCPIP.h" instead of "..\Headers\Compiler.h" in 
   C files generated by the utility.
32.Added MPFSv2.exe PC utility for generating large MPFS images in program 
   memory (ASM30 code) for C30 users.  Previously, the C30 compiler placed a 
   limit of less than 32KB of total MPFS size due to the PSV window size 
   limitation on PIC24/dsPIC devices.  To get around the limitation, use the 
   new MPFSv2.exe utility to generate an .s file which can be included in your 
   project instead of the .c file generated by the traditional MPFS.exe utility.

Fixes:
1. Fixed a bug in ARPProcess() which would incorrectly send an ARP response to 
   an incorrect MAC & IP address if a TX buffer wasn't immediately available.
2. Fixed a TCP bug where TCPIsGetReady() would return TRUE even if no data was 
   left in the recieved packet.  Previously you had to call TCPGet() one last 
   time and have it fail before TCPIsGetReady() would return FALSE.
3. Modified TCP state machine.  Established connections will no longer 
   automatically close if left idle for approximately 45 seconds.  Note that 
   your application needs to ensure that no sockets unintentionally get lost 
   (For example: a server socket that received data only is established and the 
   cable breaks while connected.  In this case, the socket would never be 
   detected as being disconnected since the server never attempts to transmit 
   anything).
4. Stopped overclocking dsPIC33 and PIC24H devices.  Previously PLLFBD was 
   incorrectly set to 39 instead of 38 to yield a resulting Fosc of 84MHz 
   (42MIPS) instead of 80MHz (40MIPS) with the default Explorer 16 development 
   board.  Thanks go to Matt Watkins on the Microchip Ethernet Forum for 
   pointing this error out.
5. Corrected a bug in IP.c where IPHeaderLen would not be properly initialized 
   if a NON_MCHP_MAC was used (ex: RTL8019AS) and IPSetRxBuffer() was called.  
   This bug did not affect ENC28J60 or PIC18F97J60 family support.  Thanks go 
   to Darren Rook for identifying this issue.
6. Updated checksum checking code in ENC28J60.c for latest silicon DMA checksum 
   errata.
7. Declared TickCount in Tick.c/Tick.h as volatile and implemented an interrupt 
   safe reading procedure in TickGet().  Since this multibyte variable is 
   modified in the ISR and read in the mainline code, these changes are needed 
   to prevent rare inconsistency bugs.
8. Fixed Announce.c so the unicast remoteNode of the requesting packet would be 
   used rather than the remoteNode of the last received packet, which may not 
   be correct when transmitting.  Thanks go to Brett Caulton for identifying 
   this issue.
9. Fixed a DHCP bug which would cause DHCP renewals to continually occur after 
   only 60 seconds once the original lease expired.  Thanks go to Brett Caulton 
   for identifying this issue and fix.
10.Fixed a potential TCP socket leak in the FTP module.  Previously 
   FTPDataSocket would not be reliably initialized nor closed if the connection 
   was killed forcefully (user killed application, cable disconnected while 
   transferring, etc.).

Known Problems:
1. RTL8019AS MAC layer driver has not been updated for new TCP module.  Users 
   requiring RTL8019AS support should continue to use stack version 3.75.
2. I2CEEPROM.c has not been tested or completed.  Continue to use I2CEEPROM.c 
   from stack version 3.75 if this file is needed.
3. Telnet server module is still in development.  No user authentication 
   features are currently implemented.  Some telnet clients may render the 
   telnet server output incorrectly (in the wrong locations or wrong colors).  
   Testing has only been done with the Microsoft Windows telnet.exe utility 
   that comes Windows XP.
4. DHCP will continually send out DHCP Request packets when the lease expires and the 
   original DHCP server that gave the lease is offline.  The board will continue to 
   use the expired IP address until the DHCP server comes back online, at which point 
   the lease will be renewed or a new discovery will occur.  A new discovery should
   occur after timing out, instead.  It is believed that this problem has always 
   existed in previous stack revisions.
5. DHCP will continually send out DHCP Request packets when the lease expires and the 
   original DHCP server that gave the lease does not include Option 54, the Server 
   Identifier.  A new discovery should occur after timing out.  It is believed that 
   this problem has always existed in previous stack revisions.
6. TFTPc module has not been tested with this version.
7. Serial numbers >32K will be displayed on the serial port as a negative value when 
   C18 is used and the board is placed in configuration mode (RB0 button is depressed 
   on power up).



********
v3.75		14 August 2006
********
Changes:
1. Added beta DNS client module (DNS.c).  DHCP was also updated to obtain a DNS 
   server address.  Added AppConfig.PrimaryDNSServer IP address.  Added STACK_USE_DNS 
   configuration macro.  To use the DNS client, call DNSResolve() with the server name, 
   ex: DNSResolve("www.microchip.com"), and then periodically call DNSIsResolved() 
   until it returns TRUE, ex: DNSIsResolved(&IPAddressDestination).  Only one DNS 
   resolution can be in progress at a time.  Because the DNS client is a beta module, 
   the API or code may change before being finalized.  No formal DNS API documentation 
   is available yet.
2. Added beta NetBIOS Name Service responder module (NBNS.c).  Added 
   AppConfig.NetBIOSName string.  Added STACK_USE_NBNS configuration macro.  Added 
   MY_DEFAULT_HOST_NAME macro in StackTsk.h.  Now, whenever a NetBIOS broadcast 
   attempting to resolve AppConfig.NetBIOSName arrives, a response will be made.  
   This form of name resolution only works on a single subnet.  Off the subnet, 
   manual registration in a DNS server or other means will be needed to allow the 
   local Host Name to be recognized and translated to an IP address.  The default 
   NetBIOS name for the board is "MCHPBOARD".  To test the NetBIOS Name Service 
   module, try entering http://MCHPBOARD/ into your web browser instead of the board's
   IP address.
3. Added beta HTTP client module (GenericTCPClient.c).  This module demonstrates how 
   to make a TCP client application.  To test this module, uncomment the 
   STACK_USE_GENERIC_TCP_EXAMPLE macro in StackTsk.h, recompile, and then press the 
   B

⌨️ 快捷键说明

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