Skip to content

[feature-wisun] Update base to mbed-os-5.15.7 #14526

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
226 commits
Select commit Hold shift + click to select a range
e2167e8
updating wlan parameter configuration under appropriate settings
qasim-ublox Apr 21, 2020
545dcbb
Merge pull request #1 from aqib-ublox/bt_configAPI_fix
aqib-ublox May 5, 2020
cf59441
Constructor ignored passed speed.
FabianInostroza Jun 14, 2020
dd546ed
WS Management API missing include
Jun 18, 2020
a993582
Resolve M487 EMAC bus error by bus reset
cyliangtw May 13, 2020
54b3417
Refine M487 EMAC bus reset
cyliangtw May 15, 2020
16e447e
NUC472 support EMAC bus reset as while bus error
cyliangtw May 18, 2020
c853aed
M487, NUC472 EMAC code fulfill astyle
cyliangtw May 19, 2020
3f69826
[mbed-os-5.15] Added Wi-SUN Interface APIs
debdeep-arm Jun 18, 2020
5f4ba9d
ESP8266: add a retry mechanism to avoid duplicate data sends
michalpasztamobica Dec 20, 2019
9669a4f
ESP8266: Improve error handling and partial sends
michalpasztamobica Dec 27, 2019
8c5cc71
ESP8266: Introduce single send_status instead of two flags
michalpasztamobica Dec 31, 2019
89e2406
ESP8266: Simplify flow control and enable per-socket reconnection
ccli8 Jan 3, 2020
5a163b1
ESP8266: accept partial writes for TCP and clean up code
michalpasztamobica Jan 10, 2020
2d42667
Increase UDP test timeout to 1200s
michalpasztamobica Dec 31, 2019
b9260ae
Nordic NRF52 GPIO API: Fix failure to clear the field 'skip_gpio_setu…
Feb 13, 2020
935134e
ESP8266: Add retries to avoid spurious close in blocking mode
ccli8 Jun 30, 2020
1c849a0
Same changes as #12113. Fix STM32 can_init_freq() ignores frequency.
FabianInostroza Jul 5, 2020
be50fcd
Merge pull request #43 from aqib-ublox/ublox_odin_driver_os_5_v3.8.0_rc1
aqib-ublox Jul 6, 2020
cd3ed51
Merge pull request #13147 from felipeLeast/ws_management_missing_lib
0xc0170 Jul 6, 2020
d1ea81e
M2354: Initial support
ccli8 Feb 6, 2020
cd3bb0d
M2354: Add cmsis pack
ccli8 Apr 13, 2020
3dd9674
M2354: Add pre-built secure image/lib for non-PSA
ccli8 Apr 13, 2020
de982db
M2354: Get around LDRB last byte of flash in non-secure
ccli8 Jun 30, 2020
b2d7589
LICENSE.md - clarify filesystem licensing
Jul 10, 2020
3f1ffa1
Add blockdevices licenses
Jul 16, 2020
faf2c54
STM32F407ZGTx: flash layout
msuminsk Apr 16, 2020
db99b1d
OLIMEX_STM32E407_F407ZG: bootloader support
msuminsk Apr 16, 2020
28726d9
Updating targets.json file for SDP-K1 board.
malavikasajikumar Jul 21, 2020
967ff68
Cleaning up SDP-K1 board support package.
malavikasajikumar Jul 22, 2020
7f57671
Merge pull request #13114 from FabianInostroza/fix_can_speed_init
adbridge Jul 27, 2020
81e1d46
Merge pull request #13150 from OpenNuvoton/nvt_5.15_emac_bus_err
adbridge Jul 27, 2020
455041e
Merge pull request #13151 from debdeep-arm/wisun-interface-api-add
adbridge Jul 27, 2020
a85f2bb
Merge pull request #13164 from OpenNuvoton/esp8266_send_retry_5.15
adbridge Jul 28, 2020
9ab68b9
Merge pull request #13184 from supertoast/mbed-os-5.15
adbridge Jul 28, 2020
677940e
Merge pull request #13245 from OpenNuvoton/nuvoton_m2354_5.15
adbridge Jul 28, 2020
dd07ceb
Merge pull request #13275 from JanneKiiskila/license-fat
adbridge Jul 28, 2020
93ee6da
Merge pull request #13320 from malavikasajikumar/mbed-os-5.15
adbridge Jul 28, 2020
7be4cb9
Merge pull request #13338 from malavikasajikumar/SDPK1-update
adbridge Jul 28, 2020
e25b88e
Merge pull request #13342 from orsonmmz/new_olimex_e407_bloader
adbridge Jul 28, 2020
aa1f92e
Adding QSPI support to SDP-K1 board support package.
malavikasajikumar Jul 29, 2020
9653141
Change M252 target name as NUMAKER_IOT_M252
cyliangtw Jul 22, 2020
e599301
Merge pull request #13373 from malavikasajikumar/sdpk1-qspi
0xc0170 Aug 11, 2020
f6ac79a
Merge pull request #13381 from OpenNuvoton/nuvoton_m252_iot_5.15
0xc0170 Aug 12, 2020
b853dec
Update Mbed version block
adbridge Aug 12, 2020
9d0b365
"Update secure binaries for LPC55S69_S (ARMC6)"
adbridge Aug 12, 2020
2a316fe
Update PSA auto-generated components and services
adbridge Aug 12, 2020
6a244d7
"Update secure binaries for ARM_MUSCA_A1_S (ARMC6)"
adbridge Aug 12, 2020
876c3e8
ODIN drivers updated to v3.7.2
qasim-ublox Aug 18, 2020
e7508ea
802.15.4 STM S2LP driver update
Aug 17, 2020
26b53ec
802.15.4 Atmel RF driver update
Aug 17, 2020
07bd840
Squashed 'features/nanostack/sal-stack-nanostack-eventloop/' changes …
Aug 18, 2020
7764d75
Merge commit '07bd840fb601902f653b4adaa9d8d768b137ad8c' into mbed-os-…
Aug 18, 2020
e13417d
Squashed 'features/frameworks/nanostack-libservice/' changes from c6c…
Aug 18, 2020
1df8835
Merge commit 'e13417d3ce12469f3418ade4bf1183993083efdd' into mbed-os-…
Aug 18, 2020
0a6e656
Merge commit '946061932982cee2928784163fec649bc718692f' into mbed-os-…
Aug 18, 2020
9460619
Squashed 'features/nanostack/sal-stack-nanostack/' changes from b3fe5…
Aug 18, 2020
2981e10
Squashed 'features/frameworks/mbed-trace/' changes from 642a459a39..6…
Aug 18, 2020
6cce3f5
Merge commit '2981e10afe3021b74a1213480419350c140d9e8b' into mbed-os-…
Aug 18, 2020
da50d99
ci: Update `arm-none-eabi-` version
urutva Aug 14, 2020
a219f8a
Add WiSun network size configs in JSON
fredlee12001 Jun 17, 2020
eab9417
Fix nuc472 SD buffer alignment
cyliangtw Aug 31, 2020
9c603c3
Merge pull request #13487 from urutva/update-gcc-arm-version
0xc0170 Aug 31, 2020
3065ef3
device_management.py supports application access keys
norbert-david Sep 2, 2020
b9c0170
Merge pull request #13451 from artokin/nanostack_release_v12_4_0_for_…
0xc0170 Sep 2, 2020
e435039
Merge pull request #13450 from u-blox/ublox_odin_driver_os_5_v3.7.2
0xc0170 Sep 2, 2020
c5386c0
Updating mbed-mesh-api.
debdeep-arm Aug 18, 2020
72c28ee
Resolving comments
debdeep-arm Aug 18, 2020
b0c2443
Typo fixed.
debdeep-arm Aug 18, 2020
9c86871
Nuvoton: Fix degrading QSPI to SPI
ccli8 Sep 3, 2020
682ece5
802.15.4 STM S2LP driver update (v1.0.7)
Sep 7, 2020
72a6a13
802.15.4 Atmel RF driver update (v3.3.2)
Sep 7, 2020
cbfbca5
Merge commit '3d6d4d5a9e08a05dbafd3592e8b0c69e05454523' into mbed-os-…
Sep 7, 2020
3d6d4d5
Squashed 'features/nanostack/sal-stack-nanostack/' changes from 48609…
Sep 7, 2020
0445b6a
Merge pull request #13537 from OpenNuvoton/nuvoton_fix_downgrade_qspi…
0xc0170 Sep 7, 2020
9aa366c
Fixed linker issue
deepak-shreshti Sep 9, 2020
9274236
Update Mbed CoAP to v5.1.7
teetak01 Sep 14, 2020
21b2c4c
M2351: Fix RTC clock selection
ccli8 Sep 17, 2020
239ec8c
M2351: Remove GCC/IAR linker files temporarily
ccli8 Sep 18, 2020
b0c767a
M2351: Refactor startup file
ccli8 Sep 17, 2020
728c4b3
M2351: Polish memory partition code
ccli8 Sep 17, 2020
9058a95
M2351: Re-organize ARMC6 scatter file
ccli8 Sep 18, 2020
5ec9b79
M2351: Support GCC
ccli8 Sep 18, 2020
a76e49c
M2351: Support IAR
ccli8 Sep 18, 2020
efe5331
Adding support for SD (through external SDHI driver), USBDEVICE, LPTI…
mbedNoobNinja Sep 18, 2020
11418a2
Merge pull request #13496 from artokin/sync_mbed_mesh_api_update_5_15
0xc0170 Sep 22, 2020
d58616d
K82F, KL82Z: Fix the I2C SDK driver slave transfer
MartinBielik Sep 24, 2020
4c3155a
Merge pull request #13578 from deepak-shreshti/mbed-os-5.15
0xc0170 Sep 29, 2020
7b57ac6
Merge pull request #13559 from artokin/nanostack_release_v12_5_0_mbed…
0xc0170 Sep 30, 2020
b67e542
Merge pull request #13495 from artokin/upstream_mesh_network_size_api…
0xc0170 Sep 30, 2020
49bd70b
Merge pull request #13661 from MartinBielik/mbed-os-5.15
0xc0170 Sep 30, 2020
d011d21
Fix STM32H747 Arduino pinout
Sep 21, 2020
53fe4cf
TEST: Extend the kvstore test time out to 120s
Oct 1, 2020
a466a57
Merge pull request #13693 from jamesbeyond/fix_LTS
adbridge Oct 1, 2020
a7dbff9
adapting to new s3 bucket location in travis.yml
saheerb Oct 1, 2020
f5633c4
Merge pull request #13696 from saheerb/patch-5
adbridge Oct 2, 2020
99e767b
Fix NuMaker I2C timeout,
cyliangtw Sep 29, 2020
39e2f31
Apply the same NuMaker I2C timeout measurement to M2354
cyliangtw Oct 5, 2020
26a9079
[mbed-os-5.15] Mesh interface global up is indicated always on bootst…
Oct 5, 2020
d2d0895
Squashed 'features/nanostack/sal-stack-nanostack/' changes from d879e…
Oct 5, 2020
12a43ba
Merge commit 'd2d0895795de64321d486208316838415ed80d65' into mbed-os-…
Oct 5, 2020
69b52e6
Nuvoton: Enable fault handler dump message for M23 targets
ccli8 Oct 8, 2020
18a0f76
[mbed-os-5.15] Added external RADIUS server configuration to Wi-SUN B…
Aug 10, 2020
c78f17f
Added certificate remove before add to wisun tasklet
Oct 8, 2020
f1e304b
Merge pull request #13643 from OpenNuvoton/nuvoton_m2351_gcc_iar_5.15
0xc0170 Oct 13, 2020
33dbb27
Merge pull request #13606 from teetak01/coap-5.1.7-for-5.15
0xc0170 Oct 13, 2020
50fe6ac
Merge pull request #13525 from norbert-david/patch-2
0xc0170 Oct 13, 2020
f63b4b6
Merge pull request #13512 from OpenNuvoton/nvt_nuc472_sd_5.15
0xc0170 Oct 13, 2020
cf4f584
Merge pull request #13639 from mbedNoobNinja/TARGET_UPDATE
0xc0170 Oct 13, 2020
c0eb6df
Added APIs for Device min sense and CCA threshold table.
debdeep-arm Sep 1, 2020
46b141e
Resolved comments.
debdeep-arm Sep 3, 2020
970d10a
Merge pull request #13739 from OpenNuvoton/nuvoton_m23_fault_handler_…
0xc0170 Oct 13, 2020
3a86360
Merge pull request #13576 from mikaleppanen/mesh_radius_conf_5_15
0xc0170 Oct 13, 2020
0af9d04
Mesh: Enable Nanostack DNS cache usage
Aug 28, 2020
321434e
Review corrections
Aug 31, 2020
f5851f5
Follow Mbed OS coding style
Aug 31, 2020
a35f724
Update WisunBorderRouter class
Aug 31, 2020
12ccb70
Follow Mbed OS coding style
Aug 31, 2020
695a97a
Use macro for isdigit
Sep 2, 2020
16d3dd4
Document missing parameter network_interface_name
Oct 13, 2020
73614ea
M2354: Remove flash_read override originally for test chip
ccli8 Sep 24, 2020
76463fe
M2354: Update to BSP v3.00.001
ccli8 Sep 23, 2020
260fc30
M2354: Enable fault handler dump message
ccli8 Oct 8, 2020
2acb3a4
M2354: Update pre-built non-PSA secure library/image
ccli8 Sep 24, 2020
f5cad83
Added initialization check to RADIUS ipv6 address
Oct 8, 2020
b0f0886
Added initialization to radius retry values
Oct 8, 2020
eb50b94
Update Mbed CoAP to v5.1.8
Oct 20, 2020
0e00ff7
Merge pull request #13652 from felipeLeast/fix_pins_stm32h7
0xc0170 Oct 22, 2020
aeaf6e8
Merge pull request #13719 from artokin/nanostack_release_v12_6_0_for_…
0xc0170 Oct 22, 2020
ef23563
Merge pull request #13736 from mikaleppanen/cert_remove_5_15
0xc0170 Oct 22, 2020
2c2b134
Merge pull request #13735 from artokin/enable_nanostack_dns_cache_mbe…
0xc0170 Oct 29, 2020
480586d
Merge pull request #13788 from ristohuhtala/update-mmbed-coap-to5.15
0xc0170 Oct 30, 2020
2cf237e
Merge pull request #13758 from artokin/add-min-sens-wisun-param-mbed-…
0xc0170 Oct 30, 2020
4f69795
Merge pull request #13770 from OpenNuvoton/nuvoton_m2354_mp
0xc0170 Oct 30, 2020
30076a4
Merge pull request #13774 from mikaleppanen/radius_trace_corr_5_15
0xc0170 Oct 30, 2020
abf8a03
Merge pull request #13775 from mikaleppanen/radius_init_5_15
0xc0170 Oct 30, 2020
99661bd
Merge pull request #13715 from mikaleppanen/mesh_global_up_5.15
0xc0170 Oct 30, 2020
3d0be7d
Normalize the line endings
cyliangtw Nov 2, 2020
e4f42d8
Merge pull request #13709 from OpenNuvoton/nvt_i2c_timeout_5.15
0xc0170 Nov 2, 2020
b114a9c
Update Mbed version block
adbridge Nov 6, 2020
248e483
Adding support for FLASH, FLASHIAP, bootloader
mbedNoobNinja Nov 6, 2020
6c97704
Remove nanostack-border-router example from list of supported examples
adbridge Nov 10, 2020
82e9f8d
Replaced new calls with nothrow version of the call on mesh api
Nov 20, 2020
b09ec69
FIX: update cryptography version to 2.5 or later
Dec 11, 2020
06e29c4
Merge pull request #14034 from jamesbeyond/5.15-cryptography-fix
adbridge Dec 12, 2020
b8611bd
Corrected Wi-SUN certificate add and remove functions on Wi-SUN inter…
Dec 9, 2020
bfbc220
Merge pull request #13897 from ARMmbed/examples-5.15
adbridge Dec 21, 2020
5ed2601
travis: fix 3.5 test bug in attrs
0xc0170 Jan 4, 2021
d02756f
Merge pull request #14168 from artokin/fix_mbed_os_ci_5_15_branch
0xc0170 Jan 20, 2021
f6f0286
Method for adding network interface MAC address
Nov 11, 2020
e71e312
MAC address set/get support for EMAC interface
Nov 13, 2020
90fd693
Review correction: Remove unnecessary method
Nov 16, 2020
c5e3507
Update set_mac_address signature
Nov 20, 2020
eef0524
Update unittests
Nov 20, 2020
028c846
Review corrections
Nov 23, 2020
08b6bea
Update EMAC connect logic with MAC address change
Nov 24, 2020
f2ad926
Follow Mbed OS coding style
Nov 24, 2020
e2c781f
Fix method description
Nov 24, 2020
db4efc8
Fix unittests
Nov 24, 2020
743ba1a
Update EmacTestNetworkStack
Nov 25, 2020
3d0abfb
Remove API changes
Nov 26, 2020
7199a3a
Update WICED binaries for ARMC6
Nov 30, 2020
1165fa7
Fix `mbed device-management` command for Python 3.8
fkjagodzinski Dec 11, 2020
522bde1
802.15.4 Atmel RF driver update (v3.3.4)
Jan 19, 2021
cc7b6ed
Squashed 'features/nanostack/sal-stack-nanostack-eventloop/' changes …
Jan 19, 2021
df0d0e1
Squashed 'features/frameworks/nanostack-libservice/' changes from 67d…
Jan 19, 2021
681f511
Squashed 'features/frameworks/mbed-trace/' changes from 6ced9711c4..b…
Jan 19, 2021
ae5d042
Squashed 'features/nanostack/coap-service/' changes from 5aa54b8e62..…
Jan 19, 2021
c854c8f
Squashed 'features/nanostack/sal-stack-nanostack/' changes from 09d9e…
Jan 19, 2021
a0a284e
Move files back to original locations
Jan 21, 2021
66e1044
Merge pull request #13954 from mikaleppanen/new_to_nothrow_5_15
0xc0170 Jan 22, 2021
01495a7
Merge pull request #13879 from mbedNoobNinja/TARGET_UPDATE
0xc0170 Jan 22, 2021
46a045b
Merge pull request #14046 from mikaleppanen/mbedos_5_15_corr_cert_add
0xc0170 Jan 25, 2021
9454bb0
Merge pull request #13920 from artokin/mac_address_set_get_mbed_os_5_15
0xc0170 Jan 25, 2021
152f3d4
Merge pull request #14057 from artokin/device_management_sync_5_15
0xc0170 Feb 2, 2021
1faaabb
Merge pull request #14170 from artokin/nanostack_release_12_8_0_to_5_15
0xc0170 Feb 2, 2021
9500f9f
Corrected nanostack coverity warnings
Jan 13, 2021
1270a59
Added missing const qualifier to mesh ethernet mac addr get
Feb 10, 2021
1167e23
MIMXRT1050: Update the drivers to SDK 2.6
mmahadevan108 Oct 23, 2019
3cfb54e
MIMXRT1050: Use __ramfunc keyword to copy functions to RAM
mmahadevan108 Nov 7, 2019
fe53fd4
MIMXRT1050: Update the device files to SDK 2.6
mmahadevan108 Oct 23, 2019
9b99e70
MIMXRT1050: Update linker scripts & startup files from SDK 2.6
mmahadevan108 Oct 24, 2019
81f9694
MIMXRT1050: Update the ENET PHY driver from SDK 2.6
mmahadevan108 Oct 24, 2019
325ac43
MIMXRT1050: Update the clock driver to SDK 2.6
mmahadevan108 Oct 24, 2019
31d0b2e
MIMXRT1050: Update the mbed_overrides file
mmahadevan108 Oct 24, 2019
2183a93
MIMXRT1050: Update the XIP file from SDK 2.6
mmahadevan108 Oct 24, 2019
60f6150
MIMXRT1050: Update the low power driver to SDK 2.6
mmahadevan108 Oct 24, 2019
835c668
MXRT1050: Do not switch 24M source to reduce latency
mmahadevan108 Dec 12, 2019
606fbf1
MIMXRT1050: Update target configuration
mmahadevan108 Oct 24, 2019
4bb42d8
MIMXRT1050: Update the ENET driver to use wait_us
mmahadevan108 Oct 24, 2019
a00e679
MXRT: Update GPIO IRQ hal driver
mmahadevan108 Oct 24, 2019
875fa4b
MXRT: Update the LPTimer driver
mmahadevan108 Oct 28, 2019
9de7c3e
MIMXRT1050: Update the usticker driver
mmahadevan108 Nov 8, 2019
1f47123
MIMXRT1050: Update UART driver
mmahadevan108 Nov 15, 2019
1138bd2
Update MXRT sleep function
mmahadevan108 Oct 30, 2019
0566f1a
MXRT1050: Formatting update
mmahadevan108 Oct 30, 2019
aa05cf8
MIMXRT1050: Add Watchdog support
mmahadevan108 Jan 22, 2020
c55096e
MXRT1050: Update Flexspi driver to move functions to RAM
mmahadevan108 Oct 28, 2019
3b89e0a
MXRT1050: Add support for Flash driver
mmahadevan108 Oct 28, 2019
6b03a08
MIMXRT1050: Reduce NOR size used by mbed-os
mmahadevan108 Jan 15, 2020
b629804
MIMXRT1050: Enable FlashIAP support
mmahadevan108 Feb 3, 2020
91a6694
MXRT1050: Add bootloader support
mmahadevan108 Feb 3, 2020
4b10afc
MIMXRT1050: Update for deep sleep latency
mmahadevan108 Feb 4, 2020
91a5aa2
targets:MIMXRT1050: Add QSPI Flash boot support
liugang-gavin Apr 2, 2020
d2d0b3b
targets:TARGET_IMX: Fix the flash init risk
liugang-gavin Apr 2, 2020
007d393
targets:TARGET_IMX: Fix the memset issue for FLASHIAP
liugang-gavin Apr 2, 2020
299abb7
targets:MIMXRT1050: Add QSPI Flash FLASHIAP support
liugang-gavin Apr 3, 2020
0a60f9b
targets:MIMXRT1050: Update link file for application
liugang-gavin Mar 29, 2020
9c7ccd2
targets:MIMXRT1050: Add LPSPI4 support
liugang-gavin Apr 8, 2020
c80b05a
targets:lpspi: Update the lpspi driver and api
Tim-Wang38 Jun 3, 2020
889d852
targets:uart: Add uart_3 support
Tim-Wang38 Jun 9, 2020
ec9c75e
targets: clock: change default core clock to 528M
Tim-Wang38 Aug 4, 2020
903e083
targets:clock: Update the coreclock value
Tim-Wang38 Aug 4, 2020
98b1f0f
targets:RT1050: Fix the low speed switch issue
Tim-Wang38 Aug 28, 2020
376b7e3
targets:RT1050: Fix the flash erase and program issue for qspi nor fl…
Tim-Wang38 Sep 8, 2020
55a1465
targets:evkbimxrt1050: Adjust the SEMC re-order rules
liugang-gavin Nov 19, 2020
151ebfc
Add integer overflow check to the malloc wrappers
LDong-Arm Mar 10, 2021
f8f01fd
Improve WisunInterface set_network_size docs
Mar 15, 2021
04b572e
Merge pull request #14263 from mikaleppanen/5_15_wisun_mac_addr_get_corr
0xc0170 Mar 22, 2021
f9501e7
Merge pull request #14147 from mikaleppanen/nano_coverity_corr_5_15
0xc0170 Mar 22, 2021
fcabc21
Merge pull request #14443 from artokin/update_set_network_size_doc_515
0xc0170 Mar 22, 2021
878a32c
Merge pull request #14326 from artokin/porting_from_feature_wisun_to_…
0xc0170 Mar 22, 2021
52eedfd
Merge pull request #14408 from LDong-Arm/malloc_wrapper_fix-5.15
adbridge Mar 22, 2021
0be7685
Update Mbed version block
adbridge Mar 24, 2021
e00a1fe
Merge tag 'mbed-os-5.15.7' into feature-wisun
Apr 8, 2021
32f52fe
Revert "Update PSA auto-generated components and services"
Apr 9, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ dist: xenial

env:
global:
- deps_url="https://mbed-os-ci.s3-eu-west-1.amazonaws.com/jenkins-ci/deps"
- deps_url="https://mbed-os-ci-public.s3-eu-west-1.amazonaws.com/jenkins-ci/deps"
- deps_dir="${HOME}/.cache/deps"

cache:
Expand Down Expand Up @@ -77,7 +77,7 @@ matrix:
env: NAME=astyle
install:
- >-
curl -L0 https://mbed-os.s3-eu-west-1.amazonaws.com/builds/deps/astyle_3.1_linux.tar.gz --output astyle.tar.gz;
curl -L0 https://mbed-os-ci-public.s3-eu-west-1.amazonaws.com/jenkins-ci/deps/astyle_3.1_linux.tar.gz --output astyle.tar.gz;
mkdir -p BUILD && tar xf astyle.tar.gz -C BUILD;
cd BUILD/astyle/build/gcc;
make;
Expand Down
4 changes: 3 additions & 1 deletion LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@ Folders containing files under different permissive license than Apache 2.0 are
- [features/lorawan](./features/lorawan) - Revised BSD
- [features/lwipstack](./features/lwipstack) - BSD-style, MIT-style
- [features/nanostack/sal-stack-nanostack](./features/nanostack/sal-stack-nanostack) - BSD-3-Clause
- [features/storage](./features/storage) - BSD-style, MIT
- [features/storage/blockdevice](./features/storage/blockdevice) - Apache 2.0, MIT
- [features/storage/filesystem/littlefs](./features/storage/filesystem/littlefs) - [BSD-3-Clause](https://github.com/ARMmbed/littlefs/blob/master/LICENSE.md)
- [features/storage/filesystem/fat/ChaN](.features/storage/filesystem/fat/ChaN) - BSD-style, 1 clause, [Copyright ChaN](http://www.elm-chan.org/fsw/ff/doc/appnote.html)
- [features/netsocket/emac-drivers](./features/netsocket/emac-drivers) - BSD-style
- [features/frameworks/unity/unity](./features/frameworks/unity/unity) - MIT
- [features/unsupported](./features/unsupported) - MIT-style, BSD-style
Expand Down
2 changes: 1 addition & 1 deletion TESTS/netsocket/udp/udp_tests.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ namespace udp_global {
#ifdef MBED_GREENTEA_TEST_UDPSOCKET_TIMEOUT_S
static const int TESTS_TIMEOUT = MBED_GREENTEA_TEST_UDPSOCKET_TIMEOUT_S;
#else
static const int TESTS_TIMEOUT = 480;
static const int TESTS_TIMEOUT = (20 * 60);
#endif

static const int MAX_SEND_SIZE_IPV4 = 536;
Expand Down
138 changes: 123 additions & 15 deletions components/wifi/esp8266-driver/ESP8266/ESP8266.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ ESP8266::ESP8266(PinName tx, PinName rx, bool debug, PinName rts, PinName cts)
_error(false),
_busy(false),
_reset_done(false),
_sock_sending_id(-1),
_conn_status(NSAPI_STATUS_DISCONNECTED)
{
_serial.set_baud(MBED_CONF_ESP8266_SERIAL_BAUDRATE);
Expand Down Expand Up @@ -89,13 +90,18 @@ ESP8266::ESP8266(PinName tx, PinName rx, bool debug, PinName rts, PinName cts)
_parser.oob("busy ", callback(this, &ESP8266::_oob_busy));
// NOTE: documentation v3.0 says '+CIPRECVDATA:<data_len>,' but it's not how the FW responds...
_parser.oob("+CIPRECVDATA,", callback(this, &ESP8266::_oob_tcp_data_hdlr));
// Register 'SEND OK'/'SEND FAIL' oobs here. Don't get involved in oob management with send status
// because ESP8266 modem possibly doesn't reply these packets on error case.
_parser.oob("SEND OK", callback(this, &ESP8266::_oob_send_ok_received));
_parser.oob("SEND FAIL", callback(this, &ESP8266::_oob_send_fail_received));

for (int i = 0; i < SOCKET_COUNT; i++) {
_sock_i[i].open = false;
_sock_i[i].proto = NSAPI_UDP;
_sock_i[i].tcp_data = NULL;
_sock_i[i].tcp_data_avbl = 0;
_sock_i[i].tcp_data_rcvd = 0;
_sock_i[i].send_fail = false;
}

_scan_r.res = NULL;
Expand Down Expand Up @@ -288,6 +294,7 @@ bool ESP8266::reset(void)
tr_debug("reset(): Done: %s.", done ? "OK" : "FAIL");

_clear_socket_packets(ESP8266_ALL_SOCKET_IDS);
_sock_sending_id = -1;
set_timeout();
_smutex.unlock();

Expand Down Expand Up @@ -511,9 +518,17 @@ nsapi_error_t ESP8266::open_udp(int id, const char *addr, int port, int local_po
// process OOB so that _sock_i reflects the correct state of the socket
_process_oob(ESP8266_SEND_TIMEOUT, true);

if (id >= SOCKET_COUNT || _sock_i[id].open) {
// Previous close() can fail with busy in sending. Usually, user will ignore the close()
// error code and cause 'spurious close', in which case user has closed the socket but ESP8266 modem
// hasn't yet. Because we don't know how long ESP8266 modem will trap in busy, enlarge retry count
// or timeout in close() isn't a nice way. Here, we actively re-call close() in open() to let the modem
// close the socket. User can re-try open() on failure. Without this active close(), open() can fail forever
// with previous 'spurious close', unless peer closes the socket and so ESP8266 modem closes it accordingly.
if (id >= SOCKET_COUNT) {
_smutex.unlock();
return NSAPI_ERROR_PARAMETER;
} else if (_sock_i[id].open) {
close(id);
}

for (int i = 0; i < 2; i++) {
Expand Down Expand Up @@ -562,9 +577,12 @@ nsapi_error_t ESP8266::open_tcp(int id, const char *addr, int port, int keepaliv
// process OOB so that _sock_i reflects the correct state of the socket
_process_oob(ESP8266_SEND_TIMEOUT, true);

if (id >= SOCKET_COUNT || _sock_i[id].open) {
// See the reason above with close()
if (id >= SOCKET_COUNT) {
_smutex.unlock();
return NSAPI_ERROR_PARAMETER;
} else if (_sock_i[id].open) {
close(id);
}

for (int i = 0; i < 2; i++) {
Expand Down Expand Up @@ -612,9 +630,24 @@ bool ESP8266::dns_lookup(const char *name, char *ip)
return done;
}

nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
nsapi_size_or_error_t ESP8266::send(int id, const void *data, uint32_t amount)
{
if (_sock_i[id].proto == NSAPI_TCP) {
if (_sock_sending_id >= 0 && _sock_sending_id < SOCKET_COUNT) {
if (!_sock_i[id].send_fail) {
tr_debug("send(): Previous packet (socket %d) was not yet ACK-ed with SEND OK.", _sock_sending_id);
return NSAPI_ERROR_WOULD_BLOCK;
} else {
tr_debug("send(): Previous packet (socket %d) failed.", id);
return NSAPI_ERROR_DEVICE_ERROR;
}
}
}

nsapi_error_t ret = NSAPI_ERROR_DEVICE_ERROR;
int bytes_confirmed = 0;
constexpr unsigned int send_ack_retries = 3;

// +CIPSEND supports up to 2048 bytes at a time
// Data stream can be truncated
if (amount > 2048 && _sock_i[id].proto == NSAPI_TCP) {
Expand All @@ -626,6 +659,10 @@ nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
}

_smutex.lock();
// Mark this socket is sending. We allow only one actively sending socket because:
// 1. ESP8266 AT packets 'SEND OK'/'SEND FAIL' are not associated with socket ID. No way to tell them.
// 2. In original implementation, ESP8266::send() is synchronous, which implies only one actively sending socket.
_sock_sending_id = id;
set_timeout(ESP8266_SEND_TIMEOUT);
_busy = false;
_error = false;
Expand All @@ -635,37 +672,70 @@ nsapi_error_t ESP8266::send(int id, const void *data, uint32_t amount)
}

if (!_parser.recv(">")) {
// This means ESP8266 hasn't even started to receive data
tr_debug("send(): Didn't get \">\"");
ret = NSAPI_ERROR_WOULD_BLOCK;
if (_sock_i[id].proto == NSAPI_TCP) {
ret = NSAPI_ERROR_WOULD_BLOCK; // Not necessarily critical error.
} else if (_sock_i[id].proto == NSAPI_UDP) {
ret = NSAPI_ERROR_NO_MEMORY;
}
goto END;
}

if (_parser.write((char *)data, (int)amount) >= 0 && _parser.recv("SEND OK")) {
ret = NSAPI_ERROR_OK;
if (_parser.write((char *)data, (int)amount) < 0) {
tr_debug("send(): Failed to write serial data");
// Serial is not working, serious error, reset needed.
ret = NSAPI_ERROR_DEVICE_ERROR;
goto END;
}

// The "Recv X bytes" is not documented.
if (!_parser.recv("Recv %d bytes", &bytes_confirmed)) {
tr_debug("send(): Bytes not confirmed.");
if (_sock_i[id].proto == NSAPI_TCP) {
ret = NSAPI_ERROR_WOULD_BLOCK;
} else if (_sock_i[id].proto == NSAPI_UDP) {
ret = NSAPI_ERROR_NO_MEMORY;
}
} else if (bytes_confirmed != amount && _sock_i[id].proto == NSAPI_UDP) {
tr_debug("send(): Error: confirmed %d bytes, but expected %d.", bytes_confirmed, amount);
ret = NSAPI_ERROR_DEVICE_ERROR;
} else {
// TCP can accept partial writes (if they ever happen)
ret = bytes_confirmed;
}

END:
_process_oob(ESP8266_RECV_TIMEOUT, true); // Drain USART receive register to avoid data overrun

// error hierarchy, from low to high
if (_busy) {
ret = NSAPI_ERROR_WOULD_BLOCK;
tr_debug("send(): Modem busy. ");
}

if (ret == NSAPI_ERROR_DEVICE_ERROR) {
// NOTE: We cannot return NSAPI_ERROR_WOULD_BLOCK when "Recv X bytes" has reached, otherwise duplicate data send.
if (_busy && ret < 0) {
ret = NSAPI_ERROR_WOULD_BLOCK;
tr_debug("send(): Send failed.");
tr_debug("send(): Modem busy.");
}

if (_error) {
// FIXME: Not sure clear or not of _error. See it as device error and it can recover only via reset?
_sock_sending_id = -1;
ret = NSAPI_ERROR_CONNECTION_LOST;
tr_debug("send(): Connection disrupted.");
}

if (!_sock_i[id].open && ret != NSAPI_ERROR_OK) {
if (_sock_i[id].send_fail) {
_sock_sending_id = -1;
if (_sock_i[id].proto == NSAPI_TCP) {
ret = NSAPI_ERROR_DEVICE_ERROR;
} else {
ret = NSAPI_ERROR_NO_MEMORY;
}
tr_debug("send(): SEND FAIL received.");
}

if (!_sock_i[id].open && ret < 0) {
_sock_sending_id = -1;
ret = NSAPI_ERROR_CONNECTION_LOST;
tr_debug("send(): Socket closed abruptly.");
tr_debug("send(): Socket %d closed abruptly.", id);
}

set_timeout();
Expand Down Expand Up @@ -938,6 +1008,14 @@ void ESP8266::_clear_socket_packets(int id)
}
}

void ESP8266::_clear_socket_sending(int id)
{
if (id == _sock_sending_id) {
_sock_sending_id = -1;
}
_sock_i[id].send_fail = false;
}

bool ESP8266::close(int id)
{
//May take a second try if device is busy
Expand All @@ -949,20 +1027,27 @@ bool ESP8266::close(int id)
_closed = false;
_sock_i[id].open = false;
_clear_socket_packets(id);
// Closed, so this socket escapes from SEND FAIL status.
_clear_socket_sending(id);
_smutex.unlock();
// ESP8266 has a habit that it might close a socket on its own.
tr_debug("close(%d): socket close OK with UNLINK ERROR", id);
return true;
}
} else {
// _sock_i[id].open set to false with an OOB
_clear_socket_packets(id);
// Closed, so this socket escapes from SEND FAIL status
_clear_socket_sending(id);
_smutex.unlock();
tr_debug("close(%d): socket close OK with AT+CIPCLOSE OK", id);
return true;
}
}
_smutex.unlock();
}

tr_debug("close(%d): socket close FAIL'ed (spurious close)", id);
return false;
}

Expand Down Expand Up @@ -1140,34 +1225,42 @@ void ESP8266::_oob_socket0_closed()
{
static const int id = 0;
_sock_i[id].open = false;
// Closed, so this socket escapes from SEND FAIL status
_clear_socket_sending(id);
tr_debug("_oob_socket0_closed(): Socket %d closed.", id);
}

void ESP8266::_oob_socket1_closed()
{
static const int id = 1;
_sock_i[id].open = false;
// Closed, so this socket escapes from SEND FAIL status
_clear_socket_sending(id);
tr_debug("_oob_socket1_closed(): Socket %d closed.", id);
}

void ESP8266::_oob_socket2_closed()
{
static const int id = 2;
_sock_i[id].open = false;
_clear_socket_sending(id);
tr_debug("_oob_socket2_closed(): Socket %d closed.", id);
}

void ESP8266::_oob_socket3_closed()
{
static const int id = 3;
_sock_i[id].open = false;
_clear_socket_sending(id);
tr_debug("_oob_socket3_closed(): %d closed.", id);
}

void ESP8266::_oob_socket4_closed()
{
static const int id = 4;
_sock_i[id].open = false;
// Closed, so this socket escapes from SEND FAIL status
_clear_socket_sending(id);
tr_debug("_oob_socket0_closed(): Socket %d closed.", id);
}

Expand Down Expand Up @@ -1205,6 +1298,21 @@ void ESP8266::_oob_connection_status()
_conn_stat_cb();
}

void ESP8266::_oob_send_ok_received()
{
tr_debug("_oob_send_ok_received called for socket %d", _sock_sending_id);
_sock_sending_id = -1;
}

void ESP8266::_oob_send_fail_received()
{
tr_debug("_oob_send_fail_received called for socket %d", _sock_sending_id);
if (_sock_sending_id >= 0 && _sock_sending_id < SOCKET_COUNT) {
_sock_i[_sock_sending_id].send_fail = true;
}
_sock_sending_id = -1;
}

int8_t ESP8266::default_wifi_mode()
{
int8_t mode;
Expand Down
11 changes: 8 additions & 3 deletions components/wifi/esp8266-driver/ESP8266/ESP8266.h
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,10 @@ class ESP8266 {
*
* @param id id of socket to send to
* @param data data to be sent
* @param amount amount of data to be sent - max 1024
* @return NSAPI_ERROR_OK in success, negative error code in failure
* @param amount amount of data to be sent - max 2048
* @return number of bytes on success, negative error code in failure
*/
nsapi_error_t send(int id, const void *data, uint32_t amount);
nsapi_size_or_error_t send(int id, const void *data, uint32_t amount);

/**
* Receives datagram from an open UDP socket
Expand Down Expand Up @@ -444,6 +444,7 @@ class ESP8266 {
// data follows
} *_packets, * *_packets_end;
void _clear_socket_packets(int id);
void _clear_socket_sending(int id);
int _sock_active_id;

// Memory statistics
Expand All @@ -469,6 +470,8 @@ class ESP8266 {
void _oob_tcp_data_hdlr();
void _oob_ready();
void _oob_scan_results();
void _oob_send_ok_received();
void _oob_send_fail_received();

// OOB state variables
int _connect_error;
Expand All @@ -479,6 +482,7 @@ class ESP8266 {
bool _error;
bool _busy;
bool _reset_done;
int _sock_sending_id;

// Modem's address info
char _ip_buffer[16];
Expand All @@ -493,6 +497,7 @@ class ESP8266 {
char *tcp_data;
int32_t tcp_data_avbl; // Data waiting on modem
int32_t tcp_data_rcvd;
bool send_fail; // Received 'SEND FAIL'. Expect user will close the socket.
};
struct _sock_info _sock_i[SOCKET_COUNT];

Expand Down
Loading