Commit Graph

5708 Commits (e6d9d515e483a83b5ec9cc9c7547a87119b15b9e)

Author SHA1 Message Date
Mahesh Mahadevan 4102114a72 MCUXpresso: Update Kinetis DSPI SDK drivers
- Added dummy data setup API to allow users to configure
  the dummy data to be transferred.
- Added new APIs for half-duplex transfer function. Users
  can send and receive data by one API in the polling/interrupt/EDMA way,
  and they can choose either to transmit first or to receive first.
  Additionally, the PCS pin can be configured as assert status in
  transmission (between transmit and receive) by setting the
  isPcsAssertInTransfer to true.
- Fix for MISRA issues

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-22 07:48:28 -05:00
Martin Kojtal 1182d1e9bb
Merge pull request #11284 from NXPmicro/K22_Add_USB_Support
K22: Add USBDEVICE support
2019-08-22 14:34:44 +02:00
jeromecoutant 680e0fc5fb DISCO_L4R9I: increase system clock from 80MHz to 120MHz 2019-08-22 13:32:20 +02:00
jeromecoutant bdd0689228 NUCLEO_L4R5ZI: increase system clock from 80MHz to 120MHz 2019-08-22 13:21:28 +02:00
Martin Kojtal 32e97e3371
Merge pull request #11267 from NXPmicro/LPC_Optimize_usticker
NXP MCUXpresso: optimize us_ticker for LPC platforms
2019-08-22 11:18:09 +02:00
Martin Kojtal 9d6bfcfc78
Merge pull request #11261 from NXPmicro/Enable_Tickless_LPC
MCUXpresso: Add TICKLESS support for LPC platforms
2019-08-22 11:06:00 +02:00
Alexandre Bourdiol 7647b39adc TARGET_STM: I2C sequential communication revert PR #3324 to original cube HAL 2019-08-22 10:44:20 +02:00
Martin Kojtal edcde1ce8c
Merge pull request #10796 from NXPmicro/tickless
NXP: Enable MBED_TICKLESS on various NXP platforms
2019-08-22 10:30:14 +02:00
Martin Kojtal d0c917cb32
Merge pull request #11274 from VVESTM/vve_eth_h7
Add ethernet support on NUCLEO_H743ZI board
2019-08-22 09:42:45 +02:00
Mahesh Mahadevan 20aa1ecfd9 K22F: Add FlashIAP for storage
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-21 12:10:00 -05:00
int_szyk 5c9daa3941 Tweak stm_spi_api Coverity issue.
Coverity warining: "memset fill truncated (NO_EFFECT)".
Changed SPI_FILL_WORD to SPI_FILL_CHAR.
2019-08-21 16:47:35 +02:00
Vincent Veron 8ab6aecbe9 Move stm32xx_emac_config.h to family specific folder
This allows to specify which hal version to use for each family.
It can also be used to modify the thread stack size.

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 15:02:45 +02:00
Vincent Veron 76fb4d22cc STM32H7 : update linker script files to use right location for lwip_ram_heap
Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 11:41:30 +02:00
Vincent Veron 9f2e9aa576 Add EMAC support for NUCLEO_H743ZI
This port is based on :
    * CurryGuy ethernet branch :
        https://github.com/CurryGuy/mbed-os/tree/feature-stm32h7-emac
    * STM32 Cube example :
        Applications/LwIP/LwIP_HTTP_Server_Netconn_RTOS example

Signed-off-by: Vincent Veron <vincent.veron@st.com>
2019-08-21 11:40:48 +02:00
Mahesh Mahadevan 7e6da8bffe K22: Add USBDEVICE support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-20 15:15:46 -05:00
Mahesh Mahadevan c8ad24c8f5 NXP MCUXpresso: optimize us_ticker for LPC platforms
Provide new optimizations for us_ticker and wait_us.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-20 10:39:28 -05:00
aqib-ublox 80e30f4258 ADc internal temperature suuport and EMAC header fix 2019-08-20 18:44:22 +05:00
Martin Kojtal ce74bb53c4
Merge pull request #11178 from Tharazi97/watchdog_max_timeout
ST: Watchdog: Fix timeout registers value calculation
2019-08-20 13:47:31 +02:00
Martin Kojtal c37b5628ec
Merge pull request #11255 from cy-vaira/nvram-cy8cmod-062s2-43012
Update NVRAM image for target CY8CMOD-062S2-43012
2019-08-20 10:27:30 +02:00
Martin Kojtal 169ada9209
Merge pull request #11237 from Tharazi97/TT_M3HQ-build-problem
Fix TT_M3HQ build problem
2019-08-20 10:23:28 +02:00
Martin Kojtal 191f029f73
Merge pull request #11226 from chrissnow/LPC1768_WDT
LPC1768 Watchdog & Reset Reason
2019-08-20 10:22:42 +02:00
Martin Kojtal e2fef54898
Merge pull request #11188 from NXPmicro/MXRT_TRNG
MIMXRT1050_EVK: Add TRNG support
2019-08-20 09:50:43 +02:00
Martin Kojtal e3bfcbc2ff
Merge pull request #11142 from hugueskamba/hk-usb-targets-relocation
Relocate USB target specific code to root `targets` directory
2019-08-20 09:39:30 +02:00
Martin Kojtal e56f3199eb
Merge pull request #11127 from NXPmicro/Fix_LPC55S69_AnalogIn
Fix ANALOGIN support for LPC55S69
2019-08-20 09:33:40 +02:00
Martin Kojtal b16aaca568
Merge pull request #11118 from ganesh-ramachandran/m46b_newfeatures
Add new features to Toshiba's TMPM46B
2019-08-20 09:27:28 +02:00
Chun-Chieh Li 96dac4faa7 [M487] Exclude A2/A3 from testing for NuMaker-IoT-M487 V1.3
Since NuMaker-IoT-M487 V1.3, A2/A3 are dedicated to on-board ESP8266 WiFi
module RTS/CTS pins and so must exclude from FPGA CI testing.
2019-08-20 13:12:44 +08:00
Chun-Chieh Li c99c43cacd [M2351] Fix pinmap table error with SPI clock pin 2019-08-20 13:12:44 +08:00
Chun-Chieh Li 07f39f1337 [M2351] Fix CLK_SetModuleClock_S(...) error with SPI
Fix SPI module index error in modidx_ns_tab table in CLK_SetModuleClock_S().
Need to update secure image for this bugfix.

This is also to fix FPGA CI test mbed_hal_fpga_ci_test_shield-spi/
SPI - init/free test all pins.
2019-08-20 13:12:44 +08:00
Chun-Chieh Li bab5d27e26 [M453] Classify by M45xD/M45xC and M45xG/M45xE
M451 series can classify by M45xD/M45xC and M45xG/M45xE. To support this
classification:
1.  Create TARGET_M45xD_M45xC and TARGET_M45xG_M45xE targets.
2.  Mark NUMAKER_PFM_M453 belongs to TARGET_M45xG_M45xE by 'extra_labels_add'
    in targets.json.
3.  Fix pin name table according to the classification.
4.  Fix pinmap table according to the classification.
2019-08-20 13:12:43 +08:00
Chun-Chieh Li 6f1bd325cd [NANO130] Remove SPI MOSI1/MISO1 pins from pinmap
MOSI1/MISO1 are used in second bit of 2-bit transfer mode and cannot be used
for normal MOSI/MISO. Remove them from pinmap.

This is also to fix FPGA CI test mbed_hal_fpga_ci_test_shield-spi/
SPI - basic test.
2019-08-20 13:12:43 +08:00
Chun-Chieh Li c3d7ef8341 [Nuvoton] Free up peripheral pins in peripheral free-up HAL API
Without free-up of peripheral pins, peripheral pins of the same peripheral may
share by multiple ports after port iteration, and this peripheral may fail with
pin interference.
2019-08-20 13:12:43 +08:00
Chun-Chieh Li ca0846b1e9 [Nuvoton] Support GPIO input pull-high/pull-low
In Nuvoton, only new-design chips support GPIO input pull-high/pull-low modes.
Targets not supporting this feature are listed below:

- NUMAKER_PFM_NANO130
- NUMAKER_PFM_NUC472
- NUMAKER_PFM_M453
2019-08-20 13:12:42 +08:00
Chun-Chieh Li 09bf844d76 [Nuvoton] Fix redundant call to UART IRQ handler
Honor RxIrq/TxIrq to avoid redundant call to UART IRQ handler.

This is also to fix FPGA CI test mbed_hal_fpga_ci_test_shield-uart.
2019-08-20 13:12:42 +08:00
Chun-Chieh Li d46c6fea47 [Nuvoton] Fix redundant SPI clock generation
Fix SPI clocks are generated redundantly at the end of transfer.

This is also to fix FPGA CI test mbed_hal_fpga_ci_test_shield-spi/
SPI - async mode.
2019-08-20 13:12:42 +08:00
Chun-Chieh Li 80c21aeff5 [Nuvoton] Fix I2C NACK error
Fix logic error on replying NACK at the end of transfer.

This is also to fix FPGA CI test mbed_hal_fpga_ci_test_shield-i2c/
i2c - test single byte read i2c API.
2019-08-20 13:12:42 +08:00
Chun-Chieh Li fef138a3cd [Nuvoton] Fix IP initialization sequence
Better IP initialization sequence:
1. Configure IP pins
2. Select IP clock source and then enable it
3. Reset the IP (SYS_ResetModule)

NOTE1: IP reset takes effect regardless of IP clock. So it doesn't matter if
       IP clock enable is before IP reset.
NOTE2: Non-configured pins may disturb IP's state, so IP pinout first and then
       IP reset.
NOTE3: IP reset at the end of IP initialization sequence can cover unexpected
       situation.
2019-08-20 13:12:41 +08:00
Chun-Chieh Li 560fe33ed8 [Nuvoton] Exclude USB UART from testing
USB UART is dedicated to USB COM and so must exclude from FPGA CI testing.
2019-08-20 13:12:41 +08:00
Chun-Chieh Li f88bd72c19 [Nuvoton] Force enum PinName to 32-bit
NU_PINNAME_BIND(...) requires enum PinName to be 32-bit to encode module
binding information in it.
2019-08-20 13:12:41 +08:00
Mahesh Mahadevan 99b1114e63 MCUXpresso: Add TICKLESS support for LPC platforms
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-19 13:15:39 -05:00
Chris Snow 82f4be0b4d SPDX identifier and license amended 2019-08-19 11:58:02 +01:00
Martin Kojtal 101ae73b87
Merge pull request #11063 from linlingao/f_cc3220sf_launchxl
Add CC3220SF_Launchxl to Mbed OS
2019-08-19 12:08:11 +02:00
Vairamuthu Ramasamy e7f190f2d7 Updated nvram image for target CY8CMOD-062S2-43012 2019-08-19 14:07:33 +05:30
Hugues Kamba 3d6fb15b48 Use consistant naming for Cypress USB target files. 2019-08-16 15:42:43 +01:00
Hugues Kamba de231b8664 Move USB Templates to `mbed-os/hal/usb` 2019-08-16 15:42:43 +01:00
Hugues Kamba f3df1c1d1e Relocate TARGET_MCU_NRF52840 to TARGET_NRF5x/TARGET_NRF52 2019-08-16 15:42:43 +01:00
Hugues Kamba 41346bad13 Rename template dir so future templates can be added to the same dir. 2019-08-16 15:42:43 +01:00
Hugues Kamba 5cbc3e0497 Relocate USB target specific code to root `targets` directory
All target specific source and header files should be in the `targets`
directory located at the root of the Mbed OS repository.
2019-08-16 15:42:43 +01:00
int_szyk 3c2ed16fce Fix TT_M3HQ build problem with SPI 2019-08-16 14:55:49 +02:00
int_szyk ce58505fa4 fix TT_M3HQ build problem with i2c 2019-08-16 14:55:49 +02:00
int_szyk aa56f86cec Remove SERIAL_FC from target.json on TT_M3HQ
Development board TT_M3HQ doesn't have CTS/RTS on its pinout.
If that is not the case PinMap_UART_RTS should be created.
2019-08-16 14:44:31 +02:00
Ganesh Ramachandran edf36fb2ae Added new features to TMPM46B 2019-08-16 10:43:52 +05:30
Mahesh Mahadevan 43b4c0ab82 MIMXRT1050_EVK: Add TRNG support
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-15 16:51:18 -05:00
Anna Bridge 08ecbfcd46
Merge pull request #11021 from OpenNuvoton/nuvoton_lpticker_delay_ticks
Nuvoton: Enlarge LPTICKER_DELAY_TICKS for safe
2019-08-15 12:47:55 +01:00
Chris Snow edc992b297 Enable WATCHDOG and RESET_REASON for other LPC1768 targets 2019-08-14 17:15:18 +01:00
Lin Gao cae7427717 Cosmetic changes to incorporate review feedback 2019-08-14 11:09:11 -05:00
Chris Snow 7e2c2a98dd LPC1768 Reset Reason implementation 2019-08-14 15:50:11 +01:00
Chris Snow 2fcafb9c93 LPC1768 WDT implementation 2019-08-14 13:42:04 +01:00
Martin Kojtal a6c316afee
Merge pull request #11020 from OpenNuvoton/nuvoton_wakeup_latency
Nuvoton: Enlarge required deep sleep latency
2019-08-14 13:38:00 +02:00
int_szyk df43350f28 Tweak STM watchdog implementation
Change the calculation method of rl so it is rounded up.
2019-08-14 13:02:47 +02:00
Chris Snow 9825b0d915 remove CAN section form .ANY 2019-08-13 20:18:52 +01:00
Chris Snow f801a61138 Make use of the other 32K of RAM if not used by libraries, least priority is IRAM1 to help maximise heap availability.
Most beneficial when LWIP is not in use.
2019-08-13 13:41:18 +01:00
Martin Kojtal de84004be1
Merge pull request #11189 from LMESTM/pwmout_cpp_guard
__cplusplus guard fixed pwmout_device.h for STM32 families
2019-08-13 11:19:24 +02:00
Martin Kojtal be23d3c871
Merge pull request #11137 from facchinm/nano33ble_public
Add Arduino Nano 33 BLE target
2019-08-13 10:51:12 +02:00
Martin Kojtal 9113c8d5d7
Merge pull request #11116 from nubix-io/issue-11115
Define I²C related pin names for the L-Tek FF_LPC546XX target
2019-08-13 10:42:49 +02:00
Mahesh Mahadevan d68d8009d9 K64F: Update UART aynchronous API for tickless implementation
Do not allow entry to deep sleep mode when UART transfer is active

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:17 -05:00
Mahesh Mahadevan 72e1f415a9 K64F: Update SPI aynchronous API for tickless implementation
Do not allow entry to deep sleep mode when SPI transfer is active

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:14 -05:00
Mahesh Mahadevan eaace297dc MCUXpresso: Provide an API to wait till TX complete
Wait till the data is flushed out of TX buffer

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:57:04 -05:00
Mahesh Mahadevan 75608f6db2 MCUXpresso: Updated SMC SDK driver
Update includes allocating RAM region for code to enter
stop modes and execute this code in RAM, thus the flash
is idle and no prefetch is performed while entering stop
mode.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:56:56 -05:00
Mahesh Mahadevan df64e32aa3 MCUXpresso: Update Kinetis Sleep implementation
1. Use the updated API's provided by the SMC driver
2. Wait till debug UART has finished transmitting data

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-12 10:56:52 -05:00
Mahesh Mahadevan 10bbbd1565 Fix ANALOGIN support for LPC55S69
1. Update to handle 12-bit resolution
2. Properly handle the pin configuration
3. Update the pin setup to handle the ADC B channel

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-09 09:18:04 -05:00
Mahesh Mahadevan bed28681d5 NXP: Enable MBED_TICKLESS on various NXP platforms
Enable for K22F, K64F, K66F, K82F, KL82Z, KW24D, KW41Z, MIMXRT1050, HEXIWEAR

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-08-09 09:17:16 -05:00
Martin Kojtal f8dc035ae4
Merge pull request #11139 from sethitow/stm32f413-crash-capture
STM32F413 Crash Capture
2019-08-09 12:49:21 +01:00
Martin Kojtal 174cac7e11
Merge pull request #11103 from desowin/stm32f7-usbhost
STM32F7: Do not generate redundant IN tokens
2019-08-09 11:36:37 +01:00
Martin Kojtal 9b4373639b
Merge pull request #11072 from jeromecoutant/PULL_REQUEST_CUBE_UPDATE_L4_V1.14.0
STM32L4: update drivers version to CUBE V1.14.0
2019-08-09 11:35:00 +01:00
Laurent Meunier 319223ac16 __cplusplus guard fixed pwmout_device.h for STM32 families
This bug prevented using this header in cpp code directly.
2019-08-09 09:51:39 +02:00
Martin Kojtal d27867ecd4
Merge pull request #11150 from byq77/patch-1
__cplusplus guard fixed pwmout_device.h for STM32F4
2019-08-09 08:41:12 +01:00
Martin Kojtal fd931a169d
Merge pull request #11168 from maciejbocianski/fix_qspi_write_k82f
Xpresso: qspi_write fix
2019-08-09 08:23:21 +01:00
Martino Facchin bd0988416e [TARGET] Add Arduino NANO33BLE 2019-08-08 17:24:56 +02:00
Seppo Takalo 5f6379a55d
Merge pull request #11119 from Reda-RM/master
Riot Micro cellular device
2019-08-07 14:07:27 +03:00
Maciej Bocianski f2599f43eb Xpresso: qspi_write fix
Due to the data buffer is loaded in two steps the whole block needs protection from being interrupted
2019-08-06 14:55:29 +02:00
Seppo Takalo 644f79592c
Merge pull request #11151 from kyle-cypress/pr/gpio-inout-fix
Fix PSoC 6 inout pins
2019-08-06 12:37:08 +03:00
Seppo Takalo 6436f11335
Merge pull request #11123 from desmond-blue/fix-nrf52-us-ticker-free
NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption
2019-08-06 11:33:55 +03:00
Seppo Takalo 1c2b050cb0
Merge pull request #11138 from maclobdell/fix-cypress-mbed-rom-start
fix rom start & size for CY8CKIT_062_WIFI_BT & CY8CPROTO_062_4343W
2019-08-06 11:33:09 +03:00
Seppo Takalo 1e4a837add
Merge pull request #11141 from maciejbocianski/i2c_Xpresso_byte_read_fix
freescale: fix i2c_byte_read function
2019-08-06 11:32:24 +03:00
Seppo Takalo fae1504e30
Merge pull request #11160 from OpenNuvoton/nuvoton_remove_delay_cycle_x4
Nuvoton: Remove dead code nu_delay_cycle_x4
2019-08-06 11:29:14 +03:00
Reda Maher ef1d9778a9 [Riot Micro] Add Riot Micro cellular module targets 2019-08-05 18:57:43 +02:00
Seppo Takalo f2236d26f8
Merge pull request #11131 from lrusinowicz/serial_free_fix
FUTURE_SEQUANA: Add missing serial_free() implementation
2019-08-05 15:41:45 +03:00
Seppo Takalo e69a7c913d
Merge pull request #11099 from trowbridgec/update-ep-agora-pinout
Update EP_AGORA target pinout
2019-08-05 12:00:08 +03:00
Chun-Chieh Li 413d127586 Nuvoton: Remove dead code nu_delay_cycle_x4(...)
Originally, nu_delay_cycle_x4(...) is borrowed from mbed test code for delay
cycle. Currently, it is not used on Nuvoton targets. If delay cycle is needed,
use wait_ns(...) instead which has strict implementation and has passed tests.
2019-08-05 09:32:35 +08:00
Seth Itow 9a65310a85 stm32f413xh: add crash capture support for ARM_STD 2019-08-01 11:28:36 -07:00
Szymon Szantula dd2876c8ac
__cplusplus guard fixed
This error prevented using this header in cpp code directly.
2019-08-01 14:41:11 +02:00
Seth Itow 1c4ad895dd stm32f413xh: add crash capture support for IAR 2019-07-31 15:54:47 -07:00
Seth Itow 6278dacc1f stm32f413xh: add crash capture support for ARM_MICRO 2019-07-31 15:54:20 -07:00
Seth Itow 489bd3dec8 stm32f413xh: add crash capture support for GCC_ARM 2019-07-31 15:53:34 -07:00
Kyle Kearney 33b06d4109 Fix inout pins not functioning correctly
Update the drive mode when setting the GPIO direction.
2019-07-31 11:51:04 -07:00
maclobdell e201a5c6be fix rom start & size for psoc6 targets for 5.13 2019-07-31 12:48:25 -05:00
Maciej Bocianski b788541308 freescale: fix i2c_byte_read function 2019-07-31 19:44:23 +02:00
Lin Gao c36980c370 Fix a build break with ARM compiler 2019-07-31 11:51:20 -05:00
Leszek Rusinowicz 16372f3222 FUTURE_SEQUANA: Add missing serial_free() implementation 2019-07-31 13:28:31 +02:00
Lin Gao eebe00b9d1 Implement PWMOUT 2019-07-30 11:09:44 -05:00
desmond.chen 7b5366f7a3 NRF52 need to call TIMER_TASK_SHUTDOWN for current consumption 2019-07-30 17:20:08 +08:00
Seppo Takalo 417a9fe2fb
Merge pull request #11074 from fkjagodzinski/pinmap-gpio_irq
Add a gpio-irq pinmap
2019-07-29 17:44:55 +03:00
Seppo Takalo 9affeb868d
Merge pull request #11071 from cypress-neil/pr/psoc6-usb
PSOC6: USB device implementation
2019-07-29 17:41:42 +03:00
David Rauschenbach d19c881a56 Define I²C related pin names for the L-Tek FF-LPC546XX target 2019-07-27 07:18:15 -07:00
Chris Trowbridge 04ca01d16f Update PinNames.h with the pinout for EP_AGORA HW rev 1.1 2019-07-26 11:48:36 -04:00
Filip Jagodzinski 844864066a PSOC6_FUTURE: Fix circular dependency for GPIO-IRQ
The use of `gpio_irq_event` & `gpio_irq_handler` in `gpio_irq_s` creates
a circular dependency.

hal/gpio_irq_api.h needs
targets/TARGET_Cypress/TARGET_PSOC6_FUTURE/TARGET_CY8C63XX/device.h, that needs
targets/TARGET_Cypress/TARGET_PSOC6_FUTURE/objects.h, that again needs
hal/gpio_irq_api.h, before the types are defined.

Remove `#include "gpio_irq_api.h"` directive from objects.h and change
the types of `gpio_irq_s` members.
2019-07-25 11:04:16 +02:00
Ireneusz Gaicki b9c4076741 STM32F7: Do not generate redundant IN tokens
When STM32F746-DISCO board was being used in (unsupported) USBHost mode,
the communication was unreliable. Our investigation revealed that the
problem lied in redundant IN tokens that the host generated even though
it shouldn't. This could lead to endless high-frequency NAKs being
received from device, which caused watchdog reset as USBHost spent all
time in interrupt handlers.

In our application the clocks frequencies are:
  * HCLK = 48 MHz
  * APB1 = 6 MHz
  * APB2 = 12 MHz

We have captured the raw USB High-Speed traffic using OpenVizsla.
Without this change, when USB MSD device connected to the system
responded to IN with NAK, there were excessive IN tokens generated about
667 ns after the NAK. With this commit the IN tokens are generated no
sooner than 10 us after the NAK.

The high frequency of the IN/NAK pairs is not the biggest problem.
The biggest problem is that the USB Host did continue to send the IN token
after DATA and ACK packets were received from device - *without* any request
from upper layer (USB MSD).

The USB MSD devices won't have extra data available on Bulk IN endpoint
after the expected data was received by Host. In such case IN/NAK cycle
time is only houndreds of nanoseconds, the MCU has no time for anything else.

The problem manifested not only on Bulk endpoints, but also during
Control transfers. Example correct scenario (when this fix is applied):
  * SETUP stage
    * SETUP [host -> address 0 endpoint 0]
    * DATA0 [80 06 00 01 00 00 08 00] [CRC16: EB 94]
    * ACK
  * DATA stage
    * IN
    * NAK
    ... the IN/NAK repeated multiple time until device was ready
    * IN
    * DATA1 [12 01 10 02 00 00 00 40] [CRC16: 55 41]
    * ACK
  * STATUS stage
    * OUT
    * DATA1 ZLP
    * ACK

Without this commit, in DATA stage, after the ACK was received, the host
did send extra IN to which device responded with STALL. On bus it was:
  * DATA stage
    ...
    * IN
    * DATA1 [12 01 10 02 00 00 00 40] [CRC16: 55 41]
    * IN
    * STALL
    * IN
    * STALL
  * STATUS stage
    * OUT
    * DATA1 ZLP
    * STALL

In the fault case the next SETUP was sent only after 510 ms, which
indicates timeout in upper layer.

With this commit the next SETUP is sent 120 us after the STATUS stage ACK.
2019-07-24 11:40:49 +02:00
Kyle Kearney b65be5fa29 Bug fixes to I2C and SPI drivers
- Fix assert when spi_master_block_write called with 0 size
- Fix assert when spi_format called before spi_frequency
- Simplify implementation of spi_master_write
- Simplify pointer arithmetic expressions in cyhal_spi_transfer and
  cyhal_spi_transfer_async
- Fix I2C driver not honoring the frequency specified during init.
2019-07-23 15:40:45 -07:00
Neil Tuttle 2bf79c1588 PSOC6: Remove USBDEVICE from FUTURE_SEQUANA targets 2019-07-23 15:30:06 -07:00
Lin Gao 2a06ae20cc Added missing pinmap definitions. Fixed target JSON config to avoid treating cc3220sf a target 2019-07-23 14:52:50 -05:00
Seppo Takalo c505d25186
Merge pull request #11077 from bentcooke/52840_align
NRF52840: remove align instructions from gcc linker for ARM.extab exi…
2019-07-23 11:37:47 +03:00
Seppo Takalo 13873f388c
Merge pull request #11062 from AGlass0fMilk/fix-nrf52-saadc-res-again
Fix SAADC resolution for nRF52-based targets... again
2019-07-22 15:30:11 +03:00
Seppo Takalo 0e33dd7e62
Merge pull request #11080 from kyle-cypress/pr/cy8ckit-062s2-43012
Add target for CY8CKIT_062S2_43012
2019-07-22 14:09:33 +03:00
Seppo Takalo 0d6a3be91d
Merge pull request #11079 from bentcooke/52840_patch3
NRF52840: enable TRNG in Nordic SDK config
2019-07-22 14:07:41 +03:00
Seppo Takalo 5aff943a84
Merge pull request #11064 from NXPmicro/Update_LPC_GPIO_IRQ
MCUXpresso: Fix the LPC GPIO IRQ driver
2019-07-22 11:42:46 +03:00
Seppo Takalo 94f434227d
Merge pull request #11060 from NXPmicro/LPC_Update_SPI_Driver
MCUXpresso: Update LPC spi driver
2019-07-22 11:37:20 +03:00
Kyle Kearney 40557cefeb Add target for CY8CKIT_062S2_43012 2019-07-19 15:44:27 -07:00
Ben Cooke 36bd06c00a NRF52840: enable TRNG in Nordic SDK config 2019-07-19 13:24:12 -05:00
Ben Cooke 892adc6e91 nrf52840: remove align instructions from gcc linker for ARM.extab exidx sections 2019-07-19 10:22:05 -05:00
jeromecoutant 96a773a0e6 STM32L4: update drivers version to CUBE V1.14.0 2019-07-19 13:15:07 +02:00
Neil Tuttle a372992aee PSOC6: USB device implementation 2019-07-18 11:16:16 -07:00
Mahesh Mahadevan 34619e55a6 MCUXpresso: Fix the LPC GPIO IRQ driver
The IRQ disable was always disabling both rising
and falling edges of the interrupt thereby causing
failures in cases when one of the two should stay enabled.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-17 15:18:59 -05:00
Seppo Takalo 12d60f86ea
Merge pull request #11050 from jeromecoutant/PR_DISCO_L4R9I
DISCO_L4R9I new target
2019-07-17 23:15:45 +03:00
Seppo Takalo 4cdde1d07f
Merge pull request #11052 from NXPmicro/Update_LPC546XX_ADC
Update MCUXpresso AnalogIn driver for LPC devices
2019-07-17 23:14:35 +03:00
Seppo Takalo fa9a3ed05f
Merge pull request #11053 from maclobdell/psoc6-add-bootloader-support
Add Mbed bootloader support to CY8CKIT_062_WIFI_BT and CY8CPROTO_062_4343W
2019-07-17 23:12:11 +03:00
Lin Gao e74fbcd79e Add CC3220SF_Launchxl to Mbed OS 2019-07-17 13:19:32 -05:00
George Beckstein 7ff707c9b4 Fix SAADC resolution for nRF52-based targets... again 2019-07-17 11:43:20 -04:00
Seppo Takalo 3d5489a6f8
Merge pull request #10644 from fkjagodzinski/hal-gpio_pinmap
Add a gpio pinmap
2019-07-17 14:39:40 +03:00
Seppo Takalo 987533859a
Merge pull request #10104 from kjbracey-arm/sleep_api
Sleep rework, RTOS API for bare metal, wait deprecations
2019-07-17 14:37:53 +03:00
Seppo Takalo 8efd123776
Merge pull request #11042 from caoyuan96421/bugfix
Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing in STM devices
2019-07-17 14:33:21 +03:00
Seppo Takalo 02f8fbda62
Merge pull request #11019 from OpenNuvoton/nuvoton_wait-ns
Nuvoton: Modify wait ns(...) to provide more accurate implementation
2019-07-17 14:30:47 +03:00
Evelyne Donnaes 0a4e5146b0
Merge pull request #11049 from SeppoTakalo/normalize
Normalize line endings for IM880B startup files.
2019-07-17 09:24:52 +01:00
Mahesh Mahadevan e50583459f LPC54114: Fix compile warnings
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-16 12:29:32 -05:00
Mahesh Mahadevan 55a2eddf8a MCUXpresso: Update LPC SPI HAL driver
Add support for different slave selects

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-16 12:10:34 -05:00
maclobdell ccbfea502c add defines for bootloader support, for target without cmsis pack 2019-07-15 23:13:22 -05:00
Mahesh Mahadevan 9b8a859883 MCUXpresso: Update the Analogin driver for LPC devices
1. Update the clock divider setting
2. ADC resolution is 12-bits, update the API return value
   to return 16-bit result
3. Update IOMUX setup

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-15 14:40:55 -05:00
Mahesh Mahadevan f4648673cf LPC54114: Update the ADC SDK driver
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-15 14:40:55 -05:00
Mahesh Mahadevan 7b011e9fe2 LPC546XX: Update the ADC SDK driver
Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-15 14:40:55 -05:00
Arto Kinnunen 9cdfe37783
Merge pull request #10994 from fkjagodzinski/fix-serial_fc_guards
Add DEVICE_SERIAL_FC guards to serial HAL API
2019-07-15 15:47:37 +03:00
Arto Kinnunen 01484a2226
Merge pull request #11007 from SiliconLabs/fix/fpga_tests/pwm
Fix PWM output on Silicon Labs targets for large pulsewidths
2019-07-15 15:43:46 +03:00
Arto Kinnunen b5d8c3860e
Merge pull request #11008 from SiliconLabs/fix/fpga_tests/spi
Enable FPGA-based SPI testing on Silicon Labs targets
2019-07-15 15:42:55 +03:00
Arto Kinnunen 6ef5e228b5
Merge pull request #11015 from SiliconLabs/fix/fpga_tests/adc
Fix wrongly declared ADC pinout for EFM32GG11 STK3701A
2019-07-15 15:38:47 +03:00
Arto Kinnunen 5c45fa72a9
Merge pull request #11003 from NXPmicro/Fix_LPC_I2C
LPC MCUXpresso: Remove extra I2C transaction on byte write
2019-07-15 15:32:02 +03:00
jeromecoutant 1a835dda4a DISCO_L4R9I new target 2019-07-15 14:06:40 +02:00
Seppo Takalo b22641ca18 Normalize line endings for IM880B startup files. 2019-07-15 14:56:22 +03:00
Martin Kojtal c98b0d0b03 VK_RZ_A1H: add mbed_get_a9_tick_irqn 2019-07-15 10:13:50 +03:00
Kevin Bracey a522dcfa0a Replace deprecated wait calls 2019-07-15 10:13:50 +03:00
Yuan Cao 6ed21ee1c0 Fixed serial_device IRQ infinite loop bug due to uint8_t overflowing 2019-07-13 00:05:25 -04:00
Chun-Chieh Li 1e5a52a1fd [Nuvoton] Fix mbedmicro-rtos-mbed-systimer/Wake up from deep sleep failing
This test requires total latency (tot = h/w + s/w) (wakeup from deepsleep) be
under 1ms. To check the issue, measure total latency on Nuvoton targets:

TARGET      EXP(us)     EXP+TOL(us) ACT(us)
NANO130     42000       43000       42939
NUC472      42000       43000       42236
M453        42000       43000       43274
M487        42000       43000       42877
M2351       42000       43000       43213

Checking h/w spec, h/w latency (wakeup time from normal power-down mode) on
M487/M2351 is just 1us (n/a on other targets). S/W latency plays the major
part here.

S/W latency relies on system performance. On Nuvoton targets, 'LPTICKER_DELAY_TICKS'
possibly complicates the test. Anyway, to pass the test, add extra 1ms latency
(deep-sleep-latency) in targets.json for Nuvoton targets.
2019-07-12 13:10:59 +08:00
Evelyne Donnaes 22c82dcb9c
Merge pull request #10692 from vmedcy/pr/psoc6-hal
PSOC6: initial integration of Cypress HAL
2019-07-11 17:28:23 +01:00
Volodymyr Medvid b6524070eb PSOC6: TARGET_PSOC6_FUTURE doesn't implement DEVICE_I2CSLAVE 2019-07-11 15:43:25 +03:00
Evelyne Donnaes 7db0e83836
Merge pull request #11013 from tymoteuszblochmobica/revert-10938-iar
Revert "K64F, STM32F429: IAR linker scripts dynamic  heap fix"
2019-07-11 12:18:53 +01:00
Volodymyr Medvid adfac3c1f9 PSOC6: do not remove QSPI from FUTURE_SEQUANA targets
Since QSPi is not yet supported by base TARGET_PSOC6,
there is no need to remove the device label from
FUTURE targets that inherit from TARGET_PSOC6.

This will need to be reverted back once the QSPI support
is implemented for Cypress PSOC6 targets.
2019-07-11 12:51:52 +03:00
Volodymyr Medvid bab34cb467 PSOC6: cleanup DEVICE_QSPI mappings
Note: device_has: "QSPI" is still disabled for TARGET_PSOC6
(QSPI HAL implementation is incomplete).
2019-07-11 12:50:56 +03:00
Volodymyr Medvid 2524a67c38 Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-11 10:19:03 +01:00
Martin Kojtal 9fdfe3fa30
Merge pull request #11002 from NXPmicro/Add_Restricted_List
LPC546XX: Add pins to LPCXpresso restricted list
2019-07-11 08:14:20 +01:00
Tymoteusz Bloch 878c93673b Reverted "K64F, STM32F429: IAR linker scripts dynamic heap fix"
due to side effect with K64F bootloader application jump after three consecutive HW resets.
2019-07-10 13:30:40 +02:00
Steven Cooreman 35851005ef Fix wrongly declared ADC pinout for EFM32GG11 STK3701A 2019-07-10 11:27:29 +01:00
Volodymyr Medvid 140b72d3ed Merge remote-tracking branch 'ARMmbed/master' into pr/psoc6-hal 2019-07-10 10:54:14 +01:00
Steven Cooreman fb4d898f2e Allow re-initializing an I2C peripheral
Allows the FPGA based test to pass, but requires #11004 before it will
2019-07-09 23:37:11 +01:00
Steven Cooreman 6094542bb1 Avoid the FPGA tester using hardware CS which is not supported
Also implement rudimentary spi_free...
2019-07-09 22:48:37 +01:00
Steven Cooreman 476dc6e46a Fix for PWM output found by testing against FPGA shield
Two issues:
* Downcasting too early
* Potential for a uint32_t overflow in an intermediate calculation

Passing test requires #11005 to be merged.
2019-07-09 22:38:53 +01:00
Mahesh Mahadevan aef60d7edf LPC MCUXpresso: Remove extra I2C transaction on byte write
An extra start signal was observed on the bus which was
discovered by the FPGA test shield.
This is because the hardware sends out a transaction as soon
as a write to the START bit. Hence the write to the START
bit is delayed by using a flag.

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-09 16:05:28 -05:00
Mahesh Mahadevan 58ba83b6e4 LPC546XX: Add pins to LPCXpresso restricted list
FPGA GPIO tests cannot be run on certain pins

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-07-09 15:40:55 -05:00
Filip Jagodzinski 4842c87815 RDA5981X: Add SERIAL_FC
According to comment in the implementation this target supports the
hardware flow control on UART1 peripheral.
This patch fixes build errors after adding DEVICE_SERIAL_FC guards to
hal/serial_api.h.
2019-07-09 16:30:12 +02:00
Filip Jagodzinski 68d222b3d1 MPS2: Fix serial_init when FC is not used
After adding DEVICE_SERIAL_FC guards to serial_api.h
serial_set_flow_control is not available. In case of this
implementation, this function is a no-op and may be safely removed.
2019-07-09 16:12:32 +02:00
Filip Jagodzinski 86149e59d6 FVP_MPS2: Fix serial_init when FC is not used
After adding DEVICE_SERIAL_FC guards to serial_api.h
serial_set_flow_control is not available. In case of this
implementation, this function is a no-op and may be safely removed.
2019-07-09 16:05:04 +02:00
Martin Kojtal 647b5817ce
Merge pull request #10982 from jeromecoutant/PR_LPUART
STM32 LPUART minor update  for easy maintenance
2019-07-09 08:33:06 +01:00
Chun-Chieh Li 21df0e00ce [Nuvoton] Enlarge LPTICKER_DELAY_TICKS for safe
On Nuvoton targets, lp_ticker_set_interrupt(...) needs around 3 lp-ticker
ticks to take effect. It may miss when current tick and match tick are very
close (see hal/LowPowerTickerWrapper.cpp). Enlarge LPTICKER_DELAY_TICKS to
4 from 3 to address this boundary case.
2019-07-09 15:27:34 +08:00
Martin Kojtal 358046e472
Merge pull request #10989 from mprse/spi_fpga_basic_test_ext
SPI FPGA test extension + SPI driver fix (K64F)
2019-07-08 20:42:47 +01:00
Volodymyr Medvid d77fb26e9f PSOC6: fix license headers per review feedback 2019-07-08 18:25:03 +03:00
Arto Kinnunen 1264660314
Merge pull request #10972 from 0xc0170/test_target
add new target IM880B
2019-07-08 16:34:36 +03:00
Martin Kojtal bd762ce03f
Merge pull request #10466 from jeromecoutant/PR_STM32H7_WATCHDOG
STM32H7: WATCHDOG and RESET_REASON support
2019-07-08 13:54:40 +01:00
Przemyslaw Stekiel 7d7c1416af K64F SPI driver: Add the delay between CS assertion and first sclk edge
FPGA test shield requires at lease half slck period delay between CS assertion and first sclk edge.
2019-07-08 14:54:33 +02:00
Volodymyr Medvid 1501ffe704 PSOC6: remove CY8CKIT-062S2-4343W (not ready for release)
Also removed _M0 targets that are no longer used.
2019-07-08 14:49:26 +03:00
Volodymyr Medvid 5cc66282dd PSOC6: remove PSA targets 2019-07-08 14:49:26 +03:00
Volodymyr Medvid 56f1d0613f PSOC6: remove libwiced_drivers for targets ported to WHD 2019-07-08 14:49:26 +03:00
Volodymyr Medvid d07ca87816 PSOC6: update Cypress boards to use TARGET_WHD 2019-07-08 14:49:26 +03:00
Volodymyr Medvid 8ede226c16 PSOC6: add WHD sources 2019-07-08 14:24:23 +03:00
Volodymyr Medvid 4f22853c1e PSOC6: update BSP sources 2019-07-08 14:24:23 +03:00
Volodymyr Medvid c647531767 PSOC6: update BSP GeneratedSource, add design.modus 2019-07-08 14:24:22 +03:00
Volodymyr Medvid 4bd47e9bca PSOC6: update to latest psoc6pdl 2019-07-08 14:24:21 +03:00
Volodymyr Medvid b562dd7895 PSOC6: update Cypress targets to use psoc6csp 2019-07-08 14:24:20 +03:00
Volodymyr Medvid a9cd9482c0 PSOC6: add psoc6csp asset with Cypress HAL implementation
PSoC 6 Chip Support Package provides hardware abstraction layer
for Cypress PSoC 6 device peripherals.
2019-07-08 13:26:46 +03:00
Chun-Chieh Li 3d905b0607 [NUC472] Override wait_ns(...) to provide more accurate implementation
NUC472 series doesn't support cache but supports branch buffer. But it still
cannot provide zero-wait state flash performance.
2019-07-08 17:52:26 +08:00
Chun-Chieh Li 2b9ee2a93f [NANO130] Override wait_ns(...) to provide more accurate implementation
NANO100 series doesn't support cache and so cannot provide zero-wait state
flash performance.
2019-07-08 17:52:26 +08:00
Chun-Chieh Li a03985ea43 [M2351] Refine wait_ns(...) code
1.  Add missing header file for mbed_mpu_manager_lock_ram_execution()/
    mbed_mpu_manager_unlock_ram_execution() to avoid compile warning.
2.  Locate delay_loop_code() on 16-byte boundary (sync to common version).
3.  Optimize delay_loop macro (sync to common version).
2019-07-08 17:51:49 +08:00
Volodymyr Medvid c9105eb068 PSOC6: use prebuilt CM0+ C arrays instead of HEX images
Replace the prebuilt CM0+ HEX images with C files that provide the
variable cy_m0p_image placed to the combined ELF image with linker
script. This simplifies build flow of PSoC 6 application and improves
compatibility with IDE export targets. It is still possible to use
the custom prebuilt HEX images for PSA targets that remove CM0P_SLEEP
label and specify the `hex_filename` in targets.json.
Linker scripts are compatible with both scenarios.
2019-07-08 10:41:02 +01:00
Volodymyr Medvid 9d983478d7 PSOC6: add psoc6cm0p asset with prebuilt CM0+ C arrays 2019-07-08 10:33:48 +01:00
Volodymyr Medvid 903085d066 PSOC6: format extra labels for Cypress kits 2019-07-08 10:31:14 +01:00
Arto Kinnunen 3d65ace77a
Merge pull request #10950 from artokin/Update_freescale_K6xF_linker_files
Enable split heap in K64F/K66F devices
2019-07-08 11:46:30 +03:00
jeromecoutant 8a3fd6a040 STM32 LPUART update 2019-07-05 17:52:41 +02:00
jeromecoutant 923be9e20e NUCLEO_H743ZI: enable WATCHDOG back 2019-07-05 14:44:47 +02:00
jeromecoutant 8b6d0920a8 STM32H7: Reset Reason update 2019-07-05 14:44:45 +02:00
jeromecoutant aa31b1268a STM32H7 watchdog patch 2019-07-05 14:44:43 +02:00
jeromecoutant da9b919268 STM32H7: Increase watchdog timeout value 2019-07-05 14:44:41 +02:00
jeromecoutant 3384cea281 STM32H7 : add LSI 2019-07-05 14:44:39 +02:00
Martin Kojtal 97d50ed936
Merge pull request #10873 from ganesh-ramachandran/m3hq_newfeatures
Add new features to Toshiba's TMPM3HQ
2019-07-05 13:06:46 +01:00
Martin Kojtal e08b7137a6
Merge pull request #10874 from ganesh-ramachandran/m3h6_newfeatures
Add new features to Toshiba's TMPM3H6
2019-07-05 13:06:03 +01:00
Arto Kinnunen d7190c8af4 Adjust K66F GCC_ARM linker file
Move heap_0 after .data as it is also placed to m_data.
2019-07-05 14:59:35 +03:00
Martin Kojtal 1eeed8c0e5
Merge pull request #10968 from teetak01/fix-mtb-stm-s2lp-for-client
Add FLASHIAP for MTB_STM_S2LP
2019-07-05 11:21:48 +01:00
Martin Kojtal b47064ae65
Merge pull request #10933 from tymoteuszblochmobica/chache
Nordic NRF52832 cache ON
2019-07-05 10:09:59 +01:00
itziar c327f4f070 add new target IM880B 2019-07-05 09:19:51 +01:00
Martin Kojtal a56247317e
Merge pull request #10798 from ThunderSoft123/master
TARGET_TT:Add GPIO INT pin with PT1
2019-07-05 08:57:34 +01:00
Teemu Takaluoma 0726e2f13b Add FLASHIAP for MTB_STM_S2LP
Fix device management client compilation on MTB_STM_S2LP

Fixes:

./mbed-cloud-client/mbed-client-pal/Source/Port/Reference-Impl/OS_Specific/mbedOS/ROT/pal_plat_rot.cpp:67:5: error: 'DeviceKey' was not declared in this scope
    DeviceKey &devkey = DeviceKey::get_instance();
2019-07-05 10:26:26 +03:00
Ganesh Ramachandran 61ad427a35 Changes for RTC peripheral status 2019-07-03 17:58:47 +05:30
Ganesh Ramachandran b4c0ce3a7e Changes for RTC peripheral status 2019-07-03 17:57:49 +05:30
Ganesh Ramachandran 3d48b7c1cc Changes for RTC peripheral status 2019-07-03 17:50:26 +05:30
Ganesh Ramachandran 6841f4a73a Added new features to TMPM3HQ 2019-07-03 17:18:10 +05:30
Ganesh Ramachandran bcaeddcb35 Removed dead code in TMPM4G9 - rtc_api.c 2019-07-03 17:10:30 +05:30
Ganesh Ramachandran 6eb07c1beb ARMC5 updated to ARM for TMPM4G9 2019-07-03 17:10:29 +05:30
Ganesh Ramachandran 4bbc29f32c Added SPDX identifier 2019-07-03 17:10:29 +05:30
Ganesh Ramachandran 2384b69b16 Added new features to TMPM4G9 2019-07-03 17:10:29 +05:30
Ganesh Ramachandran 2fee8d7390 Added new features to TMPM3H6 2019-07-03 17:01:41 +05:30
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 0e3a96305c
Merge pull request #10939 from AGlass0fMilk/fix-nrf52840-adc-resolution
Fix SAADC resolution for nRF52-based targets
2019-07-03 11:47:17 +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
Kevin Bracey 810cb8de4a Enable split heap in K64F/K66F devices
-Enable MBED_SPLIT_HEAP for K64F and K66F
-Allow GCC_ARM toolchain to utilize remaining 64K memory area
-Make ARM toolchain to start memory filling from 64K region to leave
 more space to bigger 192K region.
2019-07-03 11:47:32 +03:00
Martin Kojtal 149d53cc89
Merge pull request #10619 from jamesbeyond/fm-iap
Fastmodel: enable flashIAP and kvstore
2019-07-02 14:23:00 +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
Martin Kojtal fd445a57cb Watchdog: remove config value for timeout, set it dynamically
Use start method to set timeout
2019-07-02 12:46:23 +01:00
Martin Kojtal 7b0915c7d4 Watchdog: refactor driver
Watchdog is hardware driver. It interacts with HAL - provides wrapper to interact with the peripheral.

Provides basic functionality: start/stop, get timeout/max timeout.
It is automatically kicked by a timer, according to the timeout set in ctor.
2019-07-02 12:46:23 +01:00
Martin Kojtal 8b49ffc0c3
Merge pull request #10920 from NXPmicro/Update_Kinetis_SDK_Clock_Driver
Kinetis MCUXpresso: Update the clock drivers
2019-07-02 12:44:09 +01:00
George Beckstein f2b88362fb Apply same resolution fix to nRF52832 targets 2019-07-01 12:22:04 -04:00
George Beckstein b08a26bfa0 Fix SAADC resolution set in sdk_config. analogin_read_u16 assumes 12-bit range but config was set to 10 bit range causing incorrect readings to be returned. 2019-07-01 12:09:27 -04: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
Tymoteusz Bloch 1af0fe89b8 Nordic NRF52832 onboard instruction cache is turned ON to increase MCU performance 2019-07-01 15:08:53 +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 279925b6fc
Merge pull request #10869 from mathias-arm/master
LPC55S69: fix cosFactor data size in header file
2019-07-01 09:27:57 +01: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
Martin Kojtal d71db32154
Merge pull request #10881 from AGlass0fMilk/fix-nrf52-critical-region-api
Fix Nordic/Mbed Critical Section API Inconsistency (In Builds w/o Softdevice)
2019-07-01 09:18:10 +01:00
Laurent Meunier 6331034bd1 STM32 with low level ticker wrapper require Extra Idle stack 2019-07-01 09:33:23 +02: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 6397a6189f STM32 targets: remove tickless from us ticker and delay ticker
For L0/L4/H7/F7/WB targets that have tickless enabled, remove the tickless from
us ticker and the delay ticks as the C++ wrapper layer is being removed
and replaced by the low layer handling.

For now, the few F4 targets with LPTIM are left with previous configuration
as test results are showing a few instabilities not yet understood.
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
Mahesh Mahadevan 6c674ec0c7 Kinetis MCUXpresso: Update the clock drivers
Updated driver includes
1. Bug fixes
2. Formatting updates.
3. Fix for warnings
4. Better code commenting

Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
2019-06-28 10:09:52 -05: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 201a264051
Merge pull request #10791 from hugueskamba/fix-lpc55s69-bootloader-segmentation
bootloader: Fix LPC55S69 bootloader segmentation
2019-06-27 10:22:55 +01:00
Martin Kojtal d4aab5669d
Merge pull request #10888 from devran01/issue/10883
Remove macro MBEDTLS_PSA_CRYPTO_C from PSA targets
2019-06-27 10:10:47 +01:00
ThunderSoft_mbed_os edeeb33ba7
Update gpio_irq_api.c 2019-06-26 22:33:31 +08:00
Hugues Kamba b0804c4a0d bootloader: Fix LPC55S69 bootloader segmentation
As the build tool in mbed-os 5.13 cannot appropriately deal with a segmented
bootloader when combining it with an application, this commit adjusts the
size reserved for interrupts (via the linker file) to avoid a bootloader
segmentation due to an unpopulated ROM area.

The microcontroller has a total of 60 vector interrupts + 16 exception
handlers. The allocated ROM flash for interrupts should be (60 + 16) x word
size in bytes = 76 x 4 = 304 = 0x130.

This commit changes the interrupt reserved space from 0x140 to 0x130.
2019-06-26 13:55:07 +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
Martin Kojtal fa2e0217f2
Merge pull request #10856 from jeromecoutant/PR_CRC_LO
STM32: enable CRC for all L0/L4/F7
2019-06-25 11:08:08 +01:00