1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/cpu/atmega_common
Marian Buschsieweke 9e566370bf
cpu/atmega_common: Fixed irq_arch implementation
The inline assembly implementation was badly in need of improvement.

- irq_disable() took 2 CPU cycles more than needed
    - The current interrupt state was stored in a temporary register and
      afterwards copied to the target register, rather than storing it in the
      target register right away
    - The lower bits of the state were cleared (as they have no meaning for the
      interrupt status), but the API purposely never required such things from
      implementations.
- irq_restore() took 5 CPU cycles. This was reduced to 3 CPU cycles (or 2 CPU
  cycles in the best case)
2020-05-26 15:19:14 +02:00
..
avr_libc_extra cpu/atmega_common: Drop legacy include 2020-05-15 11:24:28 +02:00
include cpu/atmega_common: Fixed irq_arch implementation 2020-05-26 15:19:14 +02:00
periph cpu/atmega_common: Drop legacy include 2020-05-15 11:24:28 +02:00
cpu.c cpu/atmega_common: Moved atmega_state to cpu.c 2020-05-15 11:24:29 +02:00
doc.txt cpu: atmega_common: Initial import 2014-08-27 16:22:48 +02:00
Makefile atmega_common: refactor avr-libc-extra into avr_libc_extra module 2019-01-21 14:37:08 +01:00
Makefile.dep cpu/atmega_common: move common dependencies 2020-01-28 13:20:53 +01:00
Makefile.features cpu/atmega_common: Add feature PUF_SRAM 2020-05-15 11:31:23 +02:00
Makefile.include cpu/atmega_common: move avr-libc-extra dependency to Makefile.dep 2020-01-28 13:20:52 +01:00
startup.c cpu/atmega_common: add mega2560 puf_sram feature 2018-11-20 09:45:32 +01:00
thread_arch.c cpu/atmega_common: Cleanup state flags 2020-02-06 15:41:41 +01:00