24#ifndef __YASIMAVR_FIRMWARE_H__
25#define __YASIMAVR_FIRMWARE_H__
91 static Firmware* read_elf(
const std::string& filename);
95 bool has_memory(
Area area)
const;
97 std::vector<Area> memories()
const;
99 size_t memory_size(
Area area)
const;
101 std::vector<block_view_t> blocks(
Area area)
const;
108 void add_symbol(
const Symbol& s);
109 const std::vector<Symbol>& symbols()
const;
119 constexpr block_t(
size_t b,
size_t n) : bytes(n), base(b) {}
122 std::map<Area, std::vector<block_t>> m_blocks;
125 std::vector<Symbol> m_symbols;
Definition sim_firmware.h:53
Firmware & operator=(const Firmware &other)=default
Firmware(const Firmware &other)=default
unsigned long frequency
Main clock frequency in hertz, mandatory to run the simulation.
Definition sim_firmware.h:80
mem_addr_t datasize() const
Definition sim_firmware.h:129
reg_addr_t console_register
I/O register address used for console output.
Definition sim_firmware.h:86
Area
Definition sim_firmware.h:62
@ Area_UserSignatures
Definition sim_firmware.h:69
@ Area_Flash
Definition sim_firmware.h:63
@ Area_Lock
Definition sim_firmware.h:67
@ Area_Fuses
Definition sim_firmware.h:66
@ Area_Signature
Definition sim_firmware.h:68
@ Area_Data
Definition sim_firmware.h:64
@ Area_EEPROM
Definition sim_firmware.h:65
mem_addr_t bsssize() const
Definition sim_firmware.h:134
double aref
Analog reference voltage in volts.
Definition sim_firmware.h:84
const std::vector< Symbol > & symbols() const
Definition sim_firmware.h:139
double vcc
Power supply voltage in volts. If not set, analog peripherals such as ADC are not usable.
Definition sim_firmware.h:82
Non-volatile memory model.
Definition sim_memory.h:42
Representation of a I/O register address, with validity state.
Definition sim_types.h:60
#define YASIMAVR_BEGIN_NAMESPACE
Definition sim_globals.h:58
#define AVR_CORE_PUBLIC_API
Definition sim_globals.h:46
#define YASIMAVR_END_NAMESPACE
Definition sim_globals.h:59
std::vector< uint8_t > bytes_t
Definition sim_types.h:51
unsigned long mem_addr_t
Definition sim_types.h:41
std::span< const uint8_t > bytes_view_t
Definition sim_types.h:52
Definition sim_firmware.h:72
size_t size
Definition sim_firmware.h:74
Area area
Definition sim_firmware.h:76
std::string name
Definition sim_firmware.h:75
size_t addr
Definition sim_firmware.h:73
Definition sim_firmware.h:57
bytes_view_t bytes
Definition sim_firmware.h:58