Yegor Yefremov
41db161162
doxygen/I2C: don't include overridden typedefs
...
Add missing #ifndefs to overridden I2C typedefs for lpc2387 CPU.
Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
2020-03-05 15:31:06 +01:00
benpicco
681678e3f3
Merge pull request #13537 from jue89/feature/sam0-spi-frequency
...
cpu/sam0_common: mitigate rounding errors of SPI baud rate calculation
2020-03-04 16:50:46 +01:00
Koos
67dfb9d39e
cpu/esp8266: Fixed small typo in code example
2020-03-04 09:54:36 +01:00
68ec8b2c2b
Merge pull request #13391 from kaspar030/mpu_feature
...
cpu/cortex-m: turn MPU support into a feature
2020-03-04 07:09:40 +01:00
benpicco
8e8cfbfe9c
Merge pull request #13516 from gschorcht/cpu/esp/fix_common_cpu_conf
...
cpu/esp_common: fixes common CPU configurations
2020-03-04 00:26:36 +01:00
a3c527fdbc
cpu/*: add cortex_mpu to known-to-support CPU families
2020-03-03 22:59:41 +01:00
Martine Lenders
e4f27b415e
Merge pull request #13394 from benpicco/atmega-rtc
...
cpu/atmega_common: implement emulated RTC support
2020-03-03 19:03:47 +01:00
benpicco
17659018bf
Merge pull request #13520 from benpicco/rtc_mktime-convert
...
cpu/stm32f1: make RTC Y2038 safe
2020-03-03 17:23:04 +01:00
Benjamin Valentin
93d2068a9e
cpu/atmega_common: Implement RTC based on TIM2
...
This implements a basic Real Time Clock based on TIM2.
As the timer is too fast and wraps around after just 8 bits, it is
not used directly. Instead TIM2 is responsible for providing a 1 Hz
tick by generating an alarm every second.
The current time data is kept in the `.noinit` section, so it will survive
a reboot, but the clock will not be updated while the bootloader runs, so
expect inaccuracies.
2020-03-03 16:26:26 +01:00
Gunar Schorcht
9e372104f0
Merge pull request #13284 from benpicco/rtc_mktime
...
periph_common/rtc: add rtc_mktime() & rtc_localtime() helper functions for RTC implementations
2020-03-03 14:12:50 +01:00
Francisco
3f062a78b2
Merge pull request #13045 from aabadie/pr/boards/remote_factorize
...
boards/remote*: cleanup and factorize code in peripheral configuration headers
2020-03-03 13:21:04 +01:00
Juergen Fitschen
0032d35fe8
cpu/sam0_common: mitigate rounding errors of baud rate calculation
...
Instead of always rounding up, the driver now rounds to the nearest integer. This reduces the absolut rounding error when setting SPI baud rates.
2020-03-03 12:32:42 +01:00
benpicco
c6d5cd8872
Merge pull request #13521 from gschorcht/cpu/esp32/add_noinit_section
...
cpu/esp32: add .noinit section in linker script
2020-03-03 11:38:55 +01:00
Benjamin Valentin
1ca26adde8
cpu/esp32: rtc: use rtc_mktime() for Y2038k
...
By using a custom EPOCH for the RTC implementation, we can extend the
range of the 32 bit counter based RTC by 118 years.
It also reduces the code size compared to the stdlib based POSIX functions.
2020-03-03 11:01:02 +01:00
Thomas Stilwell
048fca998b
cpu/kinetis: add mkw41z256vht4 to no-hwrng list
2020-03-01 16:56:34 +01:00
Gunar Schorcht
8b61c40fc8
cpu/esp32: add .noinit section to linker script
2020-03-01 11:04:18 +01:00
Gunar Schorcht
b89b4e2259
cpu/esp32: place libc functions in IRAM
2020-03-01 10:55:52 +01:00
Gunar Schorcht
085eb3f40c
cpu/esp32: place common CPU functions to IRAM
2020-03-01 10:55:52 +01:00
Gunar Schorcht
0d451969c3
cpu/esp32: place newlib syscalls in IRAM
2020-03-01 10:01:34 +01:00
Benjamin Valentin
33d03e7b3f
cpu/stm32f1: make RTC Y2038 safe
...
Use rtc_* functions with custom EPOCH.
This buys us about 118 years.
2020-02-29 17:45:16 +01:00
Gunar Schorcht
33fd259115
cpu/esp: platform heap_stats only used with esp_idf_heap
2020-02-29 12:21:09 +01:00
Gunar Schorcht
ef248b392d
cpu/esp_comomon: rename cpu_conf.h to cpu_conf_common.h
...
To be able to define common configurations for all ESP CPUs, the CPU specific configuration cpu_conf.h has to include a common configuration. For that purpose cpu_conf.h in cpu/esp_common is renamed to cpu_conf_common.h and included in CPU specific configurations.
2020-02-29 12:07:12 +01:00
Benjamin Valentin
51fa5afef7
cpu/samd21: default 1kHz clock to same source as 32kHz clock
...
The split between GEN2_ULP32K and GEN3_ULP32K was introduced to fix
a failure in tests/periph_wdt when the external oscillator was used.
By not running the external oscillator on demand, the failure can no
longer be observed, so default GEN3_ULP32K to GEN2_ULP32K.
2020-02-27 16:01:44 +01:00
Benjamin Valentin
2d7bc9e467
cpu/samd21: don't run XOSC32K on demand
...
This significantly reduces start-up time.
The XOSC32K is only configured when needed anyway.
2020-02-27 15:59:10 +01:00
Benjamin Valentin
937c954d92
cpu/lpc2387: implement periph/i2c
...
The lpc23xx MCU has up to three I2C interfaces.
This adds a driver for it.
The peripheral works in interrupt mode, each change of the state machine
will generate an interrupt.
The response to the states are laid out in the data sheet.
This replaces the old driver that was removed in c560e28eb6
2020-02-26 23:41:38 +01:00
Peter Kietzmann
c78962a594
Merge pull request #13487 from JannesVolkens/stm32_eth_mac_filter_fix
...
cpu/stm32_common/periph: Fix multicast filtering
2020-02-26 17:16:08 +01:00
Jannes
1848b0a5c2
cpu/stm32_common/periph: Fix multicast filtering
2020-02-26 15:57:59 +01:00
benpicco
98405fe151
Merge pull request #12380 from benemorius/pr/efm32-uart-init-tx-idle
...
cpu/efm32/uart: uart_init(): begin with TX pin at idle level
2020-02-26 10:23:12 +01:00
benpicco
0edfd13df0
Merge pull request #13310 from benpicco/sam0-exti-common
...
cpu/sam0_common: use generic exti_config
2020-02-26 08:40:49 +01:00
benpicco
99f3f67e67
Merge pull request #13317 from benpicco/arm7-event_thread
...
tests/event_threads: remove arch_arm7 from blacklist
2020-02-26 08:39:00 +01:00
Benjamin Valentin
a0ac2384ac
cpu/sam0_common: samr30: add integer literal macros
...
All the more recent vendor files have them, so include them for samr30 too.
It is expected for this to become obsolete with the next vendor file update.
2020-02-25 21:52:24 +01:00
Gunar Schorcht
f688f84a15
Merge pull request #12928 from benpicco/newlib-multiheap
...
sys/newlib: enable multiple heaps in _sbrk_r()
2020-02-25 19:16:42 +01:00
Peter Kietzmann
00d4d365ce
Merge pull request #13383 from JannesVolkens/stm32_eth_mac_filter_fix
...
cpu/stm32_common/periph: Fix addr filtering
2020-02-25 18:03:19 +01:00
benpicco
2b4a8e694a
Merge pull request #13465 from gschorcht/cpu/atmega_common/fix_ndebug_problem
...
cpu/atmega_common: fix of compilation problem with NDEBUG
2020-02-25 11:56:58 +01:00
ed101a6b92
cpu: remove useless export of TARGET_ARCH
2020-02-25 09:42:11 +01:00
Gunar Schorcht
da244ffcaa
cpu/atmega_common: fix compile problem with NDEBUG
2020-02-25 09:41:24 +01:00
92f2b820cd
cpu: remove exports of UNDEF vars
2020-02-25 09:40:34 +01:00
Benjamin Valentin
442ddc1346
cpu/samd21: Switch EIC clock to slow speed on STANDBY mode
2020-02-24 12:02:27 +01:00
Juergen Fitschen
43ff72ad56
cpu/sam0*: Switch EIC clock to slow speed on STANDBY mode
2020-02-24 12:02:25 +01:00
Juergen Fitschen
1265efc785
cpu/sam0*: Wrap cortexm_sleep call
2020-02-24 11:48:13 +01:00
Juergen Fitschen
ac8a81b8f3
cpu/saml21: disable fast clock if it is not requested
2020-02-24 11:48:13 +01:00
58450c6c59
Merge pull request #13342 from wosym/pr/socketcanfix
...
cpu/native/can/candev_linux: add check for real can
2020-02-24 09:39:12 +01:00
Benjamin Valentin
aac2855c7c
esp-wifi: allow connecting to open networks
...
Allow connecting to unecnrypted WiFis if `ESP_WIFI_PASS` is not set.
2020-02-22 13:45:15 +01:00
benpicco
ce947b4824
Merge pull request #12955 from gschorcht/cpu/esp/deduplicate_and_cleanup
...
cpu/esp*: code deduplication and cleanup
2020-02-22 13:03:18 +01:00
Gunar Schorcht
5b4389cf46
cpu/esp32: update of ld script for littlefs*
...
During the write access to the SPI flash, the IROM cache is not available and only code from the IRAM can be executed. Therefore, the code of file system implementations which access the SPI flash must reside in IRAM.
2020-02-22 01:35:07 +01:00
Dylan Laduranty
e74484c31f
Merge pull request #13411 from benpicco/samd5x-OSCCTRL.ONDEMAND
...
cpu/samd5x: use ONDEMAND bit to run clocks on demand
2020-02-21 23:37:07 +01:00
Dylan Laduranty
e11d3485ef
Merge pull request #13435 from benpicco/cpu/sam0/gpio-gclk-cleanup
...
cpu/sam0_common/gpio: use explicit GCLK names
2020-02-21 20:26:06 +01:00
benpicco
c32be01b7a
Merge pull request #13053 from basilfx/feature/efm32_adc_status
...
cpu/efm32: fix incorrect ADC status register
2020-02-21 18:59:53 +01:00
benpicco
8d77ec55ae
Merge pull request #13409 from aabadie/pr/cpu/nrf_gpio_t
...
cpu/nrf5x: provide gpio_t type definition
2020-02-21 18:55:46 +01:00
Benjamin Valentin
b77afadb49
cpu/sam0_common/gpio: use explicit GCLK names
...
For consistency, use named GCLKs.
- `SAM0_GCLK_32KHZ` will always be 2 for samd21
- `SAM0_GCLK_MAIN` will always be 0
So no change in functionality, just makes the code easier to understand.
2020-02-21 14:25:43 +01:00
Jannes
4bb0d8bd6c
cpu/stm32_common/periph: Fix addr filtering
...
- Set MACFFR to unicast filtering
- Change byte-order of the MAC
2020-02-21 11:41:39 +01:00
Gunar Schorcht
3230326652
cpu/esp32: fix esp_spi_ram dependency and flash mode setting
2020-02-21 10:14:03 +01:00
Wouter Symons
d477b5bc24
cpu/native/can/candev_linux: add check for real can when setting bittimings in init
2020-02-21 09:36:19 +01:00
Gunar Schorcht
e869fbd30f
cpu/esp32: remove periph_rtc from used modules
...
`periph_rtc` is no longer used by default.
2020-02-21 09:13:23 +01:00
Gunar Schorcht
350a0bbbb3
cpu/esp32: remove extra isync from periph/timer
2020-02-21 09:09:34 +01:00
Gunar Schorcht
ccae24c8b6
cpu/esp_common: enable esp_wifi as default for lwip
2020-02-21 09:09:34 +01:00
Gunar Schorcht
71682bc7de
cpu/esp32: remove unused periph_cpu.c
2020-02-21 09:09:34 +01:00
Gunar Schorcht
32c7bd8867
cpu/esp8266: remove unused function definitions
2020-02-21 09:09:34 +01:00
Gunar Schorcht
b6e9ecb9a7
cpu/esp32: remove esp_wifi
2020-02-21 09:09:34 +01:00
Gunar Schorcht
98ca108be5
cpu/esp8266: move esp_wifi to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
9723e3e3cf
cpu/esp*: move freertos/task to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
61339001e7
cpu/esp*: move common freertos code to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
922429bc3b
cpu/esp_common: add module esp_freertos_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
18659bdf26
cpu/esp*: move FreeRTOS headers to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
05faec7cf8
cpu/esp*: move periph/i2c_sw to esp/common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
0292f8b6a3
cpu/esp*: move periph/hwrng to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
d90164b19a
cpu/esp*: move perioph/spi to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
66ee155562
cpu/esp*: move periph/flash to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
b0517c6733
cpu/esp*: move periph/uart to cpu/esp_common
...
tmp
2020-02-21 09:09:34 +01:00
Gunar Schorcht
0ef723c6f7
cpu/esp_common: add module esp_periph_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
39ee806d3c
cpu/esp*: move some vendor/esp code to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
75d23e8458
cpu/esp*: common exception handling
2020-02-21 09:09:34 +01:00
Gunar Schorcht
90dc2ce846
cpu/esp*: common parts of syscalls in cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
4c466e54ec
cpu/esp*: common irq_arch in cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
43b89a61eb
cpu/esp*: move common parts of gpio_arch to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
45c71f1a31
esp/esp*: move common code to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
7d701f6fa8
cpu/esp*: move common headers to cpu/esp_common
2020-02-21 09:09:34 +01:00
Gunar Schorcht
53a3756e0c
cpu/esp*: common Makfile* added
2020-02-21 09:09:34 +01:00
Gunar Schorcht
b132698cd5
cpu/esp*: move parition table tool to dist/tools/esptool
...
The same tool 'gen_esp32part.py' is used for the generation of partition tables on ESP8266 as well as n ESP32. The tool is therefore added to 'dist/tools/esptool'
2020-02-21 09:09:08 +01:00
Benjamin Valentin
cfd0ef415e
cpu/sam0_common: hook up low power RAM as extra heap
...
This enables unused low-lower RAM on saml21/samd5x to be used for
heap memory.
2020-02-20 17:11:25 +01:00
Benjamin Valentin
24ed1bbb70
cpu/lpc2387: hook up extra memory sections as heap
...
This enables the USB, Ethernet and Backup memory regions to be used
as heap memory.
2020-02-20 17:11:25 +01:00
Benjamin Valentin
fd9a247200
cpu/sam0_common: use generic exti_config
...
Creating an `exti_config` array for a new MCU manually is tedious and error prone.
Luckiely all information is already availiable in the vendor files.
Credit for this discovery & method goes to @Sizurka
The file was generated with
```C
int main(void) {
puts("static const int8_t exti_config[PORT_GROUPS][32] = {");
for (unsigned port = 1; port < 5; ++port) {
printf("#if PORT_GROUPS >= %d\n{\n", port);
for (unsigned pin = 0; pin < 32; ++pin) {
printf("#ifdef PIN_P%c%02uA_EIC_EXTINT_NUM\n", '@' + port, pin);
printf(" PIN_P%c%02uA_EIC_EXTINT_NUM,\n", '@' + port, pin);
printf("#else\n -1,\n#endif\n");
}
printf("},\n#endif\n\n");
}
puts("};");
return 0;
}
```
No changes in generated code are expected, but this makes adding new members
of the sam0 CPU families much easier.
2020-02-20 11:23:51 +01:00
9cebd757a2
cpu/nrf5x: update GPIO_UNDEF value
...
The gpio_t value is uint8_t so use UINT8_MAX for GPIO_UNDEF
2020-02-19 19:16:58 +01:00
f568162f9b
cpu/nrf5x: provide specific gpio_t definition
2020-02-19 19:16:58 +01:00
Benjamin Valentin
b7b52c4c57
cpu/samd5x: use ONDEMAND bit to run clocks on demand
...
Set the ONDEMAND bit so clocks are only run if they have a user configured.
This saves 390 µA on same54-xpro.
examples/default:
before: 3.88 mA
after : 3.49 mA
examples/gnrc_networking: (with REB215-XPRO EXT3)
before: 13.29 mA
after : 12.9 mA
2020-02-19 16:56:35 +01:00
Benjamin Valentin
93d536f761
cpu/sam0_common: samr30 add PIN_(.*)_EIC_EXTINT_NUM to vendor header
...
samr30 is the only MCU of this family where the vendor files do not
define the PIN_($pin)_EIC_EXTINT_NUM macro yet.
This macro is needed to create a generic EXTI configuration for all
sam0 MCUs.
The defines were generated with
sed -Ei '/define PIN_(.*)_EIC_EXTINT([0-9]*)/
{h; x;
s/define PIN_(.*)A_EIC_EXTINT([0-9]*)(.*)/
define PIN_\1A_EIC_EXTINT_NUM _L_\(\2\)
\/**< \brief EIC signal: PIN_\1 External Interrupt Line *\/
/g; G}' samr30g18a.h samr30e18a.h
2020-02-18 18:28:10 +01:00
950a206bad
cpu/cortex-m: MPU: turn into feature "cortexm_mpu"
2020-02-18 16:41:36 +01:00
d7c0102115
cpu/cortexm: move CPU_ARCH/FAM to Makefile.features
2020-02-17 16:02:48 +01:00
1a75f26133
cpu/*: update to PM_BLOCKER_INITIAL as single value
2020-02-14 12:06:05 +01:00
Bas Stottelaar
3141e91380
Merge pull request #13174 from fjmolinas/pr_efm32_cleanup
...
cpu/efm32: cleanup
2020-02-12 22:42:10 +01:00
Dylan Laduranty
cc17d3c2ba
Merge pull request #13350 from benpicco/saml21-asf
...
cpu/sam0_common: update saml21 vendor files to version 1.2.125
2020-02-12 14:27:39 +01:00
Francisco Molina
9a7ddde05a
cpu/efm32/families: remove cpus.txt
2020-02-12 12:56:00 +01:00
Francisco Molina
ae1c54b045
cpu/efm32/efm32-info: use efm32-info instead of cpus.txt
2020-02-12 12:55:59 +01:00
Bas Stottelaar
8cf186c913
cpu/efm32/families: add efm32-info.mk
2020-02-12 12:55:59 +01:00
Francisco Molina
a0462488e8
cpu/efm32: add families/%/Makefile.include
...
Move INCLUDES and VECTORS_O to Makefile.include duplicate EFM32_HEADER
while cpu.txt is not migrated.
2020-02-12 12:55:58 +01:00
Francisco Molina
5715f13323
cpu/efm32/Makefile: DIRS based on USEMODULE
2020-02-12 12:55:57 +01:00
Benjamin Valentin
1333a5698c
cpu/sam0_common: update saml21 vendor files to version 1.2.125
...
This release adds EXTINT defines compatible with later versions of
the sam0 series of MCUs.
2020-02-12 11:46:36 +01:00
Benjamin Valentin
6f2cdb95da
cpu/saml21: pm: don't check individual part numbers
...
Just check if the define is availiable instead.
2020-02-12 11:44:20 +01:00
Francisco Molina
67ec9a298d
cpu/efm32: remove exports
2020-02-11 22:46:53 +01:00
Francisco Molina
7cc65c9b62
cpu/efm32/Makefile.include: remove CPU_FAM and CPU_ARCH
2020-02-11 22:46:52 +01:00