Hello Paolo,

On 07/26/2011 03:10 PM, paolo.ga...@fastwebnet.it wrote:
> Hello guys,
> I'm trying to build amforth for an ATmega128.
> It won't compile, searching for a definition of MCUSR.
> Attached you'll find the folder content I'm using (a standard template).
> amforth ver. 4.5
the attachment seems to be stripped away on the mailing list, but let's see:


 > make  DIR_ATMEL=~/wine/AvrAssembler2
wine ~/wine/AvrAssembler2/avrasm2.exe -I ~/wine/AvrAssembler2/Appnotes2 -I 
../../core -I ../../core/devices/atmega128 -fI -v0 -e template.eep.hex -l 
template.lst template.asm
../../core\macros.asm(49): error: Illegal use of undefined or forward 
referenced symbol 'MCUSR' in conditional
../../core\macros.asm(57): error: Illegal use of undefined or forward 
referenced symbol 'MCUSR' in conditional

Assembly failed, 2 errors, 0 warnings
make: *** [template.hex] Error 1

This is probably, what you see.

 > grep MCU ~/wine/AvrAssembler2/Appnotes/m128def.inc
;* Target MCU        : ATmega128
.equ    MCUCR   = 0x35
.equ    MCUCSR  = 0x34
; MCUCR - MCU Control Register
; MCUCSR - MCU Control And Status Register
; MCUCSR - MCU Control And Status Register

yupp, MCUSR is *not* defined in m128def.inc. Poking into the mega32 stuff, which
I use a lot, I find a suspicious looking line here (last line):

 > grep MCU ~/wine/AvrAssembler2/Appnotes/m32def.inc
;* Target MCU        : ATmega32
.equ    MCUCR   = 0x35
.equ    MCUCSR  = 0x34
; MCUCR - General Interrupt Control Register
; MCUCSR - MCU Control And Status Register
; MCUCR - MCU Control Register
; MCUCSR - MCU Control And Status Register
.equ    MCUSR   = MCUCSR        ; For compatibility

So adding that to m128def.inc, it changes the error message:

 > make  DIR_ATMEL=~/wine/AvrAssembler2
wine ~wine/AvrAssembler2/avrasm2.exe -I ~/wine/AvrAssembler2/Appnotes2 -I 
../../core -I ../../core/devices/atmega128 -fI -v0 -e template.eep.hex -l 
template.lst template.asm
../../core\words/store-i_nrww.asm(114): error: Operand 2 out of range: 0x68
../../core\words/store-i_nrww.asm(122): error: Operand 1 out of range: 0x68

Assembly failed, 2 errors, 0 warnings
make: *** [template.hex] Error 1


Hmm. That I haven't seen before. The lines in question both mention
SPMCSR:
114: in   temp1, SPMCSR
122: out SPMCSR,temp0
SPMCSR = $68, says the datasheet.
So maybe "in" and "out" are out of range for $68.

Anyone else knows about this?

Cheers,
Erich

------------------------------------------------------------------------------
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to