Merge pull request #491 from gatk555/hex2
Combined function for loading ELF or ihex firmware.
Pull the .hex loading code out of run_avr.c and make it available as
a function, sim_setup_firmware(), that also handles ELF firmware.
Add a test, test_atmega88_hex.c, and use the new function in other tests.
Merge pull request #483 from gatk555/interrupt_IRQs
Interrupt IRQs: improve consistency and add a test.
Merge pull request #487 from gatk555/PHT
Use the Program Header Table to control loading from ELF files.
Merge pull request #488 from gatk555/tiny13
Fix #421 (Tiny13) and an error in PR #482
Merge pull request #490 from gatk555/logging
Correct output streams for logging output.
Correct output streams for logging output.
Fix error in PR #482 that breaks build when tracing is enabled.
Use the Program Header Table to control loading from ELF files rather than
the Section Table. Fixes upstream #484 "Located sections are ignored
by simavr".
Cherry-pick
8fa3b206d917609ae696e4e9d89cfbec211113ff onto upstream.
Make the global interrupt pending IRQ behave consistently, so that the
value is always a vector number. Make the floating flag more useful;
when set it indicates the next interrupt expected. Remove a call
that added no information. Add a test.
Merge pull request #406 from akosthekiss/fix-hd44780-memory
Fixes to HD44780
Merge pull request #440 from gatk555/firmware
Fix run-avr's --output and --add-trace options.
Merge pull request #479 from gatk555/vcd
Fix #478 and improve VCD input.
Merge pull request #475 from adbancroft/vscode
Ignore Visual Studio Code folder
Merge pull request #472 from gatk555/run_avr_help
Show whether instruction tracing is enabled in the usage message.
Merge pull request #471 from gatk555/attinyx5_adc
Fix attinyx5 ADC multiplexer values.
Merge pull request #470 from WGH-/fix-wdie-autoclearing
Fix WDIE being wrongly cleared in Interrupt Mode
Merge pull request #469 from couchand/2021-12/example-bug
simduino: wait to init avr until we pick a core
Merge pull request #468 from taylorconor/intr_fifo_swap
Fix interrupt servicing with multiple pending interrupts
Merge pull request #482 from gatk555/gdb
Gdb: add support for "load" and "info_registers" and fix bugs.
Really fix handling of 'break' (testing blunder) and include
a helpful message when it is executed. Also add help message
response for gdb's "monitor" command.
Fix bugs in handling vFlashWrite in sim_gdb.c and reset the
cycle counter on reset so that there is no crash on restart.
Make the break instruction useful. The previous implementation
could never move past it, as gdb knows it is in ROM and will
not replace it. Distinguish hard and soft breaks.
Fix access (read/write) watchpoints and incorrect reporting of watchpoint
stops (always reported as "awatch"). Fix the kill command and allow
the simulator to continue running on detach.
Add "monitor say" for debugging.
Fix three problems with gdb support:
1. Do not report a TRAP signal on every stop, as it confuses gdb.
Initial symptom was failure to step into an ISR.
2. AVR was running after reset command.
3. Excessive processor activity (buzzing) while AVR stopped.
Support for gdb's "load" command, based on
https://github.com/msquirogac/simavr/tree/fix-371
This implements the vFlashxxxx remote protocol commands and should fix
issue #371 - "GDB Error on OS X: Remote target does not support flash erase".
Fix issue #478 - input changes not reflected in VCD output file.
Change the way I/O register IRQs are called so that they report
changes made by peripheral code as well as the core.
Also, do not call them for reads. Add some test code.
Minor improvements to VCD file input.
avr_adc.h: Remove space from ioctl name as it would break VCD parsing.
sim_vcd_file.*: Allow nano-second input timing, compatible with output.
Extend VCD parsing.
Fix bug in short-form parsing where variable alias is a digit.
Fix input bug with slow clock.
Ignore Visual Studio Code files.
Fix WDIE being wrongly cleared in Interrupt Mode
WDIE must be automatically cleared only in "Interrupt and System
Reset Mode" (where it's used to transition to "System Reset Mode").
In other modes, watchdog interrupt must not clear WDIE.
Strictly speaking, the modified condition also clears it in
"System Reset Mode" as well, but the system is reset on
interrupt anyway, so it doesn't matter.
See #456
simduino: wat to init avr until we pick a core
Show whether instruction tracing is enabled in the usage message.
Fix attinyx5 ADC multiplexor values.
Fix interrupt servicing with multiple pending interrupts
Merge pull request #441 from gatk555/timer
Fix TOV/ICR handling, SEI delay - updated version
Merge pull request #427 from gatk555/ioport
Ioport
Merge branch 'upstream' into timer
Merge branch 'upstream' into firmware
Merge branch 'upstream' into ioport
Accept review comments on PR #427 - data type and tabs/spaces.
Merge pull request #454 from dxxb/arduboy
ssd1306: fully implement horizontal and vertical addressing modes
ssd1306: fully implement horizontal and vertical addressing modes
Merge pull request #430 from gin66/master
fix timer foc behavior
fix identation error while space to tab conversion
Merge pull request #387 from purdeaandrei/patch-1
Fix error message
Merge pull request #450 from taylorconor/macos_build
Fix macos build with versioned avr-gcc
Merge pull request #447 from vintagepc/446-fix-multipart-ihex
Fix #446 - bug in multipart ihex
Merge pull request #449 from taylorconor/sym_size
Add size property to avr_symbol_t
Fix macos build with versioned avr-gcc
Add size property to avr_symbol_t
Fix #446 - bug in multipart ihex
Add "clear interrupt on write 1 to flag" function to avr_ioport.c
and some code to test it in atmega168_ioport.c and friend.
Merge branch 'fix-irq-handling' of https://github.com/vintagepc/simavr
Upstream pull request #415: Fix TOV/ICR handling, SEI delay
with corrections to timer code and addition of minimal test code.
One file missed from previous change.
Fix run-avr's --output and --add-trace options (upstream issue #400).
Remove call to memset() in sim_elf.c that destroyed initialisations
and initialise the firmware structure everywhere.
Add comments to say initialisation is required.
ds1338L: Fix a logic bug
Used a boolean not instead of a binary one.
Signed-off-by: Michel Pollet <buserror@gmail.com>
Merge pull request #439 from gatk555/hardware
Two "hardware" changes
Merge pull request #431 from kittennbfive/patch-1
megax4: fix INT2 pin
Merge pull request #428 from gatk555/build
Link libsimavr.so with needed libraries.
Merge pull request #425 from gatk555/warnings
Add casts to suppress warnings from gcc 8.3.0.
Merge pull request #424 from gatk555/adc
Implement the BIN and IPR bits for attinyX5 and change the ADC sample timing …
Merge pull request #418 from sanjaymsh/ppc64le
Travis-ci:added support for ppc64le
Make the 2560 PORTE/0 pin change interrupt visible as it mostly works.
Add the missing pin change interrupts for 1280 and 1281.
In avr_ioport.[ch], fix multiple causes (but not all) of
mis-triggering of pin change interrupts including upstream issue #343:
Pin change interrupts incorrectly fire when a timer compare event occurs.
Other causes are initial setting of DDR and the AVR_IOPORT_OUTPUT bit.
Move the mask and shift data for ATmega2560 into the ioport structure.
Add a test for pin change interrupts.
Fixes for ATmega2560 and friend:
enable pin change interrupts on PORTK;
conditionally enable pin change interrupts on PORTE/0 - shared with PORTJ;
run the ACOMP initialisation function;
add close relative ATmega2561.
Merge branch 'master' of https://github.com/thelazt/simavr
Upstream pull request #353: Add support for ATmega328PB.
Patch offered in upstream issue #339 (from djfd):
Wrong ADC definition at-tiny-24
Do not set filter flag as handlers for IOPORT_IRQ_REG_PIN should be
called on every read of the port pins, so they can set new values.
test to fix foc causing erroneous interrupt
also adjust needed alias / define
fix INT2 pin
according to datasheet, tested with some code that works on real device (1284P)
Handle writing a one bit to the interrupt flag, ADIF.
Link libsimavr.so with needed libraries. That is the usual way and allows
it to be easily loaded by dlopen().
Add a test for basic port functions and fix problems found.
avr_extint.c: prevent spurious interrupts.
avr_ioport.c: allow calling program to control value read from PIN.
Add casts to suppress warnings from gcc 8.3.0.
Implement the BIN and IPR bits for attinyX5 and change the ADC sample timing
to roughly match the datasheet. Add a test. Those MCUs have no UART, so
test.c and test.h have changes to use an alternative method.
fix foc and interrupt clear for timer
Merge branch 'master' of github.com:MikePlayle/simavr
Travis-ci:added support for ppc64le
Fix typos in comments in HD44780
Handle the difference between 1 and 2-line displays in HD44780
If HD44780 is configured to have a single line of display, AC can
be in the range of 0x00..0x00+79, while with two lines, it can be
in the ranges 0x00..0x00+39 and 0x40..0x40+39.
Merge pull request #401 from vintagepc/Fix-TWI-status-delay
Fix high speed TWI delay calcs and ACK bug (#137)
Merge pull request #413 from bsekisser/sim_regbit_clear_check_valid_reg
Remove kludge "avr_uart_regbit_clear" from uart
Merge pull request #410 from akosthekiss/make-tests
Test-related maintenance
Merge pull request #412 from bsekisser/avr_regbit_h_file_format_corrections
Formatting and style corrections to avr_regbit.h
Merge pull request #411 from bsekisser/uart_raise_udr_raised_with_tx_enable
Set udre flag when (re)enabling uart transmitter.
Merge pull request #407 from akosthekiss/gitignore-maintenance
List git-ignored executables in one place
Merge pull request #405 from akosthekiss/update-fix-manual
Update/fix manual
Merge pull request #396 from akosthekiss/makecommon-avrgcc-verbose
Ensure that verbosity is applied in avr-gcc recipes
Merge pull request #397 from akosthekiss/remove-exec
Remove execute permission from source and header files
Merge pull request #409 from akosthekiss/button-release
Add support for non-auto release to button
Remove kludge "avr_uart_regbit_clear" from uart
modified: sim/avr_uart.c
Change use of kludge function avr_uart_regbit_clear to avr_regbit_clear.
modified: sim/sim_regbit.h
Add check that avr_regbit_clear was passed a valid existing register.
Formatting and style corrections to avr_regbit.h