geky
3ee8e30ae4
Added NSAPI_KEEPINTVL/NSAPI_KEEPIDLE options to the socket API
2016-07-21 18:19:21 -05:00
Christopher Haster
a6edc268f3
Coalesce redundant events to reduce cpu usage in lazy implementations
...
*cough* esp8266 *cough*
this is especially important for event-loop based systems where
excessive events results in problematic memory consumption.
2016-07-21 18:19:21 -05:00
Russ Butler
c3baf2792e
Fix SocketAddress constructor to support ipv6
...
Fix typo causing ipv6 addresses in the constructor to fail.
2016-07-21 18:19:21 -05:00
Christopher Haster
1c0a7c2426
Adopt Callback class in NetworkSocketAPI
2016-07-21 18:19:21 -05:00
Russ Butler
8f33c0fc4f
Add synchronization to the network socket API
...
Add mutexes to protect the network socket API. Also use semaphores to
wait for read/write events. Also fix a typo in the comments for
timeout.
2016-07-21 18:19:21 -05:00
Christopher Haster
3d310c2463
Small bug fixes
...
mirrored from:
https://developer.mbed.org/teams/NetworkSocketAPI/code/NetworkSocketAPI/
- Fix bug with SocketAddress init per @c1728p9
- Fix issue with not passing interface through accept call
- Fix port issue in SocketAddress constructor
2016-07-21 18:19:21 -05:00
Christopher Haster
710fab5b8b
Add NSAPI_ERROR_PARAMETER
...
per @c1728p9
2016-07-21 18:19:21 -05:00
Christopher Haster
943dd711a9
Added WFI to save power in temporary polling implementation
2016-07-21 18:19:21 -05:00
Christopher Haster
f2715b7e77
Consolidate set_timeout/set_blocking behaviour
...
- Avoids ambiguity when both are used
- Matches Python behaviour
2016-07-21 18:19:21 -05:00
Christopher Haster
bd5e913ca1
Separate Stack/Interface concept into two distinct classes
2016-07-21 18:19:21 -05:00
Christopher Haster
a4f1071996
Add standardized stack options
2016-07-21 18:19:21 -05:00
Christopher Haster
abd25f9bb3
Added workaround for bug in newlib sscanf
...
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1399224
2016-07-21 18:19:21 -05:00
Christopher Haster
cd4a521e22
Fix race condition in socket close
2016-07-21 18:19:21 -05:00
Christopher Haster
fc71badb69
Rename Interface -> Stack
...
NetworkInterface -> NetworkStack
EthernetInterface -> EthernetStack
WiFiInterface -> WiFiStack
CellularInterface -> CellularStack
MeshInterface -> MeshStack
2016-07-21 18:19:21 -05:00
Christopher Haster
d36a0b6b88
Revised documentation for Interface classes
2016-07-21 18:19:21 -05:00
Christopher Haster
aa2357a836
Revisited documentation for Socket API
2016-07-21 18:19:21 -05:00
Christopher Haster
0ae11b49e8
Removed is_connected function
...
- Not supported by TCP/UDP protocols
- Uncommon and less useful with proper error handling
2016-07-21 18:19:21 -05:00
Christopher Haster
b9d9842846
Revisited documentation for NetworkInterface specific methods
2016-07-21 18:19:21 -05:00
Christopher Haster
d84f4be6ed
Added support for shortened form ipv6 addresses
...
supported:
1.2.3.4
1:2:3:4:5:6:7:8
1:2::7:8
::
currently not supported:
1:2:3:4:5:6:1.2.3.4
2016-07-21 18:19:21 -05:00
Christopher Haster
3fa1bb6469
Revised stack specific configurations
...
Adds the following functions for direct configuration of interface
- (set|get)stackopt
- (set|get)sockopt
2016-07-21 18:19:21 -05:00
Christopher Haster
63725d653c
Move bind to Socket
...
Bind can operate on any IP socket and is not specific to a protocol
2016-07-21 18:19:21 -05:00
Russ Butler
aea45c88ce
Fix ipv6 addr in SocketAddress
...
Correctly set and return the ipv6 address.
2016-07-21 18:19:21 -05:00
Christopher Haster
56e11d6709
Added better support for SocketAddress/string addresses/ports
2016-07-21 18:19:21 -05:00
Christopher Haster
bd8cbf0fcb
Move to SocketAddress in gethostbyname
2016-07-21 18:19:21 -05:00
Christopher Haster
3f08f3957c
Added support for storing bytes directly in SocketAddress
...
Bytes are stored by default, however enough space is allocated in
a SocketAddress to generate the string representation if necessary.
Currently there is no support for shortened addresses
2016-07-21 18:19:20 -05:00
Christopher Haster
1b368cf525
Renamed NetworkInterface create/destroy methods to match Socket methods
...
- socket_create -> socket_open
- socket_destroy -> socket_close
2016-07-21 18:19:20 -05:00
Christopher Haster
dfc1ca4cef
Move to single state-change interrupt
...
Pros
- Easier to implement
- More similar to SIGIO in BDS sockets
Cons
- Less information, but this information had a high risk of being
faulty/spurious
2016-07-21 18:19:20 -05:00
Christopher Haster
a7e6c105b3
Remove shutdown parameter from close call
...
Pros
- Simplifies interface
- Easier base implementation
Cons
- May need shutdown functionality, in this case shutdown
can be added as another function in the future
2016-07-21 18:19:20 -05:00
Christopher Haster
d38ccb70a6
Add open call as alternative to passing NetworkInterface at construction
...
Pros
- Allows memory to be statically allocated
- Avoids issues with Thread creation before entering main
- Matches existing APIs such as FunctionPointer and Ticker
Cons
- Does not enforce passing a NetworkInterface
2016-07-21 18:19:20 -05:00
Christopher Haster
4c7992cb24
Matched changes NetworkSocketAPI
...
Responded to feedback from mbed-client implementation
to introduce a full feature set that should support most
of the use cases for the API.
2016-07-21 18:19:10 -05:00
Vincent Coubard
07d7165f98
Remove LF clock initialization from os_init_clock.
...
The LF clock initialization is already handled by the SystemInit function.
This code was causing troubles when run on targets with an alternate LF
clock.
2016-07-21 19:36:58 +01:00
Vincent Coubard
e0a5ca1d67
Bring new ble implementation from mbed-os/workshop-nordic.
...
Commit ID: e3c7c2dd3ea4f00e27667e79155413033cd80060
2016-07-21 15:03:23 +01:00
Vincent Coubard
a9a0657c53
Reintegration of TARGET_MCU_NRF51822 from master.
...
It was deleted in the mbed-nordic branch.
2016-07-21 15:02:26 +01:00
Vincent Coubard
f10cf7fe16
Merge remote-tracking branch 'mbed-nordic/epr_integration' into nrf52_nrf51_unified_integration
2016-07-21 14:50:37 +01:00
Vincent Coubard
6399ad17d6
Merge pull request #26 from pan-/nrf51_compatibility
...
Makes room for old NRF51 implementation.
2016-07-21 14:24:25 +01:00
Martin Kojtal
db60d6a7f7
Merge pull request #2200 from pan-/ble_integration_from_mbed_os
...
Move ARMmbed/feature/FEATURE_BLE into mbedmicro/mbed.
2016-07-21 14:00:00 +01:00
Vincent Coubard
478a7fd4cd
Remove files from unused targets.
2016-07-21 13:39:53 +01:00
svastm
44da533625
[STM32XX] Fix default build
2016-07-21 13:09:26 +02:00
Martin Kojtal
dd010097ba
Merge pull request #2159 from jeromecoutant/PR_dev_NUCLEO_F207ZG
...
New STM32 board : NUCLEO_F207ZG
2016-07-21 11:13:33 +01:00
Martin Kojtal
89d5583bde
Merge pull request #2190 from geky/callback-const
...
[api] Fix handling of const objects in Callback class
2016-07-21 11:07:03 +01:00
Martin Kojtal
c9d8690fa9
Merge pull request #2194 from zgoda/BLUEPILL_fix_int_handler
...
[BLUEPILL_F103C8] Fix interrupt handler
2016-07-21 10:56:21 +01:00
Vincenzo Frascino
4f5b191e74
[BEETLE] Fix US_Ticker read
...
MBED OS requires an us_ticker_read function that returns a 32bit
value in microseconds. This can not be represented directly on
the Beetle Timer Load register.
max_us_on_reg = (0xFFFFFFFF ticks)/DIVIDER_US
This patch introduces an intermediate layer that counts the timer wraps
around and returns the correct value of us to the MBED library.
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
2016-07-21 10:38:20 +01:00
Vincenzo Frascino
1b364a1e52
[BEETLE] Fix Lp_Ticker read
...
MBED OS requires an lp_ticker_read function that returns a 32bit
value in microseconds. This can not be represented directly on
the Beetle Dual Timer Load register.
max_us_on_reg = (0xFFFFFFFF ticks)/DIVIDER_US
This patch introduces an intermediate layer that counts the timer wraps
around and returns the correct value of us to the MBED library.
Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com>
2016-07-21 10:38:20 +01:00
0xc0170
3f5c794b6c
Export - define ProGenDef outside of the loop
...
This saves ~329 calls.
2016-07-21 09:41:38 +01:00
Christopher Haster
8e60fdd919
Added tests for cv-qualifier c-objects in Callback class
2016-07-20 19:27:38 -05:00
Christopher Haster
e806b89df6
Fixed handling of const objects in Callback class
...
Before, the following results in a compilation error:
const struct Object *obj;
void obj_doit(const Object *obj);
Callback<void()> cb(obj, obj_doit);
This is especially noticable when migrating from the old Thread
constructor, which previously _required_ const.
Short term fix for all cv qualifiers through a C cast:
void *_obj = (void*)obj;
2016-07-20 19:20:32 -05:00
Vincent Coubard
a81b8b13dd
Set correct compiler support for NRF51 and NRF52 based targets.
2016-07-21 00:10:52 +01:00
Vincent Coubard
406ac8f5f4
Makes room for old NRF51 implementation.
...
the unified target for NRF51 has been renamed MCU_NRF51_UNIFIED and
hal implementation has been moved from TARGET_MCU_NRF51822 to
TARGET_MCU_NRF51822_UNIFIED.
In the process, the only real taget kept for NRF51 based targets is
NRF51_DK.
It is too risky at this stage to switch NRF51822 (16K target) to the new
softdevice. The overhead of the RTOS is already too huge.
2016-07-21 00:02:44 +01:00
Neil Thiessen
2133dadb63
[RTOS] Fixed missing include in RtosTimer.h
...
Added missing include for the MBED_DEPRECATED macro.
2016-07-20 16:14:20 -06:00
Neil Thiessen
4d4089e7bc
[RTOS] Added deprecated RtosTimer constructor
...
Reintroduced the original RtosTimer constructor as an additional deprecated constructor for backwards compatibility.
2016-07-20 16:07:12 -06:00