Go to the source code of this file.
Functions | |
| Memory * | mem_new (int gpwr_end, int io_reg_end, int sram_end, int xram_end) |
| void | mem_construct (Memory *mem, int gpwr_end, int io_reg_end, int sram_end, int xram_end) |
| void | mem_destroy (void *mem) |
| void | mem_attach (Memory *mem, int addr, char *name, VDevice *vdev, int flags, uint8_t reset_value, uint8_t rd_mask, uint8_t wr_mask) |
| VDevice * | mem_get_vdevice_by_addr (Memory *mem, int addr) |
| VDevice * | mem_get_vdevice_by_name (Memory *mem, char *name) |
| void | mem_set_addr_name (Memory *mem, int addr, char *name) |
| uint8_t | mem_read (Memory *mem, int addr) |
| void | mem_write (Memory *mem, int addr, uint8_t val) |
| void | mem_reset (Memory *mem) |
| void | mem_io_fetch (Memory *mem, int addr, uint8_t *val, char *buf, int bufsiz) |
| void | mem_dump_core (Memory *mem, FILE *f_core) |
This module provides functions for reading and writing to simulated memory. The Memory class is a subclass of AvrClass.
Definition in file memory.c.
| Memory* mem_new | ( | int | gpwr_end, | |
| int | io_reg_end, | |||
| int | sram_end, | |||
| int | xram_end | |||
| ) |
Allocates memory for a new memory object.
Definition at line 66 of file memory.c.
References avr_new0, class_overload_destroy(), mem_construct(), and mem_destroy().
| void mem_construct | ( | Memory * | mem, | |
| int | gpwr_end, | |||
| int | io_reg_end, | |||
| int | sram_end, | |||
| int | xram_end | |||
| ) |
| void mem_destroy | ( | void * | mem | ) |
Descructor for the memory object.
Definition at line 99 of file memory.c.
References avr_free(), class_destroy(), and class_unref().
Referenced by mem_new().
| void mem_attach | ( | Memory * | mem, | |
| int | addr, | |||
| char * | name, | |||
| VDevice * | vdev, | |||
| int | flags, | |||
| uint8_t | reset_value, | |||
| uint8_t | rd_mask, | |||
| uint8_t | wr_mask | |||
| ) |
Attach a device to the device list.
Devices that are accessed more often should be attached last so that they will be at the front of the list.
A default virtual device can be overridden by attaching a new device ahead of it in the list.
Definition at line 130 of file memory.c.
References avr_error, and class_ref().
| VDevice* mem_get_vdevice_by_addr | ( | Memory * | mem, | |
| int | addr | |||
| ) |
Find the VDevice associated with the given address.
Definition at line 159 of file memory.c.
Referenced by avr_core_add_ext_rd_wr(), and memstack_construct().
| VDevice* mem_get_vdevice_by_name | ( | Memory * | mem, | |
| char * | name | |||
| ) |
Find the VDevice associated with the given name.
Definition at line 169 of file memory.c.
References avr_error, and dlist_lookup().
Referenced by avr_core_load_eeprom().
| uint8_t mem_read | ( | Memory * | mem, | |
| int | addr | |||
| ) |
Reads byte from memory and sanity-checks for valid address.
| mem | A pointer to the memory object | |
| addr | The address to be read |
Definition at line 212 of file memory.c.
References avr_warning, and vdev_read().
| void mem_write | ( | Memory * | mem, | |
| int | addr, | |||
| uint8_t | val | |||
| ) |
Writes byte to memory and updates display for io registers.
| mem | A pointer to a memory object | |
| addr | The address to be written to | |
| val | The value to be written there |
Definition at line 247 of file memory.c.
References avr_warning, display_io_reg(), and vdev_write().
| void mem_reset | ( | Memory * | mem | ) |
Resets every device in the memory object.
| mem | A pointer to the memory object. |
Definition at line 284 of file memory.c.
References vdev_reset().
Referenced by avr_core_reset().
| void mem_io_fetch | ( | Memory * | mem, | |
| int | addr, | |||
| uint8_t * | val, | |||
| char * | buf, | |||
| int | bufsiz | |||
| ) |
Fetch the name and value of the io register (addr).
| mem | A pointer to the memory object. | |
| addr | The address to fetch from. | |
| val | A pointer where the value of the register is to be copied. | |
| buf | A pointer to where the name of the register should be copied. | |
| bufsiz | The maximum size of the the buf string. |
Definition at line 322 of file memory.c.
References vdev_read().
Referenced by avr_core_io_display_names().
| void mem_dump_core | ( | Memory * | mem, | |
| FILE * | f_core | |||
| ) |
Dump all the various memory locations to a file descriptor in text format.
| mem | A memory object. | |
| f_core | An open file descriptor. |
Definition at line 483 of file memory.c.
Referenced by avr_core_dump_core().