Commit Graph

1962 Commits (3384cea281b41d75f6c472cde8fc1a6140f53af0)

Author SHA1 Message Date
jeromecoutant 3384cea281 STM32H7 : add LSI 2019-07-05 14:44:39 +02:00
Martin Kojtal 608e4c245f
Merge pull request #10938 from tymoteuszblochmobica/iar
K64F, STM32F429: IAR linker scripts dynamic  heap fix
2019-07-03 12:00:35 +01:00
Martin Kojtal ccb63d771e
Merge pull request #10857 from ARMmbed/feature-watchdog
Add Watchdog and ResetReason
2019-07-03 11:43:52 +01:00
Martin Kojtal a84c239830
Merge pull request #10701 from LMESTM/STM_lp_ticker_low_level_wrapper
STM: replace C++ low power ticker wrapper with a low level wrapper
2019-07-02 12:50:11 +01:00
Tymoteusz Bloch 83057c95d0 IAR icf linker scripts modified to use dynamic heap allocation of all available memory. 2019-07-01 17:57:40 +02:00
Kevin Bracey 1ced842391 STM: Correct macro test in us_ticker_defines.h
Avoids build warning caused by #10609
2019-07-01 13:34:55 +03:00
Martin Kojtal be2c2bed30
Merge pull request #10884 from jeromecoutant/PR_H743ZI2
NUCLEO_H743ZI2 new target support
2019-07-01 09:27:31 +01:00
Martin Kojtal 9e0dc3e198
Merge pull request #10859 from malavikasajikumar/master
Removing I2C and SPI pin names in SDP-K1 PinNames.h file.
2019-07-01 09:23:06 +01:00
Laurent Meunier 58a4685811 STM32: lp_ticker optim: initialize handle once only 2019-07-01 09:33:23 +02:00
Laurent Meunier ee95c7e64a STM32: lp_ticker optim: remove irq_handler variable 2019-07-01 09:33:23 +02:00
Laurent Meunier 8616cd7655 Update comments and fix typo 2019-07-01 09:33:23 +02:00
Laurent Meunier 501881bf38 Update warning now that C++ wrapper is not needed anymore
Now we'd rather not use this wrapper and use instead the low level
wrapper implemented in this driver.
2019-07-01 09:33:22 +02:00
Laurent Meunier d4ec62ff0c Manage lp_ticker delay at low level
LP TICKER mbed-os wrapper needs to be disabled as it introduces too much latencies.

LP TICKER wrapper has been disabled and we need to managed the HW constraints at low level:
- main HW constraint is that once the comparator has been programmed once,
driver cannot program it again before CMPOK HW flag is set, which takes about 3 30us cycles.

To make it even more complex, the driver also needs to cope with "LP ticker workaround"

See commit:

LP ticker workaround

    There is an errata in LPTIM specification that explains that CMP Flag
    condition is not an exact match (COUNTER = MATCH) but rather a
    comparison (COUNTER >= MATCH).

Also the disable interrupt is more complete now:
- always check sleep manager status and restore it
- remove irq_handler as comparator is always programed and might get called
eventually when LP TICK is restarted
- reset delayed_prog

Also in set_interrupt, make sure interrupt does not fire early.
If needed, we decide to slightly delay the tick to cope with the HW limitation to
make sure it will fire as soon as HW is capable.

Functions are called under critical section as they may be called from
the IRQ handler now, not only from driver layer.
2019-07-01 09:31:53 +02:00
Laurent Meunier 6452eb3172 LP ticker workaround
There is an errata in LPTIM specification that explains that CMP Flag
condition is not an exact match (COUNTER = MATCH) but rather a
comparison (COUNTER >= MATCH).

As a consequence the interrupt is firing early than expected when
programing a timestamp after the 0xFFFF wrap-around.

In order to
work-around this issue, we implement the below work-around.
In case timestamp is after the work-around, let's decide to program the
CMP value to 0xFFFF, which is the wrap-around value. There would anyway be
a wake-up at the time of wrap-around to let the OS update the system time.
When the wrap-around interrupt happen, OS will check the current time and
program again the timestamp to the proper value.
2019-07-01 09:31:53 +02:00
Martin Kojtal 85c477c1dc
Merge pull request #10609 from kjbracey-arm/us_ticker_optimise
wait_us optimization
2019-06-28 14:29:00 +01:00
Martin Kojtal 61c4d05ce9
Merge pull request #10824 from ABOSTM/PRSTM32_PWMWRTIE_GLITCH_10734
STM32: pwmout_write: configure channel only when not already enabled
2019-06-28 14:24:14 +01:00
Martin Kojtal 924af9481e
Merge pull request #10841 from VVESTM/vve_10827_spi_count
TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference
2019-06-26 09:09:38 +01:00
Martin Kojtal b0073bb70d
Merge pull request #10774 from fkjagodzinski/fix-uart_irq
Fix serial IRQ handling
2019-06-25 15:49:41 +01:00
jeromecoutant d2ea0f9432 NUCLEO_H743ZI2 new target support 2019-06-24 11:00:58 +02:00
Alexandre Bourdiol a339084684 STM32: pwmout_write: configure channel only when not already enabled
Fix PWM glitch on write(), TARGET_STM/pwmout_api.c, #10734
2019-06-20 17:49:16 +02:00
Malavika Sajikumar 6632282b4a Removing I2C and SPI pin names in SDP-K1 PinNames.h file.
This is to ensure the use of Arduino pin names Dxx for I2C and SPI pins in programs written for SDP-K1 board.
2019-06-18 08:15:01 -07:00
Vincent Veron 31eb49b918 TARGET_STM: Add DEVICE_SPI_COUNT to use SPIs without interference
Extend to all STM targets the work done on PR10752.

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-06-14 14:15:56 +02:00
Kevin Bracey 8d15a2342f STM: optimize us_ticker
Provide new optimizations for us_ticker and wait_us.
2019-06-14 10:22:08 +03:00
Martin Kojtal 5a8f795976
Merge pull request #10804 from VVESTM/vve_fix_10589
TARGET_STM: SPI: update pull up config depending on clk polarity
2019-06-14 07:45:25 +01:00
Martin Kojtal 09ea361c7e
Merge pull request #10790 from jeromecoutant/PR_H7_LPUART
STM32H7 enable LPUART
2019-06-11 09:06:22 +01:00
Martin Kojtal 94d2a42fd5
Merge pull request #10793 from jeromecoutant/PR_STM32WARNING
STM32: remove compilation warnings
2019-06-11 07:36:47 +01:00
Martin Kojtal 9dfc8d0ea7
Merge pull request #10775 from jeromecoutant/PR_H7_REFACTOR
STM32H7: refactor TARGET directory
2019-06-09 18:22:04 +01:00
Martin Kojtal 356c4fb7cb
Merge pull request #10758 from toyowata/stm32f407xe
Move Seeed ARCH_MAX to TARGET_STM32F407xE MCU
2019-06-09 18:20:03 +01:00
Martin Kojtal 9ab0e09699
Merge pull request #10752 from teijokinnunen/stm32l0_target_spi_count
STM32L0: Add DEVICE_SPI_COUNT to DISCO_L072CZ_LRWAN1 + MTB_MURATA_ABZ
2019-06-09 18:19:34 +01:00
Martin Kojtal ced4c3f4e4
Merge pull request #10708 from VVESTM/vve_fix_10671
TARGET_STM: SPI: add pulse on master transmissions
2019-06-09 18:10:42 +01:00
jeromecoutant 5ac7c8c77e STM32WB warning compilation
[-Wparentheses-equality]
2019-06-07 18:11:16 +02:00
jeromecoutant ddcc63276a STM32H7 warning compilation
[-Wparentheses-equality]
2019-06-07 18:11:04 +02:00
jeromecoutant 39ee51a017 STM32L4 warning compilation
[-Wparentheses-equality]
2019-06-07 18:10:17 +02:00
jeromecoutant 43a304351a STM32L1 warning compilation
[-Wparentheses-equality]
2019-06-07 18:10:17 +02:00
jeromecoutant daf8d114c4 STM32L0 warning compilation
[-Wparentheses-equality]
2019-06-07 18:10:17 +02:00
jeromecoutant 7d05f22b31 STM32F7 warning compilation
[-Wparentheses-equality]
[-Wsign-compare]
2019-06-07 18:10:03 +02:00
jeromecoutant 09a58b5203 STM32F4 warning compilation
[-Wparentheses-equality]
2019-06-07 18:08:51 +02:00
jeromecoutant 89f554fb53 STM32F3 warning compilation
[-Wparentheses-equality]
2019-06-07 18:08:51 +02:00
jeromecoutant f3c7cc9d47 STM32F2 warning compilation
[-Wparentheses-equality]
2019-06-07 18:08:51 +02:00
jeromecoutant 8c2ee68be1 STM32F1 warning compilation
[-Wparentheses-equality]
2019-06-07 18:08:50 +02:00
jeromecoutant 7154ac65f2 STM32F0 warning compilation
[-Wparentheses-equality]
2019-06-07 18:08:50 +02:00
jeromecoutant 5d80f9e98f STM32: remove compilation warning 2019-06-07 18:08:39 +02:00
jeromecoutant a90e68e788 STM32H7 UART: enable LPUART 2019-06-07 18:05:06 +02:00
Filip Jagodzinski 14b83e7fdf STM32WB: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:36:21 +02:00
Filip Jagodzinski 53222fa448 STM32L4: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:33:49 +02:00
Filip Jagodzinski fa0cc68657 STM32H7: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:30:03 +02:00
Filip Jagodzinski d6a48218ee STM32F3: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:26:20 +02:00
Filip Jagodzinski b88b94eb75 STM32L0: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:17:22 +02:00
Filip Jagodzinski c387bd889f STM32F0: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:17:17 +02:00
Filip Jagodzinski 84384162bb STM32F7: Fix serial IRQ handling
Check that the RX or TX interrupt is enabled before calling
a registered handler with RxIrq or TxIrq arg.
2019-06-07 15:17:07 +02:00