Commit Graph

10811 Commits (091396defefc46352ee90d76114bb1e842b032ca)

Author SHA1 Message Date
Hasnain Virk 091396defe Adding mbed_trace to ppp_lwip
We introduce here mbed_trace to ppp_lwip shim layer.
If for some reason, FEATURE_COMMON_PAL is not included in the build,
dummies for trace functions are provided.
2017-05-31 15:02:11 +03:00
Kevin Bracey be00c1720b Separate LWIP core and Ethernet interface initialisation
Will allow LWIP to be initialised for PPP use.
2017-05-31 15:02:11 +03:00
Kevin Bracey ae7fd61d65 RAM optimizations
Trying to save RAM wherever possible for Ublox C027 platform
2017-05-31 15:02:11 +03:00
Kevin Bracey f37f265ed5 Add more LWIP JSON configuration, including PPP
Add configuration to control Ethernet, PPP and TCP support.

Replaces LWIP_TRANSPORT_ETHERNET/PPP defines formerly used by targets.

Ethernet and PPP can be enabled simultaneously.

DHCPv4 is now only enabled if IPv4 and Ethernet are both enabled - we
assume PPP uses IPCP for configuration.

PPP configuration adjusted to cope with LWIP 2.0 changes, and
optimised for RAM a little.
2017-05-31 15:02:11 +03:00
Kevin Bracey d0820d1ed3 Cope with different LWIP configurations 2017-05-31 15:02:11 +03:00
Kevin Bracey 7f136d5a35 PPP Interface for LWIP using FileHandle stream
This is a glue layer between LWIP PPP implementation and a device type FileHandle
stream. This enables an external interface which has a FileHandle, utilize LWIP network
stack via PPP, e.g., Cellular device, WiFi chips etc.
Its totally transparent to external device. Only thing this layer is interested in, is a
FileHandle. Similar is true for for the external device, it just hands over its stream to this
PPP layer and rest of the magic is done by this layer.
2017-05-31 15:02:11 +03:00
Hasnain Virk ea117e5a1a Memory Optimizations and simplifications in ATParser
ATParser had been using std <vector> which had been pulling along a lot
of standard C++ stuff. We have an alternative implementation whcih achieves
a similar effect but without using <vector>. this saves a bunch of valuable
RAM resource.

We have also simplified the overall system by introducing proper CR and LF
rather than \r\n type of delimiters. This newline simplification is borrowed
from retarget.cpp.
2017-05-31 15:02:11 +03:00
Hasnain Virk 4a04c9ce5d Extending ATParser to use FileHandle
Existing ATParser is extended to use FileHandle. This essentially detaches
ATParser from previous tight binding with various implementations of serial
interfaces with buffering.
Now the ATParser uses only abstract FileHandle and doesn't really care about
the underlying implementation. Underneath, it could be a USB device type FileHandle
or a Serial device type FileHandle etc.
Some simplification steps were taken as the code provided opportunities to simplify
and optimize.
2017-05-31 15:02:11 +03:00
Hasnain Virk 2790d44862 Introducing a BufferedSerial
BufferedSerial is a FileHandle and using SerialBase.
It keeps the SerialBase private however lets the user extend FileHandle
by keeping it public.

It is using CircularBuffer class for having circular buffers.

There are some minor amendments in CircularBuffer too.

Adding an entry for tx/rx buffer sizes in platform/mbed_lib.json.
Default size is 256 bytes.

For RTOS read(), write() calls yield for other threads to carry on with their stuff.
For non-RTOS blovking read or write would mean a loop where 100 percent resources are
consumed by this loop. Need to get a better implementation in. Currently no mechanism to
wake the mcu up after WFE.
2017-05-31 15:02:11 +03:00
Hasnain Virk 09ae609d56 Stream class should use mbed::fdopen() to attach a stream
mbed::fdopen() is provided in mbed_retarget.cpp which will attach a stream to the
given FileHandle. Removing mbed_set_unbuffered_stream() from stream class as it
is defined in mbed_retarget.cpp. Stream class should not decide whether it wants
to detach buffers from c library or not. mbed::fdopen() will do that based upon
isatty() call. So if a FileHandle is not a tty, i.e., is not a device type, c library
buffering will not be turned off. For device type FileHandles, c library buffering
is turned off.
2017-05-31 15:02:11 +03:00
Hasnain Virk b2408d8a16 Extending FileHandle & introducing mbed_poll
This has been an attempt to extend existing FileHandle to behave like POSIX
file descriptor for input/output resources/devices too.
This will now provide an abstract indicator/handle any arbitrary file or device
type resource. May be in future, sockets too.

In order to correctly detect availability of read/write a FileHandle, we needed
a select or poll mechanisms. We opted for poll as POSIX defines in
http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html Currently,
mbed::poll() just spins and scans filehandles looking for any events we are
interested in. In future, his spinning behaviour will be replaced with
condition variables.

In retarget.cpp we have introduced an mbed::fdopen() function which is
equivalent to C fdopen(). It attaches a std stream to our FileHandle stream.
newlib-nano somehow does not seem to call isatty() so retarget doesn't work for
device type file handles. We handle this by checking ourselves in
mbed::fdopen() if we wish to attach our stream to std stream.  We also turn off
buffering by C library as our stuff will be buffered already.

sigio() is also provided, matching the API of the Socket class, with a view to
future unification. As well as unblocking poll(), _poll_change calls the user
sigio callback if an event happens, i.e., when FileHandle becomes
readable/writable.
2017-05-31 15:02:11 +03:00
Kevin Bracey fb7cbdf356 Tighten mbed_retarget.cpp error handling
* Don't set errno when calls are successful (will slightly alleviate the problem
  of errno not being thread-safe yet).
* Transfer errors returned from size() and seek() into errno.
* Fix isatty() - could never return 1 from a FileHandle.
* Use more appropriate errors than EBADF in some places (eg ENOENT for non-existant path).
2017-05-31 15:02:11 +03:00
Kevin Bracey 533910cb87 Correct return type of FileHandle::size()
File size should be off_t, not size_t.
2017-05-31 15:02:11 +03:00
Martin Kojtal 88c398b52a Merge pull request #4377 from theotherjimmy/disable-cortex-A
Disable Cortex-A in tooling for better error messages
2017-05-31 07:50:21 +01:00
Jimmy Brisson f5859b308b Disable Cortex-A in tooling to provide better error messages
Disable Cortex-A in compile supported matrix
Disable Cortex-A in export supported matrix
2017-05-30 14:32:06 -05:00
Sam Grove f438251aa3 Merge pull request #3936 from geky/bd-mbr
bd: Add MBR block device for standard storage partitioning
2017-05-30 13:04:50 -05:00
Anna Bridge 1a37ea608a Merge pull request #4393 from 0xc0170/fix_race_test_single
race tests: fix unsupported condition
2017-05-30 16:59:01 +01:00
Anna Bridge 45b4d41bbd Merge pull request #4329 from adustm/can_sync_error
Fix for #3863: STM Check can sync error
2017-05-30 16:52:09 +01:00
Anna Bridge 9c6a068d48 Merge pull request #4324 from monkiineko/master
STM32F3: Remove dependence upon a specific flash vector table location
2017-05-30 16:50:45 +01:00
Anna Bridge ddc015fb6e Merge pull request #4303 from nvlsianpu/nrf52840_iar
enable iar exporter for nRF52840
2017-05-30 16:45:25 +01:00
adustm 6770678811 Fix another typo 2017-05-29 10:24:03 +02:00
adustm 795bfd2288 Fix coding style 2017-05-29 10:24:03 +02:00
adustm b99ccf65bd Add timeout also on the 1st while loop 2017-05-29 10:24:03 +02:00
adustm 9a1d05551b Optimize the use of the status value 2017-05-29 10:24:03 +02:00
adustm 897625cc96 Give access to HAL_GetTick function 2017-05-29 10:24:03 +02:00
adustm 52d38a1be0 Handle can_frequency sync error
add a timeout + return an error message
2017-05-29 10:24:03 +02:00
Sam Grove 3122abee84 Merge pull request #4230 from jamike/USBHostMSD_BockDevice
Usb host msd block device
2017-05-26 17:19:07 -05:00
Sam Grove 2561e0bff4 Merge pull request #4299 from jeromecoutant/PULL_REQUEST_CUBE_UPDATE_F4_V1.16.0
STM32F4 cube update from v1.12.0 to v1.16.0
2017-05-26 17:13:08 -05:00
Sam Grove 92e661b3c0 Merge pull request #4328 from nvlsianpu/remove_nrfsdk13_ble
Remove unwanted (and unused anymore) NRF5_SDK13 BLE port
2017-05-26 17:10:24 -05:00
Sam Grove 704ffd7010 Merge pull request #4331 from theotherjimmy/depend-on-profile
Have objects depend on their respective compiler invocations
2017-05-26 17:06:23 -05:00
Sam Grove ede77621d4 Merge pull request #4332 from yogpan01/master
Fix for blockwise observation failure
2017-05-26 17:03:17 -05:00
Sam Grove ef7ab92cb8 Merge pull request #4345 from ARMmbed/nanostack_update
Nanostack update
2017-05-26 17:01:29 -05:00
Sam Grove 2500ab03f2 Merge pull request #4351 from jeromecoutant/PULL_REQUEST_CUBE_UPDATE_L4_V1.8.0
STM32L4 cube update from v1.5.0 to v1.8.0
2017-05-26 16:58:37 -05:00
Sam Grove 73d1745e19 Merge pull request #4382 from AndersLundgren/patch-1
Update cmain.S license
2017-05-26 16:56:50 -05:00
Sam Grove c74013e932 Merge pull request #4383 from snelson-senet/master
#4354 Fix MOTE_L152RC GPIO Write
2017-05-26 16:27:25 -05:00
Sam Grove d11289b576 Merge pull request #4165 from adustm/can_init
fix #3863 Add an mbed API that allows the init of the CAN at the bus frequency
2017-05-26 10:45:19 -05:00
Sam Grove 58e88813a9 Merge pull request #4282 from kl-cruz/FlashAPI_nRF52840
Flash api nRF52840
2017-05-26 10:31:05 -05:00
Sam Grove 049402c39f Merge pull request #4315 from theotherjimmy/thinkberg-master
Add support for ubirch boards
2017-05-26 10:26:40 -05:00
Sam Grove cb61fc5f81 Merge pull request #4333 from artokin/thread_interface_timeout
Adjust Thread interface connect timeout
2017-05-26 10:23:28 -05:00
Sam Grove 6a2d1bf870 Merge pull request #4340 from karsev/thread_med_support
Thread med support
2017-05-26 10:22:10 -05:00
Sam Grove 2e5ba49b59 Merge pull request #4395 from theotherjimmy/fix-uvision-support
Allow generic core exports to UVision
2017-05-26 10:20:33 -05:00
Jimmy Brisson 598cbdf023 Merge pull request #4381 from janjongboom/vscode-intellisense-engine
Fix vscode intellisense engine to 'Tag Parser'
2017-05-25 15:06:54 -05:00
Jimmy Brisson 4d1a4a41fa Fix Uvision supported check
Should now allow for generic targets
2017-05-25 15:01:20 -05:00
Christopher Haster 3ee77e36f7 FAT: Fixed volume count check when formatted without MBR
This saves 64 blocks (32KB when used with 512B blocks) and drops
the minimum storage size from 64KB to 32KB.
2017-05-25 14:24:17 -05:00
Martin Kojtal 7aea3bc43e race tests: fix unsupported condition
Should be true if single thread is defined, then its not
supported.
2017-05-25 14:47:28 +01:00
Jimmy Brisson 4d985eae3a Merge pull request #4385 from bridadan/examples_choose_source
Allow examples to specify which repo source to use for testing
2017-05-24 18:52:50 -05:00
Christopher Haster 3f92a15960 FAT: Added support for multiple active filesystems
- Increased _VOLUMES to 4
- Fixed a few issues in the FATFileSystem's _fsid
- Added tests for multiple partitions of fatfs
2017-05-24 11:18:47 -05:00
Brian Daniels 3966139cd7 Allowing examples to specify which repo source to use for testing.
They can pick from either the mbed developer site or the GitHub
repository.
2017-05-24 11:10:49 -05:00
Shaun Nelson 30579e8131 4354 Fix MOTE_L152RC GPIO Write
Add #define GPI_IP_WITHOUT_BRR
2017-05-24 11:37:15 -04:00
Martin Kojtal 186f406c24 Merge pull request #4366 from theotherjimmy/dedupe-nordic
Move duplicated analogin and pwmout to NRF52 directory
2017-05-24 13:30:27 +01:00