Changelog.txt 14 KB

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