12013-10-17 (REL_1_6_0) Armink <[email protected]> 2 Notes: Added modbus master. 3 42010-05-06 (REL_1_5_0) Christian Walter <[email protected]> 5 Notes: Added support for Atmel AT91SAM3S (Cortex M3) for IAR. 6 7 Detailed notes: 8 - FEATURES (ATSAM3S) : Added new port. 9 102007-08-28 (REL_1_4_0) Christian Walter <[email protected]>: 11 Notes: Added support for HCS08. Fixed some small bugs in the documentation 12 for the porting layer. 13 14 Detailed notes: 15 - FEATURES (HCS08) : Added new port. 16 - BUGS (ALL) : Fixed some small bugs in the porting guide. 17 182007-07-17 (REL_1_3_0) Christian Walter <[email protected]>: 19 Notes: Added ARM7/AT91SAM7X port. Added Linux/TCP port from Steven Guo. 20 21 Detailed notes: 22 - FEATURES (ARM7): Added ARM7/AT91SAM7x port. 23 - FEATURES (LINUX): Added Linux/TCP port from Steven Guo. 24 - BUGS (ALL): Fixed bug in <eMBFuncReadInputRegister> where the high 25 byte of the register count was ignored. This does not have a 26 practical impact because the actual number of registers is always 27 lower. 28 292007-07-17 (REL_1_3_0) Christian Walter <[email protected]>: 30 Notes: Added Linux/TCP port. Fixed bug in MSP430 port. 31 Detailted notes: 32 - FEATURE (LINUX): Added Linux/TCP port. 33 - BUGS (MSP430): Fixed bug with calculating the timer value. 34 352007-04-25 (REL_1_2_0) Christian Walter <[email protected]>: 36 Notes: Added LPC214X ARM port with Keil compiler. Added Z8Encore port for 37 Z8F6422 microcontroller. 38 39 Detailed notes: 40 - FEATURE (ARM): Added LPC214X ARM port for Keil ARM 2.41. 41 - FEATURE (Z8ENCORE): Added Z8F6422 for Z8Encore using the ZDS II - Z8 42 Encore! development tools. 43 442007-02-18 (REL_1_1_2) Christian Walter <[email protected]>: 45 Notes: Fixed typo with the defined defining the supported Modbus 46 functions. Fixed bug when illegal slave address was passed to eMBInit 47 where the error was not detected. Fixed typo in the holding registers 48 where the frame for write multiple registers was parsed with the wrong 49 constants. The fix is not critical because the values matched. Fixed bug 50 in discrete input registers implementation where the frame was not parsed 51 correctly. Added new support for a CodeWarrior Coldfire port. 52 53 Detailed notes: 54 - BUG (ALL): Modbus functions are compiled into the stack conditionally 55 by changing the MB_FUNC_XXX defines to either true(1) or false(0). 56 The defines for MB_FUNC_READ_HOLDING and MB_FUNC_WRITE_HOLDING 57 were wrong. 58 - BUG (ALL): eMBInit did not correctly check for addresses. Therefore 59 is was possible to start the Modbus stack with an address of 0 60 or one > 247. 61 - BUG (ALL): eMBFuncWriteHoldingRegister should use 62 MB_PDU_FUNC_WRITE_MUL_ADDR_OFF and not MB_PDU_FUNC_READ_ADDR_OFF. 63 - BUG (ALL): eMBFuncReadDiscreteInputs calculated the number of discrete 64 registers to read wrong. 65 - FEATURE (ALL): Fixed some warnings in the code. 66 672006-11-19 (REL_1_1_1) Christian Walter <[email protected]>: 68 Notes: Fixed bug in Read/Write Multiple Registers function where 69 the registers addresses where calculated wrong. 70 Fixed bug in RTU and ASCII with the resource allocation in case of 71 an error. 72 Changed license to BSD style licsense. 73 74 Detailed notes: 75 - OTHER (ALL): License is now BSD for protocol stack. 76 - BUG (ALL): The registers address received in a Modbus frame 77 must be converted to application addresses. The code for this 78 conversion was missing and therefore has lead to error when 79 this function was used (Registers of by one, Start at > 1). 80 - BUG (ALL): If the serial initialization within the porting fails 81 a timer is still allocated in eMBRTUInit and eMBASCIIInit. This 82 can lead to a memory leak depending upon the implementation of the 83 porting layer. 84 - FEATURE (MCF5235): Added sample shell scripts for testing. 85 - FEATURE (MSP430): Added sample shell script for testing and 86 changed default values to match the other ports. 87 882006-10-30 (REL_1_1_0) Christian Walter <[email protected]>: 89 Notes: Added support for Read/Write Multiple Registers function 90 (0x17). Added some tips to reduce memory requirements. 91 Added MSP430 Port for GCC and Rowley Crossworks. 92 93 Detailed notes: 94 - FEATURE (MSP430): Added new MSP430 port. 95 - FEATURE (ALL): Added support for Read/Write Multiple Registers 96 function (0x17). The implementation simply makes two callbacks 97 to the eMBRegHoldingCB function where first the values are 98 written and then the other register values are read. 99 - FEATURE (ALL): Added some tips on reducing memory requirements 100 with the protocol stack. 101 1022006-10-30 (REL_1_0_5) Christian Walter <[email protected]>: 103 Notes: eMBDisable and eMBClose can now be called multiple times 104 which makes shutdown of the protocol stack easier. 105 Fixed bug in RTU state machine where we switched from the 106 error state immediately to the idle state. Correct behaviour 107 would be to wait till the end of frame. 108 Added new STR71X GCC port which uses only freely available tools 109 like GNU ARM, OpenOCD (Wiggler) and GDB. 110 111 Detailed notes: 112 - FEATURE (STR71X): Added GCC standalone port which does not 113 depend on the Rowley Crosswork tools. 114 - FEATURE (ALL): eMBDisable can now be called multiple times 115 and returns MB_ENOERR in case is was already disabled. 116 eMBClose also supports beeing called multiple times in 117 which pvMBFrameCloseCur( ) is called when the protocol stack 118 is in state STATE_DISABLED. 119 - BUG (RTU): Fixed bug in xMBRTUReceiveFSM where the error 120 state is immediately left because of a missing break. Instead 121 we should wait till the damaged frame is finished. 122 1232006-10-11 (REL_1_0_4) Christian Walter <[email protected]>: 124 Notes: Fixed bug when more than 255 coils are requested. Fixed bug in 125 Linux/Cygwin port when not all bytes could be written by the first 126 call to write. Added support for removing previously registered 127 function handlers. 128 129 Detailed notes: 130 - BUG (ALL): mbfunccoils contained a bug which limited the amount 131 of coils to read to 255. 132 - BUG (LINUX): prvbMBPortSerialWrite contained a bug in the loop 133 which writes the RTU/ASCII frame to the serial file descriptor. 134 If not all bytes where written in the first call or write was 135 interrupted the sent frame is corrupted. 136 - FEATURE (ALL): eMBRegisterCB now supports NULL as handler 137 argument in which case a previously registered function 138 handler is deregistered from the protocol stack. 139 1402006-09-27 (REL_1_0_3) Christian Walter <[email protected]>: 141 Notes: Added new functions to support registering of custom callback 142 handlers. This makes it possible to implement new Modbus function 143 codes without touching the protocol stack. 144 New port for ATMega128 added. Thanks to Richard C Sandoz Jr. for 145 the patches. 146 147 Detailed notes: 148 - FEATURE (ALL): Added support for registering new functions handlers 149 with eMBRegisterCB. 150 - FEATURE (AVR): Added patches from Richard C Sandoz Jr. for ATMega128 151 1522006-09-06 (REL_1_0_2) Christian Walter <[email protected]>: 153 Notes: Fixed bug in FreeRTOS porting layer for STR71X/lwIP target where 154 memory is not freed in the sys_arch_thread_remove function. 155 Synched MCF5235TCP port with the FreeRTOS/lwIP port for the STR71X. 156 157 Detailed notes: 158 - BUG (STR71XTCP): Sys_arch_thread_remove did not free the memory from 159 the TCB. 160 - BUG (STR71XTCP): Unnecessary call to vTaskSuspendAll removed. 161 - BUG (STR71XTCP): Bug with counting variable. The first to lwIP tasks 162 got the same name (lwIP0). 163 - FEATURE (MCF5235TCP): Enhanced functions from the STR71X/lwIP port 164 merged into the Coldfire port. 165 1662006-09-04 (REL_1_0_1) Christian Walter <[email protected]>: 167 Notes: Fixed bug in serial driver for STR71x target when the ring buffer 168 overflows. 169 170 Detailed notes: 171 - BUG (STR71XTCP): Under high load the ring buffer in the serial driver 172 functions might overflow. There was an error with counting the number 173 of received characters which corrupted received frames. 174 Now receiver correctly recovers in case of dropped bytes. 175 1762006-09-04 (REL_1_0) Christian Walter <[email protected]>: 177 Notes: Added support for ATmega8, ATmega16, ATmega32, ATmega169 and 178 RS485 drivers in the AVR support. Special thanks to Tran Minh Hoang 179 for his contribution. 180 Added a new lwIP port for the STR71X target which uses one serial 181 interface for a PPP connection. This can be used for remote Modbus/TCP 182 devices in combination with a Modem (E.g. GPRS or Analog). 183 184 Detailed notes: 185 - FEATURES (AVR): Integrated patches from Tran Minh Hoang to support the 186 ATmega8, ATmega16, ATmega32, ATmega169 controllers. 187 - FEATURES (AVR): Added support for RS485 drivers in the AVR code. The 188 example supports the DS76176. 189 - FEATURES (STR71XTCP): implemented function in STR71X/lwIP porting layer 190 to remove running tasks. 191 - FEATURES (STR71XTCP): added new thread creation function in STR71X/lwIP 192 porting layer which allows specifing the stack size. 193 - BUGS (STR71XTCP): pppOpen defined in ppp.c does not check the return 194 value of sys_thread_new. If task creation fails the system crashes. 195 - BUGS (STR71XTCP): pppMain must not return - Instead it should remove 196 its task from the scheduler. 197 1982006-08-30 (REL_9) Christian Walter <[email protected]>: 199 Notes: Added lwIP port for the MCF5235 target. The lwIP part is 200 generic and therefore FreeModbus now works on any target with 201 lwIP support. 202 203 Detailed notes: 204 - FEATURES: Incoperated MCF5235 FreeRTOS/lwIP port done by the 205 author in this project. 206 - FEATURES: Added lwIP port for FreeModbus 207 - FEATURES: Added demo application for FreeModbus and lwIP. 208 2092006-08-22 (REL_0_82) Christian Walter <[email protected]> 210 Notes: Fixed bug with Modbus ASCII support 211 212 Detailed notes: 213 - BUG: During the last upgrade an error was introduced in the 214 initialization code of Modbus ASCII and therefore ASCII 215 support was broken. The bug is fixed now and was tested with 216 the Win32 port. 217 2182006-08-22 (REL_0_81) Christian Walter <[email protected]> 219 Notes: Added porting guide 220 221 Detailed notes: 222 - OTHER: Added a new porting guide to the documentation. 223 - OTHER: Added a empty example for new ports to the project as a 224 starting point. 225 2262006-08-01 (REL_0_8) Christian Walter <[email protected]> 227 Notes: Added Linux RTU/ASCII port. 228 229 Detailed notes: 230 - FEATURES: Added a new Linux RTU/ASCII port. The port should work 231 on any Linux distribution and it should be possible to run it 232 on uCLinux. 233 2342006-06-26 (REL_0_7) Christian Walter <[email protected]> 235 Notes: Changed the WIN32 serial port to better fit into the design. 236 237 Detailed notes: 238 - OTHER: Design of the WIN32 serial port changed. The polling function 239 for the serial device are now called from the event loop. 240 - OTHER: Debugging uses the same interface as the WIN32/TCP port. 241 2422006-06-25 Christian Walter <[email protected]> 243 244 Notes: Initial work on a Modbus/TCP port is available. The port includes 245 an example for a Win32 port which uses the Winsock API. 246 247 Detailed notes: 248 - FEATURES: added required functions to core protocol stack to support 249 a Modbus/TCP implementation. 250 - FEATURES: added a Win32 port for the Modbus/TCP core. The port is 251 currently limited to one concurrent client. 252 - OTHER: The implementation of eMBClose to shutdown the protocol stack 253 was changed to unify it with the new Modbus/TCP code. 254 - 255 2562006-06-18 Christian Walter <[email protected]> 257 258 Detailed notes: 259 - OTHER: while working on the Win32 port some line feeds got 260 wrong. Also some source files used tabs instead of spaces. 261 - OTHER: prototypes for xMBUtilSetBits and xMBUtilGetBits fixed. 262 usNBits should be ucNBits by convention. 263 2642006-06-17 Christian Walter <[email protected]> 265 266 Notes: Fixed various bugs with the Win32 port 267 268 Detailed notes: 269 - FEATURES: implement shutdown functionality for protocol stack. 270 - FEATURES: protocol stack can be enabled and disabled during runtime. 271 - FEATURES: interface functions now do more error checking. For 272 example if eMBPool is called in an uninitialized state. 273 - FEATURES: extended Win32 demo application to use the new features. 274 - BUG: fixed bug in Win32 demo for ASCII mode. 275 2762006-06-16 Christian Walter <[email protected]> 277 Notes: The new version includes a new port for the 278 Win32 platform 279 280 Detailed notes: 281 - FEATURES: added Win32 platform 282 2832006-05-14 Christian Walter <[email protected]> 284 Notes: The new version includes a new port for the 285 Freescale MCF5235 processor. 286 287 Detailed notes: 288 - FEATURES: added new MCF5235 port. 289 - OTHER: fixed some missing code headers. 290 2912006-05-01 Christian Walter <[email protected]> 292 Notes: This version removes the t1.5 timers from the Modbus RTU 293 implementation because no one actually uses it and the CPU 294 load is very high. T 295 In addition some documentation cleanups has been done and the 296 ARM demo has been updated. 297 298 Detailed notes: 299 300 - FEATURES: the t1.5 timeout has been removed. Therefore only 301 one timer is required. 302 - BUG: the ARM demo project missed some files in the project 303 workspace and did not compile cleanly 304 3052006-02-28 Christian Walter <[email protected]> 306 Notes: This version includes support for two new command 307 (write multiple coils, read discrete input) 308 309 Detailed notes: 310 - BUG: some function used the wrong data types 311 - FEATURES: added support for write multiple coils function. 312 - FEATURES: added support for read discrete input. 313 - OTHER: some code cleanups with lint tool. 314 3152006-02-28 Christian Walter <[email protected]> 316 317 Notes: The new version 0.31 adds support for reading and writing the 318 coil registers and add some bug fixes. 319 320 Detailed notes: 321 - BUG: fixed bug with to small modbus requests being ignored. 322 - FEATURES: added support for write single coil function. 323 - FEATURES: added support for working with byte packed bit fields 324 to support coils and discrete inputs better. 325 - API: API for set slave id functions changed. 326 3272006-02-26 Christian Walter <[email protected]> 328 329 Notes: First public release which includes an ARM and AVR port. 330