Thomas Perrot
44803ea4fd
cpu/atmega32u4: add support for ATmega32U4
2019-05-24 15:12:47 +02:00
Marian Buschsieweke
20b9ef7c5b
cpu/atmega_common: Fix function attributes
...
Functions marked with __atribute__((naked)) may only use basic inline assembly
and must not use any c code. The functions __enter_thread_mode() and
cpu_switch_context_exit() are using C code, so they must not be marked as
naked.
2019-04-26 11:02:01 +02:00
Marian Buschsieweke
70cf9b34c7
cpu/atmega_common: Add barriers to irq_*()
...
To prevent reordering of accesses to the interrupt control register when link
time optimization (LTO) is enabled, memory barriers are needed. Without LTO
calls to the external functions irq_disable(), irq_restore(), irq_enable() and
irq_is_in() have the same affect as compiler barriers, as the compiler is unable
to prove that reordering of memory accesses is safe (from a single-threaded
point of view). With LTO the compiler can easily prove that reordering is safe
from a single-threaded point of view: Thus, the compiler may move memory
accesses wrapped in irq_disable(), irq_restore() across those calls.
The memory barriers will have no effect on non-LTO builds.
2019-04-25 17:42:15 +02:00
Marian Buschsieweke
48fabca38d
cpu/atmega_common: Fix return value of irq_enable
...
Citing the doc of irq_enable():
@return Previous value of status register. [...]
On atmega however the new value of the status register is returned, not the one
prior to enabling interrupts.
2019-04-25 17:42:02 +02:00
Sebastian Meiling
d08a6132bf
Merge pull request #10934 from gschorcht/cpu_atmega_common_heap
...
cpu/atmega_common: make remaining RAM available as heap
2019-04-15 13:17:57 +02:00
Marian Buschsieweke
ca5e196e78
cpu/atmega_common: Move stdio_init() to cpu_init()
...
Moving atmega_stdio_init() to cpu_init() just before periph_init() guarantees
that stdio is available to allow DEBUG() in periph_init(). This also helps to
unify the boot up process of ATmega boards and de-duplicates the stdio init from
board_init().
2019-04-10 10:18:43 +02:00
Francisco Acosta
2bdcdddd76
cpu/atmega*: make use of common atmega.inc.mk and remove redundancies
...
Everything is now defined in atmega.inc.mk, following the common
RIOT-like reusability of rules and variables (e.g. cortexm.inc.mk).
2019-02-05 17:12:03 +01:00
Gunar Schorcht
ecb26526df
cpu/atmega_common: make RAM available as heap
...
Fills __malloc_heap_end with the current SP before it enters thread mode to make the remaining RAM available as a heap.
2019-02-05 02:19:58 +01:00
Gaëtan Harter
9cd50a693a
cpu/atmega_common: do not export LINKFLAGS
...
This prevent evaluating `LINKFLAGS` when not needed and when building
in docker so does not produce errors if `avr-ld` is not installed.
```
BUILD_IN_DOCKER=1 BOARD=arduino-mega2560 make --no-print-directory -C examples/hello-world/ clean
/srv/ilab-builds/workspace/git/riot_master/makefiles/toolchain/gnu.inc.mk:18: objcopy not found. Hex file will not be created.
/bin/sh: 1: avr-ld: not found
```
It removes the `/bin/sh: 1: avr-ld: not found`
2019-01-23 18:32:40 +01:00
Sebastian Meiling
0edf76d362
Merge pull request #9984 from kaspar030/refactor_atmega_libc
...
cpu/atmega_common: refactor AVR libc code into module
2019-01-22 08:41:37 +01:00
7313525035
atmega_common: refactor avr-libc-extra into avr_libc_extra module
2019-01-21 14:37:08 +01:00
MrKevinWeiss
3ce03df0ff
cpu/atmega_common/uart: Comment why brr calc is different from datasheet
...
The brr calculation on the datasheet is different than what is implmented.
This is intentional since it provides better rounding due to truncation.
There was no comment explaining that so this comment should prevent confusion.
2019-01-07 08:40:21 +01:00
c97bedcd8b
cpu/atmega_common: define eeprom clear byte value
2018-12-04 11:24:57 +01:00
Kevin "Bear Puncher" Weiss
153759b926
Merge pull request #10498 from smlng/pr/adapt/7542
...
atmega: add periph_pwm (taken from #7542 )
2018-11-29 15:54:51 +01:00
smlng
262a04c9cf
atmega: fix periph timer configuration
...
- correct number of timers for atmega328p from 2 to 1
- correct number of timer channels for atmega328p from 3 to 2
- adapt atmega periph timer implementation accordingly
2018-11-29 09:30:44 +01:00
Victor Arino
2ebb187ca9
cpu/atmega-common: PWM implementation
...
Implementation of PWM with 8-bit timers
2018-11-28 16:00:54 +01:00
Victor Arino
01420152de
cpu/atmega-common: add maps for 8-bit timers
2018-11-28 15:58:58 +01:00
PeterKietzmann
8d11ca417f
cpu/atmega_common: add mega2560 puf_sram feature
2018-11-20 09:45:32 +01:00
Francisco Acosta
b2fc9b197e
cpu/atmega*: remove unnecessary code (already factored out)
...
cpu.c and startup.c were redundant in most platforms, except for
atmega256rfr2. The common code is now in cpu/atmega_common/cpu.c
and cpu/atmega_common/startup.c. cpu_conf.h is also removed as
it's now in cpu/atmega_common/include thus shared by all atmega
based platforms.
2018-11-02 16:23:48 +01:00
Francisco Acosta
4f28407af8
cpu/atmega_common: use the same cpu_conf for all atmega based boards
...
Removes redundancy of code since all the boards were defining
the same variables. Moreover, the stack sizes are unified per
architecture, as required.
2018-11-02 16:23:48 +01:00
Francisco Acosta
feac98cc97
cpu/atmega_common: add cpu.c and startup.c common code
...
Removes duplicated code for atmega platforms. They were all
basically the same, only with the exception of atmegarfr2,
for which there is an #if statement to use the code in the
same file.
2018-11-02 16:23:47 +01:00
e9a6ebc409
cpu: drivers/eeprom: refactor periph_eeprom implementation
2018-10-16 10:39:10 +02:00
Martine Lenders
0eebda0958
atmega_common: mark closing #endif for MODULE_PERIPH_GPIO_IRQ
2018-10-09 15:10:59 +02:00
Hauke Petersen
94ff02f3c4
cpu/atmega/gpio: use gpio_irq feature
2018-09-21 08:11:20 +02:00
cladmi
9720d9c51c
cpu/atmega_common: Allow specifying a reserved space in ROM
...
It is defined using the `ROM_RESERVED` variable.
This should allow supporting arduino bootloader that is stored at the
end of the ROM.
2018-09-05 12:20:36 +02:00
cladmi
493cad03da
atmega_common: make rom and ram length definition mandatory
...
Now all atmega cpu define them so use them by default.
2018-09-05 12:20:33 +02:00
cladmi
098770aeda
atmega_common: use binutils 2.26 ldscript for older versions
...
This allows configuring __TEXT_REGION_LENGTH__ and __DATA_REGION_LENGTH__
for previous versions (ubuntu xenial for example).
2018-09-05 12:20:17 +02:00
cladmi
6e148bcf1b
atmega_common: allow defining rom and ram length for link.
...
Allow configuring __TEXT_REGION_LENGTH__ and __DATA_REGION_LENGTH__ linkerscript
variables using ROM_LEN and RAM_LEN makefile variables.
2018-09-05 12:08:31 +02:00
ZetaR60
db7734261c
Merge pull request #9823 from fesselk/patch-1
...
atmega_common/gpio_init: fix pull-up settings for GPIO_IN_PU
2018-09-03 20:30:53 -04:00
Karl Fessel
d9aac6a7d4
atmega_common/gpio_init: fix pull-up settings for GPIO_IN_PU
...
This Patch makes gpio_init precalculate the pin mask once,
This Patch makes gpio_init of atmega_common configure the pin as an input and configure the pullup in the case of GPIO_IN_PU.
GPIO_IN_PU and GPIO_IN need to change pullup so they need to change output (this is coverd by the not touching outputs is not guaranteed statement)
(this is a special case for atmega the pull_up is configured by writing 1 to the port_register which is also the level of the output if the pin is configured to output).
This fix makes it more compliant to comments in periph/gpio.h
2018-08-27 20:34:10 +02:00
Hauke Petersen
c2184f3454
boards/cpu/drivers/sys: use generic stdio_ if
2018-08-22 10:54:25 +02:00
Francisco Acosta
73ae563973
eeprom: Makefile.features: reorder features
...
They should be sorted alphabetically
2018-08-15 14:53:56 +02:00
Laurent Navet
c7fed1526c
cpu/atmega_common: adapt to new i2c api
...
Rework atmega i2c to match new i2c interface.
Only i2c_read_bytes and i2c_write_bytes are implemented.
2018-07-25 12:01:39 +02:00
Josarn
d6c0398f3d
atmega timer: Interrupt Pin
...
A debug pin can be used to probe timer interrupts with an oscilloscope or
other time measurement equipment. Thus, determine when an interrupt occurs
and how long the timer ISR takes.
The pin should be defined in the makefile as follows:
CFLAGS += -DDEBUG_TIMER_PORT=PORTF -DDEBUG_TIMER_DDR=DDRF \
-DDEBUG_TIMER_PIN=PORTF4
2018-07-18 20:48:17 +02:00
Peter Kietzmann
8ab20f0551
Merge pull request #9456 from ZetaR60/RIOT_atmega_gpio_misc_fix
...
cpu/atmega_common: misc gpio interrupt fixes
2018-06-29 09:18:35 +02:00
Francisco Acosta
23d176f46b
Merge pull request #8857 from ZetaR60/RIOT_atmega_time_dot_h
...
cpu/atmega_common: Use updated time.h
2018-06-28 22:29:20 +02:00
Matthew Blue
adc44e6496
cpu/atmega_common: misc gpio interrupt fixes
2018-06-28 16:06:36 -04:00
Francisco Acosta
f0dce1b920
Merge pull request #8988 from Josar/atmega_isr
...
cpu/atmega_common: __exit_isr thread_yield
2018-06-26 16:12:39 +03:00
steffen
3ad71d5be0
atmega_common/gpio.c Fixes GPIO interrupt
...
fixes the GPIO_LOW interrupt on the atmega platform.
It results from trying to shift GPIO_LOW. Since it is 0, it is not shiftable and will not be set correctly.
There were more issues with the other flanks too, as they are 0b01 or 0b00. If 0b11 was set as a flank before it would not be able to switch to any other mode anymore. Now the bits get cleared before the new flank will be written.
2018-06-21 11:28:42 +02:00
Josarn
91359631d5
cpu/atmega_common/thread_arch.c: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
40c1839a8c
cpu/atmega_common/periph/uart.c: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
0e491861af
cpu/atmega_common/periph/timer.c: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
fe92771372
cpu/atmega_common/include/cpu.h: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
9b631170cb
cpu/atmega_common: uncrustified
2018-06-14 21:47:33 +02:00
Josarn
80b02e5268
cpu/atmega_common: exit_isr thread_yield
2018-06-14 21:47:33 +02:00
Francisco Acosta
1aed925ca8
Merge pull request #8951 from ZetaR60/RIOT_atmega_ext_int_clarity
...
cpu/atmega_common: external interrupt fix and refactor
2018-05-30 16:33:34 +02:00
Matthew Blue
533388d3ae
cpu/atmega_common: external interrupt fix and refactor
2018-05-29 11:24:15 -04:00
Matthew Blue
dfa8fb919d
sys/timex: fix incompatible atmega time.h
2018-05-28 13:04:55 -04:00
Matthew Blue
442634728f
cpu/atmega_common: add struct timespec to time.h
2018-05-28 13:04:55 -04:00
Matthew Blue
b597700a67
cpu/atmega_common: ignore format of avr-libc in CI
2018-05-28 13:04:55 -04:00
Matthew Blue
2a92d480ea
cpu/atmega_common: Use updated time.h from avr-libc-2.0.0
2018-05-28 13:04:55 -04:00
364806e585
cpu/atmega_common: add support for eeprom periph interface
2018-05-24 14:07:55 +02:00
Francisco Acosta
8ab908146e
Merge pull request #8959 from aabadie/pr/cpu/guard_atmega_common
...
cpu/atmega_common: remove useless periph file guard
2018-05-22 19:57:46 +02:00
3f1657ffbb
Merge pull request #8952 from ZetaR60/RIOT_atmega_graceful_clock
...
boards/common/atmega: gracefully handle CKDIV8 fuse
2018-05-14 16:11:17 +02:00
Matthew Blue
55a7d8f83d
boards/jiminy-mega256rfr2: remove context swap defines
2018-05-03 17:29:28 -04:00
Matthew Blue
2979626ef6
boards/common/atmega: gracefully handle CKDIV8 fuse
2018-05-02 14:05:33 -04:00
Matthew Blue
ac2b643308
cpu/atmega_common: return to non-interrupt context swaps
2018-04-27 14:13:34 -04:00
1195ee609f
cpu/atmega_common: remove useless periph file guard
2018-04-16 09:58:44 +02:00
Vincent Dupont
0d9badfab5
atmega_common: improve posix_unistd syscalls
...
Add open implementation and improve fcntl with variable arguments
2018-04-13 10:51:07 +02:00
2866a26a24
Merge pull request #8808 from Josar/atmega_stackPointer
...
cpu/atmega_common: use __temp_reg__
2018-04-09 12:05:29 +02:00
391cc83881
cpu/atmega_common: provide common stdio initialization
2018-04-03 14:18:32 +02:00
Josarn
2ef1001ec7
cpu/atmega_common: use __temp_reg__
2018-03-30 10:22:32 +02:00
Matthew Blue
d3dc49e2ab
cpu/atmega_common: Support for ATmega1284P
2018-03-25 14:24:40 -04:00
Josarn
d82f1eba4c
atmega: add last instruction print
...
Signed-off-by: Josua Arndt <josuaarndt@live.de>
2018-03-06 14:57:18 +01:00
Hauke Petersen
47a500d0b1
Merge pull request #8447 from haukepetersen/opt_test_periphuartpower
...
tests/periph_uart: included power_on/off() in test
2018-03-05 09:49:20 +01:00
Josarn
3bace2bd24
cpu/atmega-common: Adjustments Jiminy-mega256rfr2
...
Signed-off-by: Josua Arndt <josuaarndt@live.de>
Signed-off-by: Steffen Robertz <steffen.robertz@online.de>
2018-03-02 13:33:26 +01:00
Hauke Petersen
ce9e6f4eb0
cpu/atmega_common: add empty uart/power_x functions
2018-03-02 10:53:55 +01:00
7847a91e12
cpu: instead of cpp-style, use C-style comments
2018-02-06 16:59:58 +01:00
Martine Lenders
39c122155c
Merge pull request #7995 from smlng/make/fix/unused_params
...
make: fix unused-params error
2017-11-28 14:46:23 +01:00
smlng
7309171303
build: fix unused parameter errors
...
cpu, sam0_common: fix unused parameter in periph/spi
cpu, kinetis_common: fix unused parameter in periph/spi
cpu, cc2538: fix unused param in periph/i2c
cpu, cc2538: fix unused param in periph/spi
cpu, sam3: fix unused param in periph/spi
cpu, stm32_common: fix unused param in periph/pm
cpu, stm32f3: fix unused params in periph/i2c
cpu, nrf5x_common: fix unused param in periph/gpio
cpu, nrf5x_common: fix unused param in periph/spi
cpu, lpc2387: fix unused params in periph/spi
cpu, cc2538: fix unused params in radio/netdev
cpu, cc2650: fix unused params in periph/uart
cpu, lm4f120: fix unused param in periph/spi
cpu, lm4f120: fix unused params in periph/timer
cpu, lm4f120: fix unused params in periph/uart
cpu, stm32_common: fix unused params in periph/dac
cpu, stm32l0: fix unused params in periph/i2c
cpu, msp430fxyz: fix unused params in periph/uart
cpu, mips: fix unused params
cpu, cc430: fix unused-params in periph/timer
cpu, msp430fxyz: fix unused params in periph/spi
drivers, cc2420: fix unused param
cpu, mips32r2_common: fix unused params in periph/timer
cpu, cc2538: fix unused-param in periph/i2c
cpu, mips32r2_common: fix unused-param in periph/timer
cpu, msp430fxyz: fix unused params in periph/timer
cpu, atmega_common: fix unused params in periph/spi
driver, nrfmin: fix unused params
cpu, cc2538_rf: fix unused params
driver, netdev_ieee802514: fix unused param
cpu, mip_pic32m: fix unused params
cpu, lpc2387: fix unused params in periph/pwm
tests/driver_sdcard_spi: fix unused params
cpu, sam3: fix unused param in periph/pwm
tests/driver_dynamixel: fix unused params, and style issues
cpu, cc430: fix unused param in periph/rtc
cpu, atmega_common: fix unused params in periph/i2c
2017-11-28 14:36:01 +01:00
smlng
e381317fbf
make: fix sign-compare errors
...
cpu, nrf5x_common: fix sign-compare in periph/flashpage
drivers, periph_common: fix sign-compare in flashpage
cpu, sam0_common: fix sign-compare error in periph/gpio
cpu, cc2538: fix sign-compare in periph/timer
cpu, sam3: fix sign-compare in periph/gpio
cpu, stm32_common: fix sign-compare in periph/pwm
cpu, stm32_common: fix sign-compare in periph/timer
cpu, stm32_common: fix sign-compare in periph/flashpage
cpu, nrf5x_common: fix sign-compare in radio/nrfmin
cpu, samd21: fix sign-compare in periph/pwm
cpu, ezr32wg: fix sign-compare in periph/gpio
cpu, ezr32wg: fix sign-compare in periph/timer
drivers, ethos: fix sign-compare
sys, net: fix sign-compare
cpu, atmega_common: fix sign-compare error
cpu, msp430fxyz: fix sign-compare in periph/gpio
boards, msb-430-common: fix sign-compare in board_init
driver, cc2420: fix sign-compared
sys/net: fix sign-compare in gnrc_tftp
driver, pcd8544: fix sign-compare
driver, pn532: fix sign-compare
driver, sdcard_spi: fix sign-compare
tests: fix sign_compare
sys/net, lwmac: fix sign_compare
pkg, lwip: fix sign-compare
boards, waspmote: make CORECLOCK unsigned long to fix sign_compare error
tests, sock_ip: fix sign compare
tests, msg_avail: fix sign compare
tests, sock_udp: fix sign compare
boards: fix sign-compare for calliope and microbit matrix
2017-11-28 11:55:48 +01:00
32c10ae2c9
core, cpu: rename thread_start_threading() -> cpu_switch_context_exit()
2017-11-16 14:40:16 +01:00
86665b71bf
cpu: adapt to COREIF_NG removal
2017-11-16 14:40:16 +01:00
smlng
27c2ee50f9
cpu, atmega_common: fix returns and error codes in periph/i2c
2017-11-13 13:23:06 +01:00
Laurent Navet
9de00af063
cpu/atmega_common: add adc driver
2017-11-10 14:19:08 +01:00
a20745b6c5
cpu: make use of Makefile.periph
2017-11-06 12:01:19 +01:00
Martine Lenders
60d543ab3d
Merge pull request #7862 from roberthartung/atmega_common_fix_periph
...
atmega_common: renames periph for atmega_common_periph
2017-11-06 11:55:59 +01:00
Robert Hartung
491f420651
cpu/atmega_common: renames periph module
2017-11-06 11:38:26 +01:00
1e52f8d292
cpu: atmega: reorganize Makefile.features
2017-11-02 12:59:45 +01:00
lebrush
c054e38156
Merge pull request #7590 from lebrush/fix/atmega-gpio-misc
...
GPIO interrupt fixes for atmega328p
2017-09-15 11:59:11 +02:00
Victor Arino
6365466078
cpu/atmega_common: fix GPIO INT filter
2017-09-14 20:40:13 +02:00
Victor Arino
294594908a
cpu/atmega_common: support for flank low
2017-09-14 20:40:13 +02:00
Victor Arino
650cf81e8a
cpu/atmega_common: fix gpio interrupt for atmega328p
2017-09-14 20:34:11 +02:00
Robert Hartung
914025973d
cpu/atmega: use power.h defines instead of direct register access
2017-09-14 14:04:14 +02:00
b2f40534b1
Merge pull request #7541 from lebrush/fix/atmega_typo
...
Atmega fix typo and empty space
2017-09-01 20:29:12 +02:00
dnahm
b313c02c7c
Adapted to comments II
2017-08-31 16:11:34 +02:00
dnahm
fe15574c6b
Adapted to comments
2017-08-31 16:11:34 +02:00
dnahm
7bab826c38
cpu/atmega_common: add i2c periph driver
2017-08-31 16:11:34 +02:00
Victor Arino
3ba2177b0d
cpu/atmega_common: fix typo
2017-08-30 20:08:37 +02:00
Francisco Acosta
f2efd88f98
Merge pull request #7129 from haukepetersen/opt_periph_sharetimerset
...
cpu: add and use shared code for timer_set()
2017-08-01 15:09:48 +02:00
Peter Kietzmann
afbb00cca7
Merge pull request #7225 from dnahm/atmega_spi
...
cpu/atmega_common: adjust spi for at328p and at1281
2017-06-30 08:53:10 +02:00
dnahm
af34c87a8d
cpu/atmega_common: adjust spi for at328p and at1281
2017-06-30 08:34:47 +02:00
smlng
01af6d94c4
cpu, periph: retain constness in spi_transfer_bytes
2017-06-29 15:47:13 +02:00
smlng
692cf96297
doc: fix doxygen grouping of cpu periph drivers
2017-06-26 14:42:11 +02:00
Hauke Petersen
a1499f4190
cpu: add and use shared code for timer_set()
2017-06-02 12:21:56 +02:00
0fcc7d3834
cleanup: apply headerguard script output
2017-05-24 17:54:02 +02:00
Hauke Petersen
9aad0e528f
cpu: cleanup unused/umimplemented isr stack code
...
- removed ISR_STACKSIZE define where unused (set to 0)
- removed thread_arch_isr_stack_usage(), thread_arch_isr_stack_start(),
and/or thread_arch_isr_stack_pointer() where not implemented
2017-05-12 18:07:08 +02:00
Martine Lenders
96e0ce8ed3
atmega_common: provide implementation for POSIX syscalls
2017-04-03 20:23:14 +02:00
Oleg Hahm
1660abdc70
doc: cpu: fix doxygen
2017-03-10 14:56:28 +01:00
Joakim Nohlgård
9ec001b84b
atmega_common: Update unistd.h with prototypes of all POSIX defined functions and constants
2017-03-07 17:59:57 +01:00
Joakim Nohlgård
738876a98f
cpu/atmega_common: Improve POSIX headers
2017-03-07 17:59:57 +01:00
Hauke Petersen
ef3cdde903
cpu/atmega_common: fixed doxygen issues
2017-03-07 08:55:15 +01:00
Hauke Petersen
99c2704583
cpu/atmega: implement UART TX only
2017-02-09 10:42:53 +01:00
Anthony Merlino
23efa92cc9
cpu/atmega_common: Adds toolchain flags originally located in atmega-based boards
2017-02-02 14:12:02 -05:00
Bas Stottelaar
3b14a584b8
boards: *: remove SPI_*_EN now rework is merged
2017-01-31 19:38:41 +01:00
Hauke Petersen
f5595693f6
cpu/atmega_common: adapted SPI driver
2017-01-25 16:46:05 +01:00
Oleg Hahm
7ee7801c10
*: remove trailing underscores from header guards
2017-01-19 18:30:53 +01:00
Oleg Hahm
d0316fa7ae
periph timer: remove timer_irq_(en|dis)able
2017-01-14 15:34:53 +01:00
3e365b89fa
cpu: atmega_common: adapt to periph/pm
2017-01-12 16:26:01 +01:00
ca7bf15ac4
core: panic: adapt to pariph/pm
2017-01-12 16:26:01 +01:00
0194091673
remove obsolete lpm code
2017-01-12 11:24:15 +01:00
Jon Thacker
c62803d243
atmega_common: disable interrupts prior to rebooting
...
If the watchdog is being reset in another thread, then
the reboot will never take place. This commit disables interrupts prior
to setting the watchdog timer to 250ms. This functionallity was common
to all Atmega CPUs, so it was moved to atmega_common.
2016-12-20 17:22:39 -06:00
Hauke Petersen
2eebf36eb2
cpu/uart: make use of named return values
2016-10-28 10:32:00 +02:00
Cenk Gündoğan
9ef148e931
cpu/atmega_common: include time.h for time_t
2016-10-20 15:33:01 +02:00
Oleg Hahm
ed3aa6c46e
Merge pull request #5835 from mali/timer
...
cpu/atmega_common: fix timer_set_absolute return code
2016-09-23 19:35:22 +02:00
Ludwig Knüpfer
6d30ced410
Merge pull request #5763 from jthacker/avr_thread_arch_isr_stack_usage
...
atmega: use software interrupt for context swap
2016-09-21 21:13:05 +02:00
Martine Lenders
8a74475e70
Merge pull request #5761 from mali/rmdeadcode
...
boards/atmega_common: remove dead code on link
2016-09-12 17:01:15 +02:00
Martine Lenders
03fbe9c2a5
Merge pull request #5766 from zhuoshuguo/fix_cpu_atmega_header_include_guards
...
fix cpu/atmega header include guardes.
2016-09-12 17:00:56 +02:00
Laurent Navet
4c9c3ab7d6
cpu/atmega_common: fix timer_set_absolute return code
...
according to timer documentation, timer_set and timer_set_absolute should
return 1 on succes, not 0.
2016-09-10 00:12:39 +02:00
Jon Thacker
e0365e0bf9
atmega: use software interrupt for context swap
...
Fixes #5745
For AVR based boards, three defines must be defined AVR_CONTEXT_SWAP_INIT,
AVR_CONTEXT_SWAP_INTERRUPT_VECT, and AVR_CONTEXT_SWAP_TRIGGER.
These defines are used to trigger a software interrupt used for context
switching.
When AVR_CONTEXT_SWAP_INTERRUPT_VECT is handled, the scheduler is run
and a context swap will happen if necessary, with the resulting thread
starting following the reti instruction. This results in threads running
at normal priority instead of at interrupt priority.
Atmega devices do provide a pure software interrupt. The method used
here for waspmote-pro and arduino-mega2560 is to use pin change
interrupts, set the pin to act as an output, and toggle the value to
simulate a software interrupt. The main limitation here is that a
physical pin is now occupied and must be defined for each board
supported by RIOT. On the plus side, it provides an easy method for
detecting context swaps with an oscilloscope.
2016-09-07 14:35:53 -05:00
Shuguo Zhuo
db3a349a51
cpu/atmega: revised header include guards.
2016-09-01 18:32:17 +02:00
kYc0o
5e3747ea8b
Merge pull request #5590 from mali/atmega_common
...
cpu/atmega_common: improve to add smaller atmega MCUs.
2016-08-31 18:29:53 +02:00
Jon Thacker
0cc65db1b2
cpu/atmega_common: Add support for double speed baud generator
...
* Add support for U2X switch to double transmission speed
* Provides lower error rates when needed
* Add support for static baud rate calculation, reduces computation by 10x
* adds support for statically enabling double speed baud
2016-08-20 08:49:30 -05:00
Laurent Navet
eed73beaa1
cpu/atmega_common: prepare for atmega328p inclusion
...
use generic avr/libc definition for conditionnal compilation.
eg: use #ifdef(PORTG) or #ifdef(TIMER_0_ISRC) instead of #ifdef(Atmega328p)
This is more generic and simplify future boards support.
2016-08-20 12:23:48 +02:00
Laurent Navet
2cd918a07a
atmega_common: abstract Power Reduction Register
...
PR Register is PRR0 on atmega2560 and atmega1281
but PRR on atmega328p.
this abstracts as atmega Power Reduction Register as MEGA_PRR.
2016-08-20 12:21:32 +02:00
Laurent Navet
31029daaab
boards/atmega_common: remove dead code on link
...
Don't include unused functions and data in binary.
2016-08-18 22:08:55 +02:00
kYc0o
03d380845e
Merge pull request #5593 from jthacker/atmega_regs_common
...
cpu/atmega_common: generalize register/peripheral definitions
2016-07-13 20:17:36 +02:00
Joakim Nohlgård
b02e0eca47
ps: Add current stack pointer and start of stack to isr_stack ps output (DEVELHELP)
2016-07-12 10:17:49 +02:00
Jon Thacker
2aec999900
cpu/atmega_common: generalize register/peripheral definitions
...
Makes AVR register definitions dependent on what avr-libc defines
for a given MCU, rather then duplicating that effort here.
Definitions done in this way are based on functionality provided,
rather than a specific MCU device.
2016-07-08 10:52:22 -05:00
kYc0o
62a9773a9c
boards/waspmote-pro: add support for Waspmote PRO v1.2
2016-07-05 13:05:12 +02:00
kYc0o
be70924800
cpu/atmega2560: update atmega2560 CPU code to use atmega_common code
2016-06-22 14:25:10 +02:00
kYc0o
17c78e70e2
cpu/atmega_common: add common atmega CPU code to atmega_common
2016-06-22 14:25:10 +02:00
zhuoshuguo
1cbe79a373
CPU: fix include header guards
...
Fix cpu/lpc2387/include/lpc2387.h
2016-06-08 16:38:20 +02:00
MohmadAyman
53df3e8b57
core: cpu: provide function to acquire ISR stack usage
2016-06-01 23:01:35 +02:00
c3f7186d4e
unify usage of inline assembly
2016-03-31 22:23:35 +02:00
DipSwitch
5b5810ab7b
Merge pull request #5109 from DipSwitch/pr/fix_core_inc_irq
...
core: Fix/refactor function naming in core/incude/irq.h
2016-03-22 08:12:24 +01:00
Joakim Nohlgård
d0033a5d20
avr: Use TARGET_ARCH instead of custom toolchain specification
2016-03-21 12:19:30 +01:00
DipSwitch
0bb4748a94
core: Fix/refactor function naming in core/incude/irq.h
2016-03-20 16:47:34 +01:00
2b010b5337
core: rename tcb_t -> thread_t, move into thread.h
2016-03-05 18:20:17 +01:00
9082273746
core: header cleanup
2016-02-28 22:46:28 +01:00
28d9eab420
cpu: atmega_common_ add off_t to sys/types.h
2015-11-26 20:41:36 +01:00
4769c3075d
cpu: avr_common: add unistd.h
2015-11-25 14:36:45 +01:00
effb15a2cc
Merge pull request #3313 from gebart/pr/eINT-fixes
...
eINT/dINT fixes
2015-09-29 12:39:16 +02:00
Oleg Hahm
d89ac480eb
atmega: added panic function
2015-09-20 21:44:26 +02:00
Joakim Gebart
199528d3fb
cpu/atmega: remove dINT/eINT definitions
2015-09-19 10:35:58 +02:00
Martine Lenders
aaff370bc9
Merge pull request #3710 from authmillenon/cpu/feat/atmega-errno
...
atmega_common: give distinct numbers to errnos
2015-09-17 10:14:57 +02:00
7fcb2b718e
cpu: atmega: implement irq_arch_in
2015-09-14 10:47:28 +02:00
Oleg Hahm
f3245cecac
core: panic: last instruction's address for assert
2015-09-11 23:23:31 +02:00
Oleg Hahm
d7161b6d4b
cpu: inline function to print instruction register
2015-09-11 23:23:31 +02:00
Martine Lenders
dc82939eb3
atmega_common: give distinct numbers to errnos
2015-08-25 22:07:22 +02:00
Joakim Gebart
63bde8906e
cpu/atmega_common/avr-libc-extra/inttypes.h: Correct format strings for 64 bit numbers
2015-07-07 00:53:26 +02:00
Hauke Petersen
9943f51080
global: renamed cpu-conf.h into cpu_conf.h
2015-05-28 15:45:05 +02:00
Martine Lenders
b11eb90042
Merge pull request #3005 from authmillenon/od/fix/PRI.64
...
od: add PRI.64 for unsupported boards
2015-05-23 10:05:59 +02:00
Martine Lenders
6d13c899c5
od: add PRI.64 for unsupported boards
2015-05-22 11:54:23 +02:00
Joakim Gebart
13832d8e62
everything: Remove filename from @file Doxygen command
2015-05-22 07:34:41 +02:00
Joakim Gebart
9ae63bac0b
cpu/atmega_common/avr-libc-extra/time.h: trailing whitespace
2015-05-09 09:10:41 +02:00
Joakim Gebart
215ccc1213
core: Introduce atomic counters
...
- Move generic implementation of atomic_set_return to core/atomic.c
- Generic implementation of atomic compare and swap in core/atomic.c
- atomic_cas is used to implement atomic counters in core/include/atomic.h
- atomic_int_t is an atomic integer type
- ATOMIC_INIT can be used as an initializer for atomic_int_t
- ATOMIC_VALUE gets a reference to the value of an atomic integer
2015-05-07 18:52:13 +02:00
BytesGalore
714ee38355
boards: core: cpu: drivers: sys: added missing header guards
2015-01-27 19:10:57 +01:00
Oleg Hahm
04b67f1ff0
doc: avr cleanup
2014-12-06 01:12:31 +01:00
Oleg Hahm
43c86b5a3e
doc: fix remaining doxygen warnings
2014-12-04 17:16:57 +01:00
BytesGalore
a4d2ee307c
cpu: added extern "C"
to headers
2014-11-24 19:10:15 +01:00
René Kijewski
fdb1190cfa
avr: define ssize_t
2014-11-11 10:45:56 +01:00
Oleg Hahm
c33e1b5dad
Merge pull request #1844 from OlegHahm/doxygen_cleanup
...
Doxygen cleanup
2014-10-24 16:04:01 +02:00
Oleg Hahm
cb48f7cd47
doc: fix warning from avr libc
2014-10-23 20:53:01 +02:00
Oleg Hahm
bbf82ab254
doc: put atmega cpu file into the right group
2014-10-23 20:53:00 +02:00
Oleg Hahm
db8f3d2650
cpu: use typed function pointer for thread_arch_init
2014-10-23 18:26:21 +02:00
Martine Lenders
97bf8b09ad
atmega_common: add ENOTSUP and ECANCELED to errno.h
2014-10-01 19:24:12 +02:00
René Kijewski
4e50d74272
core: Provide ssize_t in a common place
...
Now you can include `kernel_types.h` if you need the `ssize_t`, without
facing problems due to the terrible MSP toolchain.
2014-09-26 14:04:30 +02:00
Hinnerk van Bruinehsen
9933dd0b78
cpu: arm/cortex-mX/atmega: use uintptr_t for sp cast
2014-09-14 02:34:04 +02:00
Hinnerk van Bruinehsen
3d686c7cf1
cpu: atmega: doxygen: blacklist upstream headers
2014-09-06 12:38:04 +02:00
Hinnerk van Bruinehsen
a6b77b4745
cpu: atmega_common: Initial import
2014-08-27 16:22:48 +02:00