Keil Logo

What's New in AR166 Version 3.00a

  • [Kernel]
    The RTX code has been rewritten. The os_clock_demon() task scheduler has been removed and replaced with system function calls. The new library is about 30% faster and uses up to 300 bytes less ram. Older versions of AR166_Config.c configuration file are not compatible to new version and need to be replaced.
  • [Kernel]
    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.
  • [Kernel]
    Added stack checking option to AR166_Config.c configuration file. When this option is enabled, RTX Kernel executes additional code to check for stack-overflow error.
  • [Kernel]
    Corrected 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.
  • [Kernel]
    Corrected 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.
  • [FlashFS]
    A Flash File System implementation has been rewritten and optimized.
  • [FlashFS]
    Added support for Flash Sectors bigger than 64 KBytes.
  • [FlashFS]
    Added support for SD/MMC Flash Memory Card with standard FAT12 and FAT16 file system. Memory Cards up to 2 GBytes are supported. An SD_File example for MCB-XC167 evaluation board is located in ..\C166\AR166\FlashFS\Examples folder.
  • [FlashFS]
    Added support for multiple drives: embedded Flash drives, RAM drives and Memory Card drives, which can be used simultaneously to store and retrieve files. O1der versions of AF166_Config.c configuration files are not compatible to this version and need to be replaced.
  • [TcpNet]
    Added script cgi files for the web server may may now be stored on external File System, for example on external 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 receiving Multicast UDP datagrams to several hosts simultaneously.
    Note: All Ethernet drivers have been updated to enable receiving of Multicast packets.
  • [TcpNet]
    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.
  • [TcpNet]
    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.
  • [TcpNet]
    Added 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.
  • [TcpNet]
    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.
  • [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 a problem of incorrect Flag Character processing in PPP module. PPP Stack has expected a Start and a Stop Flag. This has been corrected and now a frame can be correctly received between any two flags.
  • [TcpNet]
    Corrected: 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.
  • [TcpNet]
    Corrected 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.
  • [TcpNet]
    Corrected improper processing of css files (Cascading Style Sheet). The format has been changed from binary "application/octet-stream" to ASCII "text/css" format.
  • [TcpNet]
    Corrected 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.
  • [TcpNet]
    Corrected a problem of Null_Modem.c modem driver which failed to work with Windows XP dial-in PPP connection.
  • [TcpNet]
    Corrected 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.
  • [TcpNet]
    Corrected a problem of PPP Client module which has sent a PPP authentication request also if authentication was not requested by remote PPP Server.
  • [TcpNet]
    Corrected 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.
  • [TcpNet]
    Corrected 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 AT166_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 AT166_Config.c is 192.168.0.100, the DHCP server will not return an IP address.
  • [FC166]
    Corrected a problem of wrong css file converting. They are now stored in ASCII format to the web server virtual file system.
  • [FC166]
    Corrected 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}&/
    

Warning: The configuration files AR166_Config.c,AF166_Config.c, AT166_Config.c and AT166_Debug.c are no more compatible to older versions and need to be replaced. Incompatible configuration files will not compile and build.

  • [Kernel]
    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.
  • [Kernel]
    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.
  • [FlashFS]
    Fixed a problem in fseek() function. This function would set wrong file position pointer when called with SEEK_SET parameter. The problem was that after fseek(), fread() read from wrong file position if the file position is not located in first file block.
  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.