Commit Graph

6880 Commits (2099da6d58bcfb02e7e18c7e6a3a78f03fc8f7b0)

Author SHA1 Message Date
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
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
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
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
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
Vincent Coubard 2259e0d539 Move ARMmbed/feature/FEATURE_BLE into mbedmicro/mbed.
In the process, the path has been shortened and the unecessary ble
directory between FEATURE_BLE and the actual implementation has been
removed.

commit id of ARMmbed : 17728a824c7273e16b6b74fae871e2997c88ecd1
2016-07-20 22:10:36 +01:00
Sam Grove 48c1d2eb7a Merge pull request #2197 from bridadan/tests-and-frameworks
Adding test frameworks and test sources
2016-07-20 13:19:58 -05:00
Brian Daniels a9eb39dee4 Adding test frameworks and test sources
This commit adds the following test frameworks:

- `greentea-client` (https://github.com/ARMmbed/greentea-client)
  - This framework provides a key-value api for communicating with the
    greentea test tool (https://github.com/ARMmbed/greentea)
- `unity` (https://github.com/ARMmbed/unity)
  - This framework provides test assert macros that can be used when
    writing test cases
- `utest` (https://github.com/ARMmbed/utest)
  - This framework allows you to execute a series of test cases with
    reporting that works with the greentea test tool
    (https://github.com/ARMmbed/greentea)

The following changes were made when bringing these frameworks into the
tree:

- References to `mbed_drivers/mbed.h` within utest's tests were migrated
  to `mbed.h`
- The yotta file `module.json` was removed from `greentea-client` and
  `unity`
  - `coverage.json` was also removed from `greentea-client`
- `.gitignore` and `.gitattributes` were removed from `greentea-client`
- Apache 2.0 license files were removed from `greentea-client`

This also brings in a number of tests that have been newly written or ported from various sources:

- `TESTS/integration` - Very basic tests, used to check if testing frameworks are working correctly
- `TESTS/mbed_drivers` (Thanks @PrzemekWirkus!) - TESTS ported from mbed OS 3.0 (https://github.com/ARMmbed/mbed-drivers)
- `TESTS/mbedmicro-mbed` (Thanks @PrzemekWirkus!) - Tests that weren't covered by `TESTS/mbed_drivers` that currently live in `libraries/tests/mbed`
- `TESTS/mbedmicro-rtos-mbed` (Thanks @PrzemekWirkus!) - Ported tests that currently live in `libraries/tests/rtos/mbed`
- `TESTS/storage_abstraction` (Thanks @rgrover!) - Tests for the storage_abstraction hal
2016-07-20 12:41:26 -05:00
neilt6 511117acdf [RTOS] Updated RtosTimer to use Callback
Updated the RtosTimer class to use Callback in order to be consistent
with the updated Thread class.
2016-07-20 10:51:45 -06:00
Neil Thiessen 22598341cd [LPC15XX] Modified μs_ticker to use critical API
Replaced __disable_irq() and __enable_irq() with core_util_critical_section_enter() and core_util_critical_section_exit().
2016-07-20 08:55:14 -06:00
Bogdan Marinescu 51540d08d5 Merge pull request #2177 from mbedmicro/build_on_config_change
Rebuild sources if configuration is changed
2016-07-20 14:52:08 +03:00
Jarek Zgoda c005781063 [BLUEPILL] fix interrupt handler 2016-07-20 11:06:58 +02:00
Sam Grove 518afae619 Merge pull request #2189 from geky/rtos-sema-default
[rtos] Add default constructor for Semaphore
2016-07-19 17:11:22 -05:00
Sam Grove d89c3c18f9 Merge pull request #2158 from c1728p9/singleton_support
Singleton support
2016-07-19 16:34:20 -05:00
Neil Thiessen d5f09859de [LPC15XX] Fixed µs_ticker implementation for GCC
Modified SCT3 match register critical section for compatibility with GCC toolchain.
2016-07-19 11:41:44 -06:00
neilt6 9f6b2c47ca [LPC15XX] Fixed µs_ticker implementation
Re-wrote µs_ticker implementation to use SCT3 instead of RIT in order to
fix a serious rollover bug at 1:11:34.
2016-07-19 10:24:02 -06:00
Erwan GOURIOU f7120413ec [STM32L4xx] Sleep API factorization
In order to enable sleep API factorization, HAL_Suspend/ResumeTick
functions have been implemented in hal_tick.c for each platform.
2016-07-19 16:36:33 +02:00
Erwan GOURIOU 75bbc0a3e1 [STM32L1xx] Sleep API factorization
In order to enable sleep API factorization, HAL_Suspend/ResumeTick
functions have been implemented in hal_tick.c for each platform.
2016-07-19 16:36:27 +02:00
Jimmy Brisson 9759382166 prevent test form removeing the root dir 2016-07-19 09:33:03 -05:00
Jimmy Brisson 52855b53cf [tools-build,make,project] Disallow parent of repo as --build args
Resolves #2081
2016-07-19 09:32:44 -05:00