Service pack directory can be unpacked directly to the project structure by renaming the zip file to "name of project directory".zip and then allowing overwrite of all files when expanding. SP1. 1.3.2007 Application - uTaskerV1.3: - types.h Increased SAM7 file system dimensions {1} to allow boot loader to operate - application.c New SMTP Login and TFTP demo support - application.h Add SMTP parameter settings - app_hw_sam7x.h Added SMTP LOGIN defines and Bare-minimum boot settings - webInterface.c Added SMTP parameter support - debug.c Improve port control via serial/Telnet Application - uTaskerBoot project for IAR: new New IAR Project including new "Bare Minimum" target Web pages: - Kadmin.htm with HTTP post software upload support - AlternativePages - for SMTP configuration - FileSystem - additional file system documentation Hardware: - hardware.h fnGetFlashAdd() added - sam7x Add UART break transmission support and remove possible Ethernet error - sam7x.h additional register defines - SAM7X_boot.c new file for boot loader hardware support - SAM7XSim.c Added fnGetFlash() routine Stack: - smtp.c Add SMTP LOGIN support and improve TCP interraction - tcpip.h Add SMTP LOGIN defines and TFTP support defines - ip_utils.c Add file name termination when ? found (useful for file names carried in http code) - tftp.c NEW - Ethernet.c EthernetStats array made conditional on USE_IP_STATS - webutils.c Added fnEncode64() to support SMTP login uTasker: - uFile.c Optional uCompareFile() added - Driver.h Added uCompareFile() - tty_drv.c WAKE_BLOCKED_TX allow TX_FREE on char <= level WinSim: - WinSimMain Solve GDI memory leak and Improve LCD refresh - LCDSim.cpp Improve LCD re-draw and correct initialisation in 4-line mode Configuration notes: add the following to config.h to include SMTP login authentication and configuration #define USE_SMTP_AUTHENTICATION // support login when sending Email #define SMTP_PARAMETERS // support SMTP parameters in parameter system add the following to config.h when testimng TFTP with file comparison #define SUPPORT_FILE_COMPARE // enable file compare support for test --------------------------------------------------------------------- SP1. ROWLEY 16.9.2007 ===================== This service pack doesn't add any additional functionality to the V1.3 SP1 project but includes a Rowley CrossWorks GCC project. This project required various 'tweeks' to ensure that the GNU compiler accepts everything without complaining or causing operational errors. This service pack is also to be considered as an intermediate release and as such not every file modification is commented here. The comments are available in the modified sources but these represent a temporary state. When the next SP is made available the comments will be integrated with the bug fix and feature addition comments and so some may then be removed (or generalised) depending on their relevance in the future full service pack release. This being said, the modifications can be grouped in to the following classes: 1. Warning removals. Most file changes fall into this class with GCC requiring that comparisons of the form if (x = y) {} be written using parenthasis - if ((x = y) != 0) {}. In some less frequent cases GCC wanted a variable to be initialised (although it was not actually used uninitialised). 2. Structure packing definitions to ensure that IP data can be declared in this way, without the compiler adding memory holes between various fields - this is the 'big' change in tcpip.h. 3. Additional code so that the GCC compiler / linker can operate with the project. These changes are all in SAM7X.c. 4. New GCC start up file (startup.s in \hardware\sam7x\ and the Rowley project in \Applications\uTaskerV1.3\Rowley_SAM7X --------------------------------------------------------------------- SP2. 02.01.2008 =============== This service pack adds a variety of new features which requires quite a lot of new files. The simulator has been extended to support RTS/CTS port control as well as port simulation script files. The project has been better adapted for the use of GNU compiler and fully tested for compatibility and reliability. The UART drivers can optionally set up to use DMA. The extended TCP/IP stack includes VLAN, NetBIOS, RARP, fast HTTP serving with a special windowing technique (requiring no TCP buffer memory). Note that there are various references to USB but USB code is not yet included in this project. It is presently in an initial development stage. WinSim ------ resource.h - due to new menus, this file adds various new Windows events. WinSim.h - the simulator supports several new devices, RTS/CTS and DMA simulation as well as a new port change script simulator. 15.09.2007 Add Luminary LM3SXXXX support {3} 22.09.2007 Add M5222X and M5221X support 21.10.2007 Add SIM_TEST_ENUM and prototype fnSimulateUSBIn() 02.11.2007 Add RTS control commands {4} 14.11.2007 Add port script interpreter fnDoPortSim() {5} 14.11.2007 Add fnInjectSerial(), fnInjectPortValue() and fnInjectSPI(){6} 14.11.2007 Add RX_SPI0 and RX_SPI1 defines plus fnSimulateSPIIn() {7} 17.11.2007 Add fnSimFPGAPeriod() {8} 15.12.2007 Add fnConfigSimIIC() {9} 23.12.2007 Extended DMA channel support {10} 25.12.2007 Extended UART support to 4 channels {11} 26.12.2007 Add LPC21XX support {12} WinSimMain.cpp - as well as adding the support for various new devices, changes allow RTS/CTS control of the COM ports and handles the new port script file. 15.09.2007 Add M5222X support 15.09.2007 Add Luminary LM3SXXXX support 22.09.2007 Add M5221X support 21.10.2007 Add Enumeration test support {6} 02.11.2007 Add RTS modem control support {7} 13.11.2007 Add port simulator {8} 25.12.2007 Extended UART support to 4 channels {9} 26.12.2007 Add LPC21XX support WinSim.c - same comment as for previous file 12.09.2007 Add multiple SPI FLASH support {4} 23.09.2007 Add page delete command to SPI FLASH {5} 21.10.2007 Add test sequence for USB enumeration {6} 02.11.2007 Add RTS control support {7} 17.11.2007 Allow SPI and FLASH files system to work together {8} 15.12.2007 Add IIC speed support for improved simulation accuracy {9} 15.12.2007 Simplified UART speed limitiation {10} 23.12.2007 Extend UART speed limitiation to DMA {11} 25.12.2007 Extend UART support to 4 UARTS {12} PortSim.cpp - this is a new file to the project. It handles a port simulation script file which can inject data or port changes to various peripherals and thus allows testing of externally defined sequences. FileToDisk.c - this file has been updated to allows simulations of both internal and external FLASH devices 15.09.2007 Add Luminary LM3SXXXX support {4} 17.11.2007 Allow SPI and FLASH files system to work together {5} uTasker ------- uTasker.c - various imporvements for additional flexibility and long term reliabilily 24.03.2007 Starting a monostable timer with zero event changes periodic repetition timer {1} 30.03.2007 Change end of task table on zero name rather than zero function. This allows more flexibility when redefining tasks {2} 30.03.2007 Corrections in multi-start mode {3} 10.06.2007 RND_HW_SUPPORT used to get random numbers from hardware when available {4} 24.08.2007 Timer delays of less than 1 TICK rounded up to 1 so that they will not be lost{5} 24.08.2007 Timer entries use enabled flag to ensure validity {6} 04.09.2007 Correct timer list counter {7} low_power.c (optional port assigned to allow monitoring of teh use of low power mode) 25.11.2007 Add low power monitoring {1} iic_drv.c - new capability to request available buffer space before commanding I2C read and writes 21.05.2007 Read modified to return zero when no receive messages are ready, even when there are characters available {1} 13.08.2007 Removed GNU warning {2} 15.12.2007 Add tx buffer space request {3} driver.h - additional project defines for various new features 01.03.2007 Added uCompareFile() 19.05.2007 Add FLASH protection functions fnProtectFile(), fnUnprotectFile() 24.05.2007 Add fnGetFileType() 12.10.2007 Add USB table and fnOpenUSB() {1} 12.10.2007 uMallocAlign() align value changed from unsigned char to unsigned short {2} 29.10.2007 Add ENABLE_CTS_CHANGE, DISABLE_CTS_CHANGE and GET_CONTROL_STATUS defines 17.11.2007 FILE_HEADER declaration moved here from config.h {3} 20.12.2007 fnInUserInterrupt() {4} tty_drv.c - various UART driver flow control extensions and improvements 17.03.2007 Add check fnWakeBlockedTx when transmission complete for DMA mode {3} 13.05.2007 Add buffer scan in forward direction {4} 29.10.2007 Correct variable name in SUPPORT_HW_FLOW code {5} 02.11.2007 Synchronise CTS state to buffer control in RTS/CTS mode {6} 02.11.2007 Correct transmission of XOFF when not in correct mode {7} 02.11.2007 Set active flag when sending XON/XOFF in order to protect tx buffer during its transmission {8} driver.c - adaptation for GNU compatibility and new USB interface 24.03.2007 Cast to quieten GNU compiler {1} 25.08.2007 uStrlen() const type to match prototype {2} 25.08.2007 Use static RAM for code from RAM since uMalloc may not always be ready {3} 12.10.2007 Add USB driver interface {4} uFile.c - new SPI FLASH support 19.05.2007 Add FLASH unprotect/protect support for devices which require or support it {1} 22.05.2007 Add Sub-file support for devices with only large FLASH granularity {2} 11.08.2007 SPI FLASH support {3} 23.09.2007 Modify uFileErase() to work with new version of fnEraseFlashSector() {4} 17.11.2007 Add address rounding macro/function to support blocks of non-power of 2 size {5} 09.12.2007 Allow sub-file systems with differing FLASH granularity and FLASH_LINE_SIZE {6} GlobalTimer.c - correction when using mixtures fo software and hardware global timers 04.4.2007 Correct start of software timer when hardware time for the same task is active {2} uTasker.h 11.05.2007 UTASK_TASK used consistently for node ids 23.08.2007 enabled flag added to Timer table {1} uNetwork.c - various improvemenst for the uNetwork protocol 10.03.2007 Sequence number correction {1} 08.03.2007 Improve global message sequence number handling {2} 23.08.2007 Add next rx acknowledgement count to ensure correct order of received acks {3} 10.03.2007 Sequence number correction on sequence count overflow {4} 04.09.2007 Message defines changed to aid in monitoring/debugging {5} uMalloc.c - 12.10.2007 uMallocAlign() quantity extended to 64k {1} stack ----- The TCP/IP stack now includes - RARP - VLAN - support for sub-net broadcasts - NetBIOS - Fast serving HTTP using special windowing method - passive mode FTP PPP.c - New in project. A development snap shot. See note in file for more details. SNMP.c - New in project. A development snap shot. See note in file for more details. NetBIOS.c - New in project. udp.c - 8.4.2007 Don't send destination unreachable to subnet broadcast (with new SUPPORT_SUBNET_BROADCAST) {1} ip_utils.c - 26.05.2007 Improve MIME type search {2} ip.c - 08.04.2007 Add SUPPORT_SUBNET_BROADCAST - new function fnSubnetBroadcast() {1} 25.08.2007 Use static RAM for code from RAM since uMalloc may not always be ready {2} webutils.c - 01.06.2007 Changed use of user name and password checking {1} 23.08.2007 Allow displaying short strings (less than 4 bytes) without inserting spaces (improves formular field inputs) (INSERT_SHORT_STRINGS) {2} 04.10.2007 Introduce WEB_ESCAPE_LEN for variable escaping size {3} arp.c - RARP support 14.03.2007 Added RARP response {1} 21.08.2007 Optionally only add used addresses to ARP table (rather than all 'seen' ones) {2} tcp.c - additional user options 03.06.2007 fnGetFreeTCP_Port() made external {1} 03.06.2007 Extend REUSE_TIME_WAIT_SOCKETS to rx connection use {2} 21.08.2007 Add HTTP windowing tx support (HTTP_WINDOWING_BUFFERS) {3} 22.08.2007 Discard buffered TCP data when no connection {4} 23.08.2007 Optionally silently discard peer's data when closing (DISCARD_DATA_WHILE_CLOSING) {5} 29.08.2007 Reset usOpenCnt on new connection (correction for HTTP_WINDOWING_BUFFERS) {7} 03.09.2007 Add optional external retrigger of socket idle timer {8} http.c - FAST serving HTTP option supported 16.05.2007 Rename variable from i to iSessionNumber and remove unnecessary zeroing {1} 16.05.2007 Add iWebHandlerCommand variable for clarity. {2} 16.05.2007 Protect a loop from not exiting when corrupted data found {3} 22.05.2007 Sub-file write support added for devices with large flash granularity 01.06.2007 Modified user name and password call {4} 04.06.2007 Corrected web parsing filter on none-html files {5} 22.06.2007 Correct message regeneration in delayed serving state {6} 21.08.2007 Add HTTP windowing tx support (HTTP_WINDOWING_BUFFERS) {7} 23.08.2007 allow displaying short strings (less than 4 bytes) without inserting spaces (improves formular field inputs) (INSERT_SHORT_STRINGS) {8} 04.10.2007 Introduce WEB_ESCAPE_LEN for variable escaping size {9} 17.11.2007 Enable accurate distinction between simulated and Window's memory {10} 14.12.2007 Various improvements and increased efficiency of windowing transmission by avoiding short final frames {11} 16.12.2007 Cover function for fnWebParGenerator() ->fnWebParGen() which increases efficiency by avoiding short final frames {12} ftp.c - 08.05.2007 Change a routine array initialisation to avoid library memcpy {1} 22.05.2007 Add sub-file write support for devices with large FLASH segments {2} 01.06.2007 Improved FTP login when not anonymous {3} 03.06.2007 Add optional checking of data port in active mode {4} 03.06.2007 Activate passive mode (see define FTP_PASV_SUPPORT) 03.06.2007 Pass FTP timeout when starting FTP server plus operating mode {5} 03.06.2007 Added clean QUIT handling {6} 06.06.2007 Changed empty directory display file to include -r at beginning - without this FireFTP can not work correctly (it doesn't display anything though) {7} 03.09.2007 Add optional retrigger of control socket idle timer on data port activity (DATA_PORT_TRIGGERS_CONTROL) {8} 17.11.2007 Correct dependancy FTP_SUPPORTS_DELETE rather than FTP_SUPPORTS_NAME_DISPLAY {9} 17.11.2007 Add define FILE_NAMES_PER_FTP_FRAME to correct operation without file names and adapt for compatibility {10} Ethernet.c - 14.3.2007 Added RARP reception support {2} 15.3.2007 Added VLAN support {3} DHCP.c - 10.06.2007 Quieten GNU compiler by initialising a variable {1} tcpip.h - 15.03.2007 Add RARP and VLAN defines 24.03.2007 Define structures to ensure packing with GNU compiler {1} 08.04.2007 Add fnSubnetBroadcast(), added UNETWORK_STATS 28.04.2007 Add SNMP defines 01.06.2007 Modify fnVerifyUser() control define {2} 03.06.2007 Add fnGetFreeTCP_Port() and extend fnStartFtp() with timeout and mode 12.07.2007 ucNegotiate no longer conditional on Telnet {3} 21.08.2007 Add HTTP windowing tx support (HTTP_WINDOWING_BUFFERS) {4} 29.08.2007 Add content size history (HTTP_WINDOWING_BUFFERS) {5} 03.09.2007 Add optional external retrigger of socket idle timer {6} 06.11.2007 Add NetBIOS support {7} 02.01.2008 Remove some packed struct defines which could cause problems with GNU compiler {8} hardware -------- hardware.h - variosu extensions for new features and SPI FLASH 30.03.2007 fnPutFlashAdd() added 19.05.2007 Add FLASH protection functions fnUnprotectSector() and fnProtectSector() 19.05.2007 Add simulation functions fnGetSectorSize() and fnIsProtected() 10.06.2007 Add fnGetRndHW() 11.08.2007 Add fnSPI_Flash_available() and fnConfigureRTC() 12.09.2007 Add fnSPI_FlashExt_available 23.09.2007 Change prototype of fnEraseFlashSector() to include a length. For code compatibility a length of 0 can be set which causes one sector to be erased. 12.10.2007 Add USB interface prototypes hardware\IIC_devices -------------------- IIC_dev.c - additional simulated I2C devices 14.03.2007 Added MAX543X Digital Potentiometer (L,M,N,P suffixes) 29.09.2007 Added LM80 (microprocessor system hardware monitor) and PCF8574 port expander 13.10.2007 Added MAX3353 USB OTG Charge Pump with switchable Pullup/Pulldown resistors hardware\sam7x -------------- startup_gnu.s - new startup file for all GNU based projects SAM7X_boot.c - boot loader now with SPI FLASH upload support 16.12.2007 Add SPI SW upload support {1} SimSAM7X.h - 23.12.2007 Extend USART with Peripheral DMA Registers {1} SAM7XSim.c - variosu simulation extensions and improvements 12.04.2007 Added fnPutFlashAdd() routine 28.09.2007 Add external interrupt simulation support - IRQ0 {1} 10.10.2007 Allow application calling of interrupt simulation without argument list {2} 02.11.2007 Add fnSimulateModemChange() for compatibility {3} 03.11.2007 Extend support of timers to include 0 and 1 {4} 14.11.2007 Force port redraw on toggle changes {5} 14.11.2007 Update interrupt masks from set and clear registers {6} 14.11.2007 Add fnSimulateSPIIn() {7} 17.11.2007 Simulate PIT rather than use RealTimeInterrupt() {8} 19.11.2007 Add FIQ interrupt {9} 15.12.2007 Add IIC simulation speed limitation for increased accuracy {10} 16.12.2007 Allow SPI and FLASH files system to work together {11} 23.12.2007 Add USART peripheral DMA operation {12} SAM7X.h - 22.03.2007 Removed IAR uEnableInterrupt() and uDisableInterrupt() mapping to intrinsics 28.09.2007 Add INTERRUPT_SETUP struct {1} 04.11.2007 Add #define LITTLE ENDIAN to sam7x.h since it is fixed for the processor 04.11.2007 Add define for PITS 23.12.2007 Extend USART with Peripheral DMA Registers {2} 02.01.2008 Adjust PIO register defines to be all volatile {3} SAM7X.c - various improvemenst including SPi FLASH support 22.02.2007 Add UART break transmission support {1} 01.03.2007 Correct possible Ethernet error {2} 22.03.2007 Use uEnable_Interrupt() and uDisable_Interrupt() together with iInterruptLevel to call actual enabling and disabling {3} 24.03.2007 Support Rowley GCC compiler 28.04.2007 Add missing function fnConfigSPIFileSystem() {4} 04.05.2007 Corrected invalid pause frame flag in EMAC_NCR {5} 11.07.2007 Ensure page buffer is empty when deleting flash sector {6} 18.09.2007 Ensure page buffer is empty when writing flash sector {7} 22.09.2007 Add SPI FLASH support {8} 23.09.2007 Adapt fnEraseFlashSector() and its use in fnDeleteParBlock(){9} 28.09.2007 Add fnConfigureInterrupt() and interrupt support {10} 19.10.2007 Remove dummy write to flash buffer since it is cured by 7 {11} 03.11.2007 Add general purpose timer interrupt support {12} 03.11.2007 Make global hardware timer configurable {13} 14.11.2007 Update interrup mask in simulator using port simulation routine {14} 18.11.2007 Remove unnecessary zero padding in Ethernet transmission {15} 25.11.2007 Enable accurate distinction between simulated and Window's memory {16} 15.12.2007 Inform simulator of IIC speed {17} 16.12.2007 Allow SPI and FLASH files system to work together {18} 20.12.2007 fnInUserInterrupt() {19} 22.12.2007 Optimise rx Ethernet buffer copies by using long word type memcpy {20} 23.12.2007 Add USART DMA support {21} 24.12.2007 Add iInterruptLevel use to UART irqs {22} Cstartup.s79 - ;- 1.2 21/Mar/07 MJB : modified interrupt to call subroutine with disabled interrupts {1} Applications\uTaskerV1.3 ------------------------ application.c - various demo project extensions 16.03.2007 Improved Global Timer demo 03.06.2007 Add FTP user controllable FTP timeout {1} 23.06.2007 Add IRQ test {2} 11.08.2007 Add RTC test (M5223X) {3} 10.09.2007 Add external RTC IIC test {4} 15.09.2007 Modify IRQ priorities for M5223X {5} 23.09.2007 Add simple test of SPI FLASH (including multiple chips) {6} 12.10.2007 Add USB initialisation {7} 29.10.2007 Add UART RTC control when working in HW flow control mode {8} 06.11.2007 Add NetBIOS support - start server and specify name {9} 20.11.2007 Allow operation from fixed parameters when no parameter system available {10} 24.12.2007 Add intensive I2C test mode {11} 02.01.2007 Add IRQ test for SAM7X (IRQ and FIQ) {12} app_hw_sam7x.h - 19.09.2007 Add SPI FLASH configuration {1} 10.10.2007 Add LCD delay macro {2} 03.11.2007 Add global hardware timer configuration {3} 04.11.2007 Remove #define LITTLE ENDIAN to sam7x.h since it is fixed for the processor 16.12.2007 Allow SPI and FLASH files system to work together {4} 16.12.2007 Add FLASH and RAM size configuration {5} webInterface.c - 17.03.2007 Corrected SMTP login flag so that it is not cleared when Ethernet settings are changed {1} 17.03.2007 Decoded received SMTP string settings to support Firefox {2} 03.03.2007 Add configurable timeout when configuring FTP server {3} 10.12.2007 Avoid displaying local password {4} types.h - MEMORY_RANGE_POINTER was added to the project to enable future file system extensions while retaining backward compatibility 15.09.2007 Add support for Luminary LM3SXXXX 12.10.2007 Add typedef MEMORY_RANGE_POINTER TaskConfig.h - 28.4.2007 Add SNMP task 13.5.2007 Add PPP task LCD.c - 09.10.2007 Add configurable delay to ensure two back to back writes are not too fast in 4 bit mode {1} 10.10.2007 Correct nibble adjustment in 4-bit read {2} 12.10.2007 T_INIT_WAIT modified to 5ms rather than 1 tick Ticks of greater will default to 1 tick) {3} debug.c - 26.09.2007 Add LM3SXXXX GPIOs 31.12.2007 Improve NE64 user port update {4} 01.01.2008 ping test made conditional on ICMP_SEND_PING 26.01.2008 parameter tests made conditional on parameter sysetem {5} Web pages ========= \Applications\uTaskerV1.3\WebPages\WebPagesSAM7X ------------------------------------------------ Kadmin.htm - HTML correction Applications\uTaskerBoot ------------------------ The boot loader for the SAM7X now supports SPI FLASH uTaskerBootLoader.c - 29.03.2007 Added decryption support {2} 11.08.2007 Added SPI FLASH support (M5223X) {3} 16.12.2007 Added SPI FLASH support (SAM7X) {4} types.h 02.11.2007 Add typedef MEMORY_RANGE_POINTER for compatibility config.h - with set up for SPI FLASH upload support for SAM7X 11.08.2007 Add M5223X SPI FLASH support {1} 16.12.2007 Add SAM7X SPI FLASH support {2} 16.12.2007 FLASH and SRAM size set up added {3} 16.12.2007 Add BOOT_LOADER define {4} application.h - 03.06.2007 Add FTP user definable FTP timeout and ACTIVE_FTP_LOGIN {2} config-sam7x-reference.h This file is a set up example for the SAM7X which includes all new options. This will not be used in the standard project nor overwrite any existing files. This set up was used to test this SP release. Project setups ============== The SAM7X project is delivered with projects. - The simulator runs as VisualStudio project - The IAR project is for IAR embedded workbench - The GNU_SAM7X project can build standalone (bat file) of work together with Eclipse - The Rowley project is for Rowley Associates' Crossworks This service pack includes complete directories to ensure that all projects are up to date. In the simulator project there is a target setting to include a post build with GNU Applications\uTaskerV1.3\Simulator ---------------------------------- Applications\uTaskerV1.3\IAR_SAM7X ---------------------------------- Applications\uTaskerV1.3\GNU_SAM7X ---------------------------------- Applications\uTaskerV1.3\Rowley_SAM7X ------------------------------------- SP3. 15.01.2008 =============== This small service pack adds new dynamic content generation support and corrects a potential problem with global timer operation WinSim ------ WinSim.c - 08.01.2008 Ethernet code made conditional on Ethernet availability {13} Ethereal.cpp - 08.01.2008 Content made conditional on Ethernet availability WinSimMain.cpp - 08.01.2008 Ethernet code made conditional on Ethernet availability {10} WinPcap.cpp - 08.01.2008 Made content conditional on Ethernet interface availablility WinPcap.cpp - uTasker ------- GlobalTimer.c - 03.01.2008 Correct deleted software timer firing early {3} stack ----- The HTTP interface has been improved to allow TCP buffer growth when inserting additional strings. This results in imporved frame efficiency and is also required for the new dynamic generation support. http.c - 06.01.2008 Pass end of buffer space to fnWebParGenerator {13} 06.01.2008 Pass buffer space end to fnInsertHTMLString() {14} 07.01.2008 Simulator flag iFetchingInternalMemory reset on completion (no longer in driver) {15} 08.01.2008 Rework dynamic insertion parameter solution {16} 09.01.2008 Allow frame length increase when inserting strings {17} 11.01.2008 Improvement when generated frames can not grow more {18} 12.01.2008 Additional management information to aid dynamic generation {19} 12.01.2008 Optionally pass HTTP session information to fnInsertValue() {20} 12.01.2008 Apply INSERT_SHORT_STRINGS support always (define removed) webutils.c - 06.01.2008 Add defines for user information pointers {4} 06.01.2008 Add tx buffer end to fnInsertHTMLString() and allow buffer growth {5} 06.01.2008 Correct a buffer end check {6} 12.01.2008 Apply INSERT_SHORT_STRINGS support always (define removed) tcpip.h - 06.01.2008 Add tx buffer end to fnInsertHTMLString() {9} 11.01.2008 Extend HTTP struct to include user data pointer and dynamic count array {10} 12.01.2008 Optionally pass HTTP session information to fnInsertValue() {11} hardware -------- SAM7XSim.c - 15.01.2008 Correct WDT_MR initialisation value {13} SAM7X.c - 06.01.2008 Add DISABLE_WATCHDOG() macro {23} 07.01.2008 Don't reset simulator flag iFetchingInternalMemory (caller does it) {24} \Applications\uTaskerV1.3 ------------------------- webInterface.c - 08.01.2008 Add dynamic insertion demo {5} 12.01.2008 Adjust fnInsertValue() to accept sesssion information {6} app_hw_sam7x.h - 06.01.2008 Add DISABLE_WATCHDOG() macro {6} \Applications\uTaskerV1.3\WebPages\WebPagesSAM7X\AlternativePages ----------------------------------------------------------------- E_multiplication_table.htm - new alternative web page for testing dynamic web content generation Note that the definition for the location of user name and passord used by the web server and ftp server has been added to webutils.c. This needs to be added to config.h - see the example config-sam7x-reference.h #define POINTER_USER_NAME parameters->cUserName // define where the user name and password is taken from #define POINTER_USER_PASS parameters->cUserPass To test the new dynamic web content generation copy the HTML file E_multiplication_table.htm from \Applications\uTaskerV1.3\WebPages\WebPagesSAM7X\AlternativePages to the target or simulator via FTP (this overwrites the statistic page). When the statistic page is then visited it will instead show the new demo. Its use is self-explanatory!! --------------------------------------------------------------------------------------------------------------------------- SP4. 31.12.2008 =============== The service pack adds new projects for Keil and IAR5.2 and new support for USB device, DBGU (serial interface), ADC and port interrupts as well as a number of general improvements (especially in simulation capability). The new IAR5.2 project is located in \Applications\uTaskerV1.3\IAR5_SAM7X\uTaskerV1.3.eww and includes targets for running from FLASH, RAM and also for use with the boot loader The new Keil uVision3 project is located in \Applications\uTaskerV1.3\uVision3_SAM7X\uTaskerV1.3.Uv2 and includes targets for running from FLASH, RAM and also for use with the boot loader WinSim ====== The SAM7X simulation has been extended to allow USB, ADC operation and all port interrupts to be simulated as well as better control simulation files. Application\uTaskerV1.3\Simulator\uTasker.rc - new menus Application\uTaskerV1.3\Simulator\uTaskerV1-3.dsp - new VS6 project including USB files WinSim\FileToDisk.c: 15.02.2008 Support for SPI FLASH STM25PXXX {6} 28.06.2008 Support for SPI FLASH SST25 {7} WinSim\WinPcap.cpp: 16.07.2008 Wait before injecting Ethernet frames if the main task is active {1} WinSim\WinSim.c: 12.02.2008 Add support for SPI FLASH STM25P64 {14} 18.02.2008 Use memset/memcpy rather than uMemset/uMemcpy to avoid limitations when DMA used {15} 18.03.2008 Remove chip select parameter from fnSimAT45DBXXX() and fnSimSTM25Pxxx() and control it locally {16} 21.03.2008 Add BULK ERASE support to STM25Pxxx SPI FLASH {17} 25.03.2008 Improve AT45DBXXX flash write accuracy by using & rather than copy {18} 28.04.2008 Add negative toggle (for ADC use) {19} 08.05.2008 Protect WinPCap from main thread by ignoring TICK if WinPCap is simulating {20} 23.05.2008 Add AT45BDxxxD page size simulation support and make manufacturing ID answer type dependent {21} 28.06.2008 Add SST SPI FLASH support {22} 16.07.2008 Add USB tx logging {23} 16.07.2008 Protect main thread from Ethernet frame injections {24} 16.07.2008 Close all log files on exit {25} 19.07.2008 Add USB disconnect and OUT data simulations {26} 19.07.2008 Add UART break condition {27} 31.08.2008 Extend I2C support to 3 channels {28} 19.09.2008 Add USB host support {29} 19.09.2008 Add USB set up data injection {30} 20.10.2008 Add ATMEL SPI FLASH auto-page rewrite command {31} 25.10.2008 Complete SST SPI FLASH simulation support WinSim\resource.h: with new menu items WinSim\PortSim.cpp: 18.07.2008 Parser correction {1} 19.07.2008 Add UART CTS and break, plus USB frame injection {2} 18.10.2008 Add USB setup frame injection {3} 08.12.2008 Pass file string to fnDoPortSim() and fnPlayPortScript() {4} WinSim\WinSim.h: 22.02.2008 Add support for SPI FLASH STM25P64 {13} 18.03.2008 Remove chip select parameter from fnSimAT45DBXXX() and fnSimSTM25Pxxx {14} 28.03.2008 Add INPUT_TOGGLE_NEG and INPUT_TOGGLE_NEG {15} 28.06.2008 Add fnSimSST25() {16} 16.07.2008 Add USB_INT {17} 19.07.2008 Add parameters to fnInjectSerial() {18} 19.07.2008 Add fnInjectUSB() {19} 19.07.2008 Add break condition and CTS change simulation events {20} 13.08.2008 Add M5225X support {21} 19.09.2008 Add USB host support {22} 08.12.2008 Add file string parameter to fnDoEthereal() and fnDoPortSim{23} 16.12.2008 Add _LM3S3768 support {24} 17.12.2008 Remove PORTS_AVAILABLE and PORT_WIDTH defines to processor files WinSim\WinSimMain.cpp: 28.04.2008 Add shift key monitor and negative toggle (for ADC use) {11} 17.06.2008 Remove TA port for 64 pin M5222X and M5221X {12} 19.06.2008 Add USB disconnect support {13} 19.06.2008 USB state display added {14} 19.06.2008 fnInjectUSB() added {15} 13.08.2008 Add M5225x support {16} 19.09.2008 Add USB host support {17} 08.12.2008 Add file select dialogue on simulation files {18} 09.12.2008 Read in and save user files {19} 17.12.2008 Add _LM3S3768 support {20} 24.12.2008 Add SAM7X ADC {21} Hardware ======== \Hardware\hardware.h: 10.04.2008 Add fnSetHardwareTimer() and fnStopHW_Timer() 23.05.2008 Add fnGetDMACount() 02.06.2008 Add fnUpdateADC() 28.06.2008 Add SST SPI FLASH parts {2} 27.08.2008 Modify fnTxIIC Channel parameter to QUEUE_HANDLE {3} 06.10.2008 Move USB simulator defines to this file {4} 18.10.2008 Add USB FIFO routines {5} \Hardware\SAM7X\startup_keil.s: new Keil startup file for the SAM7X \Hardware\SAM7X\cstartup_IAR5.s: new IAR5.2 startup file for the SAM7X \Hardware\SAM7X\SimSAM7X.h: 11.05.2008 Remove const definition of MC_FSR {2} 14.06.2008 Add USB registers {3} 05.10.2008 Add DBGU UART interface {4} 23.12.2008 Add ADC DMA support {5} \Hardware\SAM7X\SAM7X_ports.c: 24.12.2008 Add ADC support {1} \Hardware\SAM7X\SAM7XSim.c: 14.06.2008 Add USB initialisation values {14} 14.06.2008 Add EMAC rx and tx flags when simulating {15} 02.08.2008 Add dummy fnSimulateBreak() {16} 05.10.2008 Add DBGU UART interface {17} 06.10.2008 Add USB simulation support {18} 06.10.2008 Remove power clock simulation due to integration in POWER_UP/POWER_DOWN macros {19} 08.10.2008 Set interrupt bit when simulating PIT interrupt {20} 18.10.2008 Correct prot B peripheral simulation {21} 24.12.2008 Add ADC support {22} 24.12.2008 Check whether timers are powered up before simulating them {23} 28.12.2008 Add timer TIOA output monitoring {24} \Hardware\SAM7X\SAM7X.h: 15.02.2008 AIC_IPR declared volatile 11.05.2008 Add define LOCK_REGION_SIZE 14.06.2008 Add USB definitions {4} 14.06.2008 Add EMAC_RSR bit definitions {5} 02.07.2008 Add PORTA_IRQ0 and PORTA_FIQ port interrupt parameters {6} 02.07.2008 Modify port interrupt to control multiple bits {7} 05.10.2008 Add UART2 (DBGU) support {8} 06.10.2008 Add POWER_UP and POWER_DOWN macros {9} 08.10.2008 Remove PLL setup to project file app_hw_sam7x.h {10} 21.10.2008 Extend and correct peripheral functions {11} 21.10.2008 Configure SAM7X project to save complete FLASH when simulating {12} 25.10.2008 SPI1 volatile register adjustments {13} 15.11.2008 Interrupt controller volatile register adjustments {14} 22.11.2008 Change all read only and write only register defines to volatile {15} 01.12.2008 Add IAR5 support {16} 07.12.2008 Change IRQ characteristics define to allow falling and rising edges to be defined {17} 18.12.2008 PORTS_AVAILABLE and PORT_WIDTH moved here from WinSim.c {18} 22.12.2008 Add ADC interface and ADC DMA support {19} \Hardware\SAM7X\SAM7X.c: 01.03.2008 Multiple-chip SPI FLASH chip select control size increased in unsigned long {25} 01.03.2008 Add macros to allow changing SPI mode when entering and leaving SPI FLASH command routine - moved to spi_flash_sam7x_atmel.h {26} 01.03.2008 Set CS0 control on SPI FLASH SPI config {27} 18.03.2008 Remove chip select parameter from fnSimAT45DBXXX() - moved to spi_flash_sam7x_atmel.h 25.03.2008 Optimise use of SPI_FLASH_Danger[iChipSelect] - moved to spi_flash_sam7x_atmel.h {28} 23.04.2008 Mask PHY_IDENTIFIER when checking PHY {29} 11.05.2008 Add fnProtectFlash() routine {30} 09.06.2008 Add optional specific uNetwork broadcast address {31} 14.06.2008 Add EMAC workarounds for version A devices (PART_A_WORKAROUNDS) {32} 02.07.2008 Rework port interrupt setup {33} 27.08.2008 Modify fnTxIIC Channel parameter to QUEUE_HANDLE {34} 05.10.2008 Add DBGU UART support {35} 06.10.2008 Add USB support {36} 06.10.2008 Introduce POWER_UP and POWER_DOWN macros {37} 08.10.2008 Reset PIT status when reading register (simulation) {38} 08.10.2008 Flexible PLL setting added - controlled from app_hw_sam7x.h{39} 21.10.2008 SPI FLASH channel configurable {40} 21.10.2008 Reorganise SPI Flash support to use include files {41} 21.10.2008 Add more flexible parameter block configuration using PARAMETER_BLOCK_START {42} 22.10.2008 Add ST and SST SPI FLASH support {43} 01.12.2008 Add Keil support {44} 01.12.2008 Enter FIQ port interrupt before configuring {45} 01.12.2008 Add IAR5 support {46} 22.12.2008 Add ADC support {47} 27.12.2008 Reset ENDTX in status register when simulating DMA transmission {48} \Hardware\SAM7X\SAM7X_boot.c: 18.03.2008 Remove chip select parameter from fnSimAT45DBXXX() \Hardware\SAM7X\spi_flash_sam7x_atmel.h: this new file removes the ATMEL specific SPI FLASH details from the main driver 01.03.2008 Add macros to allow changing SPI mode when entering and leaving SPI FLASH command routine {1} (originally {26}) 18.03.2008 Remove chip select parameter from fnSimAT45DBXXX() - moved to spi_flash_sam7x_atmel.h 25.03.2008 Optimise use of SPI_FLASH_Danger[iChipSelect] - moved to spi_flash_sam7x_atmel.h {2} (originally {28}) 25.10.2008 wait until last byte has been completely received before negating the CS line {3} \Hardware\SAM7X\spi_flash_sam7x_stmicro.h: this new file removes the ST specific SPI FLASH details from the main driver \Hardware\SAM7X\spi_flash_sam7x_sst25.h: this new file removes the SST specific SPI FLASH details from the main driver Application =========== \Applications\uTaskerV1.3\usb_application.c New file controlling the USB application interface \Applications\uTaskerV1.3\application.h: 30.10.2008 Add MODBUS (and version numbers incrimented) {4} \Applications\uTaskerV1.3\app_hw_sam7x.h: 23.01.2008 Drive PHY address on initialisation to ensure it is configured {7} 21.04.2008 Mask Micrel PHY revision {8} 02.07.2008 Add number of I2C interfaces, for compatibility {9} 05.10.2008 Add DBGU UART interface {10} 06.10.2008 Add USB configuration {11} 08.10.2008 Add project PLL configuration with verification {12} 20.10.2008 Add dummy macros for compatibility {13} 20.10.2008 Add SPI_CS0_PORT for simulator compatibility {14} 21.10.2008 Add PARAMETER_BLOCK_START address and modify file system start accordingly {15} 22.10.2008 Add setup for SPI FLASH STM25P64 and SST as well as comfortable setup for ATMEL AT45DB types {16} 14.11.2008 Add MODBUS configuration {17} 07.12.2008 Add SUPPORT_PORT_INTERRUPTS {18} 07.12.2008 Change collision LED output from PB26 to PB24 to avoid conflich with PHY interrupt {19} 22.12.2008 Add ADC setup {20} \Applications\uTaskerV1.3\application.c: 18.02.2008 Extend SPI test for external file system {14} 13.03.2008 Correct time server increment on connection close {15} 18.03.2008 Correct sizeof() use {16} 10.04.2008 Add ADC test for M5223X {17} 14.04.2008 Add optional LCD read test {18} 20.04.2008 Add Coldfire PIT interrupt test {19} 21.04.2008 Add Coldfire DMA TIMER interrupt test {20} 13.05.2008 Add NE64 TIMER interrupt test {21} 13.05.2008 Modified USB initialisation to start USB task {22} 02.07.2008 Adjust IRQ test setup for SAM7X {23} 08.08.2008 Add USB demo menu support {24} 28.08.2008 Correct PORT_INTERRUPT initialisation when DS1307 test defined {25} 29.10.2008 Add general purpose timer test for M5223X {26} 30.10.2008 Add MODBUS initialisation {27} 07.12.2008 Modify SAM7X IRQ test to verify IRQ and port interrupts {28} 22.12.2008 Use ADC_SAMPLING_SPEED macro {29} 23.12.2008 Adapt ADC test for SAM7X {30} \Applications\uTaskerV1.3\types.h: 13.03.2008 Add typedef LENGTH_CHUNK_COUNT \Applications\uTaskerV1.3\TaskConfig.h: 10.04.2008 Remove unused ADC task 14.06.2008 Add USB task 07.11.2008 Add MODBUS serial and MODBUS master tasks \Applications\uTaskerV1.3\webInterface.c: 17.01.2008 Ensure post defined file is returned when not SW upload {7} 13.01.2008 fnInsertString TxLength type change (LENGTH_CHUNK_COUNT) for dynamic content generation {8} 22.03.2008 Correct length of MAC address string when displaying ARP entries {9} 11.04.2008 Add missing break {10} 01.05.2008 Add backlist to reject some HTTP connections {11} 04.05.2008 Allow simplified project without USE_MAINTENANCE {12} 29.06.2008 Change download FLASH size from 160k to 156k (due to new organisation of M5223X FLASH where parameter system not counted) {13} 16.07.2008 Correct length of MAC address string when displaying MAC address {14} 07.09.2008 Add demo reception of POST parameter data {15} 01.11.2008 Conditional call to enable project without parameters {16} 07.11.2008 cOnColor[] conditional on USE_MAINTENANCE {17} \Applications\uTaskerV1.3\debug.c: 02.05.2008 Add dummy code to allow the project to use serial interface without USE_MAINTENANCE {6} 25.05.2008 Move fnAddTime() outside of USE_MAINTENANCE dependency {7} 09.08.2008 Add USB_INTERFACE debug interface support {8} 08.10.2008 User POWER_UP macro for SAM7X code {9} Boot loader =========== \Applications\uTaskerBoot\config.h: 02.04.2008 Add LPC23XX support {6} 02.04.2008 Add new M5223X clock and PLL details {7} 04.04.2008 Add LM3SXXXX support {8} 31.05.2008 Clean out all non-bootloader defines (M5223X) 26.06.2008 Add ST SPI FLASH support {9} 19.08.2008 Add M5222X and M5221X support (USB boot loader) {10} \Applications\uTaskerBoot\uTaskerBootLoader.c: 02.04.2008 Add LPC23XX support {5} 02.04.2008 Add LM3SXXXX support {6} 26.04.2008 Modify SPI FLASH support to include ST FLASH {7} 29.04.2008 Wait until SPI FLASH delete has terminated before starting application {8} 19.08.2008 Add M5222X and M5221X support (USB boot loader) {9} 29.08.2008 Add MAIN_FUNCTION_TYPE for compilers which only accept main with int type {10} \Applications\uTaskerBoot\types.h: 13.03.2008 Add typedef LENGTH_CHUNK_COUNT 02.04.2008 Add LM3SXXXX support 31.05.2008 Modify size_t dependency {1} uTasker ======= \uTasker\uFile.c: 29.03.2008 Pass file pointer when closing an open line buffer {9} 09.06.2008 Allow external SPI FLASH to operate with sub-files {10} 08.09.2008 Correct limitation of writes too large for the file system and optimise the data size written in this case {11} 14.09.2008 Enable parameter and flash routines when parameter system is enabled without file system support {12} \uTasker\USB_drv.c: New file \uTasker\driver.h: 09.06.2008 uNetwork Broadcast address made definable {6} 03.07.2008 Add fnGetUSBEndpoint() {7} 19.09.2008 Add USB host and OTG mode defines {8} 18.10.2008 Add fnFillBuf_FIFO() {9} 31.10.2008 Add serial RTU_RX_MODE {10} 27.12.2008 Add lastDMA_block_length to TTY struct when using DMA {11} \uTasker\tty_drv.c: 23.05.2008 Add message counter mode with optional short word length count {10} 23.05.2008 Extend break support to include Rx DMA and message counter {11} 23.05.2008 Improve message extraction in half-buffer DMA mode {12} 30.08.2008 Don't put XON to input buffer, even when not in XOFF mode {13} 31.10.2008 Add inter-character timer support for use by MODBUS {14} 27.12.2008 Correct DMA transmission counter {15} \uTasker\uTasker.h: 10.04.2008 move fnSetHardwareTimer() to hardware.h \uTasker\uNetwork.c: 09.06.2008 uNetwork Broadcast address made definable {6} 02.07.2008 Add fnResetuNetwork_stats() {7} \uTasker\GlobalTimer.c: 05.03.2008 Add ability to kill all timers belonging to a certain task {4} 10.04.2008 Correct global HW monostable retrigger {5} \uTasker\usb.h: New file \uTasker\driver.c: 12.10.2008 Conditional compile of library-replacement routines {7} TCP/IP stack ============ \stack\tcp.c: 21.08.2007 Add HTTP windowing tx support (HTTP_WINDOWING_BUFFERS) {3} 22.08.2007 Discard buffered TCP data when no connection {4} 23.08.2007 Optionally silently discard peer's data when closing (DISCARD_DATA_WHILE_CLOSING) {5} 29.08.2007 Reset usOpenCnt on new connection (correction for HTTP_WINDOWING_BUFFERS) {7} 03.09.2007 Add optional external retrigger of socket idle timer {8} 25.04.2008 Add fnGetTCP_state() {9} 01.11.2008 Add FTP_DATA_WINDOWS option support for windowing {10} \stack\Ethernet.c: 09.06.2008 Allow variable uNetwork protocol {4} \stack\dhcp.c: 22.06.2008 Allow operation without random number generator support {2} \stack\tftp.c: 16.02.2008 Correct TFTP mode check {1} 16.02.2008 Correct broadcast address check {2} \stack\tcpip.h: 23.04.2008 Add INFINITE_TIMEOUT define {13} 25.04.2008 Add TCP_STATE_BAD_SOCKET and fnGetTCP_state() {14} 18.05.2008 Modify fnEncode64() parameters for general use {15} 25.05.2008 Add HTTP states HTTP_STATE_POSTING_PLAIN 02.07.2008 Add fnResetuNetwork_stats() {16} 09.07.2008 Correct IPV6 length to 16 {17} 07.09.2008 Add POSTING_PARAMETER_DATA_TO_APP {18} 22.09.2008 Add iFetchingInternalMemory to HTTP session struct {19} 23.09.2008 Add HTTP state HTTP_STATE_DOING_PARAMETER_POST {20} 04.10.2008 Add APP_REQUEST_AUTHENTICATION {21} 04.11.2008 Add conditional on FTP_DATA_WINDOWS {22} 13.11.2008 Correct typo in variable name {23} 13.11.2008 Add flags LAST_DYNAMIC_CONTENT_DATA and GENERATING_DYNAMIC_BINARY {24} \stack\webutils.c: 18.05.2008 Modify fnEncode64() to allow general purpose encoding {7} 02.09.2008 Correct fnInsertHTMLString() buffer growth limit {8} 29.11.2008 Change fnWebStrcpy() to accept zero pointer to control its behaviour {9} 01.12.2008 Change use of ucNewInput rather than cReference to alloows user name and password to be zero terminated {10} \stack\FTP.c: 23.04.2008 Add optional DEL *.* support {11} \stack\http.c: 03.03.2008 Correct transmission length when receiver's window closes {21} 03.03.2008 Don't send empty frame when no space for more data in window {22} 03.03.2008 Correct dynamic frame references when sending single or non-frames (due to receiver's windows closing) {23} 13.03.2008 fnStartHTTP's fnInsertRoutine() parameter now uses typedef LENGTH_CHUNK_COUNT as does fnInsertValue. ChunkReference correspondingly defined. {24} 17.03.2008 Correct web insert cut off {25} 16.05.2008 Allow return value on GET connection {26} 07.09.2008 Add plain text post support to enable posting parameters to application {27} 22.09.2008 Replace simulator flag iFetchingInternalMemory by a HTTP session flag to imporve accuracy when frames are repeated {28} 23.09.2008 Correct remaining length in parameter posting routine {29} 13.11.2008 Correct variable name ucDymamicFlags->ucDynamicFlags at various locations {30} 13.11.2008 Avoid padding dynamically generated binary content using LAST_DYNAMIC_CONTENT_DATA flag {31} 13.11.2008 Avoid HTTP probing when sending binary contents {32} 13.11.2008 Add DYNAMIC_DATA_FIXED_LENGTH support to optimise some data transfers {33} 29.11.2008 Add support for operation with CHROME {34} 29.11.2008 Modify plain text post to allow its content to be in first or second TCP buffer (also required for Chrome) {35} 29.11.2008 Optionally decode ASCII plain text post reception {36} !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Notes concerning using the new SP: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1. Use the file \Applications\uTaskerV1.3\config-sam7x-reference-SP4.h as configuration reference. This was used for testing the release and can be renamed to config.h if you would like to use it as a base for new work, rather than modifying the original config.h. 2. When compiling the new project the first time in the simulator environment there may be an error due to a missing define. Don't panic, since this happens due to the fact that VS automatically generates a local file which is not fully suitable for the project based on the fact that that new resources (menus etc.) are present. Simply delete the file \Applications\uTaskerV1.3\Simulator\resource.h and recompile. This time it will work correctly and the problem will also not repeat in the future. 3. GNU project includes a new make file with usb sources added: make_uTaskerV1.3_GNU_SAM7X 4. Original IAR4 and Rowley projects have not been updated in this servcie pack. To use these with USB simply add the new files to the project as follows: - uTasker\USB_drv.c to the uTasker folder - usb_application.c to the application folder - Optionally add uTasker\usb.h to and header folder 5. Please visit the uTasker SAM7X forum at http://www.utasker.com/forum/index.php?board=4.0 to monitor any patches added to this release and also for instructions as to how to use some of the new features. 6. Since the main new feature of the SP is the USB support a new demo document has been prepared which gives a quick and practical introduction. It is recommended to start with this: http://www.utasker.com/docs/uTasker/uTaskerV1.3_USB_Demo.PDF where extra details can also be followed here: http://www.utasker.com/forum/index.php?topic=478.0 --------------------------------------------------------------------------------------------------------------------------------------