===================== Read Me File for AA90 ===================== Updated: 4/February/2000 [IPEO] Release of AA90 1.50B File version: $Revision: 1.18 $ Manual: Part no: AA90-1 ======== Contents ======== 1. Important information 2. Manual corrections and Updates 3. Known problems in Current Version 4. Program Corrections and Updates 5. Files supplied in this release. ======================== 1. Important Information ======================== * A new option has been added. -u_enhancedCore This option enables the enhanced core instructions. * When using AA90 for AT901200 device, use the io2313.h * The differences between processor options: -v0 and -v1 relative jumps reach entire address space. -v2 and -v3 jumps do not wrap plus instruction ELPM. -v4 same as -v3 -v5 and -v6 same as -v4 plus instructions EICALL and EIJMP * The following environment variable for AA90 is described in "AT90S Command Line Interface Guide" (part no CLA90-1), which is not distributed with EWA90: - ASMA90: command line options, e.g. "set ASMA90=-z9" - AA90_INC directory for include files, e.g. "set AA90_INC=c:\iar\inc\" The following environment variables are used by XLINK: - XLINK_COLUMNS Sets the number of columns per line. - XLINK_CPU Sets the target CPU type. - XLINK_DFLTDIR Sets a path to a default directory for object files. - XLINK_ENVPAR Creates a default XLINK command line. - XLINK_FORMAT Sets the output format. - XLINK_MEMORY Specifies whether XLINK is file-bound (0) or memory-bound (not 0). - XLINK_PAGE Sets the number of lines per page. - XLINK_TFILE Specifies the temporary file. The following environment variables are used by XLIB: - XLIB_COLUMNS Sets the number of columns. - XLIB_CPU Sets the CPU type. - XLIB_PAGE Sets the number of lines per page. - XLIB_SCROLL_BREAK Sets the scroll pause in number of lines. ================================= 2. Manual Corrections and Updates ================================= Manual errata ------------- 1.40A 29/Jul/98 * LDI r32 k255 on page 127 shall be LDI r16 k255 1.30A 28/Nov/97 * example on page 56, should be like this: Including symbol values in code To include a symbol value in the code, you use the symbol in one of the data-definition directives. For example, to include the time and date of assembly as a string for display by the program (-v0 used): #define WA r16 timdat DB __TIME__,",",__DATE__,0 ; time and date ... LDI WA,timdat ; load address of string CALL printstring ; routine to print string 1.10A 17/Oct/96 * -mt option is not available (p 47). * IEEE floating point constants is not supported (p 5). * There is some error messages missing in the manual (p 191-197): 84 Illegal symbol type in symbol The symbol can not be used in this context since it has the wrong type. 85 Wrong nr of arguments Expected a different number of arguments. 86 Number expected Something else than digits encountered. 87 Label must be public or extern The label must be declared with PUBLIC or EXTERN. 88 Label not defined with DEFFN The label has to be defined via DEFFN before use in this context. 89 Sorry DEMO version, bytecount exceeded (max bytes) 90 Different parts of ASEG have overlapping code 91 Internal error 92 Empty macro stack 93 Macro stack overflow 94 Attempt to access out-of-stack value 95 Invalid macro operator 96 No such macro argument 1.02A (Beta) 25/Sep/96 * There is some information missing in the tutorials (p 18-28): When linking the programs "first", "dio" and "main" using the Embedded Workbench, the link file has to be set. This is done in the XLINK option page "Include". Click in the "Override default" check box, and type in "C:\iar\EW\A90\tutor\first.xcl" (or similar) in the "XCL file name" box. There are also the link files dio.xcl and main.xcl, for the programs "dio" and "main". * There is a generic link file "C:\iar\EW\A90\aa90\asm.xcl" (or similar), that can be used when linking assembler programs. * There is no memory model option "-m" in aa90 (p 33, 47) * This file has been renamed from aa90.doc to aa90.txt ==================================== 3. Known Problems in Current Version ==================================== * U000119A Problems with preprocessor statements in assembler macro definitions. The current assembler implementation doesn't strictly implement preprocessor statements as a pre-pass to the assembly pass. In a future release this will be corrected which means that all preprocessor directives will be executed before the assembly language is parsed. In short, to avoid problems with the current assembler and to be compatible with future assembler generations don't use preprocessor directives in assembler macro definitions. ================================== 4. Program Corrections and Updates ================================== 1.50B 4/February/00 * AFE0104 The assembler failed to report faulty command arguments in the Embedded workbench. E.g., -Dtaz 1 Did not produce an error. * AFE0103 The assembler failed to call the backend instruction optimizer when the instruction was followed by conditional statements with complex or unsolved expressions. This resulted in an internal error. * AFE0101 The C style preprocessor crashed on multiple nested macros with values surrounded by parenthesis. * AFE0099 If a comment line ends with a "\" sign next line will disappear in the list file. * AFE0097 The code didn't verify that a closing backquote appeared before the end of line. 1.41B 7/April/99 1.41A 5/March/99 Changed the order of the opcode bytes in the list file. * AFE0092 Undefined macro name in a preprocessor expression gave forward reference error. #if NOT_DEFINED+1 nop #endif end * AFE0085 It was not possible to view an Assembler SFR register in CSPY * A90A0002 Now LDS/STS instructions are available in all processor options. * AFE0089 The expression high(ttt), where ttt is a forward declared public label in a different relocatable segment got treated as solved by the assembler. 1.40c 7/October/98 * Now -v2 and -v3 supports ELPM. 1.40B 4/September/98 * AFE0083 Lines with long comments could generate internal error if the line caused an UBROF stack check to be generated. 1.40A 29/July/98 * A90A0001 Assembling an assembler output file from the compiler, without changing the language tag, resulted in an "unknown tag, ubrof file corrupt" error from CSPY. * AFE0080 EXTERN RxBuff [16] ;Cause an internal error. * AFE0065 The assembler could not produce list files and object files when the paths were too long. * AFE0064 The expression high(pubforw), where pubforw is a forward declared public label in a relocatable segment got treated as solved by assembler. * AFE0059 Faulty use of #if made an internal error. * AFE0052 The assembler could not have include files and produce embedded source information at the same time. Embedded source is needed by Xlink to convert the Ubrof6 format to Ubrof5. 1.30A 12/Dec/97 * AFE0028 -S not silent enough, fixed. * AFE0023 A problem with relocatable symbol values, fixed. 1.20C 24/June/97 * AFE0022 REPTI truncated the last parameter. 1.20A 30/May/97 * Files named io2312.h and io8414.h have been removed. 1.03A (Beta) 15/Oct/96 * Listings improved. * SFRTYPE problem fixed. * Comment problem fixed. 1.02A (Beta) 25/Sep/96 * Instruction alignment is now checked. Instructions must be aligned to an even address. ================================== 5. Files supplied in this release. ================================== (See ewa90.txt for files that are only included in the EW version) File Use ----------------------------------- io2313.h SFR include file for AT90S2313 io2323.h SFR include file for AT90S2323 io2333.h SFR include file for AT90S2333 io2343.h SFR include file for AT90S2343 io4414.h SFR include file for AT90S4414 io4433.h SFR include file for AT90S4433 io4434.h SFR include file for AT90S4434 io8515.h SFR include file for AT90S8515 io8534.h SFR include file for AT90S8534 io8535.h SFR include file for AT90S8535 iom103.h SFR include file for ATMEGA103 iom603.h SFR include file for ATMEGA603 aa90.txt this document aa90.exe The assembler itself asm.xcl Generic link command-file dio.s90 Assembler source for tutorial first.s90 Assembler source for tutorial main.s90 Assembler source for tutorial shifts.s90 Assembler source for tutorial dio.xcl Link command file for tutorial first.xcl Link command file for tutorial main.xcl Link command file for tutorial See xlink.txt for xlink related files. =================== End of Read Me File ===================