log for 4bcb2928292b02f41ce989b113bd97d8c0b5d861
Commit 4bcb2928292b02f41ce989b113bd97d8c0b5d861
author: bsekisser [Mon, 20 Oct 2014 15:34:16 +0000 (11:34 -0400)]
Message:
cores: AVR_IOPORT_DECLARE

convert port sructure declarations to macro AVR_IOPORT_DECLARE.

modified:   simavr/cores/sim_90usb162.c
modified:   simavr/cores/sim_mega128.c
modified:   simavr/cores/sim_mega1280.c
modified:   simavr/cores/sim_mega1281.c
modified:   simavr/cores/sim_mega128rfa1.c
modified:   simavr/cores/sim_mega128rfr2.c
modified:   simavr/cores/sim_mega169.c
modified:   simavr/cores/sim_mega2560.c
modified:   simavr/cores/sim_megax.h
modified:   simavr/cores/sim_tiny2313.c
modified:   simavr/sim/avr_ioport.h
Commit 1a503bdcd0cc22a4f6b1149f6d63d1dc895fd5d4
author: Michel Pollet [Tue, 14 Oct 2014 17:53:10 +0000 (18:53 +0100)]
Message:
tests: Fix makefile

Was using ${OBJ} before it was declared.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 93b1468d25acc10a3409a75a8aaaca22302e0d52
author: Michel Pollet [Tue, 14 Oct 2014 17:51:26 +0000 (18:51 +0100)]
Message:
build: fix build of libsimavr.so

Was being linked with itself. Newer gcc are not amused.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit b5cdf931f2305dbddc4008879f81e1a3cb4c74ed
committer: Michel Pollet [Tue, 14 Oct 2014 17:44:48 +0000 (18:44 +0100)]
author: Michel Pollet [Tue, 14 Oct 2014 17:44:24 +0000 (18:44 +0100)]
Message:
build: re-accelerated the build

Simavr used to build pretty quick, and it's been crawling for a while
now, turns out some of the enhancements we added to the SIMAVR path
detection were being evaluated a LOT.
So went to the makefile and made sure most of the static variables are
evaluated once only.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit eb45f55a54cdd31cb12a778d7b6baebe032287a2
author: Michel Pollet [Tue, 14 Oct 2014 17:39:22 +0000 (18:39 +0100)]
Message:
Merge pull request #94 from hedrok/master

Timer simulation fixes and improvements
Commit 59720c375151cc4cedd3487bb826f47b19b59e58
author: Michel Pollet [Tue, 14 Oct 2014 17:37:10 +0000 (18:37 +0100)]
Message:
Merge pull request #92 from cyrozap/master

Fix the issue where Intel HEX files with hex strings longer than 32 bytes would be truncated
Commit aba71d87d60b9d94456da63f8e1c2f98d526f01a
author: Michel Pollet [Tue, 14 Oct 2014 17:35:41 +0000 (18:35 +0100)]
Message:
Merge pull request #83 from bsekisser/master-core-run-many-limited

Changes to allow for free run in core between cycle timers
Commit acdad6ef0a02b502f286a3f2995b1b8b4aba0628
author: Michel Pollet [Tue, 14 Oct 2014 17:34:22 +0000 (18:34 +0100)]
Message:
Merge pull request #82 from dougszumski/i2c_test_extension

examples: Extends i2ctest to include a second TWI driver
Commit a8c5b5a9e3b3461e04c793c56359c358e8efd607
committer: Kyrylo Yatsenko [Tue, 14 Oct 2014 16:43:59 +0000 (19:43 +0300)]
author: Kyrylo Yatsenko [Tue, 14 Oct 2014 13:49:12 +0000 (16:49 +0300)]
Message:
Enhance emulation of PWM mode

- Clear/set output pin on TOP when OCRnX is in clear/set mode,
  previously it was changed only on TCNT=OCRnX
- Call PWM irq for OCRnB even when TOP is OCRnA
Commit 72048849474c59a70f1148dd41c6f4be9a36a02d
committer: Kyrylo Yatsenko [Tue, 14 Oct 2014 13:47:25 +0000 (16:47 +0300)]
author: Kyrylo Yatsenko [Tue, 14 Oct 2014 13:35:38 +0000 (16:35 +0300)]
Message:
Fixes in avr_timer_reconfigure after refactoring

Several fixes after fcce7868a2fe2ef028b7f6c1741a12380b82a9cc:
- Remove zeroing of mode in which erased mode
  seleced in avr_timer_write
- Fix wrong brackets in ?: in avr_timer_wgm_pwm mode
Commit 22bcf1c3ea1eb2879d8f2271bb372acc8b14adda
author: cyrozap [Tue, 14 Oct 2014 04:57:11 +0000 (00:57 -0400)]
Message:
sim_hex: Only decrement maxlen in read_hex_string when a byte is added to the array

Without this fix, the output to the buffer would be limited to maxlen/2 bytes
instead of maxlen. It is obvious from the implementation that the latter
behavior is the expected one, so the function has been altered to reflect that.
Commit a8765fece3c681fb7fc8f00869c4f3c9993beaf7
author: Michel Pollet [Tue, 23 Sep 2014 13:05:33 +0000 (14:05 +0100)]
Message:
Merge pull request #88 from anthony-morel/master

fifo: prevent potential misuse of _get_write_size()
Commit d627c8d7a179684fed0ce0e34684fa4e2f9a8806
author: Anthony Morel [Thu, 18 Sep 2014 18:39:53 +0000 (19:39 +0100)]
Message:
fifo: prevent potential misuse of _get_write_size()

Using the number obtained from _get_write_size() and writing that many
items to the fifo yields to _isempty() becoming true and not to
_isfull() becoming true.

I got caught assuming the latter.

To avoid thinking about edge cases and prevent potential misuse of
_get_write_size(), I suggest that it returns one unit less, thus, a
number between 0 and (fifo_size-1).  E.g., if there is only one place
left in the fifo, i.e., _isfull() is true, it then returns 0, preventing
us to fill that place and get into a wrap overflow situation.

(Michel: Thanks for the great architecture you laid out and the great
code.)
Commit 3c5e1ae3f560ba1568da247f4e835206ff12a264
committer: bsekisser [Mon, 15 Sep 2014 20:22:24 +0000 (16:22 -0400)]
author: bsekisser [Tue, 9 Sep 2014 21:53:56 +0000 (17:53 -0400)]
Message:
Changes to allow for free run in core between cycle timers
 with per interval limiting.

Average cycle times drop by about upwards of 50-60+ cycles per emulated cycle,
dependant on usage.

sim_avr.h: struct avr_t changed.
added members run_cycle_count and run_cycle_limit.
run_cycle_count is number of cycles till next cycle timer.
run_cycle_limit is maximum number of cycles to run per interval.

sim_core.c: avr_run_one
* run_one_again label added at top.
* clause added at end which loops to run_one_again given that the core
is still in a cpu_Running state, run_cycle_count is greater than
cycles, and no interrups are pending.

sim_cycle_timers.c:
* static avr_cycle_timer_return_sleep_run_cycles_limited() added.
run_cycle_count is bounded to run_cycle_limit.
returns sleep count unbounded, preserving original behavior.

* static avr_cycle_timer_reset_sleep_run_cycles_limited() added.
sets new run_cycle_count based on present list of cycle timers.

* avr_cycle_timer_reset() changed.
run_cycle_count and run_cycle_limit is set to default values.

* avr_cycle_timer_register() changed.
* avr_cycle_timer_cancel() changed.
* avr_cycle_timer_process() changed.
call the relevant function to set/maintain run_cycle_count.

modified:   simavr/sim/sim_avr.c
modified:   simavr/sim/sim_avr.h
modified:   simavr/sim/sim_cycle_timers.c
Commit 2190f69580c71bc715a9dd24c27ebcd81d53b29b
committer: Doug Szumski [Thu, 4 Sep 2014 21:55:11 +0000 (23:55 +0200)]
author: Doug Szumski [Thu, 4 Sep 2014 20:54:25 +0000 (22:54 +0200)]
Message:
examples: Extends i2ctest to include a second TWI driver

Adds a commonly used alternative to the Atmel TWI driver. This
particular driver is choosen because it covers a non-interrupt
driven approach to using the TWI module.
Commit a0f2f927ea96cc951d2cf4e54f16059d9271f53f
author: Michel Pollet [Sat, 23 Aug 2014 11:46:40 +0000 (12:46 +0100)]
Message:
Merge pull request #81 from dougszumski/ssd1306_demo

examples: Removed unused code in ssd1306 demo
Commit 9cea3eddd8fbc0f2212f8902e9ffaf25385424b1
author: Michel Pollet [Sat, 23 Aug 2014 11:46:13 +0000 (12:46 +0100)]
Message:
Merge pull request #80 from dougszumski/avr_twi_bugfix

twi: Clear TWSTO bit after STOP condition transmitted
Commit cae609394fbae4427956a1a3a16f0e5ed032f24b
author: Doug Szumski [Tue, 19 Aug 2014 19:26:00 +0000 (21:26 +0200)]
Message:
examples: Removed unused code in ssd1306 demo
Commit 301121cce45e4db4c1d0e66d16dc42cb1246e36b
author: Doug Szumski [Sat, 16 Aug 2014 13:15:58 +0000 (15:15 +0200)]
Message:
twi: Clear TWSTO bit after STOP condition transmitted

> This change fixes a problem where a TWI driver polling the
  TWSTO bit would run on the real device but not simavr.

> More detail in for example p188 of the ATMega32A datasheet
  (rev 815D-AVR-10/2013).
Commit 0303c2421894209a56859b95b3dbcd20467d3f75
author: Michel Pollet [Thu, 14 Aug 2014 15:01:27 +0000 (16:01 +0100)]
Message:
Merge pull request #78 from dougszumski/i2c_eeprom_bugfix

parts: Bug fix for i2c_eeprom part
Commit 7704ffecff6cb223aff0d309260e12cc73f8dbda
committer: Michel Pollet [Wed, 13 Aug 2014 22:13:39 +0000 (23:13 +0100)]
author: Michel Pollet [Wed, 13 Aug 2014 22:13:04 +0000 (23:13 +0100)]
Message:
cores; 128rfr2, tiny84 and megax8, temp fix for bad arv-libc headers

Temporary, to make the build work. Seems the latest avr-libc in debian
is rather mangled.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 242ec6c14416147e73b95ebc17ed0a67f934fa1c
committer: Michel Pollet [Wed, 13 Aug 2014 22:13:39 +0000 (23:13 +0100)]
author: Michel Pollet [Wed, 13 Aug 2014 22:11:26 +0000 (23:11 +0100)]
Message:
Makefile: fix for OSX bash variable substitution

This was generating a bad config file

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f50fd384283ace5fc343ac6de39573b898dc346f
author: Doug Szumski [Sun, 10 Aug 2014 15:47:43 +0000 (17:47 +0200)]
Message:
parts: Bug fix for i2c_eeprom part

    Fixes:

    > Part address and mask weren't set in i2c_eeprom_init. The
      virtual part responded to all addresses.
    > Mask required inverting to function as per the description in
      i2c_eeprom.h
Commit 2c267cdb38b6adf013df65cf1ecb6fc623c75879
author: Michel Pollet [Thu, 7 Aug 2014 11:31:43 +0000 (12:31 +0100)]
Message:
Merge pull request #57 from bsekisser/avr-timer-as2-cs-mode

avr_timer: refactor avr_timer_write and avr_timer_reconfigure
Commit 5fb87ee82abcc31d9bb5f657cd39c30245b7c5dc
author: Michel Pollet [Tue, 5 Aug 2014 12:05:51 +0000 (13:05 +0100)]
Message:
Merge pull request #77 from dougszumski/ssd1306_demo

New part & example for a SSD1306 OLED driver
Commit 318d3ab8ea77206a97a46c740716d083cc5e149e
committer: Doug Szumski [Tue, 5 Aug 2014 11:01:12 +0000 (12:01 +0100)]
author: Doug Szumski [Tue, 5 Aug 2014 10:49:30 +0000 (11:49 +0100)]
Message:
examples: Added SSD1306 example board

atmega32_ssd1306.c  Example avr firmware
ssd1306.* SSD1306 avr driver
images.* simavr logo used in example firmware
ssd1306demo.c simavr demo for ssd1306 part
Commit b59997c36d5cec94732c17c04ab858c279731eaa
committer: Doug Szumski [Tue, 5 Aug 2014 10:59:45 +0000 (11:59 +0100)]
author: Doug Szumski [Tue, 5 Aug 2014 10:43:25 +0000 (11:43 +0100)]
Message:
parts: Added SSD1306 OLED driver virtual part
Commit fcce7868a2fe2ef028b7f6c1741a12380b82a9cc
committer: bsekisser [Sat, 2 Aug 2014 21:07:57 +0000 (17:07 -0400)]
author: bsekisser [Tue, 4 Mar 2014 21:50:20 +0000 (16:50 -0500)]
Message:
avr_timer: refactor avr_timer_write and avr_timer_reconfigure

avr_timer_reconfigure: calculations moved back in call chain to
 avr_timer_write.

avr_timer_configure: use data processed in avr_timer_write.

avr_timer_init: changed to fully trap writes going to as2,
 clock select bits and waveform generation mode bits.

modified:   ../../simavr/sim/avr_timer.c
modified:   ../../simavr/sim/avr_timer.h

avr_timer: remove as2 timer check.

modified:   avr_timer.c
Commit bdeef1ca24ac3df5f43b11fceac4557e9053eec2
author: Michel Pollet [Sat, 2 Aug 2014 08:15:06 +0000 (09:15 +0100)]
Message:
Merge pull request #70 from cardoe/flash-fix

flash: Add support for TEMPPAGE writing.
Commit 81a4e18cc00700a34243907ddd08d79b682f174e
author: Michel Pollet [Sat, 7 Jun 2014 19:40:31 +0000 (20:40 +0100)]
Message:
Update README.md

Lots of cores were missing in the readme
Commit 1be487742be6b9f811f032611ddde54a5de53883 v1.2
author: Jakob Gruber [Tue, 20 May 2014 08:38:04 +0000 (10:38 +0200)]
Message:
make: Link libelf in libsimavr.so.1 target

The build (sometimes) fails if libsimavr.so.1 is not linked with
libelf (see https://bugs.archlinux.org/task/40309).
Commit d521cd88299123a15c143db5107c5f1fbf1d5272
author: Michel Pollet [Tue, 29 Apr 2014 09:22:56 +0000 (10:22 +0100)]
Message:
Merge pull request #73 from cardoe/rfa1-rfr2-pcint8

cores: Fix PCINT8 for ATmega128RFA1 and ATmega128RFR2
Commit bffb2e8ccbd919d058ed408ba67fbe441c17a70e
committer: Doug Goldstein [Sun, 27 Apr 2014 19:38:06 +0000 (14:38 -0500)]
author: Doug Goldstein [Sun, 27 Apr 2014 19:32:33 +0000 (14:32 -0500)]
Message:
cores: Fix PCINT8 for ATmega128RFA1 and ATmega128RFR2

PCINT8 was previously not setup. Per the spec sheet it is on Port E pin
0.
Commit e6476edb26cb403eed6365601b8a33abcfe41b9d
committer: Doug Goldstein [Sun, 27 Apr 2014 19:35:18 +0000 (14:35 -0500)]
author: Jonathan Creekmore [Thu, 6 Mar 2014 15:41:40 +0000 (09:41 -0600)]
Message:
flash: Add support for TEMPPAGE writing.

The proper way to write to flash on the AVR is to write
to the temp page and then write that temp page to flash.
This allows cancellation with the RWWSRE bit for clearing
out the temp page without writing it to flash.

This fixed a bug where the RWWSRE bit was being set in a
command, but the flash driver was improperly writing whatever
was in r0/r1 to the first address in the page, overwriting
what was already there. In reality, the code running on the
core was trying to just flush the temp page or unlock the read
while write section.
Commit 040a61240c8f1f337f9e4ffe588b2f3c03ee7287
author: Michel Pollet [Sun, 27 Apr 2014 18:34:48 +0000 (19:34 +0100)]
Message:
Merge pull request #72 from cardoe/rfr2

Support for ATmega128RFR2
Commit 0c791f0926afb12bdbfd7623b5058f8dd3e07167
committer: Doug Goldstein [Sun, 27 Apr 2014 18:15:59 +0000 (13:15 -0500)]
author: Doug Goldstein [Sun, 27 Apr 2014 16:00:10 +0000 (11:00 -0500)]
Message:
cores: RFA1/RFR2 don't have Port A and Port C

The ATmega128RFA1 and ATmega128RFR2 don't actually have Port A and Port
C as IO pins.
Commit 746051f3ef2dfc1b29541a6b763409209a025bd1
committer: Doug Goldstein [Sun, 27 Apr 2014 18:15:59 +0000 (13:15 -0500)]
author: Doug Goldstein [Sun, 27 Apr 2014 15:49:49 +0000 (10:49 -0500)]
Message:
cores: Add initial support for ATmega128RFR2

Add initial support for the ATmega128RFR2 which according to Atmel is a
drop in replacement for the ATmega128RFA1 however in real world testing
I have found this to not be entirely true. All of the changes (new
features) added to the R2 are not exposed with current simavr
peripherals so this file is identical to the A1 in simavr.
Commit c91302cb3518276f242f9f1b70b1e7bdf5941613
committer: Doug Goldstein [Sun, 27 Apr 2014 18:15:59 +0000 (13:15 -0500)]
author: Doug Goldstein [Sun, 27 Apr 2014 15:46:17 +0000 (10:46 -0500)]
Message:
Clean up outdated comment

This comment is no longer true for any of the listed platforms so its
best to adjust the wording to what might be relevant to users
Commit 80e2c23f70d80ef39f5e956a773d2de39b369026
committer: Doug Goldstein [Sun, 27 Apr 2014 18:15:51 +0000 (13:15 -0500)]
author: Doug Goldstein [Sun, 27 Apr 2014 15:43:17 +0000 (10:43 -0500)]
Message:
cores: Fix ADCH and ADCL to use defines for RFA1

No current release provides these defines however they are fixed in
avr-libc trunk and as such we should use them if they are available.
Commit b0f3a7a4dfec451111884756ced67e1212ce0803
author: Michel Pollet [Sun, 27 Apr 2014 17:06:04 +0000 (18:06 +0100)]
Message:
Merge pull request #71 from bsekisser/master-core-fixes-reductions

sim_core: fixes and reductions
Commit 84e3bc67340c31113d30d29c30af09fe1d6eceb0
committer: bsekisser [Sat, 19 Apr 2014 13:13:08 +0000 (09:13 -0400)]
author: bsekisser [Sat, 19 Apr 2014 12:16:49 +0000 (08:16 -0400)]
Message:
sim_core: fixes and reductions

correct a few goofed up opcode descriptions.

get_d5 and get_r5: remove trailing slash on last macro line

add get_vd5: get_vd5 pulls in from get_d5 plus loads from register...
removes one definate instance of a possible double load, also
potentially removes double loads during tracing.

get_d5_b3 changed to get_vd5_b3: as all instances use the value of
reg d.  get_vd5_b3 pulls in from get_vd5.  reduces one definate
instance for potential of double loads and possibly reducing
the potential during tracing.

add get_vd5_b3_mask: two instances use b3 as a mask, get_vd5_b3_mask
pulls in from get_vd5_b3.

add get vh4_k8: get_vh4_k8 pulls in from get_h4_k8, removes the extra
line to pull in from the register...  removes possible double
load during tracing.

get_p2_k6 changed to get_vp2_k6: register load was moved into the macro
as both instances need the value loaded from the register pair.

add get_io5 and get_io5_b3mask: get io5_b3 and get_io5_b3mask pulls in
from get_io5...  most instances using get_io5_b3 take bit
number and use it as a mask, get_io5_b3mask does that by default.

get_o12: rcall and rjmp both left shift the value back before using
the offset...  the macro just calls for one less bit to be
shifted...  during trace we then make the extra shift as needed.

modified:   sim/sim_core.c
Commit 6aee2974d91d3bca636c4a278b6ff83c891e3d6d
author: Michel Pollet [Wed, 2 Apr 2014 11:36:40 +0000 (12:36 +0100)]
Message:
Merge pull request #67 from bsekisser/master-core-refactor-flags

sim_core: flag equations refactored.
Commit 409cf65b8fb17c9cbdfb0670f644fad4f5eeaa50
author: Michel Pollet [Wed, 2 Apr 2014 11:35:30 +0000 (12:35 +0100)]
Message:
Merge pull request #69 from bsekisser/master-core-ldi-labeling-misc

sim_core: add ldi, trace and labeling corrections.
Commit 28761a8287af19e9cddfdc65f5b388ba1a76d373
committer: bsekisser [Sun, 30 Mar 2014 22:59:20 +0000 (18:59 -0400)]
author: bsekisser [Fri, 21 Mar 2014 12:34:20 +0000 (08:34 -0400)]
Message:
sim_core: flag equations refactored.

Most flag equations have been refactored into flag group function
  blocks...  The core passes all provided tests in the tests folder
  and now most especially is able to pass the instruction test code.
  At the same time, the overall average cycles per instruction has
  ticked down.

modified:   sim/sim_core.c
Commit 8b80f3174e390828bce0c2d5351458cc92707797
committer: bsekisser [Sun, 30 Mar 2014 22:09:51 +0000 (18:09 -0400)]
author: bsekisser [Sun, 30 Mar 2014 21:59:46 +0000 (17:59 -0400)]
Message:
sim_core: add ldi, labeling corrections.

in moving the majority of instructions to follow use of register
 macros, ldi was missed.

get_h4_k16() was incorrectly labeled where get_h4_k8() was intended
 as k is an 8 bit quantity not 16.

get_o_12() was changed to get_o12() following the convention set
 forth with the other macros.

several trace statements were missed during the conversion and fixed.

ORI was incorrecly labeled as ANDI in the description and corrected.

modified:   sim/sim_core.c
Commit 5aca53635da8f6b09cc8e43cd4f43a3f32edc1e5
author: Michel Pollet [Mon, 24 Mar 2014 18:23:49 +0000 (18:23 +0000)]
Message:
Merge pull request #68 from bsekisser/master-core-fix-rcall-cycles

sim_core: fix rcall instruction cycles...
Commit ae52fb327a9b4a792f45760f407b6c7e69b3cf1d
committer: bsekisser [Sat, 22 Mar 2014 12:36:08 +0000 (08:36 -0400)]
author: bsekisser [Sat, 22 Mar 2014 12:13:06 +0000 (08:13 -0400)]
Message:
sim_core: fix rcall instruction cycles...

Based on the instrtiming.elf code and checking the Avr Instruction
 Manual, RCALL was found to be producing incorrect cycle counts.

Atmega; 3, 16-bit pc; 4, 22-bit pc.

Fixed accordingly.

modified:   sim/sim_core.c
Commit 75fcf0807e9666d4a7d1082ed5855b60252750bf
author: Michel Pollet [Tue, 18 Mar 2014 23:17:39 +0000 (23:17 +0000)]
Message:
Merge pull request #64 from bsekisser/master-core-regmacro-descript

sim_core: reworked register macros and descriptor lines
Commit 396c39776a60dd532e42eab69ce888d95ed08151
author: Michel Pollet [Tue, 18 Mar 2014 13:16:11 +0000 (13:16 +0000)]
Message:
Merge pull request #65 from cardoe/gdb-stub-update

Add some commands to the GDB stub
Commit ad47d913b54cef188269c4b75fdde51d27d6fe32
committer: Doug Goldstein [Tue, 18 Mar 2014 01:36:28 +0000 (20:36 -0500)]
author: Doug Goldstein [Sun, 16 Mar 2014 20:02:59 +0000 (15:02 -0500)]
Message:
gdb: support reporting memory map locations

GDB wants to have knowledge of the RAM and flash regions of memory on
the chips. Since AVR is Harvard architecture, the RAM must begin at a
fake offset and per Atmel's docs that is 0x800000.
Commit cecb9440942182b2d57924d4b358e59d17c4337b
committer: Doug Goldstein [Tue, 18 Mar 2014 01:19:01 +0000 (20:19 -0500)]
author: Doug Goldstein [Mon, 17 Mar 2014 01:46:46 +0000 (20:46 -0500)]
Message:
gdb: support qOffsets command

GDB will ask what offsets should be applied to the the text and data
sections. Since AVR is Harvard architecture so we need to apply an
offset for one of the regions universally, Atmel documents and uses
0x800000 for RAM so this makes that happen.
Commit 6981970786d7de8e9507f0c02def6473efd76f56
committer: Doug Goldstein [Mon, 17 Mar 2014 02:00:04 +0000 (21:00 -0500)]
author: Doug Goldstein [Sun, 16 Mar 2014 15:47:39 +0000 (10:47 -0500)]
Message:
gdb: support qAttached command from debugger

When using avr-gdb on Ubuntu 12.04, this command is always sent
and we responded as if it was unsupported. Unfortunately avr-gdb on
Ubuntu 12.04 crashes when detaching from the process because it makes a
bad assumption somewhere, this will prevent the crash.
Commit 81a7f346c945ee9e47e2dcc36363b0113ea5b7f9
committer: bsekisser [Sun, 16 Mar 2014 22:07:24 +0000 (18:07 -0400)]
author: bsekisser [Sun, 16 Mar 2014 21:07:21 +0000 (17:07 -0400)]
Message:
sim_core: reworked register macros and descriptor lines

reworked register macros and instruction descriptor lines to more
 closely follow avr data sheet insruction (and avr instruction wiki)
 references. register macro usage (with few exceptions) have been worked
 throughout the core to be more uniform and consistent.  most notably d
 is used nearly uniform throught the avr instruction set references,
 prior the core intermixed the usage of the opcode registers d and r
 notation.

lpm & elpm, trace bug fixed... tracing would always show lpm Z+ regardless of
 the actual operation performed...  more importantly than that, looking
 at the instruction data sheet reference, the relevant bit is bit 1
 in the opcode...  prior op was equal to opcode & 3 similar to ld/st
 instructions...  the original lpm checked for op == 1 and the
 reworked elpm checked for op == 3.  this has been corrected for
 both opcode implimentations by setting op to opcode & 1 and just
 using op to flag for post increment.

modified:   sim/sim_core.c
Commit b1ab2fbfc770574d8791bbdf8342264198e37e02
author: Michel Pollet [Sat, 15 Mar 2014 20:05:33 +0000 (20:05 +0000)]
Message:
Merge pull request #63 from cardoe/flash-rampz-rww

Add support for a RWW section and fix problems with flashing and using RAMPZ
Commit af790c58090162607ebf2a7c5a202e93077e4abb
committer: Doug Goldstein [Sat, 15 Mar 2014 18:54:10 +0000 (13:54 -0500)]
author: Doug Goldstein [Fri, 7 Mar 2014 05:29:23 +0000 (23:29 -0600)]
Message:
flash: add support for RWWSRE/RWWSB bits in SPMCR

The Self Program Memory Control Register (SPMCR) has a bit for enabling
the read while write section (RWWSRE). This is also used for clearing
the temporary page buffer that is used for page writing (PGWRT). The
read while write section busy (RWWSB) allows the application developer
to know when the RWW section is accessible and when programming of it
has completed.

This commit does not wire up the behavior but just allows the flash
structure to understand that it supports a RWW section.
Commit 805168caa5f717e363cd265ea8fcb3d7beeeb7aa
committer: Doug Goldstein [Sat, 15 Mar 2014 18:40:02 +0000 (13:40 -0500)]
author: Doug Goldstein [Fri, 7 Mar 2014 04:55:20 +0000 (22:55 -0600)]
Message:
megax8: Add missing define before including AVR hdr

mega48, mega88, and mega168 all share a common header and rely on their
platform to be defined prior to their headers being included.
Commit 3fa972fc676cdeb2b6bb82f51d5ca29d1cc061e0
committer: Doug Goldstein [Sat, 15 Mar 2014 18:39:58 +0000 (13:39 -0500)]
author: Jonathan Creekmore [Thu, 6 Mar 2014 15:21:52 +0000 (09:21 -0600)]
Message:
16-bits is not large enough if using RAMPZ

The RAMPZ register allows the effective address to be up to 24-bit,
so a 16-bit variable is not large enough to hold it.
Commit e0749c147eabd317cb1496f0cf9257dd68bc681e
committer: Doug Goldstein [Sat, 15 Mar 2014 01:21:45 +0000 (20:21 -0500)]
author: Jonathan Creekmore [Thu, 30 Jan 2014 02:31:29 +0000 (20:31 -0600)]
Message:
Support looking up the AVR_ROOT in /usr/local/avr
Commit 38a09ebdb191569d0348d2c9d80e8b12203e841e
author: Michel Pollet [Tue, 11 Mar 2014 11:27:02 +0000 (11:27 +0000)]
Message:
Merge pull request #61 from cardoe/pc-crash

Don't crash if PC is past the end of the flash section
Commit f17ac8250980a575b2bc4d9e4968102075bd89d9
committer: Doug Goldstein [Tue, 11 Mar 2014 01:12:23 +0000 (20:12 -0500)]
author: Doug Goldstein [Mon, 10 Mar 2014 01:32:05 +0000 (20:32 -0500)]
Message:
core: set reasonably safe default for 'codeend'

Its reasonably safe to assume that 'codeend' can not be past 'flashend'
so that's a good default value.
Commit d9701a754e742fc3491d619fad928ac544b32b93
committer: Doug Goldstein [Mon, 10 Mar 2014 01:35:15 +0000 (20:35 -0500)]
author: Doug Goldstein [Mon, 10 Mar 2014 01:20:22 +0000 (20:20 -0500)]
Message:
core: don't crash if pc is past flash

If we somehow had bad code that pointed us past the end of the flash it
would segfault simavr rather than catching the bad case, this fixes and
that wraps the check in an unlikely() branch hint since its very
unlikely we will take that case.
Commit 663a5c215aecaad5ca9d921271a7f1af6449ca6e
committer: Doug Goldstein [Mon, 10 Mar 2014 01:24:56 +0000 (20:24 -0500)]
author: Doug Goldstein [Mon, 10 Mar 2014 01:18:49 +0000 (20:18 -0500)]
Message:
add likely/unlikely branch hint macros

Provide likely/unlikely branch hinting macros.
Commit 36ae8cdeed3b9f40a5e9a7c388a4eae9b9a024f5
committer: Michel Pollet [Sat, 8 Mar 2014 10:53:51 +0000 (10:53 +0000)]
author: lleroy [Thu, 16 Jan 2014 07:46:31 +0000 (08:46 +0100)]
Message:
cores: Added atmega169p
Commit 2c20fc90d2f8b32770e727c50b012e945d0e0f01
committer: Michel Pollet [Thu, 6 Mar 2014 16:36:57 +0000 (16:36 +0000)]
author: Michel Pollet [Thu, 6 Mar 2014 16:35:35 +0000 (16:35 +0000)]
Message:
vcd: Traces now start in 'X' state

"Floating" state, until they are explicitely set by the firmware or
emulator

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 0192cc667e32614a283d208a76049f6e87ca9822
committer: Michel Pollet [Thu, 6 Mar 2014 16:36:57 +0000 (16:36 +0000)]
author: Michel Pollet [Thu, 6 Mar 2014 16:34:39 +0000 (16:34 +0000)]
Message:
ioport: Add a pair of IRQs

Allows easy tracking of the PORT/PIN (when read) and DDR values as they
are written by the firmware.
Also reformatted in '2014' narrow style

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit fde567e3803f69614948b937c14184e0b6a0f308
committer: Michel Pollet [Thu, 6 Mar 2014 16:36:57 +0000 (16:36 +0000)]
author: Michel Pollet [Thu, 6 Mar 2014 16:33:00 +0000 (16:33 +0000)]
Message:
ELF: Make sure the macro generater the correct value

You could pass constants over 8 bits in size, generating very confusing
values

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit e6b27161077bb38dc8c02cc3e95644b6d05bea9f
author: Michel Pollet [Thu, 6 Mar 2014 16:20:46 +0000 (16:20 +0000)]
Message:
Merge pull request #60 from bsekisser/avr-timer-cancel-timer-rollup

avr_timer: roll up cancelation of timers into single function.
Commit f1c09cc7d840b172958b5330c69e6c80d1db3f3e
author: bsekisser [Thu, 6 Mar 2014 12:41:46 +0000 (07:41 -0500)]
Message:
avr_timer: roll up cancelation of timers into single function.

modified:   sim/avr_timer.c
Commit 9904d53b9bdb939ace4cb2f914874eba876bfee8
author: Michel Pollet [Wed, 5 Mar 2014 16:25:57 +0000 (16:25 +0000)]
Message:
Merge pull request #59 from bsekisser/ld-st-rXYZ-bugfix

sim_core: Fix for issue #46, correction to ld {rXYZ}
Commit 69ade71a1c2ccc5b220045d44f6f3f58254886d8
author: Michel Pollet [Tue, 4 Mar 2014 08:54:10 +0000 (08:54 +0000)]
Message:
cores: Fix mega2560

Added EIND, as per nnayo's. Also renamed the file to match the other
cores

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 1518952330756db153df63e752c2964aab4aea7c
committer: Michel Pollet [Tue, 4 Mar 2014 08:51:54 +0000 (08:51 +0000)]
author: Michel Pollet [Tue, 4 Mar 2014 08:51:15 +0000 (08:51 +0000)]
Message:
test: Fix coroutine on old gcc

Removed traling colon. Fix issue #34

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 28bda0b248db6f5a506eb59cd7bc1720994a5709
committer: Michel Pollet [Tue, 4 Mar 2014 08:51:54 +0000 (08:51 +0000)]
author: Michel Pollet [Tue, 4 Mar 2014 08:50:17 +0000 (08:50 +0000)]
Message:
make: Allow override of root path

Allows inclusion of Makefile.common from out of tree.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 13d11ecf334643662ae5d4b15bbaeeb338292a8f
author: Michel Pollet [Tue, 4 Mar 2014 08:34:59 +0000 (08:34 +0000)]
Message:
Merge pull request #53 from nnayo/gdb_fault

fix gdb error message: Cannot remove breakpoints because program is no l...
Commit 82f917a8d4f3fde8fc131a58d17c871bf3a33256
author: Michel Pollet [Tue, 4 Mar 2014 08:30:33 +0000 (08:30 +0000)]
Message:
Merge pull request #45 from cardoe/prototype-warning

Fix avr_global_logger_get() decl  to not warn.
Commit e82f4851c4616164256fa974617a19abb5be9d3e
committer: Doug Goldstein [Tue, 4 Mar 2014 02:32:00 +0000 (20:32 -0600)]
author: Doug Goldstein [Sat, 22 Feb 2014 03:28:19 +0000 (21:28 -0600)]
Message:
Fix avr_global_logger_get() decl  to not warn

When using sim_avr.h with a project that uses -Wstrict-prototypes, you
will get a warning that the prototype for avr_global_logger_get() is not
valid. Functions that take no args must explicitly use void to not warn.
Commit 2d13e9efcd65567b90eb500cc4db6778fc3300e7
author: Michel Pollet [Mon, 3 Mar 2014 22:43:00 +0000 (22:43 +0000)]
Message:
Merge pull request #56 from bsekisser/avr-timer-comp-write-ocr

avr_timer: changed avr_timer_write_ocr as part of larger avr_timer refac...
Commit 85915dfa16407eb4e32940c88dbc2798ffa362de
author: bsekisser [Mon, 3 Mar 2014 22:14:36 +0000 (17:14 -0500)]
Message:
avr_timer: changed avr_timer_write_ocr as part of larger avr_timer refactor.

- changed avr_timer_write_ocr code to take pointer of relevant
   comparator structure rather than its parent timer.

- added _timer_get_comp_ocr which the modified avr_timer_write_ocr
function uses.

modified:   simavr/sim/avr_timer.c
modified:   simavr/sim/avr_timer.h
Commit cc54eda5e96867b724ffb9a6e3610fce557faad5
author: Michel Pollet [Mon, 3 Mar 2014 17:55:57 +0000 (17:55 +0000)]
Message:
Merge pull request #54 from bsekisser/uart-udr-write-changes

uart: refactor uart udr write operation outside generic uart write.
Commit cf715dc4a43daadd0128f882726213307da48070
committer: Michel Pollet [Mon, 3 Mar 2014 17:53:22 +0000 (17:53 +0000)]
author: nnayo [Mon, 3 Mar 2014 14:52:01 +0000 (15:52 +0100)]
Message:
cores: Add atmega2560
Commit 06c0981b53018ff1b28f10793f20fb70a56aa626
committer: Michel Pollet [Mon, 3 Mar 2014 17:52:45 +0000 (17:52 +0000)]
author: Michel Pollet [Mon, 3 Mar 2014 17:49:56 +0000 (17:49 +0000)]
Message:
core: Handle EIND register

Parts with more than 128KB of flash need an extra byte on the stack
Rework from nnayo branch for the atmega2560

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 3bbf09b417802da42f30f5f81cdfa7297f643665
committer: Michel Pollet [Mon, 3 Mar 2014 17:50:49 +0000 (17:50 +0000)]
author: Michel Pollet [Mon, 3 Mar 2014 17:49:05 +0000 (17:49 +0000)]
Message:
core: Removed trace crash macro

Made it a function instead.

Reworked from nnayo's commit
Commit b0d3d5ec3136d4742f1ac15a214f046e79705c84
author: bsekisser [Mon, 3 Mar 2014 17:00:21 +0000 (12:00 -0500)]
Message:
uart: refactor uart udr write operation outside generic uart write.

modified:   simavr/sim/avr_uart.c
Commit d226e2a99f2f3deb655a2e32d36878f9504c68aa
author: nnayo [Mon, 3 Mar 2014 13:55:19 +0000 (14:55 +0100)]
Message:
fix gdb error message: Cannot remove breakpoints because program is no longer writable.
Commit 84174b518f4d5b1b2f10e50951c240f7808e3782
author: Michel Pollet [Mon, 3 Mar 2014 13:23:49 +0000 (13:23 +0000)]
Message:
Merge pull request #50 from cardoe/atmega128rfa1

cores: add ATmega128RFA1 core
Commit 9219cc984147de5c59d4a3f63c522f031b3a90fa
author: Michel Pollet [Mon, 3 Mar 2014 13:14:13 +0000 (13:14 +0000)]
Message:
timers: Reformat

Cleanup the macros

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit c3db03ac5b2552b174a2dddc5576392fd4cc7d90
committer: Doug Goldstein [Sat, 1 Mar 2014 20:42:21 +0000 (14:42 -0600)]
author: Doug Goldstein [Sun, 2 Feb 2014 20:33:52 +0000 (14:33 -0600)]
Message:
cores: add ATmega128RFA1 core

This core is based on the ATmega1281 core per Atmel's documentation so
that was used as a starting point. No guarentees that the radio is wired
up correctly.
Commit e6cd1e0ff5d62d247078083312a6e3551a8078c6
author: Michel Pollet [Sat, 1 Mar 2014 13:46:34 +0000 (13:46 +0000)]
Message:
timers: Real fix

There were a couple of logic error in the previous commit, fixed,
hopefully.
Commit fd880504f3178e2f31eeced535306ce4eee7287a
author: Michel Pollet [Fri, 28 Feb 2014 01:06:17 +0000 (01:06 +0000)]
Message:
simduino: Small fix

Not sure how this got commited, it was not compiling.
Commit 2eb70dde7189e59cb24fd58420ca0577f9cb3559
committer: Michel Pollet [Fri, 28 Feb 2014 01:02:14 +0000 (01:02 +0000)]
author: Michel Pollet [Fri, 28 Feb 2014 00:54:15 +0000 (00:54 +0000)]
Message:
timers: New, faster implementation

Bullied by bsekisser into making this one ;-)

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit c3d8a2902c53c2adfb912d0f3368bb8ca29edf27
committer: Michel Pollet [Fri, 28 Feb 2014 01:02:14 +0000 (01:02 +0000)]
author: Michel Pollet [Tue, 18 Feb 2014 18:24:59 +0000 (18:24 +0000)]
Message:
gdb: cleanup

Formatting, nothing functional.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 30556d908634083b610e08f55d3665fdd19c4cb3
author: Michel Pollet [Wed, 26 Feb 2014 17:44:30 +0000 (17:44 +0000)]
Message:
Merge pull request #39 from ppd1990/makefile-threaded

Make Makefile safe for parallel compilation.
Commit 086afbd2985c121280df62b9d9f47e8a6ac4a564
author: bsekisser [Mon, 24 Feb 2014 00:26:01 +0000 (19:26 -0500)]
Message:
sim_core: correction to ld {rXYZ}

User supplied test seems to indicate that the avr writes data to
 the destination register AFTER updating the index register.
  whereas the core originally read the index register and
  immediately stored the result into the register and then wrote
  back the index register.

If the code used: LD XH, X test indicated XH would return the
 value loaded from the indirect load operation versus the updated
 XH:XL value as the core originally assumed.

modified:   sim/sim_core.c
Commit 8331c58225d850c3a5e07f17869e2cbd0715746c
author: Michel Pollet [Wed, 19 Feb 2014 10:25:59 +0000 (10:25 +0000)]
Message:
Merge pull request #43 from cardoe/special-init-api

Extend special_init/special_deinit API
Commit 83cff2f9a69cf6ca87d51f235031618afc5009e5
committer: Doug Goldstein [Wed, 19 Feb 2014 02:27:24 +0000 (20:27 -0600)]
author: Doug Goldstein [Wed, 19 Feb 2014 02:06:31 +0000 (20:06 -0600)]
Message:
Extend special_init/special_deinit API

Its pretty common for callback style APIs to include a private pointer
to allow the user to pass in contextual data through the callback API
(see pthread_create for an example). This change adds that for
special_init() and special_deinit() which are designed as callbacks.
Effectively this behavior was used in the only two examples that used
those callbacks by having global variables, however globals are of
limited use for programs that might instantiate multiple avr cores.
Commit 24b2befe8cb30ff5592081c2cb64210761c9be78
author: Michel Pollet [Wed, 12 Feb 2014 12:26:05 +0000 (12:26 +0000)]
Message:
Merge pull request #41 from nnayo/segfault

correct a segfault
Commit 01df079331dc0ff266f73ae5e55deb91228907c9
author: Michel Pollet [Wed, 12 Feb 2014 12:25:49 +0000 (12:25 +0000)]
Message:
Merge pull request #42 from nnayo/typo

fix typo
Commit ab4b6b04c4fa7059f21e03a0b3a4cbc1dd167385
author: nnayo [Wed, 12 Feb 2014 12:19:21 +0000 (13:19 +0100)]
Message:
fix typo
Commit c898381059b0ffee9d14e7cb634226a3b3ec8d2c
author: nnayo [Wed, 12 Feb 2014 10:14:51 +0000 (11:14 +0100)]
Message:
correct a segfault
Commit 406473da4e5ec7cd9fa9377f44b6e0bedf9afbb0
author: Maximilian [Wed, 12 Feb 2014 00:52:36 +0000 (01:52 +0100)]
Message:
Make Makefile safe for parallel compilation.
Commit 78703df7cf56207c5ddc982beb8819393894eb14
author: Michel Pollet [Wed, 12 Feb 2014 00:39:30 +0000 (00:39 +0000)]
Message:
Merge pull request #38 from ppd1990/megax-timer

Fix timer0 on megax MCUs. Stick to lowest common denominator (atmega8) i...