Commit Graph

20658 Commits (1b734a46d2f1cb66131853748325be06b4f0cf0a)

Author SHA1 Message Date
Teppo Järvelin c6205628d6 Cellular: unified return value comments on API folder. 2018-11-20 07:47:01 +02:00
Russ Butler 9ce3965ae2 Add flow control for RX FIFO filling
When the RX FIFO is nearly full use flow control to stop receiving
data.
2018-11-19 19:21:46 -06:00
Russ Butler 59bb79b05b NRF52 Serial overhaul
Make the following enhancement:
-Support serial port use without flow control
-Prevent dropped bytes by updating flow control handling
-Remove dead code

Serial port use without flow control:
In the prior implementation there was a window of time between
reloading DMA buffers after a timeout where bytes could be dropped.
This is because the uart needed to be turned off in order to flush the
bytes in the DMA buffer.

This change configures the DMA buffer to only receive one byte at a
time so there is no need to disable the uart to flush it. After each
byte is received the DMA transfer will be over so the transfer will
never be partially complete and need flushing. Since the uart is
always on it is safe to use it even without flow control.

Prevent dropped bytes by updating flow control handling:
To prevent dropped bytes due to high latency the flow control handling
of the RTS line was configured to be asserted automatically by
hardware after each byte. Once the CPU has read the byte and setup
the next receive buffer the RTS line is deasserted to the transfer can
continue. This ensure that when flow control is enabled data won't be
lost due to interrupt latency.

Remove dead code:
With the above changes there is a lot of dead code, such as the timer
handling code. This patch removes the code that is no longer used.
2018-11-19 19:21:45 -06:00
Jimmy Brisson b1b69d2d60 Compatibilize ArmC6 with ArmC5-built archives
### Description

Arm compiler 5 builds with "short" enums and "short" wchars. This means
that C/C++ enums will be packed into the smallest power of 2 number of
bytes by the compiler and the `wchar_t` is 2 bytes. Arm compiler 6
defaults to packing enums into 4 bytes and `wchar_t` is 4 bytes.

Further, Arm Compiler 5's `-O0` (no optimizations) bulids will actually
do some amount of optimizing, similar to Arm Compiler 6's `-O1`. I have
switched the debug profile to `-O1` for maximum compatibility with our
prior behavior.

NOTE: "Compatibilize" is a word

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Docs update
    [ ] Test update
    [ ] Breaking change
2018-11-19 11:43:05 -06:00
Jimmy Brisson f41b78c6b8 Move EMAC implementation to shared target 2018-11-19 09:37:17 -06:00
Jimmy Brisson 75200144ad Update mbed_rtx.h switch for new target naming 2018-11-19 09:37:17 -06:00
Jimmy Brisson ab84d2bf33 *LPC546XX: Finish MCU Refactoring
### Description

The Mbed 2 release was broken for FF_LPC546XX as it would include
the entire mbed 2 build of the LPC546XX. This PR seperates these 2
builds completely by:

 * Removing non-shared extra labels from the MCU_LPC546XX target
 * Moving the target implementation to a shared target directory

### Pull request type

    [x] Fix
    [ ] Refactor
    [ ] Target update
    [ ] Functionality change
    [ ] Breaking change
2018-11-19 09:37:17 -06:00
Teppo Järvelin a655a538b0 Cellular: more gracefully disconnect. 2018-11-19 16:02:30 +02:00
Seppo Takalo bdc355f873 Astyle fixes 2018-11-19 15:31:31 +02:00
Seppo Takalo 5d170f2b3e Clarify that TLSSocket should not be reopened. 2018-11-19 15:19:50 +02:00
Seppo Takalo 6192ed1480 Compare the intermediate timestamps as well 2018-11-19 15:19:50 +02:00
Seppo Takalo 2229a2f2f5 Need to protect members with MBEDTLS_PK_C and X509_CRT_PARSE flags.
This is dependency to X509_CRT_PARSE but just to make sure
that also the 'mbedtls_pk_context' structure is not used if that
flag is not enabled.
2018-11-19 15:19:49 +02:00
Seppo Takalo 46c46019bc Refactor DTLSSocket to use Socket::getpeername()
Also, let DTLSSocket to be a friend of InternetSocket so it can do
the name resolution from its _stack.

+ Some whitespace fixes
2018-11-19 15:19:49 +02:00
Seppo Takalo 695db63df8 Decrease verbosity of the TLSSocketWrapper 2018-11-19 15:19:49 +02:00
Michal Paszta 392bccf835 Add unit tests for TLSSocket and TLSSocketWrapper
This also includes their Datagram counterparts: DTLSSocket and DTLSSocketWrapper.
Coverage missing for timer-related functionality, but this would require more advanced stub development.
The extra (d)tls_test_config.h is necessary for successful compilation without HW support for the mbedtls features in unittests.
I reused the mbedtls stub found in features/nanostack/coap-service/test/coap-service/unittest/stub/mbedtls_stub.c and amended it slightly with a few missing functions.
2018-11-19 15:19:49 +02:00
Seppo Takalo 2ca1fe65dd Implement DTLSSocket helper
This is equivalent of TLSSocket class but for UDP and DTLS.
2018-11-19 15:19:49 +02:00
Seppo Takalo d22adbdb26 Implement DTLSSocketWrapper and fix non-blocking connections on TLSSocket
DTLSSocketWrapper is equivalent of TLSSocketWrapper but uses datagram mode
and timers for handling Mbed TLS timeouts.

Non-blocking connections were not working earlier, now fixed for both
secure socket modes.
2018-11-19 15:19:49 +02:00
Martin Kojtal 9aef9d3661
Merge pull request #8671 from mray19027/uart_break
Feature: Add non-blocking serial break/unbreak functions
2018-11-19 13:14:55 +00:00
Martin Kojtal 13b60c2991
Merge pull request #8673 from kegilbert/config-range-limits-dev
Add Mbed Configuration Option Range Limits
2018-11-19 13:14:02 +00:00
Martin Kojtal 8dc54f1f76
Merge pull request #8782 from bridadan/fix_test_traceback
Fix traceback when running mbed test
2018-11-19 13:12:34 +00:00
Martin Kojtal 00c5b56e32
Merge pull request #8683 from NXPmicro/feature-qspi-lpc546xx
Feature qspi lpc546xx
2018-11-19 13:11:44 +00:00
Amir Cohen cf846151eb Add block device small data size test 2018-11-19 14:49:28 +02:00
Martin Kojtal 31475455ea
Merge pull request #8751 from jarvte/ctx_unittests
Cellular: minor fix to CellularDevice and adding updating unit tests after refactoring
2018-11-19 11:54:56 +00:00
Michal Paszta 42940fab3c Deprecate TCP/UDPSocket open-calling constructors
Updated Doxygen, removed the only one call of the deprecated constructor from the tests.
2018-11-19 12:19:52 +01:00
Ari Parkkila 9bdeb68e74 Cellular: Updated debug prints, and network registration return value
Updated cellular debug trace prints:
 - Removed unnecessary prints.
 - Tracing more in DEBUG level.
 - Read/write bytes not printed on big packets.
 - Signal quality (RSSI) traced to log network problems.
 - Dismissed AT data is traced.
 - Modem type and firmware version are traced.

Network registration returns NotRegistered instead of StatusNotAvailable,
because that's not in 3GPP TS 27.007.
2018-11-19 02:55:43 -08:00
Michal Paszta e53ee631f9 Greentea netsocket and network tests improvements
Added smarter rounding of times in recv_timeout and increased the delta by one, to allow "off-by-one" errors.
Reverted commit 88eea6a, reducing TESTS_TIMEOUT back to 480.
Introduced a 100ms timeout for waiting on asynchronous DNS resolution.
Improved error handling on disconnects.
2018-11-19 08:58:14 +01:00
Teppo Järvelin a3589ed41f Fixed cellular backward compatiblity. 2018-11-19 09:04:22 +02:00
Senthil Ramakrishnan f59b99d889 Removing support for printing error-report after reboot and other minor fixes 2018-11-18 22:42:37 -06:00
Senthil Ramakrishnan a0e42fa21e Removing config option to print report to terminal on reboot, as it conflicts with current implementation of mbed_error_printf 2018-11-18 20:45:23 -06:00
Senthil Ramakrishnan 2d58f2374c Added more details around crc field and updated document with terminologies used 2018-11-18 20:40:41 -06:00
Senthil Ramakrishnan a87043fd74 Add function to reset the reboot count 2018-11-18 20:40:41 -06:00
Senthil Ramakrishnan 3ffa78ed41 Change phrasing and tense 2018-11-18 20:40:41 -06:00
Senthil Ramakrishnan 340099c9ea Fix code style issues and fix typos in diagrams 2018-11-18 20:40:40 -06:00
Senthil Ramakrishnan 0b9cd601de Updated with crash report region info and new diagrams added 2018-11-18 20:40:40 -06:00
Senthil Ramakrishnan 8c48a24ad4 Fix tab issues in TOC 2018-11-18 20:40:40 -06:00
Senthil Ramakrishnan 108483d5cb Updated TOC 2018-11-18 20:40:40 -06:00
Senthil Ramakrishnan a721158cd6 Boot sequence diagram added 2018-11-18 20:40:39 -06:00
Senthil Ramakrishnan c3d2c446d0 Fixed sentences and context 2018-11-18 20:40:39 -06:00
Senthil Ramakrishnan a6e76049be Adding usage scenarios 2018-11-18 20:40:39 -06:00
Senthil Ramakrishnan 28a0b4554b Updated design doc 2018-11-18 20:40:39 -06:00
Senthil Ramakrishnan 5489eacb18 Crash reporting design doc 2018-11-18 20:40:39 -06:00
Senthil Ramakrishnan d4fc8fe66c Crash Reporting Design 2018-11-18 20:40:38 -06:00
Yoshihiro TSUBOI a1d2ac7462 [Wio 3G] Adding IAR exporting definition 2018-11-18 00:35:37 +09:00
Russ Butler 21dd8e40ab Configure NRF52 uart on interrupt attach
When attaching an irq to serial call nordic_nrf5_serial_configure.
This ensures the serial is ready to receive data at the correct
baudrate.
2018-11-16 17:35:54 -06:00
Marcus Chang bb98ce082e Make serial_putc for NRF52 non-blocking
Busy-wait before sending a charecter instead of after. If
serial_writeable has been called first, the busy-wait loop will
be skipped.

Added initialization code to ensure NRF_UARTE_EVENT_TXDRDY is
armed correctly.
2018-11-16 17:32:53 -06:00
Russ Butler 4cda158e55 Fix uart race condition dropping bytes on NRF52
In nordic_nrf5_uart_event_handler if the events NRF_UARTE_EVENT_ENDRX
and NRF_UARTE_EVENT_RXSTARTED become pending after the check for
NRF_UARTE_EVENT_ENDRX but before the check for
NRF_UARTE_EVENT_RXSTARTED the RX DMA buffers will be setup incorrectly
by nordic_nrf5_uart_event_handler_rxstarted because active_bank hasn't
been updated. This cause dropped and incorrect data.

This patch fixes that problem by adding a second check for
NRF_UARTE_EVENT_ENDRX after checking for NRF_UARTE_EVENT_RXSTARTED
and skipping processing if NRF_UARTE_EVENT_ENDRX is set. The
subsequent interrupt will process both in the correct order. This
ensures that these events cannot be handled out of order and thus fixes
the corruption.
2018-11-16 17:30:31 -06:00
Senthil Ramakrishnan 423b52e1c3 Fix crc calculation error, code-style issues and other fixes 2018-11-16 17:24:52 -06:00
Brian Daniels 6cab1e0018 Fixing traceback when running mbed test 2018-11-16 15:28:50 -06:00
Senthil Ramakrishnan f1926c0ea9 Fix linker script errors 2018-11-16 14:00:00 -06:00
Senthil Ramakrishnan a07a373c9f Change the reboot-max value semantics and code style and other fixes 2018-11-16 14:00:00 -06:00