新闻  |   论坛  |   博客  |   在线研讨会
ICCAVR 6.23版本正式发布RTOS已作为系统库提供
zhchxgh | 2009-07-04 01:34:18    阅读:2185   发布文章

ICCAVR 6.23版本正式发布RTOS已作为系统库提供

ICCAVR Readme file
Make sure you subscribe to the icc-avr mailing list for program
update announcements. Send "subscribe icc-avr" in the SUBJECT to
        minimalist@imagecraft.com.
UCOS/II ICCAVR is now available. Look at \icc\examples.avr\ucos2_iccavr.zip
Outstanding Bug List (we are working on resolving it):
- printf %f ignores field width specifier, but does honor precision
- source files residing in remote NT network drives may cause spurious illega
  charcaters \0 errors when compiling.
- do NOT declare CONST local array or structure. The generated code is
  incorrect. static const "local" is fine, as is global const. e.g.
   foo() { const char a[] = { 1, 2, 3 }; // generates bad code
   foo() { static const char a[] = ... //ok
   const char a[] = ... // outside function, OK
CHANGE LOGS
09/05/01 - V6.23
Code for Atmel Appnote 109 (Self-Programming) has been ported to ICCAVR.
See \icc\examples.avr\appnote109\.

Compiler
    - small enums can now be char type.
    - function returning char type is no longer extended to 16 bit.
    - Lots of peephole improvements. Should see 1%-5% better code:
      . Z flag tracking
      . repeated register history and peepholing
      . sbr? optimizations for word vars, and branch flipping
      . call/ret ==> jmp
      . more temp register elimination --> less register moves
      . ([int/byte] << 8) | (ubyte) generates better code, also + operator.
    - Two rare case lifetime analysis bugs were fixed - 1) nested loops with
      a variable defined only in the inner loop but is used in the outer
      loop got incorrect lifetime, 2) nested loops need the backedges
      normalized.
    - A rare case of register spilling:
        if (<spilled reg> relop <const data>) ...
      the spilled registers used R0 which trashed the result of the lpm
    - explicit cast of unsigned int to unsigned long than << 16 bit
      was generating incorrect code: l = (unsigned long)ui << 16;
  Code Compressor
    - added nop squashing after CALLs are turned into RCALLs

  Library
    - scanf %d sometimes converts the number iincorrectly

  Listing File
    - listing was incorrectly for addresses > 64K bytes



http://www.imagecraft.com/software/demos.html

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客