Keil Logo

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

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. Technical Support
  3. Contact Details

What's New in RL-ARM

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

RL-ARM Version 3.04 Release

  • [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

  • [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

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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 Release

  • [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.

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