1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

4592 Commits

Author SHA1 Message Date
Benjamin Valentin
618449c7bd cpu/samd5x: hook up backup RAM 2019-10-01 18:39:40 +02:00
Benjamin Valentin
01b3484ffb cpu/saml21: add definitions for low power SRAM
SAML21 provides 2/4/8 kiB of Low Power SRAM that is retained
in backup mode.

This adds definitions to make that memory availiable to RIOT.
2019-10-01 18:39:40 +02:00
Benjamin Valentin
2c09d9bd5b cpu/cortexm_common: Make Low-Power SRAM available to programs
Many MCUs contain some Backup or Low Power SRAM that is retained'even
in the deepest sleep modes.

In such sleep modes the MCU is essentually turned off with only the RTC
still running.
It can be woken by a GPIO or a RTC alarm. When this happens, a reset is
triggered and the normal startup routine is invoked.

This adds bss & data section for this memory in the linker script.
This allows for structures to be placed in it e.g.:

e.g.:

    static uint8_t persistent_buffer[64] __attribute__((section(".backup.bss")));
    static uint32_t persistent_counter __attribute__((section(".backup.data"))) = 1234;
2019-10-01 18:39:40 +02:00
Benjamin Valentin
c9b827e5d5 sam0_common: export flag that tells if the CPU woke from deep sleep
It is often useful to know whether the CPU was just powered on afresh
or if it was woken from a deep sleep state, e.g. by RTC or GPIO event.
2019-10-01 18:39:40 +02:00
Bas Stottelaar
962b0efaaf boards+efm32: add support for riotboot 2019-10-01 18:08:27 +02:00
Bas Stottelaar
0b6435560e efm32: optimize when building the bootloader 2019-10-01 18:05:20 +02:00
benpicco
a7cb0a4b77
Merge pull request #12323 from basilfx/feature/efm32_uart_modes
cpu/efm32: provide periph_uart_mode
2019-10-01 15:32:50 +02:00
benpicco
5f6065f567
Merge pull request #12338 from cladmi/pr/make/cortexm/do_not_set_cpu_model
makefiles/arch/cortexm.inc.mk: removing setting CPU_MODEL
2019-10-01 15:25:16 +02:00
Gaëtan Harter
e73b4d2d24
cpu/lpc1768: explictly define CPU_MODEL
Define CPU_MODEL as it required by cortexm.inc.mk
The default setting will be removed from cortexm.inc.mk.
2019-10-01 11:38:35 +02:00
Gunar Schorcht
5009959610
Merge pull request #12346 from benpicco/esp32-thin_archives
cpu/esp32: unconditionally disable thin archives
2019-10-01 10:34:04 +02:00
benpicco
52bf448a3b
Merge pull request #12035 from gschorcht/cpu/esp32/fix_periph_flash
cpu/esp32: fix and improve periph/flash
2019-10-01 10:22:06 +02:00
Benjamin Valentin
0ca2ce0214 cpu/esp32: unconditionally disable thin archives
Thin archives also cause a boot loop when using the flash module.
To prevent further surprises, disable thin archives unconditionally
until the cause for this behaviour is known.
2019-10-01 09:28:33 +02:00
benpicco
5105a2e54d
Merge pull request #12340 from cladmi/pr/makefiles/board_cpu_macros
makefiles: CFLAGS convert to the uppercase function instead of using the shell
2019-09-30 19:53:28 +02:00
Bas Stottelaar
4e6b46ca20 cpu/efm32: implement uart_mode 2019-09-30 18:12:15 +02:00
Gaëtan Harter
4b93f27d83
cpu: use makefiles/utils uppercase
Convert the variables to uppercase using the 'makefiles/utils' function.
2019-09-30 17:25:24 +02:00
Benjamin Valentin
bf1eca338f cpu/cc2538: fix spi_transfer_bytes()
Always wait for RNE before reading DR.
Fixes always reading in the !out_buf case.
2019-09-30 13:11:11 +02:00
Bas Stottelaar
b2769c0857 cpu: efm32: move LOW_POWER_ENABLED to efm32-features.mk 2019-09-30 00:03:15 +02:00
benpicco
1543a8c438
Merge pull request #12276 from kenrabold/pr-fe310_intr_cleanup
cpu/fe310: interrupt handling cleanup
2019-09-28 19:14:07 +02:00
kenrabold
1d6e37a7f7 cpu/fe310: interrupt handling cleanup
Cleanup of FE310 interrupt handler code
Optimization of intr context frame
Reduce size of intr stack
Added unhandled trap output
Fix PR #12237
2019-09-27 13:32:43 -07:00
benpicco
3a3267916e
Merge pull request #12313 from haukepetersen/fix_nrfble_featuredecl
cpu/nrf5x: decelare radio_nrfble feat for all nrfs
2019-09-27 11:17:36 +02:00
benpicco
efa41ad094
Merge pull request #12222 from benpicco/samd5x-clock
cpu/samd5x: allow more flexible selection of CLOCK_CORECLOCK
2019-09-27 11:07:54 +02:00
benpicco
3e538c042d
Merge pull request #12292 from benpicco/esp_wifi-workaround
cpu/esp32: disable thin archives if esp_wifi is used
2019-09-27 10:50:35 +02:00
Benjamin Valentin
7e5aa7e775 cpu/sam0_common: uart: fix baud rate calculation
In fractional mode, 3 bits are used to store the fractional part.
Therefore we must multiply / divide by 8 instead of 10 in order to
get the correct values.
2019-09-27 10:49:43 +02:00
Benjamin Valentin
736e5e5a35 cpu/samd5x: allow more flexible selection of CLOCK_CORECLOCK
There are some constraints to the oscillators on the samd5x.

 - DFLL is fixed to run at 48 MHz
 - DPLL can run at 96 to 200 MHz

Always use DFLL for frequencies <= 48 MHz.
For frequencies >= 96 MHz, use DPLL directly.
For frequencies < 96 MHz, clock DPLL at twice the desired frequency
and use a divider.
2019-09-27 10:49:43 +02:00
Hauke Petersen
982d730adf cpu/nrf5x: decelare radio_nrfble feat for all nrfs 2019-09-27 10:00:06 +02:00
a7f6508109 cpu/cortexm: don't disable IRQs in cpu_jump_to_image() 2019-09-26 23:38:43 +02:00
e1e01e2617
Merge pull request #11250 from dylad/pr/samr34_support
board: add support for SAMR34-XPRO
2019-09-26 11:27:22 +02:00
dylad
e189d085b0 cpu/sam0: add support for SAMR34 MCU 2019-09-26 10:48:03 +02:00
dylad
c9bd7deea0 cpu/sam0: add SAMR34 vendor files 2019-09-26 10:48:03 +02:00
Francois Berder
1673f890ec cpu: mips32r2_common: Use stdio_uart to handle UHI write syscalls
Signed-off-by: Francois Berder <18538310+francois-berder@users.noreply.github.com>
2019-09-25 21:36:10 +01:00
Martine Lenders
57edabce96
Merge pull request #12269 from bergzand/pr/nrfusb/fix_control_write
nrfusb: Fix data stage handling of control writes
2019-09-25 18:08:08 +02:00
Benjamin Valentin
111fe80eb9 cpu/esp: disable thin archives if esp_wifi is used
For a yet unknown reason, both esp8266 and esp32 get stuck in a
reboot loop when thin archives are used.

As a workaround, disable thin archives for now if esp_wifi is used.

fixes #12258
2019-09-25 07:48:07 +02:00
Martine Lenders
1598c8c6f8
Merge pull request #11950 from gschorcht/cpu/esp32/periph-gpio_read-fix
cpu/esp32: fix of gpio_read for output ports
2019-09-24 20:20:40 +02:00
Francisco
5ab2db71a4
Merge pull request #12282 from LordTy/esp32_build_fix
cpu/esp32: Use awk/printf instead of echo -n when flashing esp32
2019-09-24 18:38:35 +02:00
benpicco
3833e42426
Merge pull request #12092 from cladmi/pr/cpu_model/minor_changes_included
boards with side-effect: move CPU/CPU_MODEL definition to Makefile.features
2019-09-24 18:36:58 +02:00
Gaëtan Harter
8cebed6792
boards/common/esp: harmonize CPU/CPU_MODEL to other boards
* CPU files should already have 'CPU' defined by the board.
* Do not conditionally define CPU as it is not needed.

This is part of cleanup prior to moving the CPU/CPU_MODEL to
Makefile.features.
2019-09-24 17:29:37 +02:00
Thomas Stilwell
70084ab6aa cpu/efm32/uart: enable pullup on RX pin 2019-09-24 16:44:15 +02:00
Tim Broenink
35aa642e8a cpu/common/esp32: use 'awk/printf' instead of 'echo'
- replaces 'echo -n' and 'awk' with 'printf' and 'awk'
  - replaces rest of 'echo' statements with printf
2019-09-24 15:34:54 +02:00
Vincent Dupont
1a44d327cb
Merge pull request #11989 from gschorcht/cpu/esp32/periph-can
cpu/esp32: reimplementation of module esp_can as module periph can
2019-09-23 16:52:05 +02:00
40619d18ca
cpu/nrf5x_common: implement periph_wdt driver 2019-09-20 20:45:42 +02:00
Gunar Schorcht
d5bf41dba1 cpu/esp32: doc update for periph_can 2019-09-20 19:39:23 +02:00
Gunar Schorcht
fc5692d67c cpu/esp32: driver for ESP32 CAN as periph_can 2019-09-20 19:39:23 +02:00
Gunar Schorcht
c498ebd388 cpu/esp32: default device config for periph_can 2019-09-20 19:35:02 +02:00
Gunar Schorcht
49ecce9b81 cpu/esp32: periph_can device/conf type definitions 2019-09-20 19:35:02 +02:00
Gunar Schorcht
e0f1ab0a16 cpu/esp32: module esp_can removed
CAN controller driver for ESP32 is no longer realized as separate module.
2019-09-20 19:35:02 +02:00
Benjamin Valentin
c9f8ff1cf1 sam0_common: add Watchdog implementation 2019-09-20 19:04:41 +02:00
8bb98ba151
cpu/stm32f7: add support for stm32f723 cpu line 2019-09-20 13:41:12 +02:00
Francisco
bd5ceb58e7
Merge pull request #11984 from aabadie/pr/boards/p-l496g-cell02
boards/p-l496g-cell02: add support
2019-09-20 11:28:54 +02:00
711854562b
Merge pull request #12236 from twostairs/cpu_stm32_common_periph_gpip-pd
cpu/stm32_common/periph/gpio: Pull-down on gpio_init_af
2019-09-18 20:02:40 +02:00
07b3bc6918
nrfusb: Fix data stage handling of control writes 2019-09-18 08:11:44 +02:00
benpicco
d5c272ed86
Merge pull request #12199 from smlng/fix_timer_returns
periph/timer: Fix return codes of timer API
2019-09-17 23:04:46 +02:00
Martine Lenders
98482b67c0
Merge pull request #12263 from benpicco/esp_now-fix
esp_now: fix unused variable warning
2019-09-17 21:59:01 +02:00
Benjamin Valentin
9129ea7399 esp_now: fix unused variable warning
esp_now_pkt_hdr_t *hdr is only used if gnrc_sixlowpan is used,
so move it into the according #ifdef

fixes #12257
2019-09-17 19:02:47 +02:00
benpicco
e214dcbd2c
Merge pull request #11986 from kaspar030/mips_remove_nomips16
cpu/mips32r2: remove nomips16 attribute from _mips_handle_exception
2019-09-17 16:54:03 +02:00
b415588677 cpu/mips32r2: remove nomips16 attribute from _mips_handle_exception
A note says "The nomips16 attribute should not really be needed,
it works around a toolchain issue in 2016.05-03."

In fact, in 2018.09-03, the attribute leads to this error:

```cpu/mips32r2_common/thread_arch.c:191:1: error: ‘_mips_handle_exception’ redeclared with conflicting ‘nomips16’ attributes```

This this commit removes the attribute.
2019-09-17 15:59:10 +02:00
9b4755c3ba
Merge pull request #12196 from kenrabold/pr_thread_yield_higher
cpu/fe310: fixes for SW interrupt latency issues
2019-09-17 14:25:10 +02:00
benpicco
5a01a762c2
Merge pull request #12227 from maribu/mips32r2-early-stdio
cpu/mips32r2_common: Added call to stdio_init()
2019-09-17 10:46:10 +02:00
Marian Buschsieweke
8fa0c04e23
Merge pull request #12229 from benpicco/lpc238-cleanup
cpu/lpc2387: clean up the platform
2019-09-16 22:06:59 +02:00
benpicco
1d90617386
Merge pull request #12252 from cladmi/pr/esp8266/revert_uncompatible_option
Revert "cpu/esp8266: update deprecated flash_size argument"
2019-09-16 20:48:46 +02:00
kenrabold
547ebd1b27 cpu/fe310: use WFI to wait for SW interrupt 2019-09-16 09:32:27 -07:00
071c2b2c5f
Merge pull request #12109 from nmeum/pr/riscv_context_switch
cpu/fe310: don't call thread_yield when sched_active_thread is invalid
2019-09-16 16:51:39 +02:00
Gaëtan Harter
15ea073f64
Revert "cpu/esp8266: update deprecated flash_size argument"
This reverts commit 422644bd3a.

The option is only supported after 2.6 which is currently not the
version given with 'esp' toolchain.
It was a bit too early to switch to the new version.
Version 2.7 also supports the old option with only a warning.
2019-09-16 16:08:35 +02:00
Benjamin Valentin
e3b0874305 cpu/lpc2387: clean up the platform
- move clock setup from boards/ to cpu/
 - reduce code duplication
2019-09-16 13:08:56 +02:00
Marius
e87529b4e4
Pull-up on RX pin 2019-09-15 23:55:39 +02:00
Marian Buschsieweke
95a2081cfa
Merge pull request #12225 from maribu/esp8266-early-stdio
cpu/esp8266: Moved stdio_init before periph_init
2019-09-14 12:34:45 +02:00
Marian Buschsieweke
baf911bd7d
cpu/esp8266: Moved stdio_init before periph_init
- This guarantees that DEBUG() is available early in boot process
- Forgotten in https://github.com/RIOT-OS/RIOT/pull/11367, this fixes broken stdio
2019-09-14 12:17:14 +02:00
Marian Buschsieweke
5fd6652865
cpu/mips32r2_common: Added call to stdio_init()
Fixed bug introduced in https://github.com/RIOT-OS/RIOT/pull/11367
2019-09-14 11:42:15 +02:00
Marian Buschsieweke
2750dc2000
cpu/esp32: Moved stdio_init() before periph_init()
- This guarantees that DEBUG() is available early in boot process
- Forgotten in https://github.com/RIOT-OS/RIOT/pull/11367, fixes broken stdio
2019-09-14 11:12:32 +02:00
aed12b4853
Merge pull request #11252 from fjmolinas/pr_wdg_stm32
cpu/stm32_common: add watchdog for stm32
2019-09-13 09:16:18 +02:00
Dylan Laduranty
88fe7afe2b
Merge pull request #12121 from benpicco/sam0-fix_exti
cpu/sam0_common/gpio: don't hard-code number of ports
2019-09-12 20:17:11 +02:00
Francisco Molina
f54c2dbbda cpu/stm32_common: add watchdog for stm32 2019-09-12 19:07:40 +02:00
Gunar Schorcht
4469dadb7f cpu/esp32: _esp_wifi_dev exposed for lwIP
To be able to access the single esp_wifi network device from lwIP adaptation layer, static keyword was removed from esp_wifi_dev variable.
2019-09-12 18:39:46 +02:00
benpicco
e589cfbf6c
Merge pull request #10760 from gschorcht/esp32_esp_eth_link_opt
cpu/esp32: support of NETOPT_LINK_CONNECTED in esp_eth_netdev
2019-09-12 18:14:44 +02:00
Benjamin Valentin
b1724a7d1b periph/rtc: normalize struct tm before usage
A naive implementation may set a RTC alarm in 30s by calling

	struct tm now;
	rtc_get_time(&now);
	now.tm_sec += 30;
	rtc_set_alarm(&now, _cb, NULL);

This works for RTC implementations that use a RTT internally and call
mktime() to convert the struct tm to a unix timestamp, as mktime() will
normalize the struct in the process.

Call rtc_tm_normalize() when the RTC uses separate registers for time / date
components to ensure it is normalized.

This also modifies tests/periph_rtc to exercise this case.
2019-09-12 11:32:31 +02:00
benpicco
729ba07e9a
Merge pull request #11229 from maribu/msp430_cleanup
cpu/msp430_common: Cleanup
2019-09-11 20:12:55 +02:00
benpicco
c12b88ef59
Merge pull request #12188 from jcarrano/sam0_rtt_fix_flags
cpu/sam0_common/../rtt: correcly clear flags.
2019-09-11 15:24:46 +02:00
Sebastian Meiling
ddd97001c1 cpu/lm4f120: fix uninit var in periph/timer 2019-09-11 14:15:51 +02:00
Sebastian Meiling
0629d076eb cpu/sam3: adapt timer to return 0 on success
Adapt periph/timer implementation of sam3 based MCUs
to return 0 on success for all functions.
2019-09-11 13:53:04 +02:00
Sebastian Meiling
49acf98841 cpu/sam0: adapt timer to return 0 on success
Adapt periph/timer implementation of sam0 based MCUs
to return 0 on success for all functions.
2019-09-11 13:52:28 +02:00
Sebastian Meiling
af529531a4 cpu/nrf5x: adapt timer to return 0 on success
Adapt periph/timer implementation of nrf5x based MCUs
to return 0 on success for all functions.
2019-09-11 13:51:53 +02:00
Sebastian Meiling
935bb51e14 cpu/native: adapt timer to return 0 on success
Adapt periph/timer implementation of native based MCUs
to return 0 on success for all functions.
2019-09-11 13:51:02 +02:00
Sebastian Meiling
22f4ec81b0 cpu/mips32r2: adapt timer to return 0 on success
Adapt periph/timer implementation of mips32r2 based MCUs
to return 0 on success for all functions.
2019-09-11 13:48:12 +02:00
Sebastian Meiling
ddcbfce391 cpu/lpc1768: adapt timer to return 0 on success
Adapt periph/timer implementation of lpc1768 based MCUs
to return 0 on success for all functions.
2019-09-11 13:47:32 +02:00
Sebastian Meiling
fd900357fc cpu/lm4f120: adapt timer to return 0 on success
Adapt periph/timer implementation of lm4f120 based MCUs
to return 0 on success for all functions.
2019-09-11 13:46:55 +02:00
Sebastian Meiling
84e6d1571a cpu/kinetis: adapt timer to return 0 on success
Adapt periph/timer implementation of kinetis based MCUs
to return 0 on success for all functions.
2019-09-11 13:46:15 +02:00
Sebastian Meiling
c4fcb241b1 cpu/cc26x0: adapt timer to return 0 on success
Adapt periph/timer implementation of cc26x0 based MCUs
to return 0 on success for all functions.
2019-09-11 13:45:29 +02:00
Sebastian Meiling
cabaaebff4 cpu/cc2538: adapt timer to return 0 on success
Adapt periph/timer implementation of cc2538 based MCUs
to return 0 on success for all functions.
2019-09-11 13:44:46 +02:00
Sebastian Meiling
1d24709674 cpu/atmega_common: adapt timer to return 0 on success
Adapt periph/timer implementation of atmega based MCUs
to return 0 on success for all functions.
2019-09-11 13:41:44 +02:00
Juan Carrano
f7279c84bb cpu/sam0_common: rtt: correcly clear flags.
The INTFLAGS register is cleared by writing a 1 to the corresponding interrupt
flag bit. From the samr21's manual:

> Writing a zero to this bit has no effect.
> Writing a one to this bit clears the Compare 0 interrupt flag.

This is a common pattern in flag registers.

This RTT driver is using or-equal to clear the flags, which means it can
possibly clear other interrupts. There's a small chance that one event is
missed if it happens very close to another event.

Credits to @benpicco, @dylad for pointing out missing fixes.
2019-09-11 12:55:10 +02:00
benpicco
b6fe0e25fe
Merge pull request #10020 from gebart/pr/kinetis-lptmr-reload
kinetis: lptmr reload instead of spinning
2019-09-11 10:12:58 +02:00
benpicco
6f63ef42a7
Merge pull request #11920 from maribu/lpc2387
cpu/lpc2387: Cleanup
2019-09-11 10:12:26 +02:00
benpicco
410e6edf58
Merge pull request #11882 from maribu/arm7_buildsystem
cpu/arm7_common: Moved compiler flags here
2019-09-11 10:12:14 +02:00
benpicco
85798e831b
Merge pull request #11887 from maribu/arm7_thread_yield_higher
cpu/arm7_common: Fix thread_yield_higher in ISR
2019-09-11 10:11:57 +02:00
Marian Buschsieweke
7092566f1f
cpu/arm7_common: Moved compiler flags here
- Moved compiler & linker flags from boards/common/msba2 to cpu/arm7_common
- Moved dependency to newlib nano to cpu/arm7_common
- Moved config to link in cpu/startup.o to cpu/arm7_common
2019-09-11 01:02:41 +02:00
Juan I Carrano
c50d8fada1
Merge pull request #11646 from cladmi/pr/esp/programmer_update
esp*: updates to the programmer configuration
2019-09-10 17:58:20 +02:00
Marian Buschsieweke
b87ab96d17
Merge pull request #10661 from miri64/gnrc_netif_hdr/enh/netif_setter
gnrc_netif_hdr: add setter for netif
2019-09-10 16:14:28 +02:00
Juan I Carrano
abc25f0715
Merge pull request #11452 from maribu/atmega_irq
cpu/atmega_common: Bugfixes in irq_arch.c
2019-09-10 13:39:53 +02:00
Martine Lenders
50a3238ee0 esp-now: use gnrc_netif_hdr_set_netif() 2019-09-10 12:37:32 +02:00
benpicco
3aa8bc0d70
Merge pull request #12150 from jcarrano/compress-debuginfo
toolchain/cflags: enable dwarf compression (save 50% HDD)
2019-09-10 10:31:45 +02:00
3d8c4d52d1
Merge pull request #12100 from OTAkeys/pr/fix_uart_poweroff
cpu/stm32_common/uart: fix rare uart failure
2019-09-10 10:25:46 +02:00