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".
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 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.
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
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
Set udre flag when (re)enabling uart transmitter.
modified: sim/avr_uart.c
Previously, disabling the uart transmitter cleared the udrc
interrupt and cleared the udre (udrc.raised) flag. Upon
reenabling the transmitter, the udre flag is still clear
signifying the buffer is full, thus waiting for the udr to
clear via udre flag hangs.
Test-related maintenance
- Ensure that make reports an error if any of the tests fail
- Don't duplicate compilation commands only for the sake of
verbosity control
- Simplify recipe for .tst files
- Drop outdated and unnecessary .gitignore from tests directory
- Add the execution of tests to Travis CI
Add support for non-auto release to button
This allows better control of key press length, if needed.
To minimize negative effect on existng code, if the duration
argument of button_press is non-zero, functionality is kept as is
(i.e., using auto-release). If duration is set to zero, then button
will have to be explicitly released using a new API function,
button_release.
If simulation uses GLUT, it may make use of glutKeyboardUpFunc and
glutIgnoreKeyRepeat (in addition to glutKeyboardFunc found in
existing examples) to have more exact control over button presses
and releases.
List git-ignored executables in one place
Update/fix manual
- Updated GitHub repository links.
- Removed the requirement for a German babel language definition
file.
- Commented out missing references (citations of external manual
and references to non-existing sections).
- Added a .gitignore file to the directory of the manual to help
git disregard temporary latex files.
Partial for TWI fixes (#137)
Remove execute permission from source and header files
Ensure that verbosity is applied in avr-gcc recipes
Merge pull request #393 from vintagepc/Timer_PWM2
Support 3rd PWM pin on timers with OCRxC
Merge pull request #392 from vintagepc/SPI-clock-rates
Clock out SPI data according to SPCR/SPSR
Support 3rd PWM pin on timers with OCRxC
Clock out SPI data according to SPCR/SPSR
Merge pull request #390 from vintagepc/unaligned-PCINTs
Support for non-aligned PCINTs
Merge pull request #389 from vintagepc/fix-adcs-over-7
Fix ADCs>7
Fix PCINT on PORTJ for 2560
Merge pull request #384 from msquirogac/fix-370
Support for GDB monitor commands
gdb monitor command clean-up
new gdb commands kill, detach and monitor
monitor parser engine supports reset and halt
Merge pull request #319 from uffejakobsen/uart_tap_symlink
Symlink for UART tap was never created during uart_pty_connect()
Merge pull request #377 from msquirogac/fix-375
Update of the display_usage function.
Merge pull request #379 from msquirogac/fix-378
used attribute for _MMCU_ , should avoid dropping the .mmcu section
used attribute for _MMCU_ , should avoid dropping the .mmcu section
Fix for issue #285
Update of the display_usage function.
Some arguments changed name to make them more like the already existent ones.
Some arguments were merged to one to reduce redundant code.
Fix issue #375
Merge pull request #373 from simark/sram
Compare address with I/O end address in _avr_set_ram
Compare address with I/O end address in _avr_set_ram
In _avr_set_ram, we check if the address is smaller than `MAX_IOs + 31`
to know if it is a register or SRAM location. In reality, many devices
have less I/Os than that, so the SRAM begins before this address.
As shown in issue #372, this causes watchpoints to not be triggered when
writing to an SRAM location that is smaller than `MAX_IOs + 31`. For
example, a global variable on an atmega328 gets placed at address 0x100,
which is less than `MAX_IOs + 31`.
Fix this by comparing the address to the `ioend` property of `avr`.
Fixes #372
Merge pull request #361 from aldobrrrr/is-instruction-32-bits-mask-fix
Fix a bug in the bitmask inside _avr_is_instruction_32_bits() function in sim_core.c file.
Merge pull request #366 from becmer/musl-tests
Don't assign stderr on non-glibc
Don't assign stderr on non-glibc
Signed-off-by: Kamil Becmer <kamil.becmer@gmail.com>
Merge pull request #364 from aykevl/lldb
Add support for debugging with LLDB
Add support for debugging with LLDB
LLDB requires the qRegisterInfo packet to work correctly. While it is
possible to specify the registers manually using a Python script, having
them directly in the emulator simplifies things a lot.