|
simulavr
1.1.0
|
AVRDevice class for ATTiny2313. More...
#include <attiny2313.h>
Public Member Functions | |
| AvrDevice_attiny2313 () | |
| ~AvrDevice_attiny2313 () | |
Public Member Functions inherited from AvrDevice | |
| AvrDevice (unsigned int ioSpaceSize, unsigned int IRamSize, unsigned int ERamSize, unsigned int flashSize, unsigned int pcSize=2) | |
| virtual | ~AvrDevice () |
| void | AddToResetList (Hardware *hw) |
| void | AddToCycleList (Hardware *hw) |
| void | RemoveFromCycleList (Hardware *hw) |
| Removes from the cycle list, if possible. More... | |
| void | Load (const char *n) |
| Load flash, eeprom, signature, fuses from elf file, wrapper for LoadBFD or LoadSimpleELF. More... | |
| void | ReplaceIoRegister (unsigned int offset, RWMemoryMember *) |
| bool | ReplaceMemRegister (unsigned int offset, RWMemoryMember *) |
| RWMemoryMember * | GetMemRegisterInstance (unsigned int offset) |
| void | RegisterTerminationSymbol (const char *symbol) |
| Pin * | GetPin (const char *name) |
| int | Step (bool &untilCoreStepFinished, SystemClockOffset *nextStepIn_ns=0) |
| void | Reset () |
| void | SetClockFreq (SystemClockOffset f) |
| SystemClockOffset | GetClockFreq () |
| void | RegisterPin (const std::string &name, Pin *p) |
| void | DeleteAllBreakpoints (void) |
| Clear all breakpoints in device. More... | |
| const std::string & | GetFname (void) |
| Return filename from loaded program. More... | |
| const std::string & | GetDeviceName (void) |
| Return device name. More... | |
| unsigned int | GetDeviceSignature (void) |
| Return device signature. More... | |
| void | SetDeviceNameAndSignature (const std::string &name, unsigned int signature) |
| Set device signature and name. More... | |
| unsigned int | GetMemTotalSize (void) |
| Get configured total memory space size. More... | |
| unsigned int | GetMemIOSize (void) |
| Get configured IO memory space size. More... | |
| unsigned int | GetMemRegisterSize (void) |
| Get configured register space size. More... | |
| unsigned int | GetMemIRamSize (void) |
| Get configured internal RAM size. More... | |
| unsigned int | GetMemERamSize (void) |
| Get configured external RAM size. More... | |
| unsigned char | GetRWMem (unsigned addr) |
| Get a value of RW memory cell. More... | |
| bool | SetRWMem (unsigned addr, unsigned char val) |
| Set a value to RW memory cell. More... | |
| unsigned char | GetCoreReg (unsigned addr) |
| Get a value from core register. More... | |
| bool | SetCoreReg (unsigned addr, unsigned char val) |
| Set a value to core register. More... | |
| unsigned char | GetIOReg (unsigned addr) |
| Get a value from IO register (without offset of 0x20!) More... | |
| bool | SetIOReg (unsigned addr, unsigned char val) |
| Set a value to IO register (without offset of 0x20!) More... | |
| bool | SetIORegBit (unsigned addr, unsigned bitaddr) |
| Set a bit value to lower IO register (without offset of 0x20!) More... | |
| bool | ClearIORegBit (unsigned addr, unsigned bitaddr) |
| Clear a bit value to lower IO register (without offset of 0x20!) More... | |
| unsigned | GetRegX (void) |
| Get value of X register (16bit) More... | |
| unsigned | GetRegY (void) |
| Get value of Y register (16bit) More... | |
| unsigned | GetRegZ (void) |
| Get value of Z register (16bit) More... | |
| void | DebugOnJump () |
| When a call/jump/cond-jump instruction was executed. For debugging. More... | |
Public Member Functions inherited from SimulationMember | |
| virtual | ~SimulationMember () |
Public Member Functions inherited from TraceValueRegister | |
| TraceValueRegister (TraceValueRegister *parent, const std::string &name) | |
| Create a TraceValueRegister, with a scope prefix built on parent scope + name. More... | |
| TraceValueRegister () | |
| Create a TraceValueRegister, with a empty scope name, single device application. More... | |
| virtual | ~TraceValueRegister () |
| const std::string | GetTraceValuePrefix (void) |
| Returns the scope prefix. More... | |
| const std::string | GetScopeName (void) |
| Returns the scope name. More... | |
| void | RegisterTraceValue (TraceValue *t) |
| Registers a TraceValue for this register. More... | |
| void | UnregisterTraceValue (TraceValue *t) |
| Unregisters a TraceValue, remove it from register. More... | |
| TraceValueRegister * | GetScopeGroupByName (const std::string &name) |
| Get a here registered TraceValueRegister by it's name. More... | |
| virtual TraceValue * | GetTraceValueByName (const std::string &name) |
| Get a here registered TraceValue by it's name. More... | |
| TraceValueRegister * | FindScopeGroupByName (const std::string &name) |
| Seek for a TraceValueRegister by it's name. More... | |
| TraceValue * | FindTraceValueByName (const std::string &name) |
| Seek for a TraceValue by it's name. More... | |
| TraceSet * | GetAllTraceValues (void) |
| Get all here registered TraceValue's only (not with descending values) More... | |
| TraceSet * | GetAllTraceValuesRecursive (void) |
| Get all here registered TraceValue's with descending values. More... | |
Public Attributes | |
| HWPort | porta |
| port A (only 3 bit) More... | |
| HWPort | portb |
| port B More... | |
| HWPort | portd |
| port D (only 7 bit) More... | |
| IOSpecialReg | gtccr_reg |
| GTCCR IO register. More... | |
| GPIORegister * | gpior0_reg |
| GPIOR0 Register. More... | |
| GPIORegister * | gpior1_reg |
| GPIOR1 Register. More... | |
| GPIORegister * | gpior2_reg |
| GPIOR2 Register. More... | |
| CLKPRRegister * | clkpr_reg |
| CLKPR IO register. More... | |
| OSCCALRegister * | osccal_reg |
| OSCCAL IO register. More... | |
| ExternalIRQHandler * | extirq |
| external interrupt support More... | |
| IOSpecialReg * | gimsk_reg |
| GIMSK IO register. More... | |
| IOSpecialReg * | eifr_reg |
| EIFR IO register. More... | |
| IOSpecialReg * | mcucr_reg |
| MCUCR IO register. More... | |
| IOSpecialReg * | pcmsk_reg |
| PCMSK IO register. More... | |
| HWPrescaler | prescaler01 |
| prescaler unit for timer 0 and 1 More... | |
| PrescalerMultiplexerExt | premux0 |
| prescaler multiplexer for timer 0 More... | |
| PrescalerMultiplexerExt | premux1 |
| prescaler multiplexer for timer 1 More... | |
| ICaptureSource * | inputCapture1 |
| input capture source for timer1 More... | |
| HWTimer8_2C * | timer0 |
| timer 0 unit More... | |
| HWTimer16_2C3 * | timer1 |
| timer 1 unit More... | |
| TimerIRQRegister * | timer01irq |
| timer interrupt unit for timer 0 and 1 More... | |
| HWUsart * | usart |
| usart unit More... | |
| HWAcomp * | acomp |
| analog compare unit More... | |
| HWUSI * | usi |
| usi unit More... | |
Public Attributes inherited from AvrDevice | |
| int | trace_on |
| Breakpoints | BP |
| Exitpoints | EP |
| unsigned int | PC |
| unsigned int | cPC |
| When mupti-cycle instruction is "processed" this holds its address, PC holds the next instruction. More... | |
| const unsigned int | PC_size |
| unsigned int | dataAddressMask |
| which bits in address are significant More... | |
| AvrFlash * | Flash |
| FlashProgramming * | spmRegister |
| AvrFuses * | fuses |
| AvrLockBits * | lockbits |
| HWEeprom * | eeprom |
| Data * | data |
| a hack for symbol look-up More... | |
| HWIrqSystem * | irqSystem |
| AddressExtensionRegister * | rampz |
| RAMPZ address extension register. More... | |
| AddressExtensionRegister * | eind |
| EIND address extension register. More... | |
| bool | abortOnInvalidAccess |
| Flag, that simulation abort if an invalid access occured, default is false. More... | |
| TraceValueCoreRegister | coreTraceGroup |
| bool | deferIrq |
| Almost always false. More... | |
| unsigned int | newIrqPc |
| unsigned int | actualIrqVector |
| Pin | v_supply |
| represents supply voltage level, needed for analog peripherals More... | |
| Pin | v_bandgap |
| represents bandgap (ref) voltage level, needed for analog peripherals More... | |
| bool | flagIWInstructions |
| ADIW and SBIW instructions are available (not on most tiny's!) More... | |
| bool | flagJMPInstructions |
| CALL and JMP instructions are available (only on devices with bigger flash) More... | |
| bool | flagIJMPInstructions |
| ICALL and IJMP instructions are available (not on attiny1x devices) More... | |
| bool | flagEIJMPInstructions |
| EICALL and EIJMP instructions are available (only on some devices with bigger flash) More... | |
| bool | flagLPMInstructions |
| LPM and SPM instructions are available (not on some tiny devices) More... | |
| bool | flagELPMInstructions |
| ELPM instructions are available (only on devices with bigger flash) More... | |
| bool | flagMULInstructions |
| (F)MULxx instructions are available More... | |
| bool | flagMOVWInstruction |
| MOVW instruction is available. More... | |
| bool | flagTiny10 |
| core is a tiny4/5/9/10, change used clocks on some instructions and disables instructions More... | |
| bool | flagTiny1x |
| core is a tiny1x (but not tiny10!), change used clocks on some instructions and disables instructions More... | |
| bool | flagXMega |
| core is a XMEGA device, change used clocks on some instructions More... | |
| int | DebugRecentJumps [20] |
| Addresses of last few 'call' and 'jump' executed. For debugging. More... | |
| int | DebugRecentJumpsIndex |
| Index to address of the most recent jump. More... | |
| RWMemoryMember ** | rw |
| The whole memory: R0-R31, IO, Internal RAM. More... | |
| HWStack * | stack |
| HWSreg * | status |
| the status register itself More... | |
| RWSreg * | statusRegister |
| the memory interface for status More... | |
| HWWado * | wado |
| WDT timer. More... | |
| std::vector< Hardware * > | hwResetList |
| std::vector< Hardware * > | hwCycleList |
| DumpManager * | dumpManager |
Additional Inherited Members | |
Protected Member Functions inherited from TraceValueRegister | |
| virtual size_t | _tvr_getValuesCount (void) |
| Get the count of all TraceValues, that are registered here and descending. More... | |
| virtual void | _tvr_insertTraceValuesToSet (TraceSet &t) |
| Insert all TraceValues into TraceSet, that registered here and descending. More... | |
Protected Attributes inherited from AvrDevice | |
| SystemClockOffset | clockFreq |
| Period of a tick (1/F_OSC) in [ns]. More... | |
| std::map< std::string, Pin * > | allPins |
| std::string | actualFilename |
| int | cpuCycles |
| Count of cycles before next instruction is executed (i.e. countdown) More... | |
AVRDevice class for ATTiny2313.
Definition at line 41 of file attiny2313.h.
| AvrDevice_attiny2313::AvrDevice_attiny2313 | ( | ) |
Definition at line 65 of file attiny2313.cpp.
References acomp, clkpr_reg, AvrDevice::coreTraceGroup, HWPort::ddr_reg, HWEeprom::DEVMODE_EXTENDED, HWEeprom::eearh_reg, HWEeprom::eearl_reg, HWEeprom::eecr_reg, HWEeprom::eedr_reg, AvrDevice::eeprom, eifr_reg, extirq, AvrDevice::flagJMPInstructions, AvrDevice::flagMULInstructions, AvrDevice::fuses, TimerIRQRegister::getLine(), AvrDevice::GetPin(), gimsk_reg, gpior0_reg, gpior1_reg, gpior2_reg, gtccr_reg, HWTimer16::icr_h_reg, HWTimer16::icr_l_reg, inputCapture1, AvrDevice::irqSystem, mcucr_reg, HWTimer16::ocra_h_reg, HWTimer16::ocra_l_reg, HWTimer8::ocra_reg, HWTimer16::ocrb_h_reg, HWTimer16::ocrb_l_reg, HWTimer8::ocrb_reg, osccal_reg, OSCCALRegister::OSCCAL_V4, pcmsk_reg, HWPort::pin_reg, HWPort::port_reg, porta, portb, portd, premux0, premux1, ExternalIRQHandler::registerIrq(), TimerIRQRegister::registerLine(), AvrDevice::Reset(), AvrDevice::rw, AvrFuses::SetFuseConfiguration(), FlashProgramming::SPM_TINY_MODE, FlashProgramming::spmcr_reg, AvrDevice::spmRegister, AvrDevice::stack, AvrDevice::statusRegister, HWTimer8_2C::tccra_reg, HWTimer16_2C3::tccra_reg, HWTimer8_2C::tccrb_reg, HWTimer16_2C3::tccrb_reg, HWTimer16_2C3::tccrc_reg, HWTimer16::tcnt_h_reg, HWTimer16::tcnt_l_reg, HWTimer8::tcnt_reg, TimerIRQRegister::tifr_reg, timer0, timer01irq, timer1, TimerIRQRegister::timsk_reg, HWUart::ubrr_reg, HWUsart::ubrrh_reg, HWUart::ucsra_reg, HWUart::ucsrb_reg, HWUsart::ucsrc_reg, HWUart::udr_reg, usart, usi, HWUSI::usicr_reg, HWUSI::usidr_reg, and HWUSI::usisr_reg.
| AvrDevice_attiny2313::~AvrDevice_attiny2313 | ( | ) |
Definition at line 41 of file attiny2313.cpp.
| HWAcomp* AvrDevice_attiny2313::acomp |
analog compare unit
Definition at line 69 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| CLKPRRegister* AvrDevice_attiny2313::clkpr_reg |
CLKPR IO register.
Definition at line 52 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| IOSpecialReg* AvrDevice_attiny2313::eifr_reg |
| ExternalIRQHandler* AvrDevice_attiny2313::extirq |
external interrupt support
Definition at line 55 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| IOSpecialReg* AvrDevice_attiny2313::gimsk_reg |
GIMSK IO register.
Definition at line 56 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| GPIORegister* AvrDevice_attiny2313::gpior0_reg |
| GPIORegister* AvrDevice_attiny2313::gpior1_reg |
| GPIORegister* AvrDevice_attiny2313::gpior2_reg |
| IOSpecialReg AvrDevice_attiny2313::gtccr_reg |
GTCCR IO register.
Definition at line 48 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| ICaptureSource* AvrDevice_attiny2313::inputCapture1 |
input capture source for timer1
Definition at line 64 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| IOSpecialReg* AvrDevice_attiny2313::mcucr_reg |
MCUCR IO register.
Definition at line 58 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| OSCCALRegister* AvrDevice_attiny2313::osccal_reg |
OSCCAL IO register.
Definition at line 53 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| IOSpecialReg* AvrDevice_attiny2313::pcmsk_reg |
PCMSK IO register.
Definition at line 59 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| HWPort AvrDevice_attiny2313::porta |
port A (only 3 bit)
Definition at line 44 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| HWPort AvrDevice_attiny2313::portb |
| HWPort AvrDevice_attiny2313::portd |
port D (only 7 bit)
Definition at line 46 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| PrescalerMultiplexerExt AvrDevice_attiny2313::premux0 |
prescaler multiplexer for timer 0
Definition at line 62 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| PrescalerMultiplexerExt AvrDevice_attiny2313::premux1 |
prescaler multiplexer for timer 1
Definition at line 63 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| HWPrescaler AvrDevice_attiny2313::prescaler01 |
prescaler unit for timer 0 and 1
Definition at line 61 of file attiny2313.h.
| HWTimer8_2C* AvrDevice_attiny2313::timer0 |
| TimerIRQRegister* AvrDevice_attiny2313::timer01irq |
timer interrupt unit for timer 0 and 1
Definition at line 67 of file attiny2313.h.
Referenced by AvrDevice_attiny2313().
| HWTimer16_2C3* AvrDevice_attiny2313::timer1 |
| HWUsart* AvrDevice_attiny2313::usart |
| HWUSI* AvrDevice_attiny2313::usi |