Commit Graph

360 Commits (mbed-os-5.10)

Author SHA1 Message Date
Marcus Chang ae4df9171b Remove debug flow control from NRF52_DK and NRF52840_DK
Currently flow control is not supported by the CI and enabling it
causes unwanted side effects.
2018-11-02 19:49:55 -05:00
Marcus Chang e2867d697d Fix hardware flow control on NRF52 series
Due to buggy flow control logic in the UARTE, the stop signal
is not being set as it is supposed to when the the module is
not ready to receive data.

This commit signals the sender to halt transmitting when a DMA
buffer is full and only continue again when the atomic FIFO
buffer has been emptied. This allows platforms with hardware
flow control to minimize all buffers and rely on flow control
instead.
2018-11-02 19:49:55 -05:00
Naveen Kaje b3b68bc995 NRF52 : Fix UART RTS initialization
The preprocessor based macro check #if evaluates all
enums as 0 and hence the code does not get compiled.
Since move this to a runtime check where the pin variable
can be correctly evaluated.

Delete mbed_overrides.c as it has a target specific mbed_sdk_init() to
resolve linking problem.

This is a follow on patch to:
https://github.com/ARMmbed/mbed-os/pull/8046
2018-11-02 19:49:54 -05:00
Naveen Kaje d1a9ec7e59 NRF52: setup the UART_RTS pin during startup to enable console RX
While investigating the RX issue on NRF52_DK after SDK 14 updates,
it is observed that the RX FIFO doesn't get filled up, when the
flow control is disabled. Hence the readable never returns true.
If using Serial interface, the stdio file handles (0, 1, 2) get opened.
This results in configuring the flow control for STDIO, and it is observed
that the RX FIFO gets filled.

However, if RawSerial is used, the STDIO file handles
don't get opened. During the debug process it was observed that if the
flow control is configured once and then set to disabled, RX worked
as expected.

Alternative to this approach is that user application specifically
enables flow control as done in mbed's Greentea test suite. See https://goo.gl/r8nBYH

See https://goo.gl/8VB2qg step 14 for _initio's description.
See test code to reproduce the issue and test fix here: https://goo.gl/AQU1xG

Description
The change in behavior with NRF52's UART RX is documented here. #6891
This change is a fix for the above issue.
2018-11-02 19:49:51 -05:00
Naveen Kaje 0483eae559 NRF52: setup the UART_RTS pin during startup to enable console RX
While investigating the RX issue on NRF52_DK after SDK 14 updates,
it is observed that the RX FIFO doesn't get filled up, when the
flow control is disabled. Hence the readable never returns true.
If using Serial interface, the stdio file handles (0, 1, 2) get opened.
This results in configuring the flow control for STDIO, and it is observed
that the RX FIFO gets filled.

However, if RawSerial is used, the STDIO file handles
don't get opened. During the debug process it was observed that if the
flow control is configured once and then set to disabled, RX worked
as expected.

Alternative to this approach is that user application specifically
enables flow control as done in mbed's Greentea test suite. See https://goo.gl/r8nBYH

See https://goo.gl/8VB2qg step 14 for _initio's description.
See test code to reproduce the issue and test fix here: https://goo.gl/AQU1xG

Description
The change in behavior with NRF52's UART RX is documented here. #6891
This change is a fix for the above issue.
2018-11-02 19:49:51 -05:00
Ashok Rao 88d4572c75 QSPI pins added 2018-10-19 11:46:55 +01:00
Ashok Rao 2ebd07f92b Addressing comments w.r.t alignments 2018-10-19 11:46:55 +01:00
Ashok Rao c15ce399b3 Adding Laird BL654 as a new MTB target 2018-10-19 11:46:55 +01:00
Deepika ae87e368d2 Nordic: Fix alignment of execute region to 8-byte boundary
--legacyalign, --no_legacyalign are deprecated from ARMC6 compiler, in order to
remove deprecated flags all linker files (GCC and IAR as well to have uniformity)
should strictly align to 8-byte boundary
2018-10-19 11:46:55 +01:00
Naveen Kaje 882642c2ab NRF52: Ensure that we configure hardware after flow control changes
Call the routines to program the hardware to reflect the updates made to
flow control so that the object and hardware are in synch.
2018-10-19 11:46:55 +01:00
Ashok Rao 31dcbc6540 Removing default flow control for BL652 2018-10-19 11:46:55 +01:00
Naveen Kaje 099d0500ef NRF52: serial_api: Use polling for putc
There are scenarios where putc is called within a critical section, e.g
to log ASSERTs in early initialization code. The interrupts being
disabled here prevents the handlers for the UARTE from executing.
This breaks the tx_in_progress flag based approach. The tx_in_progress
never gets reset. Poll on the TXDRDY instead.

It can be recreated with a simple program as shown here:

*************** Current Behavior ****************
++ MbedOS Error Info ++
Error Status: 0x80FF0100 Code: 256 Module: 255
Error Message: F

************** With Fix *************************

++ MbedOS Error Info ++
Error Status: 0x80FF0100 Code: 256 Module: 255
Error Message: Fatal Run-time error
Location: 0x2C0A9
Error Value: 0x0
Current Thread: Id: 0x20005520 Entry: 0x30EBF StackSize: 0x1000 StackMem: 0x20004520 SP: 0x20005490
For more info, visit: https://armmbed.github.io/mbedos-error/?error=0x80FF0100
-- MbedOS Error Info --
nrf failure at .\main.cpp:22
***************************************************
2018-10-19 11:46:55 +01:00
Andrew Leech 6334e71cc3 nrf: allow target.mbed_ram_start and target.mbed_ram_size to override settings in linker 2018-10-19 11:46:55 +01:00
Maciej Bocianski 51cac63eeb fix qspi address sending for nrf52
fix address sending in qspi_command_transfer
now address is send MSB first
2018-10-08 15:18:50 +01:00
Jammu Kekkonen 564483eccf Fix memory reservation for Softdevice in NRF52_DK 2018-09-11 15:04:48 +01:00
Yossi Levy 0ec25146f5 Changes in PR #7774 of PinNames.h should be reverted. This commit reverts those files excpet for K82F and K64F which are left as an example 2018-09-11 15:04:48 +01:00
Yossi Levy ed8e170d15 Moving SD, SPIF and FLASHIAP into mbedos and refactoring features storage directory structure. 2018-08-29 12:01:11 +03:00
Martin Kojtal 31a6fb49bd
Merge pull request #7817 from maciejbocianski/qspi_pinnames
standardise QSPI pin names
2018-08-24 21:12:25 +02:00
Martin Kojtal 2d330533a4
Merge pull request #7652 from andrewleech/nrf5x_config_lfclk
NRF5x: Fix config of LFCLK source / settings.
2018-08-24 13:05:24 +02:00
Maciej Bocianski 5195c820e6 standardise QSPI pin names 2018-08-24 12:09:51 +02:00
Maciej Bocianski 8b36d6b39a NRF5: fix qspi R/W opcodes mapping 2018-08-22 15:02:05 +02:00
Maciej Bocianski c2cc559aa7 NRF5: fix qspi custom command sending 2018-08-22 15:02:05 +02:00
Maciej Bocianski 1f4cc95f25 fix qspi command transfer for NORDIC
Add address unpacking support.
Only used in erase commands
2018-08-22 15:02:03 +02:00
Martin Kojtal ae7bb17eaf QSPI: add flash pins for nrf52480_dk board 2018-08-22 15:00:16 +02:00
Senthil Ramakrishnan cb4308ad64 Remove changes to Nordic SDK and modify HAL to track qspi init 2018-08-22 15:00:03 +02:00
Senthil Ramakrishnan 10a6fd6549 Add support for 1_1_2 and 1_2_2 modes in HAL 2018-08-22 15:00:01 +02:00
Senthil Ramakrishnan 16d121c5d2 Review fixes and doxygen changes 2018-08-22 15:00:00 +02:00
Senthil Ramakrishnan 009cc8b474 Enabling QSPI headers in Nordic HAL implementation and fix for UART STDIO definitions 2018-08-22 14:59:59 +02:00
Senthil Ramakrishnan 2df58e2d25 Modify QSPI HAL API to include an API for command-transfer operations 2018-08-22 14:59:59 +02:00
Martin Kojtal d1b51b6328 QSPI: initial HAL nrf52840 version
This commit adds QSPI HAL implementation for nrf52840 MCU targets
2018-08-22 14:59:58 +02:00
Andrew Leech 629357270e NRF5x: Fix config of LFCLK source / settings. 2018-08-22 13:55:28 +10:00
Cruz Monrreal 8e25d2d905
Merge pull request #7669 from SigmaDeltaTechnologiesInc/master
SDT64, 8195, 32620, 32625, 51822, 52832B added to targets
2018-08-17 11:10:12 -05:00
Cruz Monrreal b4e88392dd
Merge pull request #7645 from naveenkaje/fix_nrf
nrf_drv_twi: remove redundant nrf_drv_disable call in nrf_drv_twi_uninit
2018-08-15 15:51:21 -05:00
Jiwon Yune 04fc7aa36f Generic pin names added 2018-08-06 14:50:19 +01:00
Przemyslaw Stekiel ace821017f Add implementation of ticker_free() function to CI boards.
This PR provides implementation of ticker_free() function for the following boards:
ARCH_PRO
EV_COG_AD3029LZ
EV_COG_AD4050LZ
K22F
K64F
K82F
KW24D
KW41Z
LPC546XX
NRF51_DK
NRF52_DK
NUCLEO_F207ZG
NUCLEO_F401RE
NUCLEO_F429ZI
NUCLEO_F746ZG
REALTEK_RTL8195AM
2018-08-02 09:48:10 +02:00
Jiwon Yune 209a9dcc94 SDT52832B added 2018-08-01 18:21:45 +09:00
Jiwon Yune 784d17f68b SDT51822B added 2018-08-01 18:20:22 +09:00
Naveen Kaje db91e7ed02 nrf_drv_twi: remove redundant nrf_drv_disable call in nrf_drv_twi_uninit
i2c_api implementation for NRF52 does a disable() followed by uninit().
The uniinit() implementation in NRF drivers layer makes another call to
disable. This throws off the state of the I2C instance leading to an
assert. Since the disable is only invoked from the I2C API layer for
Nordic, remove this redundant call.

Signed-off-by: Naveen Kaje <Naveen.Kaje@arm.com>
2018-07-30 09:18:43 -05:00
Przemyslaw Stekiel c0ee843d63 Add lp/us ticker_free() functions stub.
This patch adds only empty stubs of `us_ticker_free()` and `lp_ticker_free()` for all boards where these functions are not implemented.
2018-07-25 08:58:38 +02:00
Cruz Monrreal dd6482b955
Merge pull request #7504 from TacoGrandeTX/feature_itm_fix
Feature itm fix
2018-07-18 09:01:13 -05:00
Marcus Chang 9a073c0ae4 Fix linker script for NRF52832/IAR
IAR linker script was using memory settings from the NRF52840 and
not the NRF52832.
2018-07-17 12:43:23 -07:00
Naveen Kaje ed251020b6 NRF52832 linker script: formatting fix 2018-07-12 15:19:13 -05:00
Naveen Kaje 192eb28814 Fix linker script for NRF52840/ARM 2018-07-12 15:19:13 -05:00
RFulchiero 0198481f8f Improved formatting for preprocessor conditionals. 2018-07-12 13:30:36 -05:00
Marcus Chang 10b90edea3 Fix ITM on NRF52 series
The ITM must be initialized before the SoftDevice, but due to the
lazy initialization in C++ on (at least) GCC the ITM init call
might happen too late.

This commit moves the initialization code into the NRF52 system
startup file.
2018-07-12 13:29:24 -05:00
Cruz Monrreal f4c936f455
Merge pull request #7486 from marcuschangarm/fix-nrf52-iar
Fix linker script for NRF52840/IAR
2018-07-12 10:09:12 -05:00
Marcus Chang fd088d2c4e Allow STDIO pins to be NC in NRF52 series
Prevent ASSERT from triggering when one of the STDIO pins is not
connected.
2018-07-11 17:19:18 -07:00
Marcus Chang 6f0bb757f4 Fix linker script for NRF52840/IAR
Add missing noinit section.
2018-07-11 15:48:51 -07:00
Marcus Chang 4bb84fdb71 Change NRF52 series UART to only use one SWI channel
This fixes conflicts with the SoftDevice.
2018-07-09 12:54:09 -07:00
Marcus Chang cfb99d689a Fix inconsistent SWI configuration in NRF52 series
All SWI channels except SWI0 is being used by the SoftDevice and
not only SWI1.
2018-07-09 12:54:09 -07:00