simulavr-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Simulavr-devel] ATMega8 class definition


From: Petr Hluzín
Subject: Re: [Simulavr-devel] ATMega8 class definition
Date: Fri, 15 Oct 2010 21:30:13 +0200

Hello

On 15 October 2010 20:27, Ivca Safranko <address@hidden> wrote:
> Hallo,
>
> Simulavr is a great idea and I'd like to contribute to its development.

Great!

> I think the atmega16_32 interrupt vectors for EEPROM Ready are not
> equal:
>
> atmega16_32.cpp
>
> eeprom = new HWEeprom(this, irqSystem, ee_bytes, 15);
> if(stack11bit)
>  stack = new HWStackSram(this, 11);
> else
>  stack = new HWStackSram(this, 12);
>
> Perhaps this is better?
>
>    if(stack11bit) {
>      eeprom = new HWEeprom(this, irqSystem, ee_bytes, 15);
>      stack = new HWStackSram(this, 11);
>    } else {
>      eeprom = new HWEeprom(this, irqSystem, ee_bytes, 17);
>      stack = new HWStackSram(this, 12);
>    }

You are right, ATmega32's EEPROM Ready interrupt is 17, not 15.
Checked against ATmega32 datasheet revision P. (Note datasheet lists
reset vector as 1, not 0 as we do.)

Your change fixes the problem. The variable 'stack11bit' would become
abused a bit, maybe we should move the initialization of 'eeprom' and
'stack' to descentants' constructors.

I will commit the fix and review your new files tomorrow (in Europe),
unless an other commiter is faster.

-- 
Petr Hluzin



reply via email to

[Prev in Thread] Current Thread [Next in Thread]