Class ArchXT_Core

Inheritance Relationships

Base Type

Class Documentation

class ArchXT_Core : public Core

Implementation of a core model for Mega0/Mega1 series.

The model adds 2 NVM : EEPROM and USERROW It implements the data space access for the CPU, in which the FLASH and the EEPROM are accessible (read-only) at the address defined in the configuration structure.

Public Types

enum ArchXT_NVM

Values:

enumerator NVM_EEPROM
enumerator NVM_USERROW

Public Functions

explicit ArchXT_Core(const ArchXT_CoreConfig &variant)

Protected Functions

virtual uint8_t cpu_read_data(mem_addr_t data_addr) override

Read memory in data address space. This is a pure virtual function that architectures should implement. Implementations should ensure that, if the address is invalid, the behavior should be consistent with the option IgnoreBadCpuIO.

This function is intended for CPU use only.

See also

cpu_read_ioreg()

Parameters:

data_addr – Memory address (in 8-bits, data address space) to read

Returns:

Content at the flash address

virtual void cpu_write_data(mem_addr_t data_addr, uint8_t value) override

Write memory in data address space. This is a pure virtual function that architectures should implement. Implementations should ensure that, if the address is invalid or read-only, the behavior should be consistent with the option IgnoreBadCpuIO.

This function is intended for CPU use only.

Parameters:
  • data_addr – Memory address (in 8-bits, data address space) to read

  • value – Value to write

virtual void dbg_read_data(mem_addr_t start, uint8_t *buf, mem_addr_t len) override

Read memory in data address space. This is a pure virtual function that architectures should implement.

This function is intended for debug probe use only.

Parameters:
  • start – First memory address (in 8-bits, data address space) to read

  • buf – Buffer where the memory data will be copied into

  • len – Length of the memory block to read

virtual void dbg_write_data(mem_addr_t start, const uint8_t *buf, mem_addr_t len) override

Write memory in data address space. This is a pure virtual function that architectures should implement.

This function is intended for debug probe use only.

Parameters:
  • start – First memory address (in 8-bits, data address space) to read

  • buf – Buffer from which the memory data will be copied

  • len – Length of the memory block to write