|
| | AvrDevice_at90canbase (unsigned ram_bytes, unsigned flash_bytes, unsigned ee_bytes) |
| |
| | ~AvrDevice_at90canbase () |
| |
| | 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...
|
| |
| virtual | ~SimulationMember () |
| |
| | 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...
|
| |
|
| 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 |
| |
| 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...
|
| |
AVRDevice class for AT90CAN/32/64/128
- Todo:
This device isn't completely implemented. Some peripherals are not completed or missed.
Timer2 needs the external clocking bits
Definition at line 48 of file at90canbase.h.
| AvrDevice_at90canbase::AvrDevice_at90canbase |
( |
unsigned |
ram_bytes, |
|
|
unsigned |
flash_bytes, |
|
|
unsigned |
ee_bytes |
|
) |
| |
Creates the device for ATMega48/88/168/328
- Parameters
-
| ram_bytes | how much SRAM does the device own |
| flash_bytes | how much flash memory does the device own |
| ee_bytes | how much EEPROM space does the device own |
Definition at line 73 of file at90canbase.cpp.
References acomp, HWAcomp::acsr_reg, ad, HWAd::AD_M164, HWAd::adch_reg, HWAd::adcl_reg, HWAd::adcsra_reg, HWAd::adcsrb_reg, admux, HWAd::admux_reg, aref, assr_reg, clkpr_reg, AvrDevice::coreTraceGroup, HWPort::ddr_reg, HWEeprom::DEVMODE_EXTENDED, HWEeprom::eearh_reg, HWEeprom::eearl_reg, HWEeprom::eecr_reg, HWEeprom::eedr_reg, AvrDevice::eeprom, eicra_reg, eicrb_reg, eifr_reg, eimsk_reg, AddressExtensionRegister::ext_reg, extirq01, AvrDevice::flagELPMInstructions, AvrDevice::fuses, TimerIRQRegister::getLine(), HWPort::GetPin(), AvrDevice::GetPin(), NotSimulatedRegister::getRegister(), gpior0_reg, gpior1_reg, gpior2_reg, gtccr_reg, HWTimer16::icr_h_reg, HWTimer16::icr_l_reg, inputCapture1, inputCapture3, AvrDevice::irqSystem, HWTimer16::ocra_h_reg, HWTimer16::ocra_l_reg, HWTimer8::ocra_reg, HWTimer16::ocrb_h_reg, HWTimer16::ocrb_l_reg, HWTimer16::ocrc_h_reg, HWTimer16::ocrc_l_reg, osccal_reg, OSCCALRegister::OSCCAL_V4, HWPort::pin_reg, HWPort::port_reg, porta, portb, portc, portd, porte, portf, portg, premux0, premux1, premux2, premux3, AvrDevice::rampz, HWARef4::REFTYPE_NOBG, ExternalIRQHandler::registerIrq(), TimerIRQRegister::registerLine(), AvrDevice::Reset(), AvrDevice::rw, AvrFuses::SetBootloaderConfig(), AvrFuses::SetFuseConfiguration(), HWSpi::spcr_reg, HWSpi::spdr_reg, spi, FlashProgramming::SPM_MEGA_MODE, FlashProgramming::spmcr_reg, AvrDevice::spmRegister, HWSpi::spsr_reg, AvrDevice::stack, AvrDevice::statusRegister, HWTimer8_1C::tccr_reg, HWTimer16_3C::tccra_reg, HWTimer16_3C::tccrb_reg, HWTimer16_3C::tccrc_reg, HWTimer16::tcnt_h_reg, HWTimer16::tcnt_l_reg, HWTimer8::tcnt_reg, TimerIRQRegister::tifr_reg, timer0, timer1, timer2, timer3, timerIrq0, timerIrq1, timerIrq2, timerIrq3, TimerIRQRegister::timsk_reg, NotSimulatedRegister::TWI_TWAR, NotSimulatedRegister::TWI_TWBR, NotSimulatedRegister::TWI_TWCR, NotSimulatedRegister::TWI_TWDR, NotSimulatedRegister::TWI_TWSR, HWUart::ubrr_reg, HWUart::ubrrhi_reg, HWUart::ucsra_reg, HWUart::ucsrb_reg, HWUsart::ucsrc_reg, HWUart::udr_reg, usart0, usart1, AvrDevice::wado, and HWWado::wdtcr_reg.