Keil Logo

Release Notes for RL-ARM
Real-Time Library for the ARM Microcontroller Family

Download this Update

Download this Update

This file contains release notes and last minute changes.

Information in this file, the accompanying manuals, and software is
Copyright © Keil™, An ARM® Company.
All rights reserved.


Contents

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

What's New in RL-ARM

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

RL-ARM Version 4.11

Release Date: 27 April 2010

  • [RTX Problems solved]
    Corrected: unaligned access in Cortex-M library, which might produce hardfault for CM1/CM0.
  • [FS Flash Enhancements]
    Updated: FAT format function:
    • Added dummy SecPerTrk, NumHeads in Boot Sector (required by Linux fsck utility).
    • Added missing FSInfo and BkBootSec sectors for FAT32.
  • [FlashFS Enhancements]
    Added: mirroring of FAT 1 into FAT 2.
  • [FlashFS Problems solved]
    Corrected: TotSector count in Boot Sector (removed inconsistency reported by Linux fsck utility).
  • [FlashFS Problems solved]
    Removed: minor inconsistency in cluster allocation for files with sizes equal to multiple cluster size.
  • [CAN Problems solved]
    Corrected: interrupt handling for NXP devices (LPC17xx, LPC23xx, LPC24xx) with common CAN interrupt handler.

RL-ARM Version 4.10

Release Date: 14 April 2010

  • [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.
  • [TCPnet Enhancements]
    Added: a SNMP Agent implementation and SNMP_demo example for various evaluation boards. SNMP version 1 with trap messages is supported.
  • [TCPnet Enhancements]
    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.
  • [TCPnet Enhancements]
    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.
  • [TCPnet Problems solved]
    Corrected: auto disconnect problem in FTP Server during large file transfer.
  • [TCPnet Problems solved]
    Corrected: a problem in WEB Server. It failed to load pages from SPI or parallel flash.
  • [TCPnet Problems solved]
    Corrected: a Null Modem driver problem. It failed to connect in client mode, if connect request was issued delayed from application reset.
  • [TCPnet Problems solved]
    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.
  • [FCARM Enhancements]
    Improved: compression ratio for Java Script files.
  • [FlashFS Problems Solved]
    Corrected: a problem in Java and CGI script compression.
  • RL-ARM Version 4.05

    Release Date: 28 January 2010

    • [RTX Enhancements]
      Added: configurable FIFO Queue size for ISR requests in RTX_Config.c configuration file.
    • [RTX Enhancements]
      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 a robin task was suspended by a higher priority task.
    • [RTX Problems solved]
      Corrected: Stack checking did not work on system tick timer interrupt, only on preemptive task switches.
    • [RTX Problems solved]
      Corrected: task switch monitoring in RT Agent did not work for Round Robin task switching.
    • [RTX Problems solved]
      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
      }
      
    • [RTX Problems solved]
      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.
    • [RTX Problems solved]
      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]
      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.
    • [TCPnet Problems Solved]
      Corrected: a problem in PPP module which might fail to connect to ISP provider when the DNS Server has been negotiated.
    • [TCPnet Problems Solved]
      Corrected: a multipacket POST processing for Silverlight post requests in case of abnormal post termination (error, RST packet received).
    • [TCPnet Problems Solved]
      Warning: The configuration files Net_Config.c and Net_Debug.c are no longer compatible to older versions and need to be replaced. Incompatible configuration files will not compile and build.
    • [CAN]
      Added: CAN_Ex1 and CAN_Ex2 examples for NXP LPC229x to ..\ARM\Boards\Phytec\LPC229x\RL\CAN folder.

    RL-ARM Version 4.01

    Release Date: 26 October 2009

    • [TCPnet]
      Added: automatic DNS Server configuration for PPP links when dialing into ISP provider in client mode.
    • [TCPnet]
      Improved: PPP link debug messages in TCPnet debug library.
    • [TCPnet]
      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.
    • [TCPnet]
      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.
    • [TCPnet Problems Solved]
      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.
    • [CAN Problems Solved]
      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

    Release Date: 22 September 2009

    • [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.
    • [RTX Problems solved]
      Updated: RTX configuration files for STMicroelectronics STR71x, STR73x, and STR75x devices. Older RTX_Config.c files have to be replaced.
    • [RTX Problems solved]
      Corrected: a SVC_Handler problem in Cortex-M1 library. The __svc function return value was wrong.
    • [TCPnet]
      Added: an option to skip user authentication advertised by a SMTP Server. It is generally not needed to authenticate when sending emails with SMTP server of the local Internet Service Provider.
    • [TCPnet]
      Added: support for web caching. This improves the web server performance and reduces network traffic. It also solves also java archive (jar) file cache problem. If web content is stored on SD card, the HTTP_uif.c interface has to be replaced.
    • [TCPnet]
      InARP (Inverse ARP) protocol has been implemented.
    • [TCPnet]
      Added: support for compressed files generated by FCARM.
    • [TCPnet]
      A serial driver for STmicroelectronics STM32F10x devices has been added which 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]
      Improved: printed debug messages in TCPnet debug library.
    • [TCPnet]
      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]
      Corrected: MBR geometry generation on formatting SD Card.
    • [FlashFS]
      Corrected: free space calculation during work for FAT32 formatted cards.
    • [FCARM]
      Simple compression has been added for html, java script, and cgi script files. This reduces the image size of the Http_demo example by 3.6 Kbytes.
    • [FCARM]
      Added: a last modified time stamp in the output file. This informs the Web server when the web page was last modified and is used for web cache control.
    • [FCARM]
      Corrected: wrong LF line termination handling. FCARM now correctly handles CR-LF or LF-only line termination sequences.

    RL-ARM Version 3.80

    Release Date: 4 August 2009

    • [CAN]
      Added: CAN_Ex1 example for MCBSTM32C to ..\ARM\Boards\Keil\MCBSTM32C\RL\CAN folder.
    • [TCPnet]
      Added: a dynamic default page index.cgi to web server. To use a dynamic default page a static page index.htm must not exist.
    • [TCPnet]
      Added: a http_accept_host() callback function for remote host filtering.
    • [TCPnet]
      Added: ethernet driver and TCPnet examples for Keil MCBSTM32C evaluation board. The examples can be found in ..\ARM\Boards\Keil\MCBSTM32C\RL\TCPnet folder.
    • [TCPnet]
      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.
    • [TCPnet]
      Added: a http_accept_host() callback function for remote host filtering.
    • [TCPnet]
      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
      
    • [FlashFS]
      Added: SD_File example for MCBZ32AN to ..\ARM\Boards\Keil\MCBZ32AN\RL\FlashFS folder.
    • [FlashFS]
      Added: SPI Interface driver for Zilog Z32AN devices for SD/MMC Flash Memory Card.
    • [RTX Problems solved]
      Corrected: a problem in ARMlibrary where frequently calling isr_xxx functions from interrupt handlers has disturbed (shortened) the system delays and timeouts for os_xxx functions with delays.
    • [RTX Problems solved]
      Corrected: a re-entrance problem of isr_xxx functions when called from os_tmr_call user timer callback function.

    RL-ARM Version 3.70

    Release Date: 29 May 2009

    • [RTX Kernel]
      Added: RTX configuration for the Atmel ATSAM9260 devices. A preconfigured RTX_Blinky example for the Atmel ATSAM9260-EK evaluation board can be found in folder ..\ARM\Boards\Atmel\AT91SAM9260-EK\.
    • [RTX Kernel]
      Corrected: problems in Cortex-M library:
      • The _alloc_box and _free_box functions now have re-enabled globally disabled interrupts.
      • When deleting the preceding 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 very rare timing sequences when followed by the SysTick timer interrupt.

    RL-ARM Version 3.50

    Release Date: 26 Mar 2009

    • [RTX Kernel]
      Added support for Luminary LM3S9Bxx devices. A preconfigured RTX_Blinky example for the Luminary EK-LM3S9Bxx evaluation board can be found in ..\ARM\Boards\Luminary\EK-LM3S9Bxx folder.
    • [RTX Kernel]
      A user authentication for SMTP server has been added allowing emails to be sent from external SMTP servers with a valid user account. In general this solves the Mail relaying not allowed problem.
    • [TCPnet]
      Corrected a user authentication problem with some SMTP servers. If the multiline response from SMTP server is fragmented, the authentication did not work.

    RL-ARM Version 3.46

    Release Date: 2 Feb 2009

    • [RL-ARM]
      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 Kernel]
      Support for Toshiba TMPA910 device. RTX_Config.c configuration for RTX kernel was added.
    • [RTX Kernel]
      A user authentication for SMTP server has been added allowing emails to be sent from external SMTP servers with a valid user account. In general this solves the Mail relaying not allowed problem.
    • [Flash File System]
      Added checking of function return values in FAT module. This improves the stability and trouble-free usage of the Flash File System.
    • [Flash File System]
      Added RTX multithreading protection to the File System. This allows you to read and write files or use standard input output from different tasks simultaneously in an RTX environment.
    • [TCPnet]
      Silverlight hosting has been added 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].
    • [TCPnet]
      Added a HEAD method in the Web server. The Java applets use this method to check the URL for validity, accessibility or recent modification.
    • [TCPnet]
      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.
    • [TCPnet]
      Updated the Web server HTTP_Upload examples with a file download option. This allows downloading of files, which were previously uploaded to server.
    • [TCPnet]
      Corrected the Web server 16 MB file size limitation. The size of a download file, which is located on an external drive, is now limited to 2 GB.
    • [TCPnet]
      Corrected a problem in AT91_EMAC.c driver which failed to dump bad CRC packet fragments from DMA memory buffer.
    • [USB]
      Added USB examples SD_File and SD_Memory for MCB2300 and MCB2400.

    RL-ARM Version 3.40

    Release Date: 22 Dec 2008

    • [Real-Time Library]
      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 Kernel]
      Enhanced the RTX core to support multithreading for the standard run time library.
      • RTX provides a separate library space for each task
      • RTX protects non thread safe library functions with mutexes
      Note: The new RTX-V2 ARM library has been rewritten - the os_clock_demon() task scheduler has been removed and replaced with system function calls. The new RTX-V2 library is faster and uses up to 300 bytes less RAM.
    • [RTX Kernel]
      Restricted the usage of the __task attribute, which must now be used in precedence to the function definition.
      • __task void display_control (void) {} // correct usage
      • void display_control (void) __task {} // generates compiler error
      Note: The __task attribute saves up to 32 bytes of stack space per each task and saves a few instructions in the code.
    • [RTX Kernel]
      Updated all RTX examples for the new RTX-V2 configuration and the new __task attribute definition.
    • [TCPnet]
      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 real-time process monitoring.
    • [CAN Drivers]
      Added driver for NXP LPC24x8 devices. A CAN_Ex1 example for Keil MCB2400 Evaluation Board can be found in folder ..\ARM\Boards\Keil\MCB2400\RL\CAN.

    RL-ARM Version 3.24

    Release Date: 30 Sept 2008

    • [RTX Kernel]
      Added support for Atmel AT91SAM9RL device. RTX_Config.c configuration for RTX kernel was added.
    • [Flash File System]
      Added SD_File example for LPC3180 to ..\ARM\Boards\Phytec\LPC3180\RL\FlashFS.
    • [Flash File System]
      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.
    • [Flash File System]
      Changed ffind() function to process filename parameter case insensitive.
    • [Flash File System]
      Corrected reusage of erased entries for lfn records in FAT file system.
    • [TCPnet]
      Added ethernet driver and TCPnet examples for the Phytec PHYCORE-i.MX27 evaluation board. The examples can be found in ..\ARM\Boards\Phytec\i.MX27\RL\TCPnet.
    • [TCPnet]
      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 Date: 27 Aug 2008

    • [RTX Kernel]
      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.
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      Corrected problem in Cortex-M library which was introduced in version v3.22 (re-entrance of isr_xxx functions).
    • [TCPnet]
      Added Ethernet driver and TCPnet examples for the phyCore-LPC3250 evaluation board from Phytec. The examples can be found in ..\ARM\Boards\Phytec\LPC3250\RL\TCPnet.
    • [TCPnet]
      Added a Sliding Window flow control protocol to the TCP module. This allows the server to control the remote TCP host transmitter.
    • [TCPnet]
      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.
    • [TCPnet]
      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\TCPnets.
    • [TCPnet]
      Added Cache-Control header for cgi files in the HTTP Server. The Cache-Control value is "no-cache" to prevent caching of dynamic pages.
    • [TCPnet]
      Updated web pages for the HTTP_demo examples. The web pages have been redesigned to use a common template. The demo now allows switching on/off LED's 'on_click' without a need to click on additional SUBMIT button..
    • [TCPnet]
      Optimized LM3S_EMAC.c and STR9_ENET.c Ethernet drivers. Received packet size is now calculated correctly without additional CRC.
    • [TCPnet]
      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.
    • [TCPnet]
      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).
    • [TCPnet]
      Corrected an STR9_ENET.c Ethernet driver problem which by mistake ignored all packets with lengths over 1510 bytes. This has been corrected to 1514 bytes.
    • [TCPnet]
      Corrected examples for Luminary EK-LM3S6965 evaluation board. System clock was set incorrectly.
    • [FCARM]
      Added xml, xsl and js file types. Additional file types are now converted in ascii format.
    • [FCARM]
      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.22

    Release Date: 27 May 2008

    • [Flash File System]
      Added Parallel Flash Memory driver for STmicroelectronics SST39FV320 device. An Em_File example for MCB2400 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCB2400\RL\FlashFS folder.
    • [Flash File System]
      Corrected a problem of in the FAT file system. After 512 times of creating and deleting a file, the root directory for FAT12/FAT16 was exhausted and it was not possible to create a new file in the root directory. This has been corrected by reusing deleted files marked with 0xE5 as free directory entries.
    • [Flash File System]
      Formating of SD/MMC memory cards has been optimized. 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.
    • [Flash File System]
      Drivers have been updated for MCI_LPC23xx.c and MCI_LPC24xx.c supporting faster data read and data write with Multiple Block read and Multiple Block write commands.Corrected SPI configuration problems with several SPI drivers. SPI Mode is changed to Clock Polarity low (CPOL=0), and Clock Phase low (CPHA=0).
    • [Flash File System]
      Corrected a potential SPI driver problem that may corrupt the FAT file system on a 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]
      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.
    • [TCPnet]
      Corrected a problem in the debug library. Debug messages from alloc_mem() function are not printed anymore when this function is called from an IRQ handler.
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      Corrected the 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.

    RL-ARM Version 3.21

    Release Date: 9 Apr 2008

    • [Flash File System]
      Implemented 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.
    • [Flash File System]
      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.
    • [Flash 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.
    • [Flash File System]
      Corrected SPI configuration problems with several SPI drivers. SPI Mode is changed to Clock Polarity low (CPOL=0), and Clock Phase low (CPHA=0).
    • [Flash File System]
      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.
    • [Flash File System]
      Corrected: a problem in fcheck() function. This problem has reported a false error when checking SPI Flash or Parallel Flash file system.
    • [Flash File System]
      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.
    • [RTX Kernel]
      Added support for Cortex-M3 RTX Event Viewer. It allows task execution and task switch monitoring in real-time.
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      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.
    • [TCPnet]
      Corrected the 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 Date: 31 Jan 2008

    • [RL-ARM]
      Changed the library names to be consistent with the Endianess type. RTX libraries are automatically included by µVision IDE, other libraries need to be included manually into the project.
    • [RTX Kernel]
      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
                      ..
      		
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      Corrected a core problem 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.
    • [TCPnet]
      Added cgi script 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.
    • [TCPnet]
      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.
    • [TCPnet]
      Corrected an 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.
    • [TCPnet]
      Corrected an ethernet driver problem for LPC24xx devices. Updated driver works with both old LPC24xx device rev. '-' and new LPC24xx device rev. 'A' and later.
    • [TCPnet]
      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.
    • [TCPnet]
      Corrected an 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.
    • [TCPnet]
      Corrected an 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.
    • [TCPnet]
      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.
    • [Flash File System]
      Added drivers for STMicroelectronics STM32x devices. An SD_File example for MCBSTM32 Keil evaluation board can be found in ..\ARM\Boards\Keil\MCBSTM32\RL\FlashFS folder.
    • [Flash File System]
      Corrected a Memory Card Interface driver problem for LPC23xx devices silicon rev. 'B'. Updated driver works with all silicon revisions: rev. '-', rev. 'A' and rev. 'B'.
    • [Flash File System]
      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.

    RL-ARM Version 3.13

    Release Date: 12 Nov 2007

    • [RL-ARM]
      RTX Kernel support added for Cortex-M1 architecture. An RTX_Blinky example for ARM Cortex-M1 device is added to ..\ARM\Boards\ARM\Cortex-M1 folder.
    • [RL-ARM]
      New 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]
      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.
    • [TCPnet]
      Ethernet driver and TCPnet examples for LM3S8962 Luminary evaluation board added. The examples can be found in ..\ARM\Boards\Luminary\EK-LM3S8962\RL\TCPnet folder.
    • [Flash File System]
      Library support added 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 locatedin ..\ARM\RL\FlashFS\Flash\25F640S33 folder.
    • [Flash File System]
      Drivers added 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.
    • [CAN Drivers]
      Drivers added 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.
    • [TCPnet]
      Corrected 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.
    • [TCPnet]
      Corrected a HTTP Server problem when serving the Mozilla Firefox web-browser. HTTP Server failed to process Firefox POST requests correctlycausing web pages generated with POST method to not display correctly with this browser.
    • [TCPnet]
      Corrected a problem of incorrect file closing in the 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.
    • [Flash File System]
      Corrected 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 could occur at the end of the file when the last block was read and it had less than 512 bytes.

    RL-ARM Version 3.10

    Release Date: 18 Jun 2007

    • [Real-Time Library]
      Changed the folder structure for RL-ARM. The Boards folder has been restructured and all RL-ARM target examples have been moved to the \KEIL\ARM\BOARDS\ folder. USB and CAN drivers are now located in the \KEIL\ARM\BOARDS\vendor\board\RL\USB\ and \KEIL\ARM\BOARDS\vendor\board\RL\CAN folders.
    • [Real-Time Library]
      Updated all RL-ARM examples for MicroLIB (the tiny C-library that is now included with the RealView MDK. Since MicroLIB does not support a File System, examples for the Flash File System do not work with MicroLIB. Some TCPnet examples (like the TFTP_Demo) rely on the Flash File System and, therefore, will not work with MicroLIB.
    • [Real-Time Library]
      Added support for the Atmel AT91SAM7SE. An RTX Kernel configuration for this devices was added in RTX_CONFIG.C. Preconfigured examples for the AT91SAM7SE-EK Atmel Evaluation Board are found in the \KEIL\ARM\BOARDS\ATMEL\AT91SAM7SE-EK\ folder.
    • [Real-Time Library]
      Added RTX_Blinky examples to the \KEIL\ARM\BOARDS\EMBEDDED ARTISTS\ folder for the following Embedded Artists evaluation boards:
      • LPC2106 RS232 QSB,
      • LPC2129 CAN QSB,
      • LPC2138 QSB,
      • and LPC2148 USB QSB.
    • [TCPnet]
      Enhanced the TCPnet examples for the MCBSTR9 Evaluation Board. System configuration options (wait states, clocks, etc.) from the STR91x.s startup file have been reconfigured and optimized for best Network performance. The ethernet driver STR9_ENET.C has been optimized. TCP benchmark results are now 10x better than before.
    • [TCPnet]
      Enhanced processing of CGI script pages. This enhancement improves the performance of the HTTP Server by reducing the number of generated TCP packets. A CGI page with 27 script lines previously transmitted 54 packets. Now, such a page transmitts only two packets. This enhancement improves the stability of the Web Browser when browsing web pages that are continuously refresh using the http-equiv="refresh" meta tag.
    • [TCPnet]
      Added an A/D web page to HTTP_Demo examples for the MCB2300 and MCBSTR9 Evaluation Boards. This page demonstrates a continuously refreshing web page showing the voltage from the potentiometer located on the board.
    • [TCPnet]
      Added a serial driver for STmicroelectronics STR71x devices. This driver is used for serial PPP or SLIP connections. An HTTP_demo example for the Keil MCBSTR7 Evaluation Board is located in the \KEIL\ARM\BOARDS\KEIL\MCBSTR7\RL\TCPNET\ folder.
    • [Flash File System]
      Added a driver for Embedded Flash Memory for STmicroelectronics STR71x and STR75x devices. An Em_File example for the Keil MCBSTR750 Evaluation Board is found in the \KEIL\ARM\BOARDS\KEIL\MCBSTR750\RL\FLASHFS\ folder.
    • [CAN Drivers]
      Added a driver for NXP LPC23x8 devices. A CAN_Ex1 example for the Keil MCB2300 Evaluation Board is found in the \KEIL\ARM\BOARDS\KEIL\MCB2300\RL\CAN\ folder.
    • [USB Drivers]
      Added a driver for Atmel AT91SAM7S devices. USB examples for the Atmel AT91SAM7S-EX Evaluation Board are found in the \KEIL\ARM\BOARDS\ATMEL\AT91SAM7S-EK\RL\USB\ folder.
    • [RTX Kernel]
      Corrected a task timing problem in the RTX_CONFIG.C configuration file for STMicroelectronics STR750 devices. The isr_xxx() interrupt function calls unintentionally reset the hardware tick timer prescaler and changed the tick-timer timing cycle. This now corrected in the new RTX configuration file.
    • [RTX Kernel]
      Corrected a task timing problem for CORTEX-M3 devices. When the application makes a very large number of system calls resulting in frequent task switches, the system clock tick runs slowly. This is now corrected in the new RTXCM3.LIB library file.
    • [Flash File System]
      Corrected several problems with the FAT File System for SD/MMC Flash Memory Cards. The problem manifested itself when a file reopened for appending was stored corrupted to a Flash Memory Card. Reading the file from the Memory Card did not work correctly when the block size for fread() was a value other than 512 bytes.
    • [TCPnet]
      Corrected improper processing of css (Cascading Style Sheet) files. The format has been changed from binary "application/octet-stream" to ascii "text/css" format.
    • [FCARM]
      Corrected a problem that caused css files to be incorectly converted. They are now stored in ASCII format to the web server virtual file system.

    RL-ARM Version 3.05

    Release Date: 25 Mar 2007

    • [Real-Time Library]
      Added support for STMicroelectronics STR750 devices. Added configuration details to RTX_CONFIG.C. An RTX_Blinky example for the Keil MCBSTR750 Evaluation Board is found in the \KEIL\ARM\RV30\RTL\BOARD\KEIL\MCBSTR750\ folder.
    • [Real-Time Library]
      Updated examples for Atmel evaluation boards and made several changes to the SAM7.S and SAM9261.S configuration files.
    • [Real-Time Library]
      Updated all HTTP_Demo examples. The index.htm default page 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.
    • [RTX Kernel]
      Enhanced handling of isr_xxx() functions to increase execution speed and performance.
    • [RTX Kernel]
      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.
    • [RTX Kernel]
      Improved RTX configuration for STR71x, STR73x, and STR75x devices. Standard RTX configuration no longer requires SWI_Table.S. The system function __swi(8) from RTX_Config.c has been changed to __swi(7). This requires no external SWI_Table included into the project.
    • [RTX Kernel]
      Corrected a problem with the isr_sem_send function. When a task was already waiting for a semaphore, isr_send_sem might hold that task in the WAIT_SEM state for an additional 65,536 system tick intervals.
    • [TCPnet]
      Added LEDSwitch server and Client example configured for a serial dial-up PPP connection. This example is found in the \KEIL\ARM\RV30\RTL\TCPNET\EXAMPLES\ folder.
    • [TCPnet]
      Corrected a problem with the DHCP client module that caused some DHCP clients to fail to obtain a valid IP address (when several DHCP clients started simultaneously). This occurred because DHCP reply checking was not strict and two or more DHCP clients could try to obtain the same IP address. The DHCP client which failed would still obtain a valid IP address after DHCP had been internally restarted (after 30 seconds).
    • [TCPnet]
      Corrected a problem with the Null_Modem.c modem driver. This driver failed to work with a Windows XP dial-in PPP connection.
    • [Flash File System]
      Added a Memory Card Interface driver for the MCB2300 SD/MMC Flash Memory Card. An SD_File example is found in the \KEIL\ARM\RV30\RTL\BOARDS\KEIL\MCB2300\ folder.
    • [Flash File System]
      Added an SPI Interface driver for the MCBSTR9 SD/MMC Flash Memory Card. An SD_File example is found in the \KEIL\ARM\RV30\RTL\BOARDS\KEIL\MCBSTR9\ folder.
    • [Flash File System]
      Added an SPI Interface driver for the MCBSTR750 SD/MMC Flash Memory Card. An SD_File example is found in the \KEIL\ARM\RV30\RTL\BOARDS\KEIL\MCBSTR750\ folder.
    • [Flash File System]
      Corrected a problem in the FAT module that caused the Flash File System to work incorrectly 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.
    • [CAN Drivers]
      Corrected a potential problem in all CAN drivers. With high baud rate and high traffic rate, the old CAN drivers could lose some of the transmitted messages.
    • [USB Drivers]
      Added RTX USB examples for MCB2300. They are found in \KEIL\ARM\RV30\RTL\USB\LPC23XX\ folder.
    • [USB Drivers]
      Added RTX USB examples for MCBSTR9. They are found in \KEIL\ARM\RV30\RTL\USB\STR91X\ folder.
    • [USB Drivers]
      Added USB examples for MCBSTR750. They are found in the \KEIL\ARM\RV30\RTL\USB\STR75X\ folder.
    • [FCARM]
      Corrected a problem with regards to invalid backslash character ('\') expansion when creating webserver filesystem files. This has now been expanded to '\\' for .html and .inc files. This problem created invalid html files when javascript was used with code such as:
      t if(ValueString.match(/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}&/
      

    RL-ARM Version 3.04

    Release Date: 15 Jan 2007

    • [Real-Time Library]
      Updated the STMicroelectronics STR9 startup configuration files STR91X.S.
    • [Real-Time Library]
      Updated examples for the MCBSTR9 Evaluation Board.
    • [RTX Kernel]
      Added RTX Kernel support for the Cortex-M3 architecture. An RTX_Blinky example for Luminary Micro LM3S102 device has been added to the \KEIL\ARM\RV30\RTL\BOARDS\Luminary\ folder.
    • [RTX Kernel]
      Corrected a core problem of the SWI_Handler that occurred when accessing user registers. Setting a user Link Register on a task switch failed for Atmel AT91RM9200 devices. The LDMDB SP,{SP,LR}^ instruction does not work for these devices. The workaround implemented uses a different instruction (which works for all ARM devices) to set the user LR.
    • [RTX Kernel]
      Corrected a problem with the os_tsk_prio() function. It did not work correctly when the priority of a delayed task was changed.
    • [TCPnet]
      Added configurable Web Server Error Pages. Http Server 40x Error Pages are extracted to a single file (HTTP_ERR.C) which you may copy to your project and customize.
    • [TCPnet]
      Corrected a problem with the PPP module in the LCP negotiation phase. Because of this problem, TCPnet failed to connect to some GPRS modems when TCPnet was much faster than modem.
    • [TCPnet]
      Corrected a problem with the PPP Client module. This module sent a PPP authentication request when authentication was not requested by the remote PPP Server.
    • [Flash File System]
      Added support for SD/MMC Flash Memory Cards (up to 2 GBytes) formatted with FAT12 or FAT16.

    RL-ARM Version 3.03

    Release Date: 6 Oct 2006

    • [Real-Time Library]
      Added support for Atmel AT91SAM7X devices. Added the RTX_CONFIG.C RTX Kernel configuration file and the AT91_EMAC.C embedded EMAC Ethernet controller driver. Preconfigured examples for the AT91SAM7X-EK Atmel Evaluation Board are located in the \KEIL\ARM\RV30\RTL\BOARDS\ATMEL\ folder.
    • [RTX Kernel]
      Added mutex task priority inversion/inheritance. When a medium-priority task preempts a lower-priority task using a shared resource (a mutex) on which a higher-priority task is pending, the priority of lower-priority task is temporary raised to the priority level of a higher-priority task. As soon as the lower-priority task releases the mutex, its priority level is restored to its original value.
    • [RTX Kernel]
      Corrected a problem in RTX_CONFIG.C for all Atmel devices. The 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 subsequent timer tick interrupts.
    • [RTX Kernel]
      Corrected a problem in RTX_CONFIG.C for STMicroelectronics STR91x devices. There was a problem in the code used to disable interrupts that could cause a timer tick interrupt to occur in a protected section of RTX Kernel system. This could eventually cause a stack overflow and crash the user application.
    • [TCPnet]
      Added the http_get_session function to the 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.
    • [TCPnet]
      Added a PPP Server example, HTTP_DEMO, for the Keil MCB2140 Evaluation Board. This example is located found in the \KEIL\ARM\RV30\RTL\TCPNET\EXAMPLES\ folder.
    • [TCPnet]
      Corrected a problem with the DHCP client. In some specific instances, the DHCP client could fail to obtain an IP address if the IP address configured in NET_CONFIG.C matched 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 would not return an IP address.
    • [CAN Drivers]
      Added CAN drivers for the following ARM devices: Atmel AT91SAM7X, STMicroelectronics STR73x, and STMicroelectronics STR91x.
    • [CAN Drivers]
      Update the CAN driver documentation.

    RL-ARM Version 3.02

    Release Date: 23 Jun 2006

    • [Real-Time Library]
      Added support for the STMicroelectronics STR912 to RTX_CONFIG.C. Support for the embedded ENET Ethernet controller was added in the STR9_ENET.C driver. Preconfigured examples for the MCBSTR9 evaluation board are found in ..\ARM\RV30\RTL\BOARDS\KEIL\.
    • [Real-Time Library]
      Added support for the Atmel AT91RM9200 and AT91SAM9261 devices to RTX_CONFIG.C. Preconfigured examples for the AT91RM9200-EK and AT91SAM9261-EK Atmel evaluation boards are found in ..\ARM\RV30\RTL\BOARDS\ATMEL\.
    • [RTX Kernel]
      Corrected a mutex task deadlock problem. When a higher priority task would release and immediately grab a mutex, a lower priority task would become ready. Because of this, the task would never get a chance to execute—even after a timeout.

    RL-ARM Version 3.01

    • [Real-Time Library]
      Reconfigured and recompiled RTL object libraries and examples for compiler optimization level O3.
    • [CAN Drivers]
      Corrected an acceptance filter problem in the CAN driver for LPC2000 devices.

    RL-ARM Version 3.00

    • [Real-Time Library]
      Updated ARTX to conform to new naming conventions for the RealView Real-Time Library. Specifically, all references to the legacy term Advanced were removed; include files were renamed to RTL.H, RTX_CONFIG.H, and NET_CONFIG.H; configuration files were renamed to RTX_CONFIG.C, NET_CONFIG.C, and NET_DEBUG.C; and documentation was updated to reflect these changes.
    • [Real-Time Library]
      Added support for Atmel AT91SAM7X devices. The RTX_CONFIG.C configuration file was updated and the AT91_EMAC.C driver for embedded EMAC Ethernet controller was added. Preconfigured examples for the AT91SAM7X-EK Atmel evaluation board are found in the \KEIL\ARM\RV30\RTL\BOARDS\ATMEL\ folder.
    • [RTX Kernel]
      Corrected a problem in RTX_CONFIG.C for STMicroelectronics STR71x devices. If the device was running with a high speed system clock but the EIC peripheral with a slower PCLK2 clock, interrupts were not disabled immediately but with a delay when an interrupt enable register was written. This problem might allow a tick timer interrupt to occur in a protected region of code. This collision causes RTX Kernel malfunctioning or even user application crash. The fix uses SWI function __swi(8). So, this SWI is no longer available for user SWI functions.
    • [RTX Kernel]
      Corrected a problem in RTX_CONFIG.C for the Analog Devices ADuC702x device family. The problem was in a device inability to mask forced-programming software interrupts. This problem might allow a tick timer interrupt to occur in a protected region of code causing a stack overflow and user application crash.
    • [RTX Kernel]
      Corrected a potential problem with applications crashing when a project was built with optimization levels other than O0 using the RealView Compiler. The problem was caused when registers R8-R11 were not stored during a context switch. Now, the context switch saves these registers on the stack.
    • [RTX Kernel]
      The RTX_CONFIG.C configuration file has been updated. Applications using the previous configuration file must be updated with the new configuration file.

    RL-ARM Version 2.11

    • [Real-Time Library]
      Ported the RTX Kernel, TCPnet, and USB Driver to the RealView Compilation Tools.
    • [RTX Kernel]
      Corrected a problem with the os_mbx_send function that occurred when a message was retrieved from a full mailbox and pushed back into the mailbox from the same task with no intervening task switch. If another task was waiting to send a message to this mailbox, it would become ready and would send the message, even though the mailbox was full.
    • [RTX Kernel]
      Corrected a potential problem with the memory example program ARTX_Memory. This example could hang when connected to some of Windows XP hosts.
    • [Flash File System]
      Corrected a problem in the Flash File System function fdefrag. If a defragmentation was requested for a file system with three or more files and if one of the files was deleted the file system may be come corrupted. This was the case when one of the files with file ID inside the range of all used file IDs was deleted before a call to this function.
    • [USB Drivers]
      Updated all USB examples to pass the USBCV - USB Command Verifier test. All USB examples now pass this test.

    ARTX Version 2.01

    • [RTX Kernel]
      Corrected a potential system hang when the os_mbx_send routine was called with parameter timeout set to 0. If a mailbox was already full a system could hang in an endless loop.
    • [RTX Kernel]
      Corrected a problem with the os_mut_wait routine. When a mutex was released and acquired again with no delay, other tasks waiting for this mutex would become ready and acquire a mutex which was already owned by another task.
    • [RTX Kernel]
      Corrected a problem of failed Round Robin task switching. This problem appeared when a higher priority tasks were running. If a higher priority task was delayed by os_dly_wait or os_itv_wait with a delay time equal to or less than the Round Robin timeout, a Round Robin task switch failed.
    • [TCPnet]
      Added physical link speed select macros for the LAN91C111.C device driver. These macros allow you to connect only at 10 or 100 Mbs. Auto-negotiation is used by default (this might take longer time to connect).
    • [TCPnet]
      Corrected a problem of not sending subnet broadcast packets on the local LAN. When a UDP send packet was requested with the destination IP address as a subnet broadcast, an ARP request was sent to resolve the MAC address. Because there was no reply received, the packet was never really sent on the wire. This is now fixed and UDP subnet broadcast packets are sent using a Broadcast MAC address FF:FF:FF:FF:FF:FF.
    • [TCPnet]
      Corrected a problem handling broadcast and subnet broadcast addresses for the arp_cache_ip routine. If the IP address is an IP broadcast or subnet broadcast address this function returns __TRUE and does not send an ARP request for resolving the IP address.
    • [TCPnet]
      Corrected a problem of sending invalid TCP retransmission packets for second and any subsequent retransmissions. Each retransmission extends the packet size by adding header length and appending garbage data to the end of the packet.

    ARTX Version 2.00

    • [Flash File System]
      Added a Flash File System implementation that supports embedded Flash drives and RAM drives which may be used simultaneously to store and retrieve files.
    • [RTX Kernel]
      Added a CAN Driver implementation based on the RTX Kernel. It currently supports Philips LPC2000 and ST STR7 device families. Two examples are available: CAN_Ex1 and CAN_Ex2. These examples are configured to run on the Keil MCB2100 and MCBSTR7 evaluation boards.
    • [RTX Kernel]
      Added a USB Driver implementation that uses the RTX Kernel to process USB packets. The following examples are available: ARTX_Audio, ARTX_HID, and ARTX_Memory. These examples run on the Keil MCB2140 evaluation board.
    • [RTX Kernel]
      Added the following new type definitions to the ARTX.H header file to avoid conflicts with other source code: U8, U16, U32, S8, S16, S32, BIT, BOOL, __TRUE, and __FALSE. These replace the following old types: BYTE, WORD, DWORD, TRUE, and FALSE. Source files and documentation have been modified to reflect these changes.
    • [RTX Kernel]
      Added a new synchronization object mutex for mutual exclusion locks. The following functions were implemented: os_mut_init, os_mut_wait, and os_mut_release.
    • [RTX Kernel]
      Added a Stack Checking option to the ARTX_CONFIG.C configuration file. When this option is enabled, the RTX Kernel performs additional checks for stack-overflow conditions.
    • [RTX Kernel]
      Added the following new library routines:
      • os_sys_init_user which allows you to start the RTX Kernel with a task using a user-provided stack.
      • os_sys_init_prio which allows you to start the RTX Kernel with a task using a specified priority.
    • [RTX Kernel]
      Corrected a potential problem of blocking the interrupt system for some ARM devices. This could happen if the default interrupt handler os_def_interrupt was executed. This handler, located in ARTX_CONFIG.C, has now been updated to release the ARM interrupt system by acknowledging the interrupt.
    • [RTX Kernel]
      Corrected a problem that causes incorrect interval delays when execution between os_itv_set and os_itv_wait takes more clock ticks than specified with the os_itv_set function. The following example demonstrates this problem:
      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. */
         }
      }
      
    • [RTX Kernel]
      The ARTX_CONFIG.C configuration file has been updated. Applications using the previous configuration file must be updated with the new configuration file.
    • [TCPnet]
      A TFTP Server has been added. It supports file upload and download to the Flash File System drives.
    • [TCPnet]
      Added an example, TFTP_demo, which demonstrates how to use the TFTP Server.
    • [TCPnet]
      Added a new ARP cache control function arp_cache_ip that may be used to resolve the remote MAC address before the first UDP data packet is sent to a target. If the remote MAC address is not resolved from the ARP cache, the sent UDP data packet failed and packets were lost until the ARP entry was cached.
    • [TCPnet]
      Added an example for the HTTP Server running with the RTX Kernel. The older example, HTTP_demo, has been updated to work in either of two modes: a standalone application or an HTTP Server running with RTX Kernel.
    • [TCPnet]
      Modified the names of library routines MemCpy, MemSet, MemCmp, and StrCpy to avoid confusion with the standard C string functions. New routines are named: mem_copy, mem_set, mem_comp, and str_copy.
    • [TCPnet]
      Corrected a problem in the ARP module which transmitted invalid IP addresses for ARP requests. This happened when an ARP Cache Entry was refreshed or ARP request was retransmitted.
    • [TCPnet]
      Added checking for destination IP address 0.0.0.0 to the TCP module. TCP Connect requests to this address are now blocked. This prevents sending ARP requests for IP address 0.0.0.0.

    ARTX Version 1.10

    • [RTX Kernel]
      Added the os_evt_get event handling function which returns event flags served by the os_evt_wait_or function.
    • [RTX Kernel]
      Added the following examples to the \KEIL\ARM\ARTX\EXAMPLES\ base folder:
      • RoundRobin demonstrates round-robin task switching.
      • Semaphore demonstrates how to use a shared resource (a UART) from different tasks using a semaphore.
    • [RTX Kernel]
      Corrected a configuration problem of the timer tick reload in the ARTX_CONFIG.C configuration file for OKI and ST devices. Improper timer tick reload could cause stalls in Kernel delay handling when isr_mbx_send, isr_evt_set, and isr_sem_send functions were used.
    • [RTX Kernel]
      Corrected a problem with invalid delays when frequent isr... function calls were made from interrupt routines. This could cause shorter delays than specified for os_dly_wait, os_itv_wait, and other system delay and timeout functions.
    • [RTX Kernel]
      Corrected a problem in os_mbx_wait and os_sem_wait functions when they were called with the timeout parameter set to 0. In this case the function returned a wrong result value. The timeout value 0 is used to fetch a message or obtain a token from a semaphore without waiting.
    • [RTX Kernel]
      Modified the ARTX_CONFIG.C configuration files for all device variants. The function os_tmr_set_ovf has been replaced with by the os_tmr_force_irq function.

      ARTX_CONFIG.C has been updated and is no longer compatible with older versions.
    • [TCPnet]
      Corrected a problem in the Telnet server when some characters were not echoed back. This problem occurred if typing on the remote Telnet client was too fast.
    • [TCPnet]
      Corrected a problem of locking-up an LAN91C111 Ethernet controller on high traffic LANs. This problem could occur when a lot of packets are received in a short time and the CPU is not fast enough to process them. When the MMU unit of the LAN91C111 Ethernet controller is locked, the driver now restarts the MMU unit to prevent lockups.
    • [TCPnet]
      Added configurable PPP retransmissions and timeouts to the ANET_CONFIG.C configuration file. You may increase the default timeouts and number of retransmissions when PPP connections fail on slow serial links or when network latency is high (as may be the case with a GSM PPP data link).
    • [TCPnet]
      Added new functions http_get_info and tnet_get_info to retrieve the remote machine IP address and MAC address. These functions may be used to limit access rights from remote machines based on IP or MAC addresses.
    • [TCPnet]
      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:
      • \KEIL\ARM\ARTX\SRC\TCPNET\SERIAL.C for Philips LPC21xx and LPC22xx devices.
      • \KEIL\ARM\ARTX\SRC\TCPNET\SERIAL_S3C44B0X.C for Samsung S3C44B0X devices.

      ARTX_CONFIG.C has been updated and is no longer compatible with older versions.

    ARTX Version 1.02

    • [RTX Kernel]
      Added ARTX_CONFIG.C configuration files for OKI devices. See \KEIL\ARM\STARTUP\OKI\ARTX_CONF_ML67.C for OKI ML67xxx devices.

    ARTX Version 1.01

    • [RTX Kernel]
      Added example projects for the following target hardware:
      • Analog Devices ADuC702x Evaluation Board (\KEIL\ARM\BOARDS\ADI\ADUC702X\ARTX_BLINKY) For Analog Devices ADuC702x Devices
      • Atmel AT91SAM7S Microcontroller Board (\KEIL\ARM\BOARDS\ATMEL\AT91SAM7S\ARTX_BLINKY) For Atmel AT91SAM7S Devices
      • Hitex STR7 Evaluation Board (\KEIL\ARM\BOARDS\HITEX\STR7\ARTX_BLINKY) For STMicroelectronics STR71x Devices
      • Keil MCB2100/2130 Evaluation Board (\KEIL\ARM\ARTX\EXAMPLES\BLINKY) For Philips LPC21xx Devices
      • STMicroelectronics STR7 Evaluation Board (\KEIL\ARM\BOARDS\ST\STR7\ARTX_BLINKY) For STMicroelectronics STR71x Devices
    • [RTX Kernel]
      Added device-specific configuration files for the following:
      • Analog Devices ADuC702x (\KEIL\ARM\STARTUP\ADI\ARTX_CONF_ADUC702X.C)
      • Atmel AT91SAM7Sxx (\KEIL\ARM\STARTUP\ATMEL\ARTX_CONF_SAM7S.C)
      • Philips LPC21xx and LPC22xx (\KEIL\ARM\STARTUP\PHILIPS\ARTX_CONFIG.C)
      • STMicroelectronics STR71x (\KEIL\ARM\STARTUP\ST\ARTX_CONF_STR71X.C)
    • [RTX Kernel]
      Modified the ARM-Specific Software Interrupt Handler (in SWI_ARTX.S) to make it generic for all ARM devices. Some devices may require a NOP instruction to avoid Data Abort traps between stack switching.
    • [RTX Kernel]
      Enhanced the Stack Load display in the µVision Advanced RTX Dialog (available from the Peripherals Menu while debugging). Stack details are no updated from the current stack pointer value.

    ARTX Version 1.00a

    • [RTX Kernel]
      Added the os_tsk_create_ex and os_tsk_create_user_ex functions. These routines make it possible to pass a parameter to a task when it is created. This is useful when creating multiple instances of a single task.
    • [RTX Kernel]
      Added the os_tsk_prio function which allows a task to change the priority of other tasks in the system.
    • [RTX Kernel]
      Added the os_tsk_prio_self routine which allows a task to change its own priority.
    • [RTX Kernel]
      The ARTX_CONFIG.C configuration file has been updated. Applications using the previous configuration file must be updated with the new configuration file.

    ARTX Version 1.00

    • [RTX Kernel]
      Optimized and updated the task switch function.
    • [RTX Kernel]
      Updated the ARTX_CONFIG.C configuration file to support the µVision debug dialog.
    • [RTX Kernel]
      Updated documentation and added context-sensitive help within µVision.
    • [RTX Kernel]
      Updated examples to run on the MCB2100 and MCB2130 Evaluation Boards.

    Release Summary

    1. RL-ARM Version 4.11
    2. RL-ARM Version 4.10
    3. RL-ARM Version 4.05
    4. RL-ARM Version 4.01
    5. RL-ARM Version 4.00
    6. RL-ARM Version 3.80
    7. RL-ARM Version 3.70
    8. RL-ARM Version 3.50
    9. RL-ARM Version 3.40
    10. RL-ARM Version 3.24
    11. RL-ARM Version 3.23
    12. RL-ARM Version 3.22
    13. RL-ARM Version 3.21
    14. RL-ARM Version 3.20
    15. RL-ARM Version 3.13
    16. RL-ARM Version 3.10
    17. RL-ARM Version 3.04
    18. RL-ARM Version 3.03
    19. RL-ARM Version 3.02
    20. RL-ARM Version 3.01
    21. RL-ARM Version 3.00
    22. RL-ARM Version 2.11

    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 2000 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 © 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.