SimAVR
AVR Simulator
Data Structures
Here are the data structures with brief descriptions:
 C_epstate
 C_ueintx
 Cavr_adc_mux_t
 Cavr_adc_t
 Cavr_bitbang_tSPI Module initialization and state structure
 Cavr_cycle_timer_pool_tTimer pool contains a pool of timer slots available, they all start queued into the 'free' qeueue, are migrated to the 'active' queue when needed and are re-queued to the free one when done
 Cavr_cycle_timer_slot_tEach timer instance contains the absolute cycle number they are hoping to run at, a function pointer to call and a parameter
 Cavr_eeprom_desc_t
 Cavr_eeprom_t
 Cavr_extint_tThis module is just a "relay" for the pin change IRQ in the IO port module
 Cavr_flash_tHandles self-programming subsystem if the core supports it
 Cavr_gdb_t
 Cavr_gdb_watchpoints_t
 Cavr_int_table_tInterrupt vectors, and their enable/clear registers
 Cavr_int_vector_tInterrupt vector for the IO modules
 Cavr_io_tIO module base struct Modules uses that as their first member in their own struct
 Cavr_io_usb
 Cavr_iopin_tPin structure
 Cavr_ioport_external_tIoctl used to set default port state when set as input
 Cavr_ioport_getirq_tThis ioctl takes a avr_regbit_t, compares the register address to PORT/PIN/DDR and return the corresponding IRQ(s) if it matches
 Cavr_ioport_state_tIoctl used to get a port state
 Cavr_ioport_tDefinition for an IO port
 Cavr_irq_hook_t
 Cavr_irq_pool_tIRQ Pool structure
 Cavr_irq_tPublic IRQ structure
 Cavr_kind_tStatic constructor for each of the AVR devices
 Cavr_lin_t
 Cavr_regbit_tThis 'structure' is a packed representation of an IO register 'bit' (or consecutive bits)
 Cavr_spi_t
 Cavr_symbol_tSymbol loaded from the .elf file
 Cavr_tMain AVR instance
 Cavr_timer_comp_t
 Cavr_timer_t
 Cavr_timer_wgm_t
 Cavr_trace_data_tThis is only ever used if CONFIG_SIMAVR_TRACE is defined
 Cavr_twi_msg_irq_t
 Cavr_twi_msg_t
 Cavr_twi_t
 Cavr_uart_t
 Cavr_usb_t
 Cavr_vcd_log_t
 Cavr_vcd_signal_tThis structure registers IRQ change hooks to various "source" IRQs and dumps their values (if changed) at certain intervals into the VCD file
 Cavr_vcd_t
 Cavr_watchdog_t
 Celf_firmware_t
 Cihex_chunk_tA .hex file chunk (base address + size)
 Cmcu_t
 Cusb_internal_state