Keil Logo

Release Notes for RL-ARM

Download this Update

Real-Time Library for ARM-powered Microcontrollers

Download this Update

This file contains release notes and last minute changes.

Information in this file, the accompany manuals, and software is
Copyright © ARM Ltd. and Keil - An ARM Company.
All rights reserved.


Contents

  1. What's New in RL-ARM
  2. Technical Support
  3. Contact Details

What's New in RL-ARM Real-Time Library

The following sections list the changes instituted in each release of the RL-ARM.

RL-ARM Version 4.10

  • [RTX - Problems Solved]
    • Corrected: potential wrong return value of os_mbx_send() function in Cortex-M library.
  • [TCPnet - Enhancements]
    • Added: support for Cortex-M1 devices. Free TCP_CM1.lib and debug TCPD_CM1.lib library have been added.
    • Added: a SNMP Agent implementation and SNMP_demo example for various evaluation boards. SNMP version 1 with trap messages is supported.
    • Added: a Gratuitous ARP implementation. If this feature is enabled, the embedded host broadcasts an ARP notification at startup or if local IP address changed.
    • Added: a new file type php-script, file extension php [text/html] to the Web server.
  • [TCPnet - Problems Solved]
    • Added: MSS option (maximum segment size) to SYN packet for outgoing TCP connections. Because this option was missing, PC used reduced segment size of 536 bytes in communication.
    • Corrected: auto disconnect problem in FTP Server during large file transfer.
    • Corrected: a problem in WEB Server. It failed to load pages from SPI or parallel flash.
    • Corrected: a Null Modem driver problem. It failed to connect in client mode, if connect request was issued delayed from application reset.
    • Corrected: a problem in PPP module which sometimes fails to connect.
  • [FlashFS - Enhancements]
    • Added: Support for SDHC Cards.
  • [CAN - Problems Solved]
    • Corrected: function CAN_set now returns error code.
  • [FCARM - Enhancements]
    • Added: a simple compression for Cascading Style Sheet files.
    • Improved: compression ratio for Java Script files.
  • [FCARM - Problems Solved]
    • Corrected: a problem in Java and CGI script compression.

RL-ARM Version 4.05

  • [RTX - Enhancements]
    • Added: configurable FIFO Queue size for ISR requests in RTX_Config.c configuration file.
    • Added: runtime error function os_error() to RTX_Config.c file. The runtime error codes are defined in RTL.h
  • [RTX - Problems Solved]
    • Corrected: a problem in Round Robin task switching. This failed if robin task was suspended by a higher priority task.
    • Corrected: two problems in ARM library:
      • The Stack checking did not work on system tick timer interrupt, only on preemptive task switches.
      • Task switch monitoring in RT Agent did not work for Round Robin task switching.
    • Corrected: incorrect event flag clearing in os_evt_wait_and() function if event flags were set separately. The following example shows the problem.
      __task void send_task (void) {
        os_evt_set (0x1, t_wait);
        os_evt_set (0x2, t_wait);
        os_evt_wait_or (0x1, 0xFFFF);
        os_evt_set (0x2, t_wait);
        ...
      }
      
      __task void wait_task (void) {
        os_evt_wait_and (0x3, 0xFFFF);
        os_evt_set (0x1, t_send);
        os_evt_wait_and (0x3, 0xFFFF);
        // Should never come here
      }
      
    • Corrected: support for NXP LPC3180 device. RTX_Config.c configuration for RTX kernel was corrected. Added RTX_IRQ_Blinky example for Phytec LPC3180 evaluation board, it can be found in ..\ARM\Boards\Phytec\LPC3180 folder.
    • Corrected: support for NXP LPC3250 device. RTX_Config.c configuration for RTX kernel was corrected. Added RTX_IRQ_Blinky example for Phytec LPC3250 evaluation board, it can be found in ..\ARM\Boards\Phytec\LPC3250 folder.
  • [TCPnet - Enhancements]
    • Added: a FTP Server implementation and FTP_demo example for various evaluation boards. FTP protocol allows you to manipulate with files and folders on SD card.
  • [TCPnet - Problems Solved]
    • Corrected: processing of DNS response in DNS Resolver. Resolver failed to get an IP address from DNS response if the host name was not compressed in the answer record.
    • Corrected: a problem in PPP module which might fail to connect to ISP provider when the DNS Server has been negotiated.
    • Corrected: a multipacket POST processing for Silverlight post requests in case of abnormal post termination (error, RST packet received).
  • Warning: The configuration files Net_Config.c and Net_Debug.c are nomore compatible to older versions and need to be replaced. Incompatible configuration files will not compile and build.
  • [CAN - Enhancements]
    • Added: CAN_Ex1 and CAN_Ex2 examples for NXP LPC229x to ..\ARM\Boards\Phytec\LPC229x\RL\CAN folder.

RL-ARM Version 4.01

  • [TCPnet - Enhancements]
    • Added: automatic DNS Server configuration for PPP links when dialing into ISP provider in client mode.
    • Improved: PPP link debug messages in TCPnet debug library.
    • Added: a multipacket POST processing in web server. Multipacket post requests from web browser (x-www-form-urlencoded) are buffered. The web server collects the post data and when completed, calls the callback function. The Silverlight post requests (xml-encoded) are not buffered. The web server deliveres the post data in multiple callback function calls directly to the user.
    • Changed: a socket/session numbering in TCPnet debug library. Now the socket/session numbers printed in the log are the same as they are used in the program.
  • [TCPnet - Problems Solved]
    • Corrected: handling of extended ASCII characters in cgi scripts generated by FCARM.
    • Corrected: a problem in STR9_ENET.c ethernet driver transmit function.
  • [RTX - Problems Solved]
    • Corrected: a problem of recursive __swi function calls in ARM library. An example of such problem is malloc() function from standard arm library, if it is executed in SWI mode.
  • [CAN - Problems Solved]
    • Corrected: a problem of race condition for sending CAN messages.
    • Corrected: a problem of receive hanging if software buffer for messages is full.
  • [FCARM - Problems Solved]
    • Corrected: wrong compression of extended ASCII characters in cgi scripts.

RL-ARM Version 4.00

  • [RTX - Problems Solved]
    • Corrected: a tsk_lock problem in ARM library. After a tick timer interrupt was disabled, the interrupt was not immediatelly blocked but a few cycles later. Therefore in some rare situations (very timing specific) it could happen that a blocked interrupt was still executed which eventually lead to RTX failure.
    • Updated: RTX configuration files for STMicroelectronics STR71x, STR73x and STR75x devices. Older RTX_Config.c files have to be replaced.
    • Corrected: a SVC_Handler problem in Cortex-M1 library. The __svc function return value was wrong.
  • [TCPnet - Enhancements]
    • Added: an option to skip user authentication advertised by SMTP Server. It general is not needed to authenticate when sending emails with SMTP server of the local Internet Service Provider.
    • Added: support for web caching. This improves the web server performance and reduces the traffic on the net. It solves also the java archive (jar) file cache problem. If web content is stored on SD card, the HTTP_uif.c interface has to be replaced.
    • Added: implementation of InARP (Inverse ARP) protocol.
    • Improved: printed debug messages in TCPnet debug library.
    • Added: support for compressed files generated by FCARM.
    • Added: a serial driver for STmicroelectronics STM32F10x devices. This driver is used for serial PPP or SLIP connections. An HTTP_demo example for MCBSTM32 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCBSTM32\RL\TCPnet folder.
  • [TCPnet - Problems Solved]
    • Corrected: TFTP server error checking of file write requests. The server now responds with an error message if a block cannot be written and closes the connection.
  • [FlashFS - Problems Solved]
    • Corrected: MBR geometry generation on formatting SD Card.
    • Corrected: free space calculation during work for FAT32 formatted cards.
  • [FCARM - Enhancements]
    • Added: a simple compression for html, java script and cgi script files. This reduces the image size of Http_demo example for 3.6 kbytes.
    • Added: a last modified time stamp in output file. This is an information for the Web server when the web page was last modified. It is used for web cache control.
  • [FCARM - Problems Solved]
    • Corrected: wrong LF line termination handling. FCARM now correctly handles CR-LF or LF-only line termination sequences.

RL-ARM Version 3.80

  • [CAN - Enhancements]
    • Added: CAN_Ex1 example for MCBSTM32C to ..\ARM\Boards\Keil\MCBSTM32C\RL\CAN folder.
  • [TCPnet - Enhancements]
    • Added: a dynamic default page index.cgi to web server. To use a dynamic default page a static page index.htm must not exist.
    • Added: a http_accept_host() callback function for remote host filtering.
    • Added: ethernet driver and TCPnet examples for Keil MCBSTM32C evaluation board. The examples can be found in ..\ARM\Boards\Keil\MCBSTM32C\RL\TCPnet folder.
    • Added: ethernet driver and TCPnet examples for STM3210C-EVAL evaluation board from ST Microelectronics. The examples can be found in ..\ARM\Boards\ST\STM3210C-EVAL\RL\TCPnet folder.
  • [FlashFS - Enhancements]
    • Added: SD_File example for MCBZ32AN to ..\ARM\Boards\Keil\MCBZ32AN\RL\FlashFS folder.
    • Added: SPI Interface driver for Zilog Z32AN devices for SD/MMC Flash Memory Card.
  • [RTX - Problems Solved]
    • Corrected: two problems in ARM library:
      • Frequently calling isr_xxx functions from interrupt handlers has disturbed (shortened) the system delays and timeouts for os_xxx functions with delays.
      • Corrected re-entrance problem of isr_xxx functions when called from os_tmr_call user timer callback function.
  • [TCPnet - Problems Solved]
    • Corrected: http header checking. Some browsers incorrectly encode http headers in small letters. The following headers are now all identified as valid:
      Content-Type: text/xml; charset=utf-8
      Content-type: text/xml; charset=utf-8
      content-Type: text/xml; charset=utf-8
      content-type: text/xml; charset=utf-8
      

RL-ARM Version 3.70

  • [CAN - Enhancements]
    • Added: CAN_Ex1 example for MCB1700 to ..\ARM\Boards\Keil\MCB1700\RL\CAN folder.
    • Added: CAN driver for NXP LPC17xx devices.
  • [FlashFS - Enhancements]
    • Added: SD_File example for MCB1700 to ..\ARM\Boards\Keil\MCB1700\RL\FlashFS folder.
    • Added: SPI Interface driver for LPC17xx devices for SD/MMC Flash Memory Card.
    • Added: SD_File example for MCBSTM32E to ..\ARM\Boards\Keil\MCBSTM32E\RL\FlashFS folder.
    • Added: Memory Card Interface driver for STM32x high-density performance line devices for SD/MMC Flash Memory Card.
  • [RTX - Enhancements]
    • Added: RTX configuration for Atmel AT91SAM9260 devices. Preconfigured RTX_Blinky example for the Atmel AT91SAM9260-EK evaluation board can be found in ..\ARM\Boards\Atmel\AT91SAM9260-EK folder.
  • [TCPnet - Enhancements]
    • Added: a SOAP protocol support to HTTP server. SOAP is a simple XML-based protocol to let applications exchange information over HTTP. It is used by Microsoft Silverlight web service application.
    • Added: ethernet drivers and TCPnet examples for AT91SAM9G20, AT91SAM9260 and AT91SAM9263 evaluation boards from Atmel. The examples can be found in ..\ARM\Boards\Atmel\...\RL\TCPnet folders.
    • Renamed: ethernet driver for Atmel AT91SAM7X from AT91_EMAC.c to EMAC_SAM7X.c.
  • [RTX - Problems Solved]
    • Corrected: several problems in Cortex-M library:
      • The _alloc_box and _free_box functions have re-enabled globally disabled interrupts.
      • When deleting the preceeding task (by order of TID's), the os_tsk_delete function has deleted the current running task instead.
      • The system might incorrectly execute svc system calls in a very rare timing sequences when followed by the SysTick timer interrupt.
  • [FlashFS - Problems Solved]
    • Corrected: second fopen() fail problem, when two simultaneously opened files are not located on the same drive.
  • [TCPnet - Problems Solved]
    • Corrected: auto select port range for TCP and UDP sockets. TCPnet now selects higher ports numbers than well-known ports in the range from 1024 to 65535.
    • Corrected: nested include file problem in HTTP server when processing the cgx scripts. This problem has generated wrong Content-type header in xml responses.

RL-ARM Version 3.50 Release

  • [TCPnet - Problems Solved]
    • Corrected: the user authentication problem with some SMTP servers. If the multiline response from SMTP server is fragmented, the authentication did not work.
  • [RTX - Enhancements]
    • Added: support for Luminary LM3S9Bxx devices. Preconfigured RTX_Blinky example for the Luminary EK-LM3S9Bxx evaluation board can be found in ..\ARM\Boards\Luminary\EK-LM3S9Bxx folder.
  • [TCPnet - Enhancements]
    • Added: an user authentication for SMTP server. This allows sending emails from external SMTP servers with a valid user account. In general this solves the Mail relaying not allowed problem.

RL-ARM Version 3.46 Release

  • [RL - Enhancements]
    • Added: a product version number in RTL.h. It is encoded in decimal format. For RL-ARM version 3.46 it is defined as:
      #define __RL_ARM_VER    346
      
  • [RTX - Enhancements]
    • Added: support for Toshiba TMPA910 device. RTX_Config.c configuration for RTX kernel was added.
  • [FlashFS - Enhancements]
    • Added: checking of function return values in FAT module. This improves the stability and trouble-free usage of the Flash File System.
    • Added: an RTX multithreading protection to the File System. This allows to read and write files or use standard input output from different tasks simultaneously in an RTX environment.
  • [TCPnet - Enhancements]
    • Added: a Silverlight hosting to the Web server. In order to deploy the Silverlight content, the following new file extensions [MIME types] were added:
      • xap [application/x-silverlight-app]
      • xaml [application/xaml+xml].
    • Added: a HEAD method in the Web server. The Java applets use this method to check the URL for validity, accessibility or recent modification.
    • Added: a HTTP Error message 501 Not Implemented in the Web server. The Web server now responds with status code 501 if the requested method is unrecognized or not implemented.
    • Updated: a Web server HTTP_Upload examples with a file download option. This allows to download the files, which were previously uploaded to server.
  • [TCPnet - Problems Solved]
    • Corrected: a Web server 16 MB file size limitation. The size of a download file, which is located on external drive, is now limited to 2 GB.
    • Corrected: a problem in AT91_EMAC.c driver which failed to dump bad CRC packet fragments from DMA memory buffer.
  • [USB - Enhancements]
    • Added: USB examples SD_File and SD_Memory for MCB2300 and MCB2400.

RL-ARM Version 3.40 Release

  • [RL - Problems Solved]
    • Corrected: the S8 type definition in RTL.h. It has been changed from plain char to a signed char. Plain char is defined as an unsigned byte by default.
  • [RTX - Enhancements]
    • Enhanced: the RTX core to support a multithreading for the standard runtime library:
      • provides a separate library space for each task,
      • protects non thread safe library functions with mutexes.
      Note: The new RTX-V2 ARM library is rewritten, the os_clock_demon() task scheduler has been removed and replaced with the system function calls. New RTX-V2 library is faster and uses up to 300 bytes less ram.
    • Added: the __task attribute. The __task attribute must be used in precedence to the function definition.
      __task void display_control (void) {}   // correct usage
      void display_control (void) __task {}   // generates compiler error
      
      The __task attribute saves up to 32 bytes of stack space per each task and saves a few instructions in the code.
    • Updated: all RTX examples for the new RTX-V2 configuration and the new __task attribute definition.
  • [TCPnet - Enhancements]
    • Added: support for the XML technology in the HTTP Server. With XML requests the monitoring web page is not regenerated again, but updated locally in the Browser with Java script. This allows smooth, flicker-free periodic page updates for the realtime process monitoring.
  • [CAN - Enhancements]
    • Added: driver for NXP LPC24x8 devices. A CAN_Ex1 example for MCB2400 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCB2400\RL\CAN folder.

RL-ARM Version 3.24a Release

  • [FlashFS - Enhancements]
    • Updated: SPI_SAM7X.c driver for Atmel AT91SAM7X. This driver supports both SPI Flash devices and SD Cards.
    • Added: SD_File example for AT91SAM7X evaluation board to ..\ARM\Boards\Atmel\AT91SAM7X-EK\RL\FlashFS folder.
    • Added: Memory Card Interface driver for LPC3250 for SD/MMC Flash Memory Card. An SD_File example can be found in ..\ARM\Boards\Phytec\LPC3250\RL\FlashFS folder.
  • [TCPnet - Enhancements]
    • Enhanced: the Telnet Server to correctly process line and character input. Allows copy & paste of telnet commands into a Telnet Client window.
    • Added: command history buffering to Telnet Server to allow retrieving of recently typed commands.
    • Updated: all Telnet_demo examples.
  • [TCPnet - Problems Solved]
    • Corrected: a problem in PPP module which might cause a memory corruption and application crash if PPP and interrupt driven ethernet are used at the same time.

RL-ARM Version 3.24 Release

  • [RTX - Enhancements]
    • Added: support for Atmel AT91SAM9RL device. RTX_Config.c configuration for RTX kernel was added.
  • [FlashFS - Enhancements]
    • Added: SD_File example for LPC3180 to ..\ARM\Boards\Phytec\LPC3180\RL\FlashFS folder.
    • Added: Memory Card Interface driver for LPC3250 for SD/MMC Flash Memory Card. An SD_File example can be found in ..\ARM\Boards\Phytec\LPC3250\RL\FlashFS folder.
  • [FlashFS - Problems Solved]
    • Changed: ffind() function to process filename parameter case insensitive.
    • Corrected: reusage of erased entries for lfn records in FAT file system.
  • [TCPnet - Enhancements]
    • Added: ethernet driver and TCPnet examples for MCIMX27 evaluation board from Phytec. The examples can be found in ..\ARM\Boards\Phytec\i.MX27\RL\TCPnet folder.
  • [TCPnet - Problems Solved]
    • Corrected: a problem with default __weak library functions. The linker might fail to link a correct function into the image for complex projects.

RL-ARM Version 3.23 Release

  • [RTX - Enhancements]
    • Added: support for Freescale i.MX27 device. RTX_Config.c configuration for RTX kernel was added. Preconfigured examples for the Phytec PHYCORE-i.MX27 evaluation board can be found in ..\ARM\Boards\Phytec\i.MX27 folder.
  • [TCPnet - Enhancements]
    • Added: Cache-Control header for cgi files in HTTP Server. The Cache-Control value is no-cache to prevent caching of dynamic pages.
    • Added: ethernet driver and TCPnet examples for LPC3250 evaluation board from Phytec. The examples can be found in ..\ARM\Boards\Phytec\LPC3250\RL\TCPnet folder.
    • Added: a Sliding Window flow control protocol to the TCP module. This allows the server to control the remote TCP host transmitter.
    • Updated: web pages for HTTP_demo examples. The web pages have been redesigned to use a common template.
    • Optimized: LM3S_EMAC.c and STR9_ENET.c ethernet drivers. Received packet size is now calculated correctly without additional CRC.
    • Added: configurable listening ports for HTTP, Telnet and TFTP Server. Configuration file Net_Config.c has been changed and is not compatible to older versions.
    • Added: http file upload feature to WEB Server and HTTP_upload example which allows to upload files to an SD Card. This example has been added for Keil MCB2300, MCB2400, MCBSTR9 and Luminary EK-LM3S6965 and EK-LM3S8962 evaluation boards. HTTP_upload examples can be found in ..\ARM\Boards\...\RL\TCPnet folders.
    • Updated: all HTTP_demo examples to allow switching on/off LED's 'on_click' without a need to click on additional SUBMIT button.
  • [FCARM - Enhancements]
    • Added: xml, xsl and js file types. Additional file types are now converted in ascii format.
  • [RTX - Problems Solved]
    • Corrected: a mailbox problem in ARM library. The message sent from os_mbx_send function was lost if slot was not available in a mailbox and function returned a timeout status.
  • [TCPnet - Problems Solved]
    • Corrected: invalid Content-Type header for xml, xsl, js and ico file types in HTTP Server.
    • Corrected: a problem in HTTP Server because of which the Server failed to download files larger than 64 Kbytes from Internal File System (compiled into the code).
    • Corrected: a problem in DHCP Client which failed to obtain an IP address if DHCP Option Overload was found in DHCP Option area. Overloaded DHCP Options are now correctly processed.
    • Corrected: an STR9_ENET.c ethernet driver problem which has by mistake ignored all packets with lengths over 1510 bytes. This has been corrected to 1514 bytes.
    • Corrected: examples for Luminary EK-LM6965 evaluation board. System clock was set incorrectly.
  • [FCARM - Problems Solved]
    • Corrected: invalid filename extension check for the file conversion. For example an image with filename back_htm.jpg would be converted in ascii format instead of in binary format.

RL-ARM Version 3.22a Release

  • [RTX - Problems Solved]
    • Corrected: problem in Cortex-M library which was introduced in version 3.22 (re-entrance of isr_xxx functions).

RL-ARM Version 3.22 Release

  • [FlashFS - Enhancements]
    • Added: driver for Parallel Flash Memory for STmicroelectronics SST39FV320 device. An Em_File example for MCB2400 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCB2400\RL\FlashFS folder.
    • Optimized: formating of SD/MMC memory cards. Function fat_format() has been optimized for maximum Memory Card performance. This format chooses optimal Cluster size and Cluster alignment for the Memory Card being formatted.
    • Updated: drivers MCI_LPC23xx.c and MCI_LPC24xx.c to support faster data read and data write with Multiple Block read and Multiple Block write commands.
  • [RTX - Problems Solved]
    • Corrected: re-entrance problem of isr_xxx functions in Cortex-M library when using nested interrupts.
    • Corrected: a mailbox problem in Cortex-M library. A message sent to a mailbox from an interrupt handler was lost in some rare timing situations.
    • Corrected: a timing problem in ARM library. When isr_xxx() functions were called from more than one interrupt handler with a very high repetition rate, system delays might expire sooner than expected. This has happened because the RTX kernel has detected a false tick timer overflow and decremented timeouts also within an interval time.
    • Corrected: wrong task priority handling of the mutex owner task. When the priority inversion has been applied to a task which was the owner of the mutex, the original task's priority might not have been restored correctly.
    • Corrected: range checking in Cortex-M library for __svc functions. The __svc function with the highest svc number would never execute because of wrong svc range checking.
  • [FlashFS - Problems Solved]
    • Corrected: several problems with FAT file system folder handling and file append.
    • Corrected: a problem of FAT file system. After 512 times of creating and deleting a file, root directory for FAT12/FAT16 was exhausted and it was not possible to create a new file in the root directory. Deleted files marked with 0xE5 are now reused as free directory entries.
    • Corrected: potential SPI driver problem that might corrupt the FAT file system on SD/MMC Card. Automatic Slave Select SPI mode might deassert SS signal, if data transfer from CPU is paused for longer time. Instead of automatic SS a function spi_ss() is used which controls the SS signal.
  • [TCPnet - Problems Solved]
    • Corrected: a problem of hanging the application in sys_error() function caused by IP Packet Flooding Attacks and overload. A memory block for the received packet is allocated if there is at least 25% of available memory free after the allocation. Othervise a packet is discarded.
    • Corrected: a problem in debug library. Debug messages from alloc_mem() function are not printed anymore when this function is called from an IRQ handler.

RL-ARM Version 3.21 Release

  • [FlashFS - Enhancements]
    • Added: SD/MMC file caching to increase the speed of file write and file read. Cache buffer size is configured in File_Config.c file. Using the file caching SD/MMC file write is several times faster than before.
    • Added: implementation of FAT32 file system, sub-folders and long file names. Sub-folders and Long File names may be used also with FAT12 or FAT16 file system.
    • Added: an SPI_File example for Atmel AT91SAM7X-EK evaluation board. This example is configured for AT45DB321C - 32MBit serial SPI Data Flash device from Atmel. It is located in ..\ARM\Boards\Atmel\AT91SAM7X-EK\FlashFS folder.
  • [RTX - Enhancements]
    • Added: support for Cortex-M3 RTX Event Viewer. It allows task execution and task switch monitoring in real-time.
  • [RTX - Problems Solved]
    • Corrected: generation of HardFault Exception in Cortex-M library when user timers were enabled. The configuration file RTX_Conf_CM.c has been updated. Older configuration file is not compatible and need to be replaced with a new version.
    • Corrected: invalid return value of create task functions for Cortex-M library. Functions os_tsk_create_user() and os_tsk_create_user_ex() have returned wrong task ID value.
  • [FlashFS - Problems Solved]
    • Corrected: SPI configuration problems of several SPI drivers. SPI Mode is changed to Clock Polarity low (CPOL=0), and Clock Phase low (CPHA=0).
    • Corrected: a problem of handling 0-size files for Embedded Flash/RAM file system. Opening a 0-size file for reading has failed. Opening a 0-size file for appending did not fail, but no data was actually written to the file.
    • Corrected: a problem in fcheck() function. This problem has reported a false error when checking SPI Flash or Parallel Flash file system.
  • [TCPnet - Problems Solved]
    • Corrected: wrong handling of TCP retransmit packets. Wrong handling could cause sporadic stalls on high traffic TCP sockets if a packet has been lost. The socket would recover after a retry-timeout of 4 seconds.

RL-ARM Version 3.20 Release

  • [RL-ARM]
    • Changed: the library names to be consistent with the Endianess type. RTX libraries are automatically included by &microVision IDE, other libraries need to be included manually into the project.
  • [RTX - Enhancements]
    • Updated: the RTX library for Cortex-M devices. In the new library the system calls (all os_xxx functions) are executed in svc mode and extended features of Cortex-M devices for RTOS support are used. The library is more roboust and fail-proof. New concept allows tasks to run in protected (unpriviliged) mode. The task run mode (priviliged or unpriviliged) is selectable from the config file.

      Note: The code from old RTX projects is compatible to the new library, however old configuration files need to be replaced with the new RTX_Conf_CM.c file and old startup files updated with access to SVC_Handler, PendSV_Handler and SysTick_Handler exception handlers.

                      IMPORT  SVC_Handler
                      IMPORT  PendSV_Handler
                      IMPORT  SysTick_Handler
                      
      Vectors         ..
                      DCD     SVC_Handler             ; SVCall Handler
                      DCD     Default_Handler         ; Debug Monitor Handler
                      DCD     0                       ; Reserved
                      DCD     PendSV_Handler          ; PendSV Handler
                      DCD     SysTick_Handler         ; SysTick Handler
                      ..
      
    • Added: support for Texas Instruments TMS470R1B1M device. RTX_Config.c configuration for RTX kernel was added. Preconfigured examples for TMS470R1B1M evaluation board can be found in ..\ARM\Boards\TI\TMS470R1B1M folder.
    • Added: support for NXP LPC3180 device. RTX_Config.c configuration for RTX kernel was added. Preconfigured examples for Phytec LPC3180 evaluation board can be found in ..\ARM\Boards\Phytec\LPC3180 folder.
  • [TCPnet - Enhancements]
    • Added: script cgi files for the WEB server may may now be stored on external File System, for example on exernal SD Card. There is no limitation where the cgi files are stored. Additional function http_fgets for script buffering has been added to HTTP_uif.c user interface module.
    • Added: IP Multicasting with IGMP - Internet Group Management Protocol. IP Multicasting allows sending and reciving Multicast UDP datagrams to several hosts simultaneously.
      Note: All ethernet drivers have been updated to enable receiving of Multicast packets.
  • [FlashFS - Enhancements]
    • Added: driver for STMicroelectronics STM32x devices. An SD_File example for MCBSTM32 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCBSTM32\RL\FlashFS folder.
  • [RTX - Problems Solved]
    • Corrected: core problems for Cortex-M devices. Handling of isr_xxx function calls was incorrect and could cause task locks. Wrong handling of task switches and __svc functions could cause sporadic application crashes if additional user interrupts were enabled.
  • [FlashFS - Problems Solved]
    • Corrected: Memory Card Interface driver problem for LPC23xx devices silicon rev. 'B'. Updated driver works with all silicon revisions: rev. '-', rev. 'A' and rev. 'B'.
    • Corrected: potential unaligned Flash/RAM device access for fread() and fwrite() functions. The fix required an update of Flash Programming algorithms which are located in ..\ARM\RL\FlashFS\Flash folder. The function fs_ProgramPage() was updated to allow unaligned buffer access.
  • [TCPnet - Problems Solved]
    • Corrected: ethernet driver problem for STMicroelectronics STR912 devices. Updated driver now works correctly when the user application calls init_TcpNet() again to restart the TCPnet library.
    • Corrected: ethernet driver problem for LPC24xx devices. Updated driver works with both old LPC24xx device rev. '-' and new LPC24xx device rev. 'A' and later.
    • Corrected: a problem of truncating NetBIOS names. By a mistake only 12 characters of the host name were decoded from the NBNS packet. This has been corrected to decode all 16 characters.
    • Corrected: ethernet driver problem for LPC24xx devices. Clock divider setting definitions from the LPC24xx_EMAC.h were incorrect. All MCB2400 examples were updated and the startup file was replaced with LPC2400.s startup file.
    • Corrected: ethernet driver problem for LPC23xx and LPC24xx devices. Receive Packet filtering was set incorrectly and enabled the promiscuous mode. All ethernet packets were received and not filtered by hardware. The IP layer from the software has filtered the packets, what has caused unnecessary cpu load and reduced performance.
    Warning: The configuration files Net_Config.c and Net_Debug.c are nomore compatible to older versions and need to be replaced. Incompatible configuration files will not compile and build.

RL-ARM Version 3.13 Release

  • [FlashFS - Enhancements]
    • Added: library support for serial SPI Flash devices. Additional drive letter for SPI Flash memory S: is added. A driver for Intel S33 serial SPI Flash device 25F640S33 is located in ..\ARM\RL\FlashFS\Flash\25F640S33 folder.
    • Added: driver for Luminary LM3S8962 devices. An SD_File example for EK-LM3S8962 Luminary evaluation board can be found in ..\ARM\Boards\Luminary\EK-LM3S8962\RL\FlashFS folder.
  • [TCPnet - Enhancements]
    • Added: unsolicited message interface to the Telnet Server. With this interface the application layer (for example a basic interpreter) may use the Telnet Server to send unsolicited messages to the remote user.
    • Added: ethernet driver and TCPnet examples for LM3S8962 Luminary evaluation board. The examples can be found in ..\ARM\Boards\Luminary\EK-LM3S8962\RL\TCPnet folder.
  • [CAN - Enhancements]
    • Added: driver for Luminary LM3S2110 and LM3S8962 devices. A CAN_Ex1 and CAN_Ex2 examples for EK-LM3S2110 and EK-LM3S8962 Luminary evaluation boards can be found in ..\ARM\Boards\Luminary\[board]\RL\CAN folder.
  • [FlashFS - Problems Solved]
    • Fixed: a problem of fseek function when it was called after file read functions fgetc, fread, etc. When an Early End of File flag was set in the file buffering, this sequence of function calls would fail. This has occured at the end of file when the last block was read and it had less than 512 bytes.
  • [TCPnet - Problems Solved]
    • Fixed: a problem of incorrect Flag Character processing in PPP module. PPP Stack has expected a Start and a Stop Flag. This has been fixed and now a frame can be correctly received between any two flags.
    • Fixed: a problem of HTTP Server when serving the Mozilla Firefox web-browser. HTTP Server failed to process a Firefox POST requests correctly and because of this web pages generated with POST method did not work for this browser.
    • Fixed: a problem of incorrect file closing in HTTP Server script interpreter. The files included with 'i' script command were not closed correctly when they were located on external File System and accessed via http_uif.c interface primitives.

RL-ARM Version 3.12 Release

  • [RL-ARM]
    • Added: RTX Kernel support for Cortex-M1 architecture. An RTX_Blinky example for ARM Cortex-M1 device is added to ..\ARM\Boards\ARM\Cortex-M1 folder.
    • Added: support for Samsung S3C2440 device. RTX_Config.c configuration for RTX kernel was added. Preconfigured examples for S3C2440 Samsung evaluation board can be found in ..\ARM\Boards\Samsung\S3C2440 folder.
  • [FlashFS - Enhancements]
    • Added: driver for Luminary LM3S6965 devices. An SD_File example for EK-LM3S6965 Luminary evaluation board can be found in ..\ARM\Boards\Luminary\EK-LM3S6965\RL\FlashFS folder.
  • [TCPnet - Problems Solved]
    • Fixed: ethernet driver problem for LPC23xx devices. Incorrect handling of receive buffer overflows has been corrected.
  • [FlashFS - Problems Solved]
    • Fixed: a problem of opening non-existing file for reading. If a file was not found, a file control block was not released. After 16 retries all FCB's would be used and any further call to fopen(), ffree(), fformat(), ... would fail.

RL-ARM Version 3.11 Release

  • [RL-ARM]
    • Added: TCPnet, FlashFS and RTX examples for Keil MCB2400 evaluation board. RL_ARM examples for this evaluation board can be found in ..\ARM\Boards\Keil\MCB2400 folder. This evaluation board is identical to Embedded Artists LPC2468 OEM Board.
  • [TCPnet - Enhancements]
    • Added: ethernet driver and TCPnet examples for LM3S6965 Luminary evaluation board. The examples can be found in ..\ARM\Boards\Luminary\EK-LM3S6965 folder.
  • [TCPnet - Problems Solved]
    • Fixed: ethernet driver problem for LPC23xx devices. Updated driver works with both old LPC23xx device rev. '-' and new LPC23xx device rev. 'A' and later.
  • [USB - Enhancements]
    • Added: CDC example for MCB2140 and MCB2300 evaluation boards. This example implements Virtual COM Port based on a Windows USB host driver.

RL-ARM Version 3.10 Release

  • [RL-ARM]
    • Changed: a folder structure for RL-ARM. The Boards folder has been restructured and all RL-ARM target examples moved to ..\ARM\Boards folder. USB and CAN drivers are now located under ..\ARM\Boards\[vendor]\[board]\RL\USB and ..\ARM\Boards\[vendor]\[board]\RL\CAN folders.
    • Updated: all RL-ARM examples are adapted for MicroLIB, a tiny C-library. MicroLIB does not support a File System so examples for the File System can not work with MicroLIB and have to use a standard C-library. Some of TCPnet examples which use File System can also not work with MicroLIB, for example TFTP_Demo.
    • Added: support for Atmel AT91SAM7SE device. RTX_Config.c configuration for RTX kernel was added. Preconfigured examples for AT91SAM7SE-EK Atmel evaluation board can be found in ..\ARM\Boards\Atmel\AT91SAM7SE-EK folder.
    • Added: RTX_Blinky examples for Embedded Artists evaluation boards: LPC2106 RS232 QSB, LPC2129 CAN QSB, LPC2138 QSB and LPC2148 USB QSB. RTX_Blinky examples can be found in ..\ARM\Boards\Embedded Artists folder.
  • [TCPnet - Enhancements]
    • Enhanced: TCPnet examples for MCBSTR9 evaluation board. System configuration from STR91x.s startup file (wait states, clocks, etc.) has been reconfigured and optimized for best Network performance. Ethernet driver STR9_ENET.c has also been optimized. Now TCP benchmarks results are 10 times better than before.
    • Enhanced: processing of CGI script pages. This enhancement has improved the HTTP Server performance a lot by reducing number of generated TCP packets. A CGI page with 27 script lines has previously transmitted 54 packets but now only 2 packets. This enhancement also improves the stability of the Web Browser when browsing web pages which are continuously refreshing (meta http-equiv="refresh").
    • Added: an AD web page to HTTP_Demo examples for MCB2300 and MCBSTR9 evaluation boards. This page demonstrates a continuously refreshing web page showing an analog voltage on analog potentiometer located on the board.
    • Added: a serial driver for STmicroelectronics STR71x devices. This driver is used for serial PPP or SLIP connections. An HTTP_demo example for MCBSTR7 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCBSTR7\RL\TCPnet folder.
  • [FlashFS - Enhancements]
    • Added: driver for Embedded Flash Memory for STmicroelectronics STR71x and STR75x devices. An Em_File example for MCBSTR750 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCBSTR750\RL\FlashFS folder.
  • [CAN - Enhancements]
    • Added: driver for NXP LPC23x8 devices. A CAN_Ex1 example for MCB2300 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCB2300\RL\CAN folder.
  • [USB - Enhancements]
    • Added: driver for Atmel AT91SAM7S devices. USB examples for AT91SAM7S-EX Atmel evaluation board can be found in ..\ARM\Boards\Atmel\AT91SAM7S-EK\RL\USB folder.
  • [RTX - Problems Solved]
    • Fixed: a task timing problem for STmicroelectronics STR750 devices in RTX_Config.c configuration file. Interrupt function calls of isr_xxx() has reset also the hardware tick timer prescaler and changed the tick-timer timing cycle. This is now fixed in a new RTX configuration file.
    • Fixed: a task timing problem for CORTEX-M3 devices. When the application has made a very large number of system calls resulting in frequent task switches, the system clock tick has run slow. This is now fixed in a new RTXCM3.lib library file.
  • [FlashFS - Problems Solved]
    • Fixed: several problems of the FAT File System for SD/MMC Flash Memory Cards. A file reopened again for appending was stored corrupted to a Flash Memory Card. Reading a file from the Memory Card did not work correctly for the block size of fread() other than 512 bytes.
  • [TCPnet - Problems Solved]
    • Fixed: improper processing of css files (Cascading Style Sheet). The format has been changed from binary "application/octet-stream" to ascii "text/css" format.
  • [FCARM - Problems Solved]
    • Fixed: a problem of wrong css file converting. They are now stored in ascii format to the web server virtual file system.

RTL-ARM Version 3.05 Release

  • [RTL-ARM]
    • Added: support for STmicroelectronics STR750 device. RTX_Config.c configuration for RTX kernel was added. An RTX_Blinky example for MCBSTR750 Keil evaluation board can be found in ..\ARM\RV30\RTL\Boards\Keil\MCBSTR750 folder.
    • Updated: examples for Atmel evaluation boards. The startup configuration files SAM7.s and SAM9261.s have been updated.
    • Updated: all HTTP_Demo examples. Default page index.htm has been updated and DHCP client timeout implemented. If DHCP did not obtain an IP address in 5 seconds, it is disabled and a static IP is used instead.
  • [Kernel - Enhancements]
    • Enhanced: handling of isr_xxx() functions to increase execution speed and preformance.
    • Updated: task create functions os_tsk_create_user() and os_tsk_create_user_ex(). Those functions now autocorrect user provided stack size for 8-byte stack alignment.
    • Improved: RTX configuration for STR71x, STR73x and STR75x devices. Standard RTX configuration no longer needs a SWI_Table.s System function __swi(8) from RTX_Config.c has been changed to __swi(7) which does not require an external SWI_Table included into the project anymore.
  • [FlashFS - Enhancements]
    • Added: Memory Card Interface driver for MCB2300 for SD/MMC Flash Memory Card. An SD_File example can be found in ..\ARM\RV30\RTL\Boards\Keil\MCB2300 folder.
    • Added: SPI Interface driver for MCBSTR9 for SD/MMC Flash Memory Card. An SD_File example can be found in ..\ARM\RV30\RTL\Boards\Keil\MCBSTR9 folder.
    • Added: SPI Interface driver for MCBSTR750 for SD/MMC Flash Memory Card. An SD_File example can be found in ..\ARM\RV30\RTL\Boards\Keil\MCBSTR750 folder.
  • [TcpNet - Enhancements]
    • Added: LEDSwitch server and Client example configured for a serial dial-up PPP connection. This example can be found in ..\ARM\RV30\RTL\TcpNet\Examples folder.
  • [Kernel - Problems Solved]
    • Fixed: a problem of isr_sem_send() function. This function did not work correctly when a task was already waiting for a semaphore and might hold a task in WAIT_SEM state for additional 65536 system tick intervals.
  • [FlashFS - Problems Solved]
    • Fixed: a problem in FAT module. Flash File System did not work correctly when more than 16 files were stored on a Flash Memory Card. The file was stored, but the directory entry was not updated, so the file was not seen in the directory listing.
  • [TcpNet - Problems Solved]
    • Fixed: a problem of DHCP client module. When several DHCP clients have started at the same time (simultaneously powered up), some of them might fail to obtain a valid IP address. This happened because a DHCP reply checking was not strict and two or more DHCP clients tried to obtain the same IP address. DHCP client which failed would still obtain a valid IP address after DHCP has been internally restarted after 30 seconds.
    • Fixed: a problem of Null_Modem.c modem driver which failed to work with Windows XP dial-in PPP connection.
  • [CAN - Problems Solved]
    • Fixed: a potential problem in all CAN drivers. With high baud rate and high traffic rate, old CAN drivers might lose some of the transmit messages.
  • [USB - Enhancements]
    • Added: RTX USB examples for MCB2300. They can be found in ..\ARM\RV30\RTL\USB\LPC23xx folder.
    • Added: RTX USB examples for MCBSTR9. They can be found in ..\ARM\RV30\RTL\USB\STR91x folder.
    • Added: RTX USB examples for MCBSTR750. They can be found in ..\ARM\RV30\RTL\USB\STR75x folder.
  • [FCARM - Problems Solved]
    • Fixed: a problem of wrong '\' character expansion for creating webserver filesystem files. This has been expanded to '\\' for .html and .inc files. This problem has created wrong html files when javascript has been used with a code such as:
      t if(ValueString.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}&/
      

RTL-ARM Version 3.04 Release

  • [RTL-ARM]
    • Updated: examples for MCBSTR9. The startup configuration files STR91x.s have been updated.
  • [Kernel - Enhancements]
    • Added: RTX Kernel support for Cortex-M3 architecture. An RTX_Blinky example for Luminary Micro LM3S102 device is added to ..\ARM\RV30\RTL\Boards\Luminary folder.
  • [FlashFS - Enhancements]
    • Added: support for SD/MMC Flash Memory Card with standard FAT12 and FAT16 file system. Memory Cards up to 2 GBytes are supported.
  • [TcpNet - Enhancements]
    • Added: configurable Web Server Error Pages. Http Server 40x Error Pages are extracted to a single file HTTP_err.c which can be copied to the user project and customized.
  • [Kernel - Problems Solved]
    • Fixed: a core problem of SWI_Handler when accessing user registers. Setting an user Link Register on task switch has failed for Atmel AT91RM9200 devices. Instruction LDMDB SP,{SP,LR}^ does not work for these devices. Implemented workaround uses a different instruction for setting the user LR and this works for all ARM devices.
    • Fixed: a problem of os_tsk_prio() function. This function did not work correctly when a priority of a task in a delay has been changed.
  • [TcpNet - Problems Solved]
    • Fixed: a problem of PPP module in LCP negotiation phase. Because of this problem it has failed to connect to some GPRS modems when TcpNet was much faster than modem.
    • Fixed: a problem of PPP Client module which has sent a PPP authentication request also if authentication was not requested by remote PPP Server.

RTL-ARM Version 3.03a Release

  • [RTL-ARM]
    • Added: support for NXP (founded by Philips) LPC23xx devices. RTX_Config.c configuration for RTX kernel and LPC23_EMAC.c driver for embedded EMAC ethernet controller were added. Preconfigured examples for MCB2300 Keil evaluation board can be found in ..\ARM\RV30\RTL\Boards\Keil folder.
  • [TcpNet - Problems Solved]
    • Fixed: a problem in udp_send() function which has limited a data size to 1432 bytes. This was wrong and has been changed to 1472 bytes as a limit for UDP data size.
  • [Kernel - Enhancements]
    • Updated: a memory box handling functions. Those functions now properly handle 4-byte and 8-byte aligned memory blocks. Added _init_box8() function and memory pool declaration macros _declare_box() and _declare_box8().
    • Updated: RTOS configuration files for Atmel SAM7S, SAM7A3, SAM7X and SAM79261 devices. In addition to PIT timer, also TC0, TC1 and TC2 timer counter blocks can be selected as a system tick timer. Also a Common System Interrupt Handler is added. It can be used when a PIT timer is selected as an RTOS tick timer which shares a common IRQ with other SAM7 system peripherals.
    • Updated: RTOS configuration files for Analog Devices ADuC702X devices and OKI ML67Q4003, ML67Q5003 and ML674000 devices. The code from assembly Interrupt Handler module IRQ.s has been integrated into RTX_Config.c configuration file. This module is nomore required for RTOS projects.
    Note: All RTOS configuration files RTX_Config.c from Startup folder have been updated and optimized. It is advised to replace older RTOS configurations with new configurations.

RTL-ARM Version 3.03 Release

  • [RTL-ARM]
    • Added: support for Atmel AT91SAM7X device. RTX_Config.c configuration for RTX kernel and AT91_EMAC.c driver for embedded EMAC ethernet controller were added. Preconfigured examples for AT91SAM7X-EK Atmel evaluation board can be found in ..\ARM\RV30\RTL\Boards\Atmel folder.
  • [Kernel - Enhancements]
    • Added: a mutex task priority inversion - priority inheritance has been implemented. When a medium-priority task preempts a lower-priority task using a shared resource (a mutex) on which a higher-priority task is pending, a priority of lower-priority task is temporary raised to the priority level of a higher-priority task. As soon as a lower-priority task releases a mutex, a priority level of this task is lowered back to a default value.
  • [TcpNet - Enhancements]
    • Added: a function http_get_session() to HTTP Server module. This function returns a HTTP Server Session instance index. It may be called from the CGI module to identify a HTTP Client which has issued a request to HTTP Server.
    • Added: PPP Server example Http_demo for Keil MCB2148 evaluation board. This example can be found in ..\ARM\RV30\RTL\TcpNet\Examples folder.
  • [CAN - Enhancements]
    • Added: CAN driver for various arm devices: Atmel AT91SAM7X, STmicroelectronics STR73x and STR91x.
    • CAN Driver Documentation has been updated.
  • [Kernel - Problems Solved]
    • Fixed: a problem in RTX_Config.c for all Atmel devices. Interrupt acknowledge sequence was incorrect and could cause system dead-locks when additional IRQ interrupts were enabled. If isr_xxx_ functions were called from the interrupt handler, the interrupt system might not be properly released and would not accept any further tick-timer interrupts.
    • Fixed: a problem in RTX_Config.c for STMicroelectronics STR91x devices. A code to disable interrupts was incorrect. Because of this problem a tick timer interrupt could happen in a protected section of RTX Kernel system code following with a stack overflow and user application crash.
  • [TcpNet - Problems Solved]
    • Fixed: a problem of DHCP client. Because of this problem a DHCP client would fail to obtain an IP address if the IP address configured in Net_Config.c matches the subnet address of your local network. For example if your local subnet is 192.168.0.* and the local IP address in Net_Config.c is 192.168.0.100, the DHCP server will not return an IP address.

RTL-ARM Version 3.02 Release

  • [RTL-ARM]
    • Added: support for STMicroelectronics STR912 device. RTX_Config.c configuration for RTX kernel and STR9_ENET.c driver for embedded ENET ethernet controller were added. Preconfigured examples for MCBSTR9 Keil evaluation board can be found in ..\ARM\RV30\RTL\Boards\Keil folder.
    • Added: support for Atmel AT91RM9200 and AT91SAM9261 devices. RTX_Config.c configurations for RTX kernel were added. Preconfigured examples for AT91RM9200-EK and AT91SAM9261-EK Atmel evaluation boards can be found in ..\ARM\RV30\RTL\Boards\Atmel folder.
  • [Kernel - Problems Solved]
    • Fixed: a mutex task deadlock problem. When a task with higher priority would release and again grab a mutex, a lower priority task would become ready. Because of a mutex problem, this task would never get a chance to execute, not even after a timeout.

RTL-ARM Version 3.01 Release

  • [RTL-ARM]
    • RTL object libraries and examples are reconfigured and recompiled for Compiler optimization level O3.
  • [CAN - Problems Solved]
    • Fixed: a problem in CAN driver for LPC2000. Acceptance filter configuration problem is corrected.

RTL-ARM Version 3.00 Release

  • [RTL-ARM]
    • Updated: all references to legacy term 'Advanced' are removed. Include definition files renamed to RTL.h, RTX_Config.h, Net_Config.h. The configuration files are also renamed to RTX_Config.c, Net_Config.c, Net_Debug.c. The documetation is updated to reflect those changes.
    • Added: support for Atmel AT91SAM7X device. RTX_Config.c configuration for RTX kernel and AT91_EMAC.c driver for embedded EMAC ethernet controller were added. Preconfigured examples for AT91SAM7X-EK Atmel evaluation board can be found in ..\ARM\RV30\RTL\Boards\Atmel folder.
  • [Kernel - Problems Solved]
    • Fixed: a problem in RTX_Config.c for ST Microelectronics STR71x device family. If the device was running with a high speed system clock but the EIC peripheral with a slower PCLK2 clock, the interrupts were not disabled immediately when an interrupt enable register was written but with a delay. Because of this problem a tick timer interrupt might occur in a protected region of code. This collision has caused an RTX Kernel malfunctioning or even user application crash. The fix uses a swi function __swi(8) which is no more free for the user.
    • Fixed: a problem in RTX_Config.c for Analog Devices ADuC702x device family. The problem was in a device inability to mask forced-programming software interrupts. Because of this problem a tick timer interrupt could happen in a protected section of RTX Kernel system code following with a stack overflow and user application crash.
    • Fixed: a problem of potential application crash when a project was build with RealView compiler optimization level other than O0. This was because the registers R8-R11 were not stored for reduced context switch. Now the reduced context switch save also registers R8-R11 on the stack.
    Warning: A configuration file RTX_Config.c is not compatible to older versions and need to be replaced. If the old configuration is used, the application will crash because the initial task stack content is not compatible anymore.

RTL-ARM Version 2.11 Release

  • [RTL-ARM]
    • RTL components Kernel, TcpNet and USB ported from CARM to RealView Compilation Tools.
  • [Kernel - Problems Solved]
    • Fixed: a problem of wrong operation of os_mbx_send() when a message has been fetched from a full mailbox and then pushed back again from the same task with no task switch in between. If another task has been waiting to send a message to this mailbox, this task would become ready and would send a message to a mailbox, which was full with no space for free messages.
  • [USB - Enhancements]
    • Updated: all ARTX USB examples to pass the USBCV - USB Command Verifier test. All ARTX USB examples can now pass USBCV test.
  • [USB - Problems Solved]
    • Fixed: a potential problem with memory example ARTX_Memory which could cause the application to hang when connected to some of Windows XP hosts.
  • [FlashFS - Problems Solved]
    • Fixed: a problem in fdefrag(). If a defragmentation was requested for a file system with three or more files, and one of them was deleted this function might corrupt the file system. This was the case when one of the files from the middle of the file directory list was deleted before.

ARTX Version 2.01 Release

  • [Kernel - Problems Solved]
    • Fixed: a problem of potential system hang when os_mbx_send() was called with parameter timeout set to 0. If a mailbox was already full a system could hang in an endless loop.
    • Fixed: a problem of wrong operation of os_mut_wait() when a mutex was released and acquired again with no delay in between. If another task has been waiting for this mutex, this task would become ready and acquire a mutex, which was already owned by another task.
    • Fixed: a problem of failed Round Robin task switching. This problem has shown when a higher priority tasks were also running in addition. If a higher priority task was delayed by os_dly_wait() or os_itv_wait() function with a delay time equal to Round Robin timeout or less than this timeout, a Round Robin task switching did not work.
  • [TcpNet - Problems Solved]
    • Fixed: a problem of sending subnet broadcast packets. This problem prevented sending broadcast UDP packets on local LAN. This is now fixed and UDP subnet broadcast packets are sent to Broadcast Ethernet address FF:FF:FF:FF:FF:FF
    • Fixed: a problem of handling broadcast and subnet broadcast addresses for arp_cache_ip() function. If IP address is an IP broadcast or subnet broadcast address, this function returns __TRUE and does not send an arp request for resolving IP address.
    • Fixed: a problem of sending invalid TCP retransmission packets for second and any further retransmissions. Each retransmission has extended the packet size by adding a header length and appending a garbage data to the end of packet.
  • [TcpNet - Enhancements]
    • Added: physical link speed select macros for LAN91C111.c device driver. The macros allows you to connect only at 10MBit or 100MBit speed rate. By default an autonegotiation for speed is used. This might take longer time to connect.

ARTX Version 2.00 Release

  • [ARTX - Enhancements]
    • Added: Flash File System implementation. It supports embedded Flash drives and RAM drives which can be used simultaneously to store and retrieve files.
    • Added: CAN Driver implementation. It is based on ARTX Kernel and currently supports Philips LPC2000 and ST STR7 device family. Two examples are provided: CAN_Ex1 and CAN_Ex2 which are configured to run on Keil MCB2100 and MCBSTR7 evaluation boards.
    • Added: USB Driver implementation. It uses ARTX Kernel to process USB packets. The following examples are provided: ARTX_Audio, ARTX_HID and ARTX_Memory. They run on Keil MCB2140 evaluation board.
    • Added: new type definitions to ARTX.h header file to avoid conflicts. New types are: U8, U16, U32, S8, S16, S32, BIT, BOOL, __TRUE and __FALSE. New types have replaced old types: BYTE, WORD, DWORD, TRUE and FALSE. Source files and documentation has been modified to reflect those changes.
  • [Kernel - Enhancements]
    • Added: new synchronization object mutex for mutual exclusion locks. The following functions were implemented: os_mut_init(), os_mut_wait() and os_mut_release().
    • Added: Stack Checking option to ARTX_Config.c configuration file. When this option is enabled, ARTX Kernel executes additional code to check for stack-overflow error.
    • Added: new functions os_sys_init_user() which allows to start the ARTX Kernel with a task which has assigned an user-provided stack and os_sys_init_prio() which allows you to start the ARTX Kernel with a task which will have assigned a specified priority.
  • [Kernel - Problems Solved]
    • Fixed: a potential problem of blocking the interrupt system for some of the ARM devices. This could happen if the default interrupt handler os_def_interrupt() has been executed. This handler located in ARTX_Config.c configuration file has now been updated to release the ARM interrupt system by acknowledging the interrupt.
    • Fixed: a problem of wrong interval delay when execution between os_itv_set() and os_itv_wait() takes more clock ticks than specified with os_itv_set() function. This problem is shown with the following example:
      void task1 (void) __task {
          .
          .
         os_itv_set (100);
         for (;;) {
             .
             .
            /* Execution here may take longer than 100 clock ticks.   */
            os_itv_wait ();  /* If 100 clock ticks have passed,       */
                             /* this will wait for 65535 clock ticks. */
         }
      }
      
    A configuration file ARTX_Config.c is not compatible to older versions and need to be replaced.
  • [TcpNet - Enhancements]
    • Added: TFTP Server has been implemented. It supports file upload/download to the Flash File System drives.
    • Added: an example TFTP_demo which demonstrates the usage of TFTP Server.
    • Added: new ARP cache control function arp_cache_ip(). It can be used to resolve the remote MAC address before the first UDP data packet is sent to target. If remote MAC address is not resolved from the ARP cache, sending UDP data packet failed and packets were lost until ARP entry was cached.
    • Added: an example for HTTP Server running with ARTX Kernel. The existing example HTTP_demo has been upgraded for two modes: a standalone application and HTTP Server running with ARTX Kernel.
    • Modified: library function names MemCpy(), MemSet(), MemCmp() and StrCpy() to avoid confusion to standard C string functions. New functions are: mem_copy(), mem_set(), mem_comp() and str_copy().
  • [TcpNet - Problems Solved]
    • Fixed: a problem in ARP module which has transmitted invalid IP address for ARP requests. This happened when an ARP Cache Entry was refreshed or ARP request was retransmitted.
    • Added: a check for destination IP address 0.0.0.0 to TCP module. TCP Connect requests to this address are now blocked by TCP module. This also prevents sending ARP requests for IP address 0.0.0.0

ARTX Version 1.10 Release

  • [Kernel - Enhancements]
    • Added: os_evt_get() event handling function, which returns event flags served by the os_evt_wait_or() function.
    • Added: several examples were added to Keil\ARM\ARTX\Examples base folder:
      • Keil\ARM\ARTX\Examples\RoundRobin: shows round-robin task switching.
      • Keil\ARM\ARTX\Examples\Semaphore: shows how to use a shared resource UART from different tasks using a semaphore.
  • [Kernel - Problems Solved]
    • Fixed: configuration problem of tick timer reload in ARTX_Config.C configuration files for OKI and ST devices variants. Improper tick timer reload could cause stalls in Kernel delay handling when isr_mbx_send(), isr_evt_set() and isr_sem_send() functions were used.
    • Fixed: core problem of invalid delays when frequent isr_xxx_xxx function calls were made from interrupt functions. This could cause shorter delays than specified for os_dly_wait(), os_itv_wait() and other system delay and timeout functions.
    • Fixed: problem in os_mbx_wait() and os_sem_wait() functions when they were called with timeout parameter set to 0. In this case the function has returned wrong result value. The timeout value 0 is used to fetch a message or obtain a token from a semaphore without waiting for one.
    • Modified: ARTX_Config.C configuration files for all device variants. The function os_tmr_set_ovf() has been replaced with os_tmr_force_irq() function.
    A configuration file ARTX_Config.c is not compatible to older versions and need to be replaced.
  • [TcpNet - Problems Solved]
    • Fixed a problem in Telnet server when some characters were not echoed back. This has happened if typing on remote Telnet client was too fast.
    • Fixed a problem of locking-up an LAN91C111 ethernet controller on high traffic LANs. This could happen when a lot of packets are received in short time and the CPU is not fast enough to process all of the packets. When the MMU unit of LAN91C111 ethernet controller is locked, the driver now restarts the MMU unit to prevent lockups.
  • [TcpNet - Enhancements]
    • Added configurable PPP retransmissions and timeouts to ANet_Config.c configuration file. You may increase the default timeouts and number of retransmissions when PPP connect fails on slow serial links or when the network latency is high - for example a GSM PPP data link.
    • Added new functions http_get_info() and tnet_get_info() to retrieve the remote machine IP address and MAC adddress. Those functions can be used to limit access rights from remote machines based on remote IP address or MAC address.
    • Added a serial driver for Philips LPC21xx devices. This driver is used for serial PPP or SLIP connections. The following serial drivers are currently available:
      • ..\ARM\ARTX\SRC\TcpNet\Serial.C: for Philips LPC21xx and LPC22xx devices.
      • ..\ARM\ARTX\SRC\TcpNet\Serial_S3C44B0X.C: for Samsung S3C44B0X devices.
    Older versions of ANet_Config.c configuration files are not compatible to this version and need to be replaced.

ARTX Version 1.02 Release

  • [Kernel - Enhancements]
    • Added: ARTX_Config.C configuration files for OKI devices variants:
      • ..\ARM\Startup\OKI\ARTX_Conf_ML67.C: for OKI ML67xxx devices.

ARTX Version 1.01 Release

  • [Kernel - Enhancements]
    • Added: ARTX_Config.C configuration files for the following devices variants: AT91SAM7Sxx, STR71x, ADuC702x. The configuration files are located in the base folder Keil\ARM\Startup. The following ARTX-ARM configuration files are currently available:
      • ..\ARM\Startup\Atmel\ARTX_Conf_SAM7S.C: for Atmel AT91SAM7Sxx devices.
      • ..\ARM\Startup\Philips\ARTX_Config.C: for Philips LPC21xx and LPC22xx devices.
      • ..\ARM\Startup\ST\ARTX_Conf_STR71x.C: for ST Microelectronics STR71x devices.
      • ..\ARM\Startup\ADI\ARTX_Conf_ADuC702x.C: for Analog Devices ADuC702x devices.
         
    • Added: example projects for various Evaluation Boards that show the usage of ARTX-ARM on various devices. The following examples are currently available:
      • ..\ARM\Boards\Atmel\AT91SAM7S\ARTX_Blinky: for Atmel AT91SAM7S Microcontroller Board.
      • ..\ARM\Boards\ST\STR7\ARTX_Blinky: for ST Microelectronics STR71x devices running on ST STR7 Evaluation Board.
      • ..\ARM\Boards\Hitex\STR7\ARTX_Blinky: for ST Microelectronics STR71x devices running on Hitex STR7 Evaluation Board.
      • ..\ARM\Boards\ADI\ADuC702X\ARTX_Blinky: for Analog Devices ADuC702x devices.
      Note:  ..\ARM\ARTX\Examples\Blinky contains an example that is configured for Philips LPC21xx devices an runs on the Keil MCB2100 and MCB2130 Evaluation Board.
       
    • Modified: the ARTX-ARM specific Software Interrupt Handler in the module Swi_ARTX.S is now generic for all ARM7 devices variants. Some devices require a NOP instruction to avoid DATA ABORT traps between stack switching.
    • Enhanced: the Stack Load display in the dialog Peripherals - Advanced RTX of the RUNNING task is now updated from the current SP value.

ARTX Version 1.00a Release

  • [Kernel - Enhancements]
    • New functions os_tsk_create_ex() and os_tsk_create_user_ex() are implemented. It is now possible to pass a parameter to a task when it is created using this function. This is useful when a single task is started in multiple instances.
    • A function os_tsk_prio() is updated to accept also a task identification to change the execution priority of any other task. A new macro os_tsk_prio_self() is introduced for consistency to change a priority of a currently running task.
    A configuration file ARTX_Config.c is not compatible to older versions and need to be replaced.

ARTX Version 1.00 Release

  • [Kernel - Problems Solved]
    Task switch function has been optimized and updated. ARTX_Config.c configuration file has been updated to support the uVision debug dialog.
  • [Kernel - Enhancements]
    Documentation is updated and Alinks are added. This enables context sensitive help by pressing F1 from µVision. All examples were updated to run also on Keil evaluation boards MCB2100 and MCB2130.

Technical Support

At Keil Software, we are dedicated to providing you with the best development tools and technical support. That's why we offer numerous ways you can get the technical support you need to complete your embedded projects.

  • Technical Support Knowledgebase
    More than 1500 technical support questions and answers are available in the Support Solutions Knowledgebase. When a new question arises, it is added to the knowledgebase which is continuously published to the Web. This enables you to get technical support at times when our support staff is unavailable.
  • Application Notes
    Numerous Application Notes help you decipher complex features and implement robust applications.
  • Example Programs and Files
    Utility programs, example code, and sample projects are regularly added to the Download File section of the web site.
  • Discussion Forum
    Post questions, comments, and suggestions to the Keil Software Discussion Forum and interact with other Keil users around the world.

Many of the features of our Technical Support Knowledgebase and Web Site are the results of your suggestions. If you have any ideas that will improve them, please give us your feedback!

Contact Details

If you experience any problems or have any questions about this product, contact one of our distributors or offices for assistance.

In the USA...

Keil Software, Inc.
1501 10th Street, Suite 110
Plano, TX  75074
USA

800-348-8051 - Sales
972-312-1107 - Support
972-312-1159 - Fax

sales.us@keil.com
- Sales E-Mail
support.us@keil.com
- Support E-mail 
  
In Europe...

Keil Elektronik GmbH
Bretonischer Ring 15
D-85630 Grasbrunn
Germany

+49 89 456040-0 - Sales
+49 89 456040-24 - Support
+49 89 468162 - Fax

sales.intl@keil.com
- Sales E-Mail
support.intl@keil.com
- Support E-Mail
  

Copyright © ARM Ltd. and Keil - An ARM Company.
All rights reserved.
Visit our web site at www.keil.com.

  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.