log for 199a5e98393ec3151eec2464cf97f23ebb65740f
Commit 199a5e98393ec3151eec2464cf97f23ebb65740f
author: Sami Liedes [Tue, 15 Feb 2011 23:21:38 +0000 (01:21 +0200)]
Message:
Store the next cycle count where the earliest cycle timer needs to be run.
This speeds up cycle timer processing significantly and almost doubles
the speed of the overall simulation.

Signed-off-by: Sami Liedes <sliedes@cc.hut.fi>
Commit 0fc01c9ab7f8ab9d4c4f79fa0a2ee13e927324f3
committer: Sami Liedes [Fri, 4 Feb 2011 23:57:06 +0000 (01:57 +0200)]
author: Sami Liedes [Fri, 4 Feb 2011 23:46:08 +0000 (01:46 +0200)]
Message:
Rework avr_service_interrupts() to use ffs() too for speed.
Commit 467931d9b79e3122aacb1fe4270b32963a41886d
committer: Sami Liedes [Fri, 4 Feb 2011 22:38:54 +0000 (00:38 +0200)]
author: Sami Liedes [Fri, 4 Feb 2011 22:26:54 +0000 (00:26 +0200)]
Message:
Use ffs() for finding timers from cycle timer map.

This optimization speeds up avr_cycle_timer_process() considerably. It
used to be a major bottleneck in my test case (52% of CPU time spent
in that routine), now it's about half that.
Commit 8c526abb7d8c2a0bacddf38a0c187738a6c0bf9a
committer: Sami Liedes [Wed, 2 Feb 2011 20:53:38 +0000 (22:53 +0200)]
author: Sami Liedes [Wed, 2 Feb 2011 20:18:04 +0000 (22:18 +0200)]
Message:
Return zeros when GDB reads just past end of stack.

GDB likes to read the topmost value of stack when using the
"stepi" (step instruction) command. Unfortunately this does not work
when the stack is empty, causing an error message and GDB confusion.

Hack the GDB stub code to just return zeros if GDB tries to read two
bytes just past the end of stack.

NOTE: This may need to be modified to support also longer reads for
bigger AVRs where code pointers are longer than two bytes (e.g.
ATMega2560). As simavr doesn't support atm2560 yet, I'm implementing
it this way now.
Commit 248a15167a3d116da59b493dbd381706b5dd5370
committer: Sami Liedes [Wed, 2 Feb 2011 20:53:04 +0000 (22:53 +0200)]
author: Sami Liedes [Wed, 2 Feb 2011 17:23:45 +0000 (19:23 +0200)]
Message:
Enable interrupt handling for Fast PWM timers too

Arduino seems to use that.
Commit dc151e032e426d08f289c86defc830192b7946af v1.0a6
author: Michel Pollet [Fri, 14 Jan 2011 10:19:28 +0000 (10:19 +0000)]
Message:
UART: Fixed UDRC/E behaviour

The interrupt is suposed to fire as soon as it is
enabled is the UDR is empty.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 968403610e6f99cbbc5ec5d945056215bd1604d7
author: Michel Pollet [Fri, 14 Jan 2011 10:18:40 +0000 (10:18 +0000)]
Message:
cycle timers: Added avr_cycle_timer_status()

Allows verification wether a timer is running, and
until when it is.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 32172159818cc6b3fc1124fa7ddaaefe68ed2713
committer: Michel Pollet [Mon, 25 Oct 2010 11:59:00 +0000 (12:59 +0100)]
author: Christian Balles [Tue, 19 Oct 2010 22:00:28 +0000 (00:00 +0200)]
Message:
simduino: added init/deinit functions for avr_t initialization

fixes a crash (free of mmap'ed memory)
nicer cleanup by munmap + close the file

Signed-off-by: Christian Balles <code@ballessay.de>
Commit f1ce544edfec2a00d171ccac805c3336b50e704a
committer: Michel Pollet [Mon, 25 Oct 2010 11:59:00 +0000 (12:59 +0100)]
author: Christian Balles [Tue, 19 Oct 2010 21:45:58 +0000 (23:45 +0200)]
Message:
core: added extra init/deinit functions to avr_t

allows programs like the simduino example to modify the init/deinit function
to fix a crash

Signed-off-by: Christian Balles <code@ballessay.de>
Commit b28d03a16bad7df6303b7798da3cb563bd0de06b
author: Michel Pollet [Mon, 25 Oct 2010 11:53:29 +0000 (12:53 +0100)]
Message:
misc: Typos

Fixed a few comments

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 7a591ae2df3b1f62ae2c45fe8ced6d81f7dae821
author: Michel Pollet [Tue, 12 Oct 2010 09:03:43 +0000 (10:03 +0100)]
Message:
core: Added a bit of documentation

Fixed some of the copy/paste errors in comments

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 398c292e97b5a3309fd1114988e1afdb31d0083c
author: Michel Pollet [Tue, 12 Oct 2010 09:02:55 +0000 (10:02 +0100)]
Message:
gdb: Adds the 'reset' command

Apparently needed for compatibility with AVRStudio debugger

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit e1cbefc091c5e698fa8157fadafd35446e7b918a
author: Michel Pollet [Tue, 12 Oct 2010 09:02:03 +0000 (10:02 +0100)]
Message:
console: Implement debug console register

Used in pair with the console register declaration, just
prints what's sent to that debug register.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f729045cbe16179aad8afdddde80c457a335608e
author: Michel Pollet [Tue, 12 Oct 2010 09:00:33 +0000 (10:00 +0100)]
Message:
mcu_section: Added New CONSOLE Tag

CONSOLE tag allow declaring a register for dumping debug output
oh the terminal without using an UART

Also cleaned up and documented the header file further

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit b80e6f66966b4356ef3b207ad8bac1c9a56ef480
author: Michel Pollet [Thu, 2 Sep 2010 12:01:25 +0000 (13:01 +0100)]
Message:
tests: Update them so they work...

They relied on bugs that were fixed in simavr since..

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8b7739b4a78f594ce7cf011f5031836c4c62c72f
author: Michel Pollet [Thu, 2 Sep 2010 12:00:48 +0000 (13:00 +0100)]
Message:
IOs: Use new IRQ alloc function

All converted to the brand new way...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 83d4a7e3552c184c18baa384487eedf10929cb3a
author: Michel Pollet [Thu, 2 Sep 2010 11:59:59 +0000 (12:59 +0100)]
Message:
IRQs: A bit of sanity when freeing

Check the parameters...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit c8c74557657e0b89904538344f2127128c95d62a
author: Michel Pollet [Thu, 2 Sep 2010 11:56:29 +0000 (12:56 +0100)]
Message:
simavr: Deallocate resources

Deallocate memory and IO modules at teardown

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f7baf8c57b19b791863c1e9bb6e59c967ddd4871
author: Michel Pollet [Thu, 2 Sep 2010 11:55:40 +0000 (12:55 +0100)]
Message:
eeprom: Added a dealloc function

frees the eeprom memory at teardown time

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2a257b4e22df120dd4a811012675158039a93c7d
author: Michel Pollet [Thu, 2 Sep 2010 11:55:05 +0000 (12:55 +0100)]
Message:
ios: Added a way to set and teardown modules IRQs

Added a function to set the io module IRQ, and added a way
to deallocate them at teardown time.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8d8d509d59334ba6d031f0b8544bf7aa89ac546e
author: Michel Pollet [Thu, 2 Sep 2010 10:59:07 +0000 (11:59 +0100)]
Message:
misc: Made (most) of the headers c++ friendly

No functional changes

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 6280c0db426bfca89fd4bd1015b1bbda44296314 v1.0a5
committer: Michel Pollet [Tue, 31 Aug 2010 11:43:24 +0000 (12:43 +0100)]
author: Michel Pollet [Tue, 31 Aug 2010 11:31:37 +0000 (12:31 +0100)]
Message:
misc: Fixed clang static analizer warnings

One genuine bug too. The rest was cosmetic.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2a64138243a89df06b0f6ab4c9ce47f130af53d9
author: Michel Pollet [Tue, 31 Aug 2010 10:55:29 +0000 (11:55 +0100)]
Message:
ioport: Added an IRQ for the port pin direction changes

New IRQ for client code (ie "board code") will be called
when the AVR firmware changes the DDR register.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit ad7ea664f377587f9e91b6c685e8bbedd8f489d4
author: Michel Pollet [Tue, 31 Aug 2010 10:48:44 +0000 (11:48 +0100)]
Message:
ioport: Add an ioctl to get the port state

Example:
for (int i = 'A'; i <= 'F'; i++) { avr_ioport_state_t state;
if (avr_ioctl(AVR_IOCTL_IOPORT_GETSTATE(i), &state) == 0)
printf("PORT%c %02x DDR %02x PIN %02x\n",
state.name, state.port, state.ddr, state.pin);
}

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2df48dd56ca8c9f93e9c20dc98492408d0b34f5b
author: Michel Pollet [Tue, 31 Aug 2010 10:30:49 +0000 (11:30 +0100)]
Message:
misc: Typos etc

Makefile now uses $(CC) so it works with clang static analyzer.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit e0e85ba6e358f9d5b757671e1a7d236f522f3bb4
author: Michel Pollet [Wed, 25 Aug 2010 15:07:31 +0000 (16:07 +0100)]
Message:
core: CALL/RET instructions fix

Swap LSB and MSB of return address on the stack.
Thanks to "Peter" on the simavr mailing list.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f4b8df2dc232bc3f111c27212e54b6cbb8fe6851
author: Michel Pollet [Tue, 10 Aug 2010 21:51:31 +0000 (22:51 +0100)]
Message:
core: Add PORTA support for Attiny2313

The Attiny2313 has a PORTA, the pins for it are normally used for
reset and the crystal, but it is possible to use them if you use the
internal R/C oscilator.
Simavr didn't support this port on a Attiny2313 yet, so I added it myself.

Signed-off-by: Wander Winkelhorst <w.winkelhorst@gmail.com>
Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 0d3f95abd5081d99eee487223c01ff31311d3f0b
author: Michel Pollet [Mon, 2 Aug 2010 21:38:44 +0000 (22:38 +0100)]
Message:
timer: Fix for older AVRs & tinies

They lack WGM bits

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 4055170baf10c38cee41c87e988b7d992f306131 v1.0a4
author: Michel Pollet [Mon, 5 Jul 2010 10:09:20 +0000 (11:09 +0100)]
Message:
core: Fix SBRS/C for 32 bits instructions

Untested, but matches the datasheet

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 9567c05d43d21ecc4fcb526109773f7174a6c4cd
author: Michel Pollet [Mon, 5 Jul 2010 10:08:08 +0000 (11:08 +0100)]
Message:
core: Fix MULS register

MULS uses 16+ registers.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 43f857c899e543312dbabb2e53d8eaf10f6c82f6
author: Michel Pollet [Fri, 25 Jun 2010 08:17:19 +0000 (09:17 +0100)]
Message:
ADC: Fix ADLAR bit handling

Was shifting when zero, not one.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit d784bdd3232472f44a1c49c78f68912b109f849c
author: Michel Pollet [Sun, 20 Jun 2010 10:25:53 +0000 (11:25 +0100)]
Message:
timer: Also reconfigure on writing the WGM bits

Some broken code configure the clock source before
setting the waveform bits.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 160884eda003b467dfe92cb007c4f25a6cb5e6e1
author: Michel Pollet [Sun, 20 Jun 2010 10:24:54 +0000 (11:24 +0100)]
Message:
ioports: Cleanup and implement PINx toggle

Turns out writing 1 to PINx register toggles the
bit in PORTx. Did'nt know it worked like that...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 630883c7ad7b7db4b59b3a8a9fa5a975408d3278
author: Michel Pollet [Tue, 11 May 2010 11:36:26 +0000 (12:36 +0100)]
Message:
uart: Now use avr_clear_interrupt_if

New function simplifies clearing pending bits

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 7e3e150b0ee5a4af352b26e96a6512272214d69e
author: Michel Pollet [Tue, 11 May 2010 11:35:46 +0000 (12:35 +0100)]
Message:
timer: Allow clearing of the interupts

Allow exclicit clearing of interupts by writing 1
to the pending bit.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 1b82822bf8b61bd4aa84882112f9f4690e865e15
author: Michel Pollet [Tue, 11 May 2010 11:34:35 +0000 (12:34 +0100)]
Message:
interrupts: Mark interupts as pending even if not enabled...

.. Then trigger them as soon as they are enabled again

There is a bit of performance hit on this, since the bitmask
array used before can now be full of pending bits that won't
ever be cleared..

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit d22d7636f84b511ef601bdd87d76dff6d5bdca2a
author: Michel Pollet [Thu, 29 Apr 2010 10:51:45 +0000 (11:51 +0100)]
Message:
ICP: Added Input capture pin support to timers

Added (untested as of now) Input Pin Capture to the 16 bits
timers. The "edge" flag is also handled. The code is untested
for now, it will need an "example" board that will be
checked in later.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 42dab7385192880a35e9d88f64dc19c1b8d94393 v1.0a3
author: Michel Pollet [Wed, 14 Apr 2010 21:59:23 +0000 (22:59 +0100)]
Message:
cores: Added tinyX5 and mega128 ADC bits

Not tested

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 3d05eefe53540c6abfbdf9cd5498ae9f0e2b44b6
committer: Michel Pollet [Wed, 14 Apr 2010 19:47:49 +0000 (20:47 +0100)]
author: Alessio Igor Bogani [Wed, 14 Apr 2010 18:17:36 +0000 (20:17 +0200)]
Message:
misc: Warning fix

Makes gcc happy

Signed-off-by: Alessio Igor Bogani <abogani@texware.it>
Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 0e289207e004cc765cecf1e93d3fa27dec0cec3e
committer: Michel Pollet [Wed, 14 Apr 2010 19:46:15 +0000 (20:46 +0100)]
author: Alessio Igor Bogani [Wed, 14 Apr 2010 18:17:24 +0000 (20:17 +0200)]
Message:
misc: More warning fixes

#warning "This file has been moved to <util/delay.h>."

Signed-off-by: Alessio Igor Bogani <abogani@texware.it>
Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit a505da20f7d1f12a5cf0addacca9f2e7c3a2c168
committer: Michel Pollet [Wed, 14 Apr 2010 19:45:10 +0000 (20:45 +0100)]
author: Alessio Igor Bogani [Wed, 14 Apr 2010 18:17:01 +0000 (20:17 +0200)]
Message:
misc: Fix warning replacing %d with %zu for size_t

Warning fixes.

Signed-off-by: Alessio Igor Bogani <abogani@texware.it>
Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8dee5c5e8280c37585009a69c3f2ecc93e09f9e3
author: Michel Pollet [Wed, 14 Apr 2010 19:43:14 +0000 (20:43 +0100)]
Message:
doc: Updated callgraph .pdf

Hadn't been updated for some time...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f04a4a3c073b0f97039daa51c563ded9afb4a5d5
author: Michel Pollet [Wed, 14 Apr 2010 19:42:46 +0000 (20:42 +0100)]
Message:
core: Fixes SBCI

Thanks to <evgeny.chukreev@gmail.com>

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 6b34bedf4f80f155bee3c3a2fe7b542ee875fbc1
author: Michel Pollet [Wed, 14 Apr 2010 17:15:23 +0000 (18:15 +0100)]
Message:
test: Add a test/example for the ADC subsystem

Loads ADC values, also reads the V1.1 reference voltage of an Atmega644

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8380de2b8f06cfefba8b5d4efd7def3a0f7e9231
author: Michel Pollet [Wed, 14 Apr 2010 17:14:27 +0000 (18:14 +0100)]
Message:
cores: Add (some) of the ADC mux data

Add ADC Mux data to the x8 and x4 cores. The others still needs
to be done. Also filled the reference voltages.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit bc864086a6b92f7409c72561bce2e604f6e324ba
author: Michel Pollet [Wed, 14 Apr 2010 17:13:21 +0000 (18:13 +0100)]
Message:
ADC: Fully functional core

simavr ADC allows external code to feed real voltages to the
simulator, and the simulator uses it's 'real' reference voltage
to do the right thing and return the 'proper' 10 bits ADC value
to the AVR firmware.

To send values to the ADC, register your code to wait for the
ADC_IRQ_OUT_TRIGGER irq, and at that point send any of the
ADC_IRQ_ADC* with Millivolts as value.

External trigger is not done yet.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 9903ca718a19106ac341f28e377cd0ba7f6fbb0e
author: Michel Pollet [Wed, 14 Apr 2010 17:11:49 +0000 (18:11 +0100)]
Message:
core+elf: Add fields for the MCU voltages

You can now specify AVR_MCU_VOLTAGES(vcc, avcc, aref) in millivolts
in your firmware to set them into the simavr core.

Prerequisite for ADC VREF support.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 46876e7b76884fb5134386c0462601644c847927
author: Michel Pollet [Wed, 14 Apr 2010 17:09:38 +0000 (18:09 +0100)]
Message:
run_avr: Add a way to trace just interruots vectors

Calling run_avr with -ti <value> will trace the scheduling
of that pacticular vector.
You can have up to 8 traces.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit ccad49469feb37e21424df67c385e53c95459668 v1.0a2
author: Michel Pollet [Wed, 14 Apr 2010 17:05:12 +0000 (18:05 +0100)]
Message:
timer: Fixed an off by one

That was breaking the timers badly in corner cases

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 3553935eb73ece657d88c8e2f5fe4c1d01deebc5
committer: Michel Pollet [Sun, 11 Apr 2010 19:11:51 +0000 (20:11 +0100)]
author: Michel Pollet [Sun, 11 Apr 2010 19:11:41 +0000 (20:11 +0100)]
Message:
cores: Updated comparators

Also filled up the ones for tinyx5, megax4, tiny2313

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 685e0118e40fa4217d42a57b715ab6eab036e2bf
author: Michel Pollet [Sun, 11 Apr 2010 19:11:00 +0000 (20:11 +0100)]
Message:
timer: Changed timer config feom a bit array to a normal regbit

Since all the timer seems to have these 2 bits declared
in the same way anyway...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit d2196da73575ab6fafce44ddbe817ae20b61e8c0
author: Michel Pollet [Sun, 11 Apr 2010 18:38:24 +0000 (19:38 +0100)]
Message:
ELF: Fixes a bad malloc

How it didn't crash before, no idea...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 5268a8b5858aae31aeb6160e8dd071af1c030d67
author: Michel Pollet [Sun, 11 Apr 2010 18:36:59 +0000 (19:36 +0100)]
Message:
mega128: Fixes timer comparators

Bits are in the right order now

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit b25803fd49b7c51e7c4bb1fc4336aa77ee78060d
author: Michel Pollet [Sat, 10 Apr 2010 17:05:30 +0000 (18:05 +0100)]
Message:
twi: Stripped down TWI module to fix compile

New system will take it's place soon

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit eca93983ee257cf56d2552444e66723252e35464
author: Michel Pollet [Sat, 10 Apr 2010 12:19:19 +0000 (13:19 +0100)]
Message:
example: Added OC2A to timer test

Uses OC2A toggle with a VCD trace to demo the new compators.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 12785a574be48f05786975caf6a3860b04b65575
author: Michel Pollet [Sat, 10 Apr 2010 12:18:30 +0000 (13:18 +0100)]
Message:
cores: Refactored timer comparators

Based on patch by <tomi.leppikangas@gmail.com> but fixed the other
cores to fix a few cut/paste issues.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 1c66d76823558731f3c7d091bdff84a5816f0a1b
author: Michel Pollet [Sat, 10 Apr 2010 12:16:37 +0000 (13:16 +0100)]
Message:
timer: Added comparator modes for pins

Refactored the comparators code, Added the 3 common modes of pin
toggles.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 34ba1d0838b70899855b3eca896c7852edd010be
author: Michel Pollet [Sat, 10 Apr 2010 12:15:09 +0000 (13:15 +0100)]
Message:
ioport: Added a way to get to the IRQ via register addresses

Now can do a ioctl to get the port IRQs by oassing the address of
a PORT/PIN/DDR register and a pin number.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 6b94d793538d8511466cbc804e1193427f3b080c
author: Michel Pollet [Sat, 10 Apr 2010 12:14:12 +0000 (13:14 +0100)]
Message:
ioport: Aded a way to specify the output value via IRQ

Adding 0x100 to the IRQ value simulates a pin output change
and not just a pin input change.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 14d1c0ae13a659f049bf5907eaaeb6a6c40af27a
author: Michel Pollet [Sat, 10 Apr 2010 10:35:32 +0000 (11:35 +0100)]
Message:
ioport: No longer need pcint to change the value

IRQ callback changes the AVR memory even if the pcint is
not present.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f1fb1de3fce7aab23e7e52bc8b93067dda2ee5dc
committer: Michel Pollet [Tue, 6 Apr 2010 11:34:43 +0000 (12:34 +0100)]
author: Michel [Sun, 4 Apr 2010 14:36:17 +0000 (15:36 +0100)]
Message:
TWI: Temp TWI changes with new IRQ system

Signed-off-by: <>
Commit 85b82a19d9cd53f7eea9b8b58852f550e53b16fb
author: Michel Pollet [Mon, 5 Apr 2010 12:39:06 +0000 (13:39 +0100)]
Message:
extint: Add more extints IRQs

... and use them on the Mega128 core

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit bb635750795bb0cd7038c4595ee4d4136d05f58c
author: Michel Pollet [Sun, 4 Apr 2010 12:43:32 +0000 (13:43 +0100)]
Message:
core: Added EIND support

Not used in any core, for now. It would still need 24 bits PC support
with return addresses to match.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 93ee08fed2cd1f6ea9aa904f569d516ba3e12c00
author: Michel Pollet [Sun, 4 Apr 2010 11:24:29 +0000 (12:24 +0100)]
Message:
cores: Added Mega128

Contributed by Tomi Leppikangas <tomi.leppikangas@gmail.com>

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit d8ba7b5ac558214e0baa3ea39ee79c4a1b9bc451
author: Michel Pollet [Sun, 4 Apr 2010 11:22:42 +0000 (12:22 +0100)]
Message:
watchdog/eeprom: Added declaration blocks for older cores

For the mega128 generation

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 6356c90c173e9d1672001048b15468cbbe2cfd08
author: Michel Pollet [Sun, 4 Apr 2010 11:21:45 +0000 (12:21 +0100)]
Message:
timer: Added (non functional) C interrupt block

Needs some code

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 1575146c480915b29d2a7c74d34689557135953c
author: Michel Pollet [Sun, 4 Apr 2010 11:20:59 +0000 (12:20 +0100)]
Message:
flash: Add support for RAMPZ

If declared...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 1cbc06407c5d63714195e3e62a7de66b87e702b5
author: Michel Pollet [Sun, 4 Apr 2010 11:20:34 +0000 (12:20 +0100)]
Message:
core: Add support for RAMPZ and refactor instructions

Added RAMPZ as an optional IOREG for the core.
Factored the [E]I[JMP/CALL] into one blob.
Added the ELMP Instruction with RAMPZ support.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit a66d8340ffef8679d66c438f4e92a6a8b3de5404
author: Michel Pollet [Sun, 4 Apr 2010 11:18:31 +0000 (12:18 +0100)]
Message:
Fixed multiple warnings for -Wall

Twasn't that bad really.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8476fda9ee4e5eb6f58b23af5b758b99a9549242 v1.0a1
author: Michel [Fri, 12 Mar 2010 08:06:13 +0000 (08:06 +0000)]
Message:
run_avr: Cosmetics

Comments, prints etc.

Signed-off-by: Michel Pollet <buserro@gmail.com>
Commit 6aca02e8e4ff9d146e865b79d99a5b32cee1e7aa
author: Michel [Wed, 10 Mar 2010 18:08:02 +0000 (18:08 +0000)]
Message:
Makefile: Include eeprom data in .hex files

Now that the loader can load them, include the eeprom
section in the .hex files generated for the examples

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 5d6254c8da54127276ecdd48069f00f19788693f
author: Michel [Wed, 10 Mar 2010 18:07:07 +0000 (18:07 +0000)]
Message:
run_avr: Supports loading new hex files

Can now load .hex files multiple sections, and also allow
specifying multiple .hex files to load in flash and/or
eeprom.
./run_avr ... -ff flash.hex -ee eeprom.hex ...

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2fcc8cad6c1b9170df90e0e6463d9f77b263ecf5
author: Michel [Wed, 10 Mar 2010 18:05:42 +0000 (18:05 +0000)]
Message:
elf: Added constants for flash & eeprom start

Added some constants for the addresses used by gcc
to link the flash and eeprom data.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8e4434caffc71abb2fd984e807c70bb211c99a68
author: Michel [Wed, 10 Mar 2010 18:04:53 +0000 (18:04 +0000)]
Message:
hex: Added a new reader for multiple chunks

.hex files can contain more than one section of data
this new loader handles that, allowing to have multiple
section of flash (app + bootloader) and/or eeprom.
Oh, a test unit too.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 28a1de8141b4483249fc4d39c5414d343037a7dd
author: Michel Pollet [Thu, 25 Feb 2010 22:13:11 +0000 (22:13 +0000)]
Message:
VCD: Fixed a buffer overflow

In case we're dumping 32 bits wide traces (!)

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit cf3a3b74da7cfe027bcaa5ef22302785da8a034e
author: Michel Pollet [Thu, 25 Feb 2010 22:12:36 +0000 (22:12 +0000)]
Message:
TWI: Work in progress

Changed to look more like qemu

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2ad03ef173cc675dbd798aff01ffb97eabfe1d0e
author: Michel Pollet [Mon, 11 Jan 2010 08:06:59 +0000 (08:06 +0000)]
Message:
Readme fix

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 2f67001d8fab0cf3d51100b15e79f53caccc31b0
committer: Michel Pollet [Wed, 6 Jan 2010 22:47:36 +0000 (22:47 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:45:30 +0000 (22:45 +0000)]
Message:
core: Simplify changes to SREG

SREG is no longer re-synthetized at every instruction,
but only when the firmware reads the register.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 7e88785f549405846d957a8d74dc92d92bc57ba6
committer: Michel Pollet [Wed, 6 Jan 2010 22:47:18 +0000 (22:47 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:37:50 +0000 (22:37 +0000)]
Message:
misc: Small cleanup

Removed mutiple defined constants etc

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit d66e69e76555ea18c8bc8c1c8b72fb051061965d
committer: Michel Pollet [Wed, 6 Jan 2010 22:47:18 +0000 (22:47 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:44:15 +0000 (22:44 +0000)]
Message:
eeprom: fix a less-than bug

Prevented loading the eeprom entire size

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit eb090a5c1e8e418281c79081620896772f08e977
committer: Michel Pollet [Wed, 6 Jan 2010 22:47:18 +0000 (22:47 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:38:25 +0000 (22:38 +0000)]
Message:
watchdog: Added a test module

Small module that tests the watchdog timer

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit bd30ae8119d72bf624b771d4a99006c5581302b5
committer: Michel Pollet [Wed, 6 Jan 2010 22:43:10 +0000 (22:43 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:37:09 +0000 (22:37 +0000)]
Message:
cores: Add watchdog

Add watchdog block to the existing cores

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 163dd8199d1c63b6321ea54bb382339a3b35a5e3
committer: Michel Pollet [Wed, 6 Jan 2010 22:43:10 +0000 (22:43 +0000)]
author: Michel Pollet [Wed, 6 Jan 2010 22:35:51 +0000 (22:35 +0000)]
Message:
core: Add watchdog timer support

Working base support for the watchdog timer,
and the WDT instruction that resets it.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 4570a6e37e546fa40d59d6c7d2e9b8a2204b66e3
author: Michel [Sat, 26 Dec 2009 14:52:59 +0000 (14:52 +0000)]
Message:
examples: Ported to Snow Leopard

Uses OSX frameworks if applicable

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit a01329d1ee30a22840908d26087a72f22355f496
author: Michel Pollet [Sat, 26 Dec 2009 13:34:15 +0000 (13:34 +0000)]
Message:
core: Shuffled code around

Moved cycle timer code into it's own files

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 741c561aa23730f12c93e420f80be00072a732cd
author: Michel Pollet [Sat, 26 Dec 2009 13:33:15 +0000 (13:33 +0000)]
Message:
UART: Added documentation

On how to use the xon/xoff IRQs

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 8df158553ef7f2f9569dc307bc4dee6c66e860f4
author: Michel Pollet [Sat, 26 Dec 2009 13:32:41 +0000 (13:32 +0000)]
Message:
cores: Added selfprog bootloader support to x4 series

Untested, but behaves the same as x8 so it should work..

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 9ae2524d677910b10ef8c5740c7283a4f54189c6
author: Michel Pollet [Sat, 26 Dec 2009 13:31:06 +0000 (13:31 +0000)]
Message:
doc: Added a doc directory, and a callgraph generator

You need ctags, graphviz and ruby to re-generate it

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 0a764c4ef24512959bcbb47eb905470a113fa856
author: Michel Pollet [Thu, 24 Dec 2009 16:59:33 +0000 (16:59 +0000)]
Message:
simduino: Bootloader now works!

Can program simduino with avrdude!
See the readme for the howto

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 25384aea24b0679e539672b21d749a8720b5f6f5
author: Michel Pollet [Thu, 24 Dec 2009 16:58:08 +0000 (16:58 +0000)]
Message:
UART: Added a flag to disable stdio traces

Also fixed the UART when used in non-interupt mode.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit a69c6da93a2eb6f4c182789b64ee73f50b2577a0
author: Michel Pollet [Thu, 24 Dec 2009 16:56:27 +0000 (16:56 +0000)]
Message:
SPM: Added Self Programming Instruction & Support

Added the SPM support to the core, and to the x8 devices.
Tested with Arduino's bootloader.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit ebe62299d3a9c513ca5b28ad0af013d8b7743ea2
author: Michel Pollet [Thu, 24 Dec 2009 16:54:25 +0000 (16:54 +0000)]
Message:
timer: No longer craksh when reading TCNT with timer off

Thanks to Jon Escombe

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 06c9a359fc67f1cd5254c4bb6e36a496b8f65588
author: Michel Pollet [Wed, 23 Dec 2009 22:42:51 +0000 (22:42 +0000)]
Message:
Simduino: Teaser

Forget about it, it doesn't work yet. Loads the bootloader
and thats about it.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit c510e78a26f9fdccd19cfa3b5500de8cb63798fb
author: Michel Pollet [Wed, 23 Dec 2009 22:28:01 +0000 (22:28 +0000)]
Message:
Makefile: minor update

Added the optional trace define

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 90d3defe5aae8bbc85d9f71c4b788f98d6666f77
author: Michel Pollet [Wed, 23 Dec 2009 22:27:31 +0000 (22:27 +0000)]
Message:
UART: Implement a system of flow control

+ The uart now signals (using IRQs) when it's fifo is full and
empty. This allow controling code to send new bytes, or to pause.
+ The uart also now understand the Baud rate and prints it.
+ Added new IOCTL to get/set the UART emulation flags

A new mode of the UART was made specialy for code that spinloops
waiting to get/send a byte. Now if the uart detects that, it will
insert a usleep() when the uart is idle, this will prevent
code from eating 100% cpu doing nothing.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit f93ae3d0b1d2c92859ffb1838c4b6edbaaa1b828
author: Michel Pollet [Wed, 23 Dec 2009 22:23:21 +0000 (22:23 +0000)]
Message:
core: No longer crash if "codeline" is missing

Debug macros were crashing if the symbols had not been loaded,
and they are never loaded when usin a .hex file

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit a2c20ba4beff2186de521d35f137a0e2fef47779
author: Michel Pollet [Wed, 23 Dec 2009 22:22:23 +0000 (22:22 +0000)]
Message:
run_avr et al. New HEX format loader

simavr can now load .hex files directly, It is obviously a lot
more primitive than the ELF loader, but it works.
You have to specify the MCU and the AVR frequency on the command
line to run a .hex, otherwise simavr has no clue what it's suposed
to do.

Also reworked run_avr to get rid of getopt, moved the
read_hex_string function into the new sim_hex.[ch], and now
understand that the base addresd of code is not always zero.

This allows loading of a bootloader (tada!)

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit cb533ae28fd0e051e42bdeae43965ec6faf9ae1f
author: Michel Pollet [Wed, 23 Dec 2009 22:17:46 +0000 (22:17 +0000)]
Message:
core: Added a new ELF tag with AVR->simavr command path

This new mode allow the AVR firmware to specify an (unused)
AVR IO register as a "command path" to send commands back to
simavr.
It allows for example the firmware to start/stop the VCD trace
dump, exactly where it should from the ooint of view of the
firmware being ran.

See atmega88_uart_echo.c for an example.

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 5b4715f65f3f199bdff178dce139912ed64addb8
author: Michel Pollet [Wed, 23 Dec 2009 00:52:41 +0000 (00:52 +0000)]
Message:
comments: What don't you typo the comments, too ?

Fixed a few!

Signed-off-by: Michel Pollet <buserror@gmail.com>
Commit 358619f222d2a3610168eb34a0db2c4b09e4e618
author: Michel Pollet [Tue, 22 Dec 2009 16:24:35 +0000 (16:24 +0000)]
Message:
timer: Implemented some of the ICR based timers

Also made a PWM and a Fast PWM mode. Fast pwm doesm't use the
interrupts, as most of the time it's never used. Aldo it kills
performanves when calling a timer every 400 cycles.

Signed-off-by: Michel Pollet <buserror@gmail.com>