head 1.2; access; symbols pkgsrc-2013Q2:1.1.0.14 pkgsrc-2013Q2-base:1.1 pkgsrc-2013Q1:1.1.0.12 pkgsrc-2013Q1-base:1.1 pkgsrc-2012Q4:1.1.0.10 pkgsrc-2012Q4-base:1.1 pkgsrc-2012Q3:1.1.0.8 pkgsrc-2012Q3-base:1.1 pkgsrc-2012Q2:1.1.0.6 pkgsrc-2012Q2-base:1.1 pkgsrc-2012Q1:1.1.0.4 pkgsrc-2012Q1-base:1.1 pkgsrc-2011Q4:1.1.0.2 pkgsrc-2011Q4-base:1.1; locks; strict; comment @# @; 1.2 date 2013.09.12.06.20.35; author mef; state dead; branches; next 1.1; commitid ASehM97O2d9v575x; 1.1 date 2011.12.18.19.51.33; author dholland; state Exp; branches; next ; desc @@ 1.2 log @(pkgsrc) Raw simulavr-1.0.0 does not build. Some patches, and SUBST to convert MACROS etc., are added reflecting git repository (These will be unnecessary at next release, hopefully). (Upstream) Bump the version simulavr-0.1.2.1 to simulavr-1.0.0 (From manual-1.0.pdf) What features are new: - Run multiple AVR devices in one simulation. (only with interpreter interfaces or special application linked against simulavr library) Multiple cores can run where each has a different clock frequency. - Connect multiple AVR core pins to other devices like LCD, LED and others. (environment) - Connect multiple AVR cores to multiple avr-gdb instances. (each on its own socket/port number, but see first point for running multiple avr cores) - Write simulation scripts in Tcl/Tk or Python, other languages could be added by simply adding swig scripts! - Tracing the execution of the program, these traces support all debugging information directly from the ELF-file. - The traces run step by step for each device so you see all actions in the multiple devices in time-correct order. - Every interrupt call is visible. - Interrupt statistics with latency, longest and shortest execution time and some more. - There is a simple text based UI interface to add LCD, switches, LEDs or other components and can modify it during simulation, so there is no longer a need to enter a pin value during execution. (Tcl/Tk based) - Execution timing should be nearly accurate, different access times for internal RAM / external RAM / EEPROM and other hardware components are simulated. - A pseudo core hardware component is introduced to do "printf" debugging. This "device" is connected to a normal named UNIX socket so you do not have to waste a UART or other hardware in your test environment. (How?) - ELF-file loading is supported, no objcopy needed anymore. - Execution speed is tuned a lot, most hardware simulations are now only done if needed. - External IO pins which are not ports are also available. (E.g. ADC7 and ADC8 on ATmega8 in TQFP package.) - External I/O and some internal states of hardware units (link prescaler counter and interrupt states) can be dumped ot into a VCD trace to analyse I/O behaviour and timing. Or you can use it for tests. @ text @$NetBSD: patch-src_register_h,v 1.1 2011/12/18 19:51:33 dholland Exp $ - Patch up gcc inline mess. --- src/register.h.orig 2003-12-01 07:35:53.000000000 +0000 +++ src/register.h @@@@ -83,26 +84,26 @@@@ extern SREG *sreg_new (void); extern void sreg_construct (SREG *sreg); extern void sreg_destroy (void *sreg); -extern inline uint8_t +static inline uint8_t sreg_get (SREG *sreg) { return sreg->sreg.reg; } -extern inline void +static inline void sreg_set (SREG *sreg, uint8_t val) { sreg->sreg.reg = val; display_io_reg (SREG_IO_REG, sreg->sreg.reg); } -extern inline uint8_t +static inline uint8_t sreg_get_bit (SREG *sreg, int bit) { return !!(sreg->sreg.reg & (1 << bit)); } -extern inline void +static inline void sreg_set_bit (SREG *sreg, int bit, int val) { sreg->sreg.reg = set_bit_in_byte (sreg->sreg.reg, bit, val); @@@@ -133,7 +134,7 @@@@ extern GPWR *gpwr_new (void); extern void gpwr_construct (GPWR *gpwr); extern void gpwr_destroy (void *gpwr); -extern inline uint8_t +static inline uint8_t gpwr_get (GPWR *gpwr, int reg) { #if defined(CHECK_REGISTER_BOUNDS) @@@@ -144,7 +145,7 @@@@ gpwr_get (GPWR *gpwr, int reg) return gpwr->reg[reg]; } -extern inline void +static inline void gpwr_set (GPWR *gpwr, int reg, uint8_t val) { #if defined(CHECK_REGISTER_BOUNDS) @ 1.1 log @Patch up gcc inline mess. Fixes build with gcc 4.5. @ text @d1 1 a1 1 $NetBSD$ @