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