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

215 Commits

Author SHA1 Message Date
133968ce8a cpu/stm32_common: add support for lpuart 2018-12-13 12:39:00 +01:00
MrKevinWeiss
3e1fd9f494 cpu/stm32_common/i2c: Fix error handling in i2c_1.c
Errors flags could not clear making the i2c unusable after error.
This fix removes the error check in start so the error flags can clear and does proper checking for status bits before _bus_check.
2018-10-26 09:56:35 +02:00
e9a6ebc409 cpu: drivers/eeprom: refactor periph_eeprom implementation 2018-10-16 10:39:10 +02:00
Peter Kietzmann
b2c791c6cb
Merge pull request #10135 from miri64/cpu/enh/periph-gpio-irq-closing-endif
cpu, periph_gpio: mark closing #endif for MODULE_PERIPH_GPIO_IRQ
2018-10-15 13:41:02 +02:00
cladmi
e0a5860bb7
cpu/stm32_common: remove inadapted periph_flash_common
The `periph_flash_common` feature was only defined here to trigger
inclusion of a source file with common functions.
It even only defines private symbols `_lock` and `_unlock` so no reason
to expose it to the build system.
And in practice, all stm cpus providing `periph_flashpage` or
`periph_eeprom` were required to provide `periph_flash_common` to allow
including it.

The previous implementation was only parsing in the modules were in
`FEATURES_REQUIRED` wich did not take cases of `FEATURES_OPTIONAL` into
account.
And also, in the same time, as the dependencies was declared in
`Makefile.include` it was processed before `Makefile.dep` so never handled
cases where a module could depend on `periph_flashpage` or
`periph_eeprom` feature.

It is replaced by selecting the common source file when module using it
are included.

The now useless feature `periph_flash_common` is removed from
`FEATURES_PROVIDED`.
2018-10-11 15:20:44 +02:00
cladmi
d8080a66e4
cpu/stm32_common: Do not use USEMODULE to select i2c implem
`cpu/stm32_common/Makefile.dep` was never included by the global
`Makefile.dep`, so declaring this `USEMODULE +=` here was never shown to
the build system and never exported as `MODULE_PERIPH_I2C_X` variables.

In fact, `USEMODULE` was only used to trigger the `periph.mk`/`SUBMODULES`
mechanism to add matching source files names to `SRC` and so select
the implementation for each CPU type.

It is replaced by just explicitly selecting the right source file.
2018-10-11 15:20:25 +02:00
Hauke Petersen
5f50db07e8 misc: use correct hauke.petersen@fu email address 2018-10-11 12:20:37 +02:00
Martine Lenders
92c5a7824a stm32_common: mark closing #endif for MODULE_PERIPH_GPIO_IRQ 2018-10-09 15:11:00 +02:00
Hauke Petersen
a956d71a67 cpu/stm32_common/gpio: use gpio_irq feature 2018-09-21 08:19:51 +02:00
MichelRottleuthner
2db68b600b
Merge pull request #9505 from PeterKietzmann/pr_puf_stm32
cpu/stm32_common: add PUF SRAM feature to makefile
2018-08-17 13:08:21 +02:00
Martine Lenders
9478274bd9 stm32_common/eeprom: fix DEBUG formatting
This fixes compilation for `periph_eeprom` with LLVM/clang and also is
more in accordance with our [coding conventions].

[coding conventions]: https://github.com/RIOT-OS/RIOT/wiki/Coding-conventions#-wformat
2018-08-14 14:56:44 +02:00
a008b983b3 cpu/stm32_common: add flashpage support for stm32l4 2018-08-06 12:33:03 +02:00
Martine Lenders
6f78a7f331 stm32_common: i2c_2: fix for -Wunused-function
This came up when compiling an application for a STM32-based board
with LLVM/clang. The function is not used if I²C is not provided.
2018-08-03 16:12:52 +02:00
dylad
69297a0939 cpu/stm32_common: remove scl_af/sda_af attribut for STM32F1 2018-07-25 15:17:43 +02:00
5f1d5e0d83 cpu/stm32_common: various improvements in i2c_1 driver
- dont send stop if bus is busy and before any action is done on bus
- and bus check that looks for bus error, arbitration and nack events
- check for ACK (TXIS) before writing bytes on bus and not between each write
2018-07-25 12:01:39 +02:00
MrKevinWeiss
e8c56ceadc cpu/stm32_common/i2c: Fix return error code 2018-07-25 12:01:39 +02:00
MrKevinWeiss
6016266c77 cpu/stm_common/i2c: Fix error code 2018-07-25 12:01:38 +02:00
MrKevinWeiss
6a3f9f35dc cpu/stm32_common/i2c: Fix extra clear_addr 2018-07-25 12:01:38 +02:00
MrKevinWeiss
6f6c3d7926 cpu/stm_common/i2c: style fix 2018-07-25 12:01:38 +02:00
MrKevinWeiss
6c4f144e25 cpu/stm32_common/i2c: fix addr nack and flags 2018-07-25 12:01:38 +02:00
99b3bb88bd cpu/stm32_common: update return values to error codes 2018-07-25 12:01:37 +02:00
Vincent Dupont
c0c9ea034c cpu/stm32_common: add timeouts in stm32f4 i2c driver 2018-07-25 12:01:37 +02:00
06e11c5586 cpu/stm32_common: adapt i2c driver to stm32f1 2018-07-25 12:01:37 +02:00
9166fb27fa cpu/stm32_common: split common i2c periph in 2
- i2c_1 is built for f0, f3, f7, l0 and l4
- i2c_2 is built for f4
2018-07-25 12:01:36 +02:00
ebc17acb59 cpu/stm32{f0,f3,f7,l0,l4}: unify i2c driver and use new API 2018-07-25 12:01:35 +02:00
Michel Rottleuthner
b36131eea6 cpu/stm32_common: add variable for SRAM2 length on stm32l47xxx 2018-07-17 17:52:12 +02:00
Michel Rottleuthner
5610894ebe stm32_common: fix ram length for MCUs with non-contiguous ram
stm32l47xxx see RM0351, Rev 6, page 75
https://www.st.com/resource/en/reference_manual/dm00083560.pdf#page=75

stm32f303xx see RM0316, Rev 8, page 53
https://www.st.com/resource/en/reference_manual/dm00043574.pdf#page=53

stm32f334xx see RM0364, Rev 3, page 47
https://www.st.com/resource/en/reference_manual/dm00093941.pdf#page=47
2018-07-17 17:12:57 +02:00
Vincent Dupont
bdac278c18 cpu/stm32_common/hwrng: use CPU_LINE for for stm32f410-specific code 2018-07-09 11:52:05 +02:00
Vincent Dupont
654595221d cpu/stm32_common: use CPU_LINE for stm32f410-specific code 2018-07-09 11:51:39 +02:00
PeterKietzmann
45d47ea22f cpu/stm32_common: add PUF SRAM feature to makefile 2018-07-05 16:21:14 +02:00
Vincent Dupont
f4c01499c6
Merge pull request #9096 from OTAkeys/pr/stm32_cpu_line
cpu/stm32: add CPU_LINE_* variable and use it for stm32f0 and stm32f4
2018-06-27 00:21:02 -07:00
Vincent Dupont
e1ce7e5026 cpu/stm32_common: add STM32_FLASHSIZE constant 2018-06-19 14:31:23 +02:00
Vincent Dupont
4d7a195d33 cpu/stm32_common: add CPU_LINE_ variable 2018-06-19 14:22:46 +02:00
600727453b cpu/stm32_common/flashpage: clear EOP bit
This was taken from STM32 Cube generated code
2018-05-30 14:14:29 +02:00
f7b61b6ac1 cpu/stm32_common/flashpage: force waiting for pending operations
Moving the while loop in a separate function ensures no ordering
    optimizations is applied silently by gcc.
    This commit fixes the flashpage not working on iotlab-m3.
2018-05-30 14:12:24 +02:00
c73ec5c00f cpu/stm32_common/periph: don't lock if flash is already locked 2018-05-30 14:09:17 +02:00
cb089a2f74 cpu/stm32_common/periph: cleanup flashpage
- improve debug messages
- fix missing space before comment
- use a comment instead of debug message (the same message is displayed by the function called after)
2018-05-30 14:09:17 +02:00
89e0389f27 cpu/stm32_common: implement eeprom access functions 2018-05-24 14:07:55 +02:00
Vincent Dupont
8fc63738f6 cpu/stm32_common: adapt UART driver to use DMA 2018-05-23 11:09:46 +02:00
Vincent Dupont
6551d896be cpu/stm32_common: adapt SPI driver to use DMA 2018-05-23 11:09:46 +02:00
Vincent Dupont
d399518ac6 cpu/stm32_common: add DMA implementation for F2/F4/F7 2018-05-23 11:09:46 +02:00
83e8a52176
Merge pull request #9089 from gebart/pr/ldscript-attrs
cpu: ldscript memory attribute corrections
2018-05-09 09:26:20 +02:00
Joakim Nohlgård
986000492d stm32_common: Adjust ldscript memory segment attributes 2018-05-09 06:49:29 +02:00
Vincent Dupont
4e86e12247 cpu/stm32_common: add info-stm32 make target 2018-05-04 15:30:56 +02:00
Vincent Dupont
549bf0ef78 cpu/stm32: use const pointer in flashpage 2018-03-14 16:28:33 +01:00
67190a31ef cpu/stm32_common: unify flashpage support 2018-03-13 16:30:04 +01:00
Aurelien Fillau
0368239a63 cpu/stm32l0: power management updated
Now, MCU is able to go in stop mode if necessary when
periph_pm feature is activated.
Regarding LPSDSR bit that deactivates or not regulator in stop
mode, it is up to the user to set/clear this bit. In order
to save power, voltage regulator can be set in low power state
during stop mode but it increases wakeup time.

Signed-off-by: Aurelien Fillau <aurelien.fillau@gmail.com>
2018-03-11 11:01:25 +01:00
7f150d6041
Merge pull request #7787 from OTAkeys/pr/stm32_pm_periph
cpu/stm32: add pm support in uart, spi and i2c (f4)
2018-03-06 16:34:44 +02:00
Hauke Petersen
e78b055787
Merge pull request #8556 from kaspar030/stm32_gpio_read
cpu: stm32_common: always do gpio_read() from input register
2018-03-06 15:30:01 +01:00
Vincent Dupont
34e8609f2c cpu/stm32_common: add pm support in spi driver 2018-03-06 15:13:01 +01:00
Vincent Dupont
1aee2f1f14 cpu/stm32_common: add pm support in uart driver 2018-03-06 15:13:00 +01:00
Vincent Dupont
c01e8629ec cpu/stm32_common: add PM modes 2018-03-06 15:12:58 +01:00
58e172e4df cpu/stm32_common: always enable PWR module 2018-03-06 14:55:32 +01:00
3b42fb49b5 cpu/stm32: unify cpu_init() 2018-03-05 12:35:00 +01:00
Gilles DOFFE
bee493ac71 cpu/stm32_common: add qdec implementation
* Add support for the STM32 encoder interface
* The STM32 only supports X2 and X4 modes.
* Enable interrupt handler on counter overflow
* Add simple test code for QDEC based on nucleo-f401 board

Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
2018-02-23 23:17:26 +01:00
83bff5c643 cpu: stm32_common: always do gpio_read() from input register 2018-02-13 21:51:45 +01:00
Vincent Dupont
972eeefe6e stm32_common/rtt: add support for stm32f4 2018-02-08 17:39:39 +01:00
Francisco Acosta
38880acad8
Merge pull request #7799 from kYc0o/factorise_stm32_ld
ld: refactor stm32 linker scripts
2017-11-30 14:28:51 +01:00
kYc0o
d6751dde22 cpu/stm32_common/Makefile.include: add ccm linker var 2017-11-30 14:11:08 +01:00
kYc0o
945d7f6887 cpu/stm32_common: add stm32_mem_lengths.mk to calculate ROM and RAM lengths 2017-11-30 14:11:07 +01:00
smlng
b283b7784c make: fix various compile errors with Wextra
pkg, nordic_softdevice_ble: disable CFLAGS to omit compiler error
        sys, pm_layered: fix casting nonscalar to the same type
        cpu, stm32_common: fix type-limits, remove always true assert
        cpu, stm32f4: fix pointer arithmetic in periph/i2c
        drivers, at86rf2xx: fix type-limits where condition always true
        saul, gpio: fix if no gpio configured for saul
        cpu, saml21: add frequency check to periph/timer
        driver, cc110x: fix unused param and type-limts errors
        boards, wsn430-common: fix old-style-declaration
        make: fix old style definition
        drivers, sdcard_spi: fix old style typedef
        driver, at30tse: remove unnecessary check
        driver, nrf24: fix type-limit
        driver, pn532: change buffer from char to uint8_t
        tests/driver_sdcard: fix type limits
        boards, feather-m0: add missing field inits
        driver, tcs37727: fix type limits
        pkg, emb6: disable some compiler warnings
        tests/emb6: disable some compiler warings
        pkg, openthread: fix sign compare and unused params
        tests/trickle: fix struct init
        tests/pthread_cooperation: fix type limits
        board, mips-malta: remove feature periph_uart
        shell: fix var size for netif command
        gnrc, netif: fix sign-compare
        gnrc, nib: fix sign-compare
        shell: fix output in netif command
        posix: fix type-limits in pthread_cond
2017-11-28 18:31:43 +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
kYc0o
d0067b451f cpu/stm32_common/ldscripts: add stm32_common.ld to manage specific ST ccmram 2017-11-17 00:29:06 +01:00
George Hopkins
ebd525306a cpu/stm32_common: consider timer multiplier for PWM 2017-11-10 17:25:13 +01:00
Hauke Petersen
87200c4803 cpu/stm32: removed file guards from periph drivers 2017-11-09 16:27:24 +01:00
f697d0d859 cpu: stm32_common: rename rtt_lptim.c -> rtt.c
This ensures that the rtt code is made available by depending on
periph_rtt.
2017-11-06 12:01:19 +01:00
a20745b6c5 cpu: make use of Makefile.periph 2017-11-06 12:01:19 +01:00
bf6269e12b cpu: stm32: reorganize Makefile.features 2017-11-02 12:59:45 +01:00
Hauke Petersen
5920d99752 pm: fix weak-based default implementations
Instead of using `weak` function definitions, this PR handles
default implementations using `PROVIDES_x` defines, allowing
for cpus/pm realted modules to use their own implementations.
2017-10-16 14:27:35 +02:00
508547d1bd Merge pull request #7385 from OTAkeys/pr/stm32_pm
cpu/stm32_common: fix stm32f1/2/4 pm
2017-10-16 13:52:12 +02:00
Hauke Petersen
05e13cdef8 Merge pull request #7731 from haukepetersen/opt_stm32_cpuid
cpu/stm32: optimized definition of CPUID_ADDR
2017-10-13 16:12:41 +02:00
Hauke Petersen
5a35517787 cpu/stm32: optimized definition of CPUID_ADDR 2017-10-13 16:03:32 +02:00
Martine Lenders
12bf670ac4 Merge pull request #7665 from aabadie/pr/stm32/periph_dox_fix
cpu/stm32_common/periph: fix doxygen parent group
2017-10-13 13:10:49 +02:00
Tristan Bruns
1b21eac448 cpu/stm32_common: fix clk_conf 2017-10-11 12:39:02 +02:00
Vincent Dupont
be588c2f0e cpu/stm32_common: use pseudomodule for UART HW FC 2017-10-10 14:09:05 +02:00
Vincent Dupont
2170f47a66 cpu/stm32_common: re-enable PLL when leaving stop 2017-10-06 17:40:47 +02:00
Hauke Petersen
b08188efd2 cpu/stm32/gpio: do not clear pin on init 2017-10-04 12:12:16 +02:00
2a1a7395f8 cpu/stm32_common/periph: fix doxygen grouping 2017-10-01 21:55:59 +02:00
Joakim Nohlgård
b720c304bb Merge pull request #7502 from kaspar030/stmclk_remove_ifdef
cpu: stm32: convert preprocessor if to compiler if statement
2017-09-20 10:48:15 +02:00
6d18a51769 cpu:_stm32_common: #ifdef -> if 2017-09-19 22:46:53 +02:00
Vincent Dupont
05c731125c cpu/stm32_common: fix extra PLL enabling 2017-09-01 10:26:04 +02:00
Vincent Dupont
38b2167f55 cpu/stm32_common: add R factors for PLLs 2017-09-01 10:26:04 +02:00
Vincent Dupont
e005554b48 cpu/stm32_common: update doc 2017-09-01 10:15:26 +02:00
Vincent Dupont
60be58ea6d cpu/stm32_common: unify stmclk for stm32f[0|1|3] with f[2|4|7] 2017-09-01 10:14:18 +02:00
Vincent Dupont
c11544279a cpu/stm32_common: adapt clk_conf for f0, f1 and f3 2017-09-01 10:14:08 +02:00
Vincent Dupont
33e8a419be cpu/stm32_common: add clock config documentation 2017-08-28 17:51:00 +02:00
Vincent Dupont
d2a4acecd9 cpu/stm32_common: unify stmclk for stm32f[2|4|7] and adapt to use clk_conf 2017-08-28 17:51:00 +02:00
Vincent Dupont
400158537f cpu/stm32_common: add a tool to generate clock settings 2017-08-28 17:51:00 +02:00
Martine Lenders
952682b32c Merge pull request #7508 from aabadie/cpu_samd21_doc
cpu: fix missing doxygen group definitions + cleanup
2017-08-24 16:37:02 +02:00
Hauke Petersen
8b150624ed cpu/stm32: reworked the RTC driver implementation 2017-08-24 15:32:27 +02:00
d2938a3a34 cpu/stm32_common: add missing doxygen group definition 2017-08-24 14:54:47 +02:00
Hauke Petersen
265173806e cpu/stm32: added model specific LSI clock speeds 2017-08-23 15:39:16 +02:00
Hauke Petersen
82485cf7c6 cpu/stm32: fixed lfclk functions for L0 and L1 2017-08-23 15:39:16 +02:00
Hauke Petersen
5422f0da72 stm32: unified parts of stmclk implementations
- unified dbp, hsi, and lfclk functions
- all of them now work for all STM32 CPUs
- renamed from bdp to dbp as this is the expression used
  in the reference manuals (old naming was a typo...)
2017-08-21 17:40:22 +02:00
Hauke Petersen
768459d6c1 Merge pull request #7420 from MichelRottleuthner/rtc_stm32l4
periph/rtc: add support for stm32l4
2017-08-21 10:10:26 +02:00
Vincent Dupont
e2099ebc66 Merge pull request #7454 from MichelRottleuthner/stm32_rtc_sync_fix
stm32_common/periph/rtc: fix wrong read order of rtc regs
2017-08-07 17:34:20 +02:00
MichelRottleuthner
0a9383228e stm32_common/periph/rtc: fix wrong read order of rtc regs, add wait for calender sync to rtc_set_time 2017-08-07 16:35:56 +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