CHG2.TXT OPERATING SYSTEM CHANGES VCRT 5.xx ================================================================================ Model description: SBC4000 => 4002,4008,4012,4016,4018,4019 VC40XX => 4038,4058,4065,4066,4067,4068 VC44XX => 4438,4458,4465,4465c,4466,4467,4468,4472 VC4XXX => VC40XX,VC44XX VC64XX => 6438,6465,6466,6467,6468,6472 ================================================================================ VER5.29 compiled with cgtools 6.0.23 (CCS3.3) released 03/05/10 MAJOR RELEASE 1. changed link checks in binary loader and loader version 2. VC4XXX: fixed SDCARD driver (released 03/31/10) VER5.28.9 compiled with cgtools 6.0.23 (CCS3.3) released 02/24/10 BUG FIX RELEASE 1. VC64XX: fixed out plc capture issue 2. TCPIP: improved performance 3. VC64XX: added io_port functions - needs new vcrt4.lib 4. VC64XX: use ethernet autonegotiation as default now 5. VC64XX: disabled switch port 1 - fixed broadcast problem 6. VCXX72E: added sensorid 0x70 support 7. VC64XX: changed name 6418->6438 + added 6465,6466,6467,6468,6472 support VER5.28.8 compiled with cgtools 6.0.23 (CCS3.3) released 12/09/09 BUG FIX RELEASE 1. sysvar.h PRIVATE variable had wrong value in VCRT 5.28.5, 5.28.6 and 5.28.7 2. VC4XXX: improved display routines 3. internal 4. New option "DHCP N" in "#IP.asc" to wait "5 seconds * N times" for DHCP response 5. VC6418E: improved IO port driver 6. loader 5.28.8 checks sysvar[] for consistency VER5.28.7 compiled with cgtools 6.0.23 (CCS3.3) released 11/17/09 BUG FIX RELEASE 1. TCP/IP use 512 packet buffers 2. fixed capture EDMA 3. SBC4000: fixed init of timestamps table after cancel_capture_rq() 4. shell: changed version string for latest development versions VER5.28.6 compiled with cgtools 6.0.23 (CCS3.3) released 11/09/09 BUG FIX RELEASE 1. fixed capture driver queue full issue introduced in 5.28.5 2. VC6418E: added initial IO port driver 3. VC6418E: fixed PLC int 4. added sysfreepart() function - needs new vcrt4.lib VER5.28.5 compiled with cgtools 6.0.23 (CCS3.3) released 10/12/09 BUG FIX RELEASE 1. SBC4000: new sysvar MONI_TICKS to to change monitor load 2. change update5 -> update6 which supports VC64XX 3. new loader version 5.28.5 - check address of absolute linked binaries - internal 4. increased VCRT internal stacksize 5. FTP server: dir command improved memory checks 6. VC4XXX: improved serial port initialization 7. VC4012E fixed sensor PLL init problem introduced in VCRT 5.28.1 8. improved capture driver VER5.28.4 compiled with cgtools 6.0.23 (CCS3.3) released 08/20/09 TEST RELEASE 1. VC6418 initial support - use FPGA Beta9 - 2. FTP server: if an uploaded file is uncomplete it will be deleted and in case of flash a pack will be done VER5.28.3 compiled with cgtools 6.0.23 (CCS3.3) released 07/21/09 BUG FIX RELEASE 1. TCP: fixed KeepAlive option in case both peers send KeepAlive packets 2. internal 3. added sysvar CAPT_START2 for stereo cameras 4. TCP: minimal Send and Connection Timeout changed to 10000ms and 18000ms KeepAlive timeout will be 6/10 of connection timeout when connection timeout < 100000ms and KeepAlive socket option was set so 1 this is 1/10 of specified standard values so use at your own risk! 5. SHELL: added "sw" command - sw <0|1|2|4> "sw 0 " -> switch stdin, stdout and stderr of shell to serial device !!! "sw 1" -> switch stdin, stdout and stderr of shell to telnet device !!! "sw 2 " -> like "sw 0" but only if no ETHERNET LINK available !!! "sw 4 " -> starts extra shell process at serial device !!! CAUTION: this is a temporary setting which is lost at reboot !!! 6. internal 7. capture drivers: circular adressing improved 8. update5.exe Version 593 will now reboot into new VCRT if VCRT 5.28.2 or up is detected !!! VER5.28.2 compiled with cgtools 6.0.23 (CCS3.3) released 07/09/09 BUG FIX RELEASE 1. added correct FTPDIRECT_MEM flag in ftpclient routines - needs new VCRT.H 2. new softreset - VCRT is booting now with same code as in hardware reset 3. VC4X67E added support for change of IR sensivity 4. loader 5.28.2 - fixed load of relocateable code linked with cgtools 6.X 5. loader 5.28.2 - fixed reload of compressed files 6. loader 5.28.2 - use relocateable and compressed shell + #init 7. fixed capture_request() returns 0 in rare cases when request buffer is not full 8. shell command 'ps' shows STDIN/STDOUT/STDERR handle names 9. DM648 added initial capture driver for both video ports + a lot of new stuff VER5.28.1 compiled with cgtools 6.0.21 (CCS3.3) released 05/14/09 BUG FIX RELEASE 1. TCP/IP stack: fixed TCP OPENS list BUG 2. VC4465EC only: use BayerToRGB_Centred() instead BayerToRGB() in BAYER color mode 3. DM648 only: GEMAC driver support + fpga loader support 4. VC4002/08/16/18E only: i2c_dma support is now restricted to VC4012E only VER5.28 compiled with cgtools 6.0.21 (CCS3.3) released 03/03/09 OFFICIAL RELEASE 1. VC4XXX only: changed init of phy and ethernet hardware 2. now vcrt4.lib and depending headers are released with VCRT when there are changes 3. changed initial bootcode 4. added SDHC support for MM_multiread() on md: device 5. new sysvar SDCARD to switch DMA option for SD-Card 1=ON 0=OFF(default) VER5.27.14 compiled with cgtools 6.0.21 (CCS3.3) released 02/12/09 BUG FIX RELEASE 1. important fix for rare hangs of ethernet driver 2. VC4008E added new ioctl for serial databits and parity 3. SBC4000 fixed update of sysvar EXPOSING in capture VER5.27.13 compiled with cgtools 6.0.21 (CCS3.3) released 02/04/09 NEW FEATURE RELEASE 1. use cgtools version 6.0.21 2. use new libs - vclib 3.06 (30.01.2009) - flib 3.06 (27.01.2009) 3. DM648 only: 16MB Flash support, ISR driven serial driver, activated cache 4. VC4012E only: added dma version to read/write i2c with maximum speed 5. vcrt4.lib: added i2c_edma_read(), i2c_edma_write() added set_ctrl_reg2(), res_ctrl_reg2() added debounce() added io_fungetc() added task_set_priority added phy_write(), phy_read() added MM_writemultiblock() added FTP_receive_message() VER5.27.12a compiled with cgtools 6.0.19 (CCS3.3) released 12/18/08 BUG FIX RELEASE VC4012 only 1. fixed plc output of VC4012E VER5.27.12 compiled with cgtools 6.0.19 (CCS3.3) released 12/12/08 BUG FIX RELEASE 1. VC4XXX only: fixed serial FIFO code 2. VC4008E added 8MB FLASH option 3. initial VC64XX support 4. new vcrt4.lib 5. TCP: adjust keepalive timeout if connection timeout to low 6. VC4XXX only: new tool "es" for ethernet speed - Version 1.2 VER5.27.11a compiled with cgtools 6.0.19 (CCS3.3) released 08/18/08 NEW FEATURE RELEASE VC4012E only 1. fixed shutter() routine for full resolution to correct video clock (vcrt4.lib and "sh" command) VER5.27.11 compiled with cgtools 6.0.19 (CCS3.3) released 08/18/08 NEW FEATURE RELEASE VC4x58E only 1. VC4x58E only: support new sensorid 0x62 2. new libs and cgtools - vclib 3.06beta (24.07.2008) - flib (15.05.2008) VER5.27.10 compiled with cgtools 6.0.16/18 (CCS3.3) released 07/30/08 BUG FIX RELEASE 1. changed SHELL dir and FTP dir command to be able to show more directory entries on "md:" device 2. fixed VCP protocol password issue 3. loader 5.27.10 update - every section memory will be zeroed now 4. added io_fungetc() in kernel and vcrt4.lib 5. VC4465EC: new head revision 0x30 support VER5.27.9 compiled with cgtools 6.0.16/18 (CCS3.3) released 07/10/08 BUG FIX RELEASE 1. VC4002L only: fixed change of capture lines, MAX_LINES is 16383 now! 2. VC4002L only: fixed external triggering !!! CAUTION !!!: this needs Hardware change to CPLD Version 8 !!! 3. VC4002L/08E/12E/16E/18E: fixed shift of captured images after softreset 4. VC4012E added setgain routine for correct gain register settings 5. added password protection of telnet and ftp use "PWD: your_password" line in #IP.asc file to set password 6. VC4X65E(C),VC4472E: improved sensor settings for new sensor revisions 7. VC4XXX only: "fmt" command limits clustersize to 512 sectors !!! clustersize over 512 sectors should NOT be used !!! !!! CAUTION !!!: you should backup all files on md: device and reformat with "fmt" command !!! 8. VC20XX only: fixed shutter() return value for long shutter time VER5.27.8b compiled with cgtools 6.0.16/18 (CCS3.3) released 06/03/08 BUG FIX RELEASE VC4002L only 1. VC4002L fixed set of lines VER5.27.8a compiled with cgtools 6.0.16/18 (CCS3.3) released 05/26/08 BUG FIX RELEASE VC4XXX only 1. VC4XXX fixed wrong init of ILUT table VER5.27.8 compiled with cgtools 6.0.16/18 (CCS3.3) released 05/08/08 BUG FIX RELEASE 1. FTP server -> use "/fd:/user/" as root dir if no "md:" device available 2. fixed use of NEW_IMAGE_VAR in #init.exe -> overlay at boot became sometimes distorted 3. added initial VC4012E support 4. use new VC libs Version 3.05 5. fixed prtmodel() for VC4002L VER5.27.7 compiled with cgtools 6.0.18 (CCS3.3) released 04/22/08 BUG FIX RELEASE 1. Cameras with VC ethernet hardware only (VC20XXE and VC4XXXE): important fix in new ethernet driver 2. VC4XXX: added HW buffer support for serial RX 3. VC4465EC: fixed alloc and init of RGB memory 4. Increased maximum number of user tasks from 30 to 64 5. Improved TCP/IP performance with optimized recompile 6. internal 7. internal 8. pstr() uses now puts() which is faster 9. VC4002L/08E/16E/18E: use improved ethernet driver VER5.27.6 compiled with cgtools 6.0.16 (CCS3.3) released 04/10/08 BUG FIX RELEASE 1. VC4XXX only: use R11 of FPGA see VER5.27.5 2. TCP/IP: TCP SEND and CONNECT TIMEOUT can now be lowered via set of socket options to 1000 (send) and 1800 (connect) milliseconds 3. internal 4. internal 5. reverted initial value of ethlink from -1 to 0 6. fixed hang of "fmt" command on SBC4000 7. added "cs" command for doing quick checksums of files 8. added compression library to vcrt4.lib VER5.27.5_R10 compiled with cgtools 6.0.16 (CCS3.3) released 04/03/08 BUG FIX RELEASE VC4XXX only 1. VC4XXX only: use R10 of FPGA instead of R11 due R11 is not available for all cameras yet VER5.27.5 compiled with cgtools 6.0.16 (CCS3.3) released 04/03/08 BUG FIX RELEASE 1. VC20XXE: ethernet driver changes + workaround for ethernet RX lock if cable unplugged 2. internal 3. VC4XXXE: FPGA R11 ethernet HW and driver changes - 64 blocks 4. internal 5. internal 6. "fmt" command checks now for real card presence and not for sysvar MMC value reformatting of SD card without rebooting Camera is now supported 7. internal VER5.27.4a compiled with cgtools 6.0.16 (CCS3.3) released 03/25/08 BUG FIX RELEASE 1. VC4XXXE: new FPGA R11 ethernet HW and driver changes 2. VC4XXXE: FPGA R11 fixes rare occurring lock of ethernet RX hardware when unplug the ethernet cable 3. internal 4. internal VER5.27.4 compiled with cgtools 6.0.16 (CCS3.3) released 03/13/08 BUG FIX RELEASE 1. VC4XXXE: new FPGA R10 ethernet HW and driver changes 2. change in use of L2-cache to improve performance VER5.27.3 compiled with cgtools 6.0.16 (CCS3.3) released 03/06/08 BUG FIX RELEASE 1. VC4XXXE: new FPGA R09 -> double write and read speed for SD-Card 2. VC4XXXE: FPGA ethernet -> fix TX hangup with very high ethernet load 3. VC4002L: fixed capture error introduced in 5.27 (-> #FS27) 4. VC4008/16/18E: fixed capture error after softreset with reset() function 5. TCP/IP : do not block TCP/IP task if send buffer of ethernet device is full an ethernet send buffer full error is returned instead 6. new shell commands "bs" and "bl" to save and load bitmap files 7. added ".bmp" and ".cbm" file extensions for bitmap and compressed bitmap files 8. VC4X68E: added support for sensorid 0x53 9. VC4XXXE: fixed ethernet DMA performance issue VER5.27.2 compiled with cgtools 6.0.16 (CCS3.3) released 12/21/07 INTERNAL TEST RELEASE 1. VC4X67E only: first support of VC4067E VER5.27.1 compiled with cgtools 6.0.16 (CCS3.3) released 12/14/07 BUG FIX RELEASE 1. fixed string copy problem with compressed executeables in loader 2. fixed reverse lookup gethostbyaddr() 3. added FTP client prototypes in VCRT.H 4. internal VER5.27 compiled with cgtools 5.1.12 (CCS3.1) released 10/25/07 OFFICIAL RELEASE 1. new VCRT4.LIB VCRT.H VCRT_COMPAT.H 2. VC4008/16/18E: fixed init of DMA flag in cancel_capture_rq() - bug was introduced in 5.26.3 VER5.26.5 compiled with cgtools 5.1.12 (CCS3.1) released 10/23/07 TEST RELEASE VC4X58E 1. VC4x58E only: added new sysvar GAINDIFF 2. VC4XXXE only: added initial SD-Card spec 2.0 support 3. internal VER5.26.4a compiled with cgtools 5.1.12 (CCS3.1) released 10/16/07 BUG FIX RELEASE 1. VC4002L/08E/16E/18E only: fixed problem in ethernet driver when link is down VER5.26.4 compiled with cgtools 5.1.12 (CCS3.1) released 10/10/07 BUG FIX RELEASE 1. VC4XXX only: fixed ethernet interrupt error - was cause of rare packet loss VER5.26.3 compiled with cgtools 5.1.12 (CCS3.1) released 10/02/07 BUG FIX RELEASE 1. VC4XXX: new FPGA release R08 hardware fix for random failure of SD card initialization 2. VC4XXX: fixed priority of monitor task 3. VC4016E: support new sensor hardware with sensorid 0x90 4. VC2065EC/VC4465EC: init_color_lut() is now in VCRT (needs new vcrt4.lib to use) 5. VC4465EC: set initial display period to 10 6. VC4008/16/18E: fixed sync of DMA with capture_request VER5.26.2 compiled with cgtools 5.1.12 (CCS3.1) released 09/18/07 BUG FIX RELEASE 1. fixed shutter timings in #init and use new floating point sysvar EXUNIT_F 2. fixed random failure of SD card initialization 3. added VC4465EC support VER5.26.1 compiled with cgtools 5.1.12 (CCS3.1) released 08/22/07 NEW HARDWARE RELEASE 1. VC4X66E added support for sensorid 0x43 VER5.26a compiled with cgtools 5.1.12 (CCS3.1) released 07/17/07 OFFICIAL RELEASE 1. VC40XXE/VC44XXE only: use new FPGA Revision R07 to improve ethernet performance VER5.26 compiled with cgtools 5.1.12 (CCS3.1) released 07/05/07 OFFICIAL RELEASE 1. internal 2. improved telnet_out task 3. added IMPORTANT Note in Readme.txt KNOWN ISSUES: DNS works only with first DNS server !!! IP file entry example: "NS1: 192.168.26.1" VER5.25.13 compiled with cgtools 5.1.12 (CCS3.1) released 06/27/07 NEW FEATURE RELEASE 1. added DNS support 2. changed sensor optimization for VC4X38E and VC4X68E VER5.25.12 compiled with cgtools 5.1.12 (CCS3.1) released 06/13/07 BUG FIX RELEASE 1. optimized VC4X38/58/65/66/68E for FPGA release R06 VER5.25.11b compiled with cgtools 5.1.12 (CCS3.1) released 06/04/07 BUG FIX RELEASE 1. fixed reset of config: only pressing ESC key should lead to reset to default IP VER5.25.11a compiled with cgtools 5.1.12 (CCS3.1) released 05/30/07 BUG FIX RELEASE 1. VC4XXXE only: use compatible mode for accessing SD cards formatted with old driver 2. VC4XXXE only: use Release R06 of FPGA bit files 3. internal VER5.25.11 compiled with cgtools 5.1.12 (CCS3.1) released 05/24/07 BUG FIX RELEASE 1. VC4468E improved picture quality / sensorid 0x52 supported 2. raw input for telnet 3. removed wait for key in debug mode (loading of relocatable code) 4. use new SDCARD driver (improved speed) VER5.25.10 compiled with cgtools 5.1.12 (CCS3.1) released 05/05/07 BUG FIX RELEASE 1. VC2065EC: fixed init of rgbo mem 2. FTP server: fixed device full and write error distinction 3. increased VC_MAX_EVENTS from 32 to 64 4. VCRT.H: added io_fstatus and io_status 5. VCRT.H: added TCP/IP error codes 6. VC4008E,VC4016E,VC4018E/B only: added CPLD VERSION 5 support this fixes cancel_capture_rq(): no extra picture taken anymore with ext. trigger 7. use CACHE_LINE_SIZE aligned memory allocation for C64XX 8. added debug switchable output for loader 9. fixed raw output for telnet device 10. shell: added "dbg" command to change sysvar DEBUG_SWITCH per command 11. C64XX: optimized flash timings for 90ns 12. image timestamps are using now U64 type instead of long (see VCRT.H) 13. added VC4438E support VER5.25.9 compiled with cgtools 5.1.12 (CCS3.1) released 03/22/07 BUG FIX RELEASE 1. TCP/IP: fixed VCRT_getsockopt() 2. support for both old and new head CPLD rev 0x80 for VC4018E 3. internal 4. FTP server: fixed memory leak in list/dir command 5. FTP server: improved upload speed VER5.25.8 compiled with cgtools 6.0.10 (CCS3.3) released 03/02/07 BUG FIX RELEASE 1. use new compiler from CCS 3.3 for libs and kernel 2. fixed slow write in MediaCard filesystem 3. support for both old and new head CPLD rev 0x20 for VC4038E 4. internal 5. improved timing for TCP/IP stack (5.25.8a) VER5.25.7 compiled with cgtools 5.1.11 (CCS3.1) released 02/22/07 BUG FIX RELEASE 1. fixed echo negotiation for telnet clients 2. added ioctl for telnet device to enable raw output 3. use head version of libs VER5.25.6 compiled with cgtools 5.1.11 (CCS3.1) released 02/08/07 BUG FIX RELEASE 1. fixed DHCP client - bug was introduced in VCRT5.24.29 2. added VC4472E suppport 3. minor enhancements in SD card performance 4. internal VER5.25.5 compiled with cgtools 5.1.11 (CCS3.1) released 01/26/07 NEW FEATURE RELEASE 1. added VC boot logo 2. support for both old and new head CPLD rev 0x40 for VC4X65E 3. added display of VCRT version and hardware model 4. fixed telnet takeover message when using VCP recovery 5. do gratious ARP at boot time to force ARP cache updates 6. internal 7. fixed loader strcpy of last command VER5.25.4 compiled with cgtools 5.1.11 (CCS3.1) released 01/12/07 NEW FEATURE RELEASE 1. automatic connect of events (needs new vcrt4.lib !!!) 2. new exec3() allows tuning of priority and timeslice per function call 3. fixed parsing of ip file 4. added .txt as a valid ASCII extension 5. file descriptor of a pipe shows now size of pipe 6. the system variable DISP_ACTIVE on VC4XXX Hardware allows now disable of display DMA command "disp -a 0/1" allows to set this from shell 7. added reload of compressed executeables - loader version 5.25.4 8. print to stderr if file is relocatebale 9. command kl shows now debug logs 10. removed dmp and jt command - added unix command shortcuts cp,ls,rm,ps ... 11. update5 allows now update of older VC4XXX hardware without encoder support 12. internal 13. internal 14. internal VER5.25.3 compiled with cgtools 5.1.10 (CCS3.1) released 12/05/06 NEW FEATURE RELEASE 1. Added KEEPALIVE to FTP and TELNET Server: Every tcp connection sends now keepalive packets to test the link every minute. If link is down for more than 100 seconds the tcp connection will be closed !!! 2. Added telnet session TAKE OVER feature: Telnet currently deals only with one shell connection. Now its possible to take over a running telnet connection and drop the old one. 3. changed VC4X58E settings for new FPGA Rev 103 4. internal 5. shell command "ex" disconnects telnet connection VER5.25.2 compiled with cgtools 5.1.10 (CCS3.1) released 11/30/06 BUG FIX RELEASE 1. CAUTION!!! VC4002E,VC4008E,VC4016E,VC4018E/B only: reversed polarity of trig_inp signal !!! trig_inp now conforms to specification 2. fixed bug in serial driver close 3. TCP/IP: reenable directed broadcast again - was disabled to prevent smurf attacks VER5.25.1 compiled with cgtools 5.1.10 (CCS3.1) released 11/24/06 TEST ONLY RELEASE 1. changed VC4X58E settings 2. VC20XX only: fixed init of powfail variable 3. added optional debug output for relocateable code VER5.25 compiled with cgtools 5.1.10 (CCS3.1) released 11/16/06 VC4002/4008/4016/4018E/B only: 1. fixed PLC_INT event 2. fixed cancel_capture_rq() 3. support CPLD Version 4 (exp=0) VC40xx/44xx only: 4. init of ADC improved timing 5. fixed charging of onbord battery 6. use faster timing parameters for md: 7. fixed write of shadow register in capture_init() 8. internal changes for MMC 9. Media Card: format with full cardsize, read from card CID register 10. fixed FPGA write timing and ADC init 11. added system variable TIME_SLICE for changing of default time slice in tasks 12. VC44XXE only: from 5.24.4 onward only 125Mhz SDRAMCLK is supported - before only 100Mhz!!! (this needs change of hardware!!!) 13. VC40/44XXE only: only PWR_PCB Version 1.4 is now supported (this needs change of hardware!!!) - this includes encoder support! - serial tty output has to be enabled if needed ! - overcurrent and plc voltage check has changed with new hardware ! CAUTION: older VC40/44XXE hardware is not compatible with this VCRT Version!!! 14. added VC4068E support 15. internal 16. internal 17. internal 18. VC4468E support 19. VC4002E support 20. internal 21. show camera model name at startup 22. use model name VC4002L instead VC4002E for line camera 23. VC4465E support 24. optimal camera head values for VC4X66E 25. VC4X66E only: Hardware Change -> new Programming of Camera Head (Rev 0x41) CAUTION: older VC40/4466E head hardware is not compatible with this VCRT Version!!! 26. fixed load of compressed file with exec1/exec2 (pipe size was not reduced) 27. redirect stderr to telnet output 28. fixed loader -> if new task was started with higher priority than loader the exit handler to free the tasks memory could not be registered before the new task runs. As a result the new tasks memory was not freed. 29. power fail isr exists on VC20XX only 30. increased number of events from 16 to 32 (VC_MAX_EVENTS 32) 31. added TIMER2 event 32. VC4X68E only: changed ADC programming for C4SEN205 V1.1 33. use -mi100000 optimized rts6200.lib and new vclib 3.02 for shell and init 34. VC44XXE only: support VC44XX-CPU PCB Rev 1.2 35. internal 36. added timer2 user isr support for C64xx CPU 37. TCP/IP: fixed tcp window update 38. improved settings for VC4X68E with new VC4468 bitfile 39. internal 40. added retrieval of sensorid when available 41. internal 42. use updated version of cgtools 5.1.10 43. use new FPGA Revision 102 which fixes random picture errors 44. added ping command to shell 45. improved TCP/IP 46. fixed TIMER2 Macros in VCRT.H 47. internal 48. internal 49. internal 50. show decimal values for file size in dir command 51. show remaining space before uploading with lo command 52. internal 53. internal 54. internal 55. internal 56. added VC4X58E support 57. internal 58. fixed "js" shell command 59. added DISPLAY_EVT event 60. VC20XXX only: fixed plc_init(): sysvar PLCIN was not initialized at boot time VER5.24 compiled with cgtools 5.1 (CCS3.1) released 03/17/06 - VC40XX Release only 1. VC4466E support 2. changed init of ADC for 4066E to same values as VC4466 to get reduced noise 3. getf8() is now kernel call instead of define to handle different flash access methods 4. use faster timing for Media Card driver for VC4466E 5. added system variable ETHLINK for link monitoring 6. added interrupt latency check in "ht" command 7. added test workaround for EMAC CRC error and sysvar EMAC_COUNT 8. use 25Mhz als MDIO clock to reduce MDIO latency (VC4008/16/18/E/B) 9. make local copy of device name in pipe_install() 10. added PHY routines for VC20xx/VC40xx 11. VC20xx only: init PHY to 100 Mbit / fullduplex - NO autonegotiation! 12. added complete EMAC reinit in case of HOST error (VC4008/16/18/E/B)! 13. fixed pipe local name copy 14. changes in EMAC driver (VC4008/16/18/E/B): - reninitialize descriptors in ENET_reinit() - changed number of EMAC buffers from 32 to 128 - use of faster memcopy function FL_mem_cpy() in EMAC driver - tag free descriptors after copy - use invalidate cache range instead clean_cache() - Cache/DMA duty cycle 50/50 - added restart of DMA Receive if at END of Queue 15. TCP/IP stack: - max number of PCBs is now 256 - Fixed BUG in TCP_return_open() which lead to lockup of TCP/IP stack! 16. recompile TCP/IP for improved ISR latency with -o0 17. fixed some possible TCP HAZARDS 18. removed time_delay in EMAC_reset() 19. removed testcode in init_capture() (VC4016E only) 20. added some checks in cache routines 21. switched off logging of PCB and SOCKET calls for speed 22. TCP_MAX_CONNECTIONS is now 128 to save resources 23. No task_set_error() in case of "file not found" 24. fix in mem command 25. fix in ethernet driver (VC and EMAC hardware) 26. TCP TIME_WAIT timeout is now computed as 2 times send RTT 27. fixed timezone input in time -s command 28. changed priority of TIMER and EMAC interrupt 29. interrupt latency check now only in testversions 30. cache operations are now locked against each other 31. flash erase uses time_delay(10) while waiting for flash to complete 32. internal 33. fixed cancel_capture_rq() for (VC4008E/16E/18E/18EB) 34. VC4065E/VC4066E only: - fixed timing to resolve blooming problem in binning mode - CAUTION: to make this fix work you have to update the hardware also !!! VER5.23 compiled with cgtools 5.1 (CCS3.1) released 12/12/05 1. Introduced timestamps for exposed images sysvar TIMESTAMP is a pointer to the list of timestamps (20 entries) timestamp is computed as follows: long timestamp = SEC*1000+MSEC see VCRT.H 2. Media Card could now be formatted with full space (VC4038E/65E/66E) 3. Pack of flash after boot (VC4018EB only) 4. Introduced support of half duplex connections (VC4008E/16E/18E/18EB) 5. internal 6. fixed TCP protocol to prevent running out of memory under high load 7. internal webserver can now access Media Card md: (use /md/ in uri) 8. internal 9. soft reset works now correct for VC20XX - added userfunction reset() 10. internal 11. fixed Media Card clockrate(VC4038E/65E/66E) 12. modified Media Card filesystem for use with up to 1GB cards, command fmt now in shell with parameter for size (16,32,64,128,256,512,1024MB) fmt size see above - ommitted size will format 16MB as default 13. fixed fseek() with buffered IO 14. show CPLD version for VC4016E 15. fixed init of VC4016E and VC4066E 16. FTP-server LIST command fixed for more than 70 directory entries 17. Testversions have a banner and special testversion number now 18. append and seek on Media Card filesystem works now 20. VC4008E,VC4016E,VC4018E/B only: reset of EMAC in bootloader 21. fixed plcin in FPGA (VC4038E/65E/66E) 22. added color display support for VC2065CE and new commands disp,wb wb allows whitebalance calibration disp -c [0..5] change of display modes - default is 3 [BAYER to RGB] disp -g [0..100] change of gamma value - default is 0.6 = 60 (all cams) disp -p [1..x] change of display period - default is 20 23. dir command and FTP server can now handle 1024 directory entries 24. internal 25. added full support for relocateable executeables use linker option -ar to get a relocateable program file 26. added I2C_INT event for VC4018E - i2c interrupt enable bits have to be set 27. changed name of serial device "ittya:" to "kbd:" (VC4008/4016E/18E/18EB) to allow use of kbd functions - use of the old name "ittya:" is also possible 28. new system variable UPTIME - shows system uptime in seconds (32bit) 29. internal 30. added mdir "module directory" command mdir to show modules loaded (currently up to 30) mdir -v to show module information for all mdir to show module information for module id MID 31. added mem command to show memory block allocation mem to show free memory blocks and memory usage mem -v to show all blocks mem to show memory blocks for process id PID 32. changed behaviour of kill command - task memory resources are freed now! 33. added exec2() same as exec1() but with currently 2 parameters - see VCRT.H VER5.22 compiled with cgtools 5.1 (CCS3.1) - VC40XX Release only 1. FTP server: fixed error signaling in case of truncated write due to a no space left on device condition 2. internal 3. DHCP: changed transfer id to portion of MAC address to make it unique this avoids collision of transfer ids when using several cameras starting at the same time 4. ioctl IO_REMAIN on flash device gives now correct value 5. serial device kbd: works now (VC4038E/65E/66E) VER5.21 compiled with cgtools 5.1 (CCS3.1) - VC40XX Release only 1. wait 1.5s at bootup to give ETHERNET LINK enough time to come up (this fixed lost VCP recovery frames at bootup) 2. dont load relocateable code with unknown reloc types 3. bug fix in fget() with buffered io 4. support for VC4065E and VC4066E 5. added io_ftell() 6. correct polarity for trigin and trigout (VC4038E) 7. horizontal alignment of display signal fixed (VC4038E) VER5.20 compiled with cgtools 5.1 (CCS3.1) - VC40XX Release only 1. vcp protocol works now with fixed IP configured 2. fixed possible packet corruption in ethernet driver 3. enhanced load of relocateable program files 4. kbd: device is now also useable as serial device (VC4038E) 5. internal 6. shell command "ver" shows now CPLD or FPGA version 7. internal 8. internal 9. internal 10. internal 11. fixed init of sensor for VC4018E VER5.19 compiled with cgtools 5.0 (CCS3) - VC40XX Release only 1. VC4008E/4018E changed supported memory size for RAM (32MB) and Flash (4MB) CAUTION: older hardware versions with 16MB RAM and 2MB Flash are NOT supported anymore !!! 2. make random generator of IP stack MAC dependant 3. fixed cache setup for 40xx -> fixed missing ethernet frames 4. fix in capture - start address of cache invalidate 5. internal 6. loader can now handle copy sections which were responsible for non executeable programs generated with CCS 2.2 and CCS3 7. fix in fflush when doing write on full device 8. implemented recovery protocol which sends packet with content of IP.asc, #ID.asc and autoexec.asc at startup and listens for 500ms to recovery packets sent by a pc-program (vcnet) major features are: - reset IP address to default - avoid execution of autoexec.asc 9. activated improved display task 10. changed div/32 to div/16 for correct VC4008E baudrate 11. fixed DHCP timing 12. added overcurrent protection (VC4008E/4018E) 13. fixed shutter timing (VC4008E/4018E) KNOWN BUGS: CAUTION: VC4038E only (hardware issues) - polarity for trigin and trigout inverted !!! - horizontal alignment of display signal will be fixed (both issues will be changed in next hardware revision!) VER5.18 1. fix in loader 2. change in VC_DIRENT structure (added 4 int values at the end) 3. added FTP server commands SYSTEM,PWD,CWD,LIST,DEL access to fd: and md: with standard ftp client is now possible 4. added DHCP client 5. fix in disconnect_event() 6. call exit() after main application (depends on CCS 2.1 / cgtools 4.20 rts6201.lib) 7. kbd device is always closed at exit of application 8. new trigger interrupt with macros to enable/disable sets trigger event TRIG_READY when pulse on trigger input occured 9. compressed files support works again (was compiler error in cgtools 4.20) 10. new system variable TPRIORITY for exec1() task priority (4-19)(default is 9) 11 show filename as taskname in exec1() 12. fixed bug in io_fclose(): when there occurs a write error file was never closed 13. limited relocation support 14. type command has now dbg: pipe support 15. overwriting existing files on md: device is now possible VER5.17 1. HW handshake for serial versions 2. new MMC file system MMC device with old filesystem has to be formatted with the provided fmt.exe followed by a restart of the camera! 3. buffered file io 4. copy now checks free space on device 5. sbc4000 support 6. fix for install of MMC device (string was overwritten) 7. dir shows free space on device 8. file append for MMC filesystem 9. IO_REMAIN io control for MMC device 10.interp() now supports more than 8 char path length this allows an execution path like "md:/app.exe" KNOWN BUGS: There may be a problem with compressed files VER5.16 1. relates to: OS of vc20xx ethernet cameras bug: eol in #ip.asc are not handled properly if transferred via ftp fix: accept cr or lf as eol in #ip.asc parser required actions: install new camera os 2. relates to: OS of vc20xx ethernet cameras bug: A tcp destination may stop requesting retransmissions because of checksum errors in sent tcp packets. A socket may block forever. fix: corrected tcp checksum calculation and performance enhancement for ip checksum calculation. actions: install new camera os 3. relates to: OS of vc20xx cameras and vcrt4.lib bug: If a function call set_ovl_mask(0) is followed byte a call of vmode(mode) and mode > 3, the overlay is reenabled, because the system variable OVLY_MASK still holds the old value. Only system variable OVL_ACTIVE was set to 0 by function call set_ovl_mask(0). fix: any call of set_ovl_mask() changes system variable OVLY_MASK. actions: relink with new vcrt4.lib KNOWN BUGS of VER5.16: There may be a problem when writing to full MMC VER5.15 internal release VER5.14 1. introduced entries for the following functions: io_fscanf(), io_fprintf() 2. cancel_capture_rq() now sets system variables imgready and storing to 0 3. when calling compressed executables the system now releases the memory used for the pipe 4. internal 5. internal 6. increased stack size for task "loader" (the task for all programs called via exec including the shell and all user programs) to 0x010000 bytes (was 0x6000) 7. internal 8. removed software bug from TCP/IP. The crash occured when repeatedly accessing the camera's IP address with a non-existing port number. The crash occured in function TCP_Service_packet() (tcp.c) and was caused by read access to a non-existing struct element (address close to 0) which corrupted the processor cache. the following line of code exhibits the problem: if (tcb == NULL || tcb->state == CLOSED || tcb->state == TIME_WAIT) { ... VER5.13 (released 01/23/04 for VC2048E only) 1. fixed problems with programming of A/D converter programming (see 5.10 #13) results in random programming of A/D converters when booting (mainly visible as different brightness of alternating lines) 2. adjustment of A/D converter parameters for correlated double sampling. VER5.12 (released 12/09/03 for Ethernet versions only) 1. version 5.11 was unable to change IP addresses (VC2038E, VC2065E, VC2048E) VER5.11 (released 11/21/03) 1. modified init.c (#init.exe) for VC2066 and VC2068. init.c now performs memory allocation for capture/display and overlay buffers 2600 KB instead of 900 KB 3. introduced system variables IPADDR, IPMASK and IPGATE for ethernet versions (sysvar.h) 2. internal VER5.10 (released 11/13/03) 2. changed definition of tpwait from "while(!trdy()) wait(4,100)" to "while(!trdy())" in VCRT.H 3. TCP/IP compiled with compiler option -o3 (maximum optimization) 9. completely remodeled event handling, now any task may use events 10. introduced VCRT trap functions event_connect_to_task() and event_disconnect() (neccessary when MMC is used in parallel task) 11. Macro vcmalloc() sometimes allocated 4 times the amount of memory requested. This was due to limited resolving capabilities of the preprocessor. I therefore introduced some more brackets like: #define vcmalloc(x) sysmalloc((x),MDATA) and #define vcfree(x) sysfree((x)) in VCRT.H 12. introduced system variables USR_EVENT and USR_EVT_LAST in sysvar.h indicating the number of the first and the last user event available (8 and 15 at the moment) user events may be set with set_evt(number) and evaluated with wait(number, timeout) be sure to connect to event services whenever you are in a parallel task 13. resolved VC2038E boot problems: sensor A/D converter programming sometimes failed 1., 4. thru 8. : internal VER 5.09 (released 08/14/03) 1. io_fclose(fp) internally tried to memfree() memory previously not beeing allocated when fp = io_fopen("md:") This resulted in an internal "pointer error" for the system error flags (non-serious error) 2. mdrv.c MMC driver: key lock was placed too early, so that in some cases EDMA would not come to an end (especially when tpict or live image was activated) 3. mdrv.c edma bug fixed - read access to edma14->FIXEIX does not work while EDMA is running (internal processor bug, not documented) 4. removed functions MM_erasegroup() and MM_cmd_adr() from source code (not needed anyway). MM_cmd_adr() was probably responsible for one customer MMC being write protected on supposed user program crash. Since write protection (and write unprotect) is not used, one has to be very careful not to have code in memory which could do the protection when the DSP runs through memory in an uncontrolled fashion. 5. Some MMCs seem to put themselves in a mode in which they do not correctly perform the boot process like they should conforming to specification. Those MMCs seem to have sector data available when they are supposed to give busy / non busy information as a response to CMD1 at the end of the boot process. For this reason in function MM_cardreset() a loop with 1000 calls of CMD(-1) (send 0xff) was added right after the clocking phase before CMD(0) and the CMD(1) loop to guaranty that all card data are clocked out. Mysterious about that behavior is that according to specification the MMC should power-up in MMC mode (not SPI) and in this mode a CS is not necessary. The 1 msec clocking phase should therefore be enough to clock out all data which may eventually be in the buffer. 6. MMC file system: introduced compulsory tag clearing for empty chains. This introduces some additional delay for deleting files but guarantees that tags are not used twice for different files or in different parts of the same file. 7. Removed bug introduced in Version 5.08 (which was shipped to selected customers only, see also position 3. and 4. of bug fix report for 5.08) is_space_available() needs to remove directory items twice from the linked directory chain. when the items are appended to the chain again, it was done at the end of the chain and not at the position where they had been before. This causes problems when a backup copy of the directory is written to MMC, since both the original directory and the copy are held in memory before the copy is written. Any minor difference between both has dramatic consequences for the file system. 8. Added volume information (volume name, date of creation, date of last write operation, total number of sectors, total number of chains, file size used, software version) introduced function append_item_pos() to exactly position the items 9. added number of sectors checking when writing a directory copy (outputs an error message) 10. removed functions MM_read_sector() and MM_write_sector() out of kernel jump table (not needed anyway by anybody) 11. moved call to function io_vcmmc_install() from loader to shell. mounting of md: can now be prevented by pressing ESC during 0.5 sec boot pause VER 5.08 (released 07/09/03) 1. display refresh could "hang" for transition (DISP_ACTIVE + OVLY_ACTIVE) -> DISP_ACTIVE a small change in use of variable "transfer_done" eliminated this 2. when OVLY_ACTIVE but not DISP_ACTIVE, VCRT would not update the overlay 3. MMC filesystem would crash when the card was absolutely full. When writing to the card the routine MM_raw_write() sometimes made requests for empty chains. When the request was denied (because no more space available) garbage was written to the log which in turn crashed the card. 4. In the cause of the above a function was added "is_space_available()", which does not only check if there is at least one chain available for the user file but also one chain for the current directory, which may eventually need an append at this very moment. Also, there must be enough room for a copy of the directory, which the system creates from time to time to prevent data loss on power failure. The available total media size may therefore vary depending on the number of files on the MMC and on the size of previous files being deleted, and is, thus, considerably lower than the size printed on the card. 5. Opening a file for write ("w") on MMC and not writing to it (or less than a sector) resulted in ugly "#" files remaining on the MMC after the next boot. The reason was an incorrect dirtag entry (0 instead of -1) when creating the file. When booting, self-repair recognized the error condition (file not closed) and tried to erase the empty file, but the resulting empty chain could not be correctly mapped. 6. Problem with deletion of extensionless files on MMC fixed. The file-name was incorrectly stored including a period ("."). 7. Ethernet versions did not print an error message when mounting a missing or defect MMC (now appears before the "loader" prompt) 8. MMC directory struct "MM_DIR_ITEM" did not always contain the correct "wr_date" (date of last write) but instead the date of the last directory pack operation. remark: "cr_date" (date of creation) was correct. 9. introduced function _cancel_capture_rq(), which cancels a previously issued capture request. The function first checks if a capture transfer is currently active (i.e. data being captured from CCD previously is transferred into main memory). If so, the function returns 1 and does not perform a cancel operation. If not, the cancel is done immediately and will return 0. Execution time: approx. 1 msec, when successful. 10. no automatic MMC directory reorganization in power-up booting procedure any more 11. Power-up timing for MMC was slightly too short due to error in _time_delay() function This did not have apparent consequences for MMC but was corrected anyway. the reason for _time_delay() malfunction was not investigated, but it seems that the actual value of the argument must be 1 larger than expected. 12. MM_pack_factor() corrected. The function did not calculate the size of the directory correctly. MMC directories were therefore updated (packed) more often than really needed REMARK: due to a hardware modification in the VC2038 sensor head, older versions of the camera (shipped before Jul. 1st) show a one pixel jitter on externally triggered image captures with VCRT 5.08 VER 5.07 1. serial cameras: when leaving serial cable open or connecting to a switched-off PC, cameras denied to boot correctly - caused from interrupt deadlock from characters coming in at boot time 2. "timeout" message when using MMC (mostly in MM_readblock). This error was really difficult to chase. It stems from a completed EDMA chain (mdrv.c, channel 14) not setting the apropriate interrupt bit in EDMA_CIPR register. The problem is that slight changes in source code prevent occurence of the bug. Since it is a hardware error, there is only a patch (if the error might occur again some time): after the timeout of 100 msec I check if the EDMA channel has finished. If so, I continue as normal. If not, we sure have a serious error which returns a negative value. This error also could cause considerable delay (several seconds) for MM_writeblock(). In this case the string "timeout" would not appear 3. MM_readblock(), MM_writeblock(), MM_command(), MM_cmd_adr() now keyed. With our earlier VC11 systems we sometimes had the problem (1996 or earlier) that crashing software could change the contents of the flash EPROM. We solved the problem by using keyed software. With that in mind, I introduced keyed software also for the MMC drivers. The key guarantees, that the access to the MMC is only granted, if the routine is entered in an ordered manner (i.e. from the beginning). 4. introduced RTS/CTS hardware control macros to VCRT.H VER. 5.06 1. external image triggering resulted in incorrect display updates - fixed 2. program load function changed to linear file addressing 3. daylight saving time + timezone for MMC dir command corrected 4. int_iis2: EDMA_CIPR is now cleared selectively for the interrupt used 5. change size ioctl command added for pipe device 6. ethernet: default stdio is now telnet pipe also for parallel processes 7. smooth live and tpict display image update: now only if *capt_start == *disp_start (we must check if this should rather be the capture_request address) 8. ultra-short exposure time support added for VC2065x (see changes 8 through 10) 9. changed *exuint to 39 for VC2065x (was 60) in init.c (system initialisation) 10. shutter() : subtracted 1 from *expcnt resulting in shortest shutter 20 - 30 usec (depending on model) 1 now added in capture_request values for exp: -3: 5usec, -2: 10usec -1: 15usec 0: 20usec 1: 59usec etc. 11. shutter() more precise calculation of return value (exact shutter time) 12. added system variables TOTAL and XSG for shutter calculation in SYSVAR.H 13. internal change 14. internal change 15. bug in pack command fixed: erased all files in one sector when none was deleted before 16. flash eprom open() now refuses to open a full device for write 17. prototype for _flpgm8() added to vcflashp.h (flash eprom device driver internal) 18. write() (now) does not write past the flash max_address when flash eprom is full 19. ioctl command "IO_REMAIN" for flash eprom added (returns remaining device space) 20. modified function fremain() to use ioctl instead of old-fashioned snext() 21. problem with interrupt threshold compiler option fixed (compilation of VCRT) 22. memory allocation problem in vd.c (vd command) fixed for cameras with 640x480 if more than 1 memory buffer is used (eg: vd -d 2) 23. decompression added to exec() and exec1(). If extension is ".cex" code will be decompressed 24. decompression support added for shell. when executing commands shell first checks ".exe" then ".cex" extensions. if either one found, program is executed with exec() 25. introduced correct FILE typedef to VCRT.H including fd->SIZE, LOCATION and ERROR (be careful with stdio.h which includes a different - incorrect - typedef FILE) /* EOF */