Skip to content

Release candidate for mbed-os-5.10.0-rc2 #8083

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 26 commits into from
Sep 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ca2619b
Lora: Improve description of callback methods
Aug 27, 2018
f60ac63
Copy edit lorawan_types.h
Aug 27, 2018
37b34f6
fix reading from eeprom
paul-szczepanek-arm Sep 3, 2018
8d31fc1
Use MbedCRC for LittleFS (0xEDB88320)
Aug 21, 2018
a0ad63b
Use the same API name to add mbed CRC: lfs_crc
Aug 21, 2018
b7b94b3
CRC: Removed assertion on NULL buffer
geky Sep 3, 2018
b490de3
Add special handling for "/default" filesystem
kjbracey Aug 27, 2018
8e6e5f0
Change default filesystem name to /default
kjbracey Sep 4, 2018
f1de1c3
Make "/default" an alias - add real names too
kjbracey Sep 4, 2018
6835a5a
fix mutex stub for unit tests
lorjala Sep 5, 2018
87713d9
IOTCORE-389 - bring back legacy alignment for Arm C6
Sep 5, 2018
f556151
Update mbed-cli subcommand
theotherjimmy Sep 4, 2018
0ec2514
Changes in PR #7774 of PinNames.h should be reverted. This commit rev…
Sep 5, 2018
4fb4994
Update mbed-coap to version 4.6.3
Sep 6, 2018
ee03d83
QSPI driver: API parameters fix
maciejbocianski Sep 5, 2018
1caf262
python scripts : table print with github policy
jeromecoutant Aug 7, 2018
df77780
Update Mbed TLS version to 2.13.1
simonbutcher Sep 6, 2018
862aa39
DISCO_L475VG_IOT01A remove old QSPI pins
maciejbocianski Sep 5, 2018
9bb0344
fix example code in QSPI.h
maciejbocianski Sep 5, 2018
72f1ecb
Fix typo
toyowata Sep 6, 2018
564483e
Fix memory reservation for Softdevice in NRF52_DK
Aug 31, 2018
3c8e3ed
Fix memory allocation on STM32L4 devices
c1728p9 Aug 31, 2018
256ba04
Fix comparison warning on STM32L4 devices
c1728p9 Sep 6, 2018
179a3b6
Add Socket test plan
Aug 16, 2018
c48c8a6
Copy edit requested section of README.md
Aug 27, 2018
4599726
Update Mbed version block
adbridge Sep 11, 2018
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
1,666 changes: 1,666 additions & 0 deletions TESTS/netsocket/README.md

Large diffs are not rendered by default.

Binary file added TESTS/netsocket/eth_environment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added TESTS/netsocket/wifi_environment.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions TEST_APPS/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ You need Icetea and mbed-cli that supports Icetea, installed.

Depending on a device, there might be a default network interface type defined in the mbed-os/targets/targets.json, which is used to locate a test-config file by default.
If there is not, or you want to use a different interface than the default, you need to provide a relevant test-config -file to the mbed test with --test-config option.
The test-config file contains the necessary information for the test application, there are some test-config files located under mbed-os/tools/test-configs.
Devices which have their network drivers residing inside mbed-os can use generic test-configs like HeapBlockDeviceAndEthernetInterface.json and HeapBlockDeviceAndWifiInterface.json. Otherwise you need to use a device specific test-config.
The test-config file contains the necessary information for the test application, there are some test-config files located under mbed-os/tools/test_configs.
Devices which have their network drivers residing inside mbed-os can use generic test_configs like HeapBlockDeviceAndEthernetInterface.json and HeapBlockDeviceAndWifiInterface.json. Otherwise you need to use a device specific test-config.

### Running the tests

Expand All @@ -42,10 +42,10 @@ Some devices may offer multiple network interfaces to operate with. For example,
The tests can be run for either one of those using already existing test-config -files.

To run the tests with Wi-Fi interface:
`>mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test-configs/HeapBlockDeviceAndWifiInterface.json`
`>mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndWifiInterface.json`

To run the tests with ethernet interface:
`>mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test-configs/HeapBlockDeviceAndEthernetInterface.json`
`>mbed test -m UBLOX_EVK_ODIN_W2 -t <toolchain> --icetea --test-config tools/test_configs/HeapBlockDeviceAndEthernetInterface.json`

#### Providing Wi-Fi access point information

Expand Down
12 changes: 6 additions & 6 deletions UNITTESTS/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,17 +69,17 @@ pip install "gcovr>=4.1"

> In case of running into problems see [troubleshooting](#troubleshooting) section.

`UNITTESTS/mbed_unittest.py` contains testing scripts for Mbed OS unit testing. Mbed CLI supports unit testing through `mbed unittest` command with the same arguments.
`UNITTESTS/mbed_unittest.py` contains testing scripts for Mbed OS unit testing. Mbed CLI supports unit testing through `mbed test --unittests` command with the same arguments.

### Testing with Mbed CLI

```
mbed unittest
mbed test --unittests
```

A subset of tests can be run by providing `-r` flag for the tool which runs tests matching a regular expression.

e.g. `mbed unittest --run -r features_netsocket`
e.g. `mbed test --unittests --run -r features_netsocket`

### Build manually without Python tools

Expand Down Expand Up @@ -144,7 +144,7 @@ Run ctest dashboard test and create test results:

Python tools use gcovr to build code coverage reports. Generate html report `UNITTESTS/build/coverage/index.html` with:
```
mbed unittest --coverage html
mbed test --unittests --coverage html
```

To get coverage for a single test suite, run gcovr separately for suite coverage data directory. See [gcovr documentation](https://gcovr.com/guide.html#filter-options) for more information.
Expand Down Expand Up @@ -211,10 +211,10 @@ A unit test definition file `unittest.cmake` requires variables to be set for a
#### Creating unit tests files with Mbed CLI

```
mbed unittest --new <FILEPATH>
mbed test --unittests --new <FILEPATH>
```

E.g. `mbed unittest --new rtos/Semaphore.cpp`
E.g. `mbed test --unittests --new rtos/Semaphore.cpp`

The generator script only creates the files required for a unit test. It does not write unit tests automatically nor does it handle source dependencies.

Expand Down
7 changes: 6 additions & 1 deletion UNITTESTS/stubs/Mutex_stub.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,12 @@ rtos::Mutex::~Mutex()
return;
}

osStatus rtos::Mutex::lock(unsigned int)
osStatus rtos::Mutex::lock(void)
{
return osOK;
}

osStatus rtos::Mutex::lock(uint32_t millisec)
{
return osOK;
}
Expand Down
8 changes: 8 additions & 0 deletions drivers/MbedCRC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,14 @@ MbedCRC<POLY_32BIT_ANSI, 32>::MbedCRC():
mbed_crc_ctor();
}

template<>
MbedCRC<POLY_32BIT_REV_ANSI, 32>::MbedCRC():
_initial_value(~(0x0)), _final_xor(~(0x0)), _reflect_data(false), _reflect_remainder(false),
_crc_table((uint32_t *)Table_CRC_32bit_Rev_ANSI)
{
mbed_crc_ctor();
}

template<>
MbedCRC<POLY_16BIT_IBM, 16>::MbedCRC():
_initial_value(0), _final_xor(0), _reflect_data(true), _reflect_remainder(true),
Expand Down
27 changes: 21 additions & 6 deletions drivers/MbedCRC.h
Original file line number Diff line number Diff line change
Expand Up @@ -275,7 +275,7 @@ class MbedCRC {
p_crc = (uint32_t)(p_crc << (8 - width));
}
// Optimized algorithm for 32BitANSI does not need additional reflect_remainder
if ((TABLE == _mode) && (POLY_32BIT_ANSI == polynomial)) {
if ((TABLE == _mode) && (POLY_32BIT_REV_ANSI == polynomial)) {
*crc = (p_crc ^ _final_xor) & get_crc_mask();
} else {
*crc = (reflect_remainder(p_crc) ^ _final_xor) & get_crc_mask();
Expand Down Expand Up @@ -415,7 +415,6 @@ class MbedCRC {
int32_t bitwise_compute_partial(const void *buffer, crc_data_size_t size, uint32_t *crc) const
{
MBED_ASSERT(crc != NULL);
MBED_ASSERT(buffer != NULL);

const uint8_t *data = static_cast<const uint8_t *>(buffer);
uint32_t p_crc = *crc;
Expand Down Expand Up @@ -460,7 +459,6 @@ class MbedCRC {
int32_t table_compute_partial(const void *buffer, crc_data_size_t size, uint32_t *crc) const
{
MBED_ASSERT(crc != NULL);
MBED_ASSERT(buffer != NULL);

const uint8_t *data = static_cast<const uint8_t *>(buffer);
uint32_t p_crc = *crc;
Expand All @@ -480,9 +478,17 @@ class MbedCRC {
}
} else {
uint32_t *crc_table = (uint32_t *)_crc_table;
for (crc_data_size_t i = 0; i < size; i++) {
p_crc = (p_crc >> 4) ^ crc_table[(p_crc ^ (data[i] >> 0)) & 0xf];
p_crc = (p_crc >> 4) ^ crc_table[(p_crc ^ (data[i] >> 4)) & 0xf];
if (POLY_32BIT_REV_ANSI == polynomial) {
for (crc_data_size_t i = 0; i < size; i++) {
p_crc = (p_crc >> 4) ^ crc_table[(p_crc ^ (data[i] >> 0)) & 0xf];
p_crc = (p_crc >> 4) ^ crc_table[(p_crc ^ (data[i] >> 4)) & 0xf];
}
}
else {
for (crc_data_size_t byte = 0; byte < size; byte++) {
data_byte = reflect_bytes(data[byte]) ^ (p_crc >> (width - 8));
p_crc = crc_table[data_byte] ^ (p_crc << 8);
}
}
}
*crc = p_crc & get_crc_mask();
Expand All @@ -497,6 +503,11 @@ class MbedCRC {
MBED_STATIC_ASSERT(width <= 32, "Max 32-bit CRC supported");

#ifdef DEVICE_CRC
if (POLY_32BIT_REV_ANSI == polynomial) {
_crc_table = (uint32_t *)Table_CRC_32bit_Rev_ANSI;
_mode = TABLE;
return;
}
crc_mbed_config_t config;
config.polynomial = polynomial;
config.width = width;
Expand All @@ -510,10 +521,14 @@ class MbedCRC {
return;
}
#endif

switch (polynomial) {
case POLY_32BIT_ANSI:
_crc_table = (uint32_t *)Table_CRC_32bit_ANSI;
break;
case POLY_32BIT_REV_ANSI:
_crc_table = (uint32_t *)Table_CRC_32bit_Rev_ANSI;
break;
case POLY_8BIT_CCITT:
_crc_table = (uint32_t *)Table_CRC_8bit_CCITT;
break;
Expand Down
10 changes: 5 additions & 5 deletions drivers/QSPI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ qspi_status_t QSPI::set_frequency(int hz)
return ret_status;
}

qspi_status_t QSPI::read(unsigned int address, char *rx_buffer, size_t *rx_length)
qspi_status_t QSPI::read(int address, char *rx_buffer, size_t *rx_length)
{
qspi_status_t ret_status = QSPI_STATUS_ERROR;

Expand All @@ -115,7 +115,7 @@ qspi_status_t QSPI::read(unsigned int address, char *rx_buffer, size_t *rx_lengt
return ret_status;
}

qspi_status_t QSPI::write(unsigned int address, const char *tx_buffer, size_t *tx_length)
qspi_status_t QSPI::write(int address, const char *tx_buffer, size_t *tx_length)
{
qspi_status_t ret_status = QSPI_STATUS_ERROR;

Expand All @@ -139,7 +139,7 @@ qspi_status_t QSPI::write(unsigned int address, const char *tx_buffer, size_t *t
return ret_status;
}

qspi_status_t QSPI::read(unsigned int instruction, unsigned int alt, unsigned int address, char *rx_buffer, size_t *rx_length)
qspi_status_t QSPI::read(int instruction, int alt, int address, char *rx_buffer, size_t *rx_length)
{
qspi_status_t ret_status = QSPI_STATUS_ERROR;

Expand All @@ -163,7 +163,7 @@ qspi_status_t QSPI::read(unsigned int instruction, unsigned int alt, unsigned in
return ret_status;
}

qspi_status_t QSPI::write(unsigned int instruction, unsigned int alt, unsigned int address, const char *tx_buffer, size_t *tx_length)
qspi_status_t QSPI::write(int instruction, int alt, int address, const char *tx_buffer, size_t *tx_length)
{
qspi_status_t ret_status = QSPI_STATUS_ERROR;

Expand All @@ -187,7 +187,7 @@ qspi_status_t QSPI::write(unsigned int instruction, unsigned int alt, unsigned i
return ret_status;
}

qspi_status_t QSPI::command_transfer(unsigned int instruction, int address, const char *tx_buffer, size_t tx_length, const char *rx_buffer, size_t rx_length)
qspi_status_t QSPI::command_transfer(int instruction, int address, const char *tx_buffer, size_t tx_length, const char *rx_buffer, size_t rx_length)
{
qspi_status_t ret_status = QSPI_STATUS_ERROR;

Expand Down
34 changes: 21 additions & 13 deletions drivers/QSPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,27 @@ namespace mbed {
*
* #include "mbed.h"
*
* #define CMD_WRITE 0x02
* #define CMD_READ 0x03
* #define ADDRESS 0x1000
*
* // hardware ssel (where applicable)
* QSPI qspi_device(QSPI_PIN_IO0, QSPI_PIN_IO1, QSPI_PIN_IO2, QSPI_PIN_IO3, QSPI_PIN_SCK, QSPI_PIN_CSN); // io0, io1, io2, io3, sclk, ssel
* QSPI qspi_device(QSPI_FLASH1_IO0, QSPI_FLASH1_IO1, QSPI_FLASH1_IO2, QSPI_FLASH1_IO3, QSPI_FLASH1_SCK, QSPI_FLASH1_CSN); // io0, io1, io2, io3, sclk, ssel
*
*
* int main() {
* char tx_buf[] = { 0x11, 0x22, 0x33, 0x44 };
* char rx_buf[4];
* int buf_len = sizeof(tx_buf);
*
* int result = qspi_device.write( 0x12 , 0x100000 , 0 , tx_buf, &buf_len );
* if( !result ) printf("Write failed");
* int result = qspi_device.read( 0x13 , 0x100000 , 0 , rx_buf, &buf_len );
* if( !result ) printf("Read failed");
* qspi_status_t result = qspi_device.write(CMD_WRITE, 0, ADDRESS, tx_buf, &buf_len);
* if (result != QSPI_STATUS_OK) {
* printf("Write failed");
* }
* result = qspi_device.read(CMD_READ, 0, ADDRESS, rx_buf, &buf_len);
* if (result != QSPI_STATUS_OK) {
* printf("Read failed");
* }
*
* }
* @endcode
Expand Down Expand Up @@ -118,7 +126,7 @@ class QSPI : private NonCopyable<QSPI> {
* @returns
* Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
*/
qspi_status_t read(unsigned int address, char *rx_buffer, size_t *rx_length);
qspi_status_t read(int address, char *rx_buffer, size_t *rx_length);

/** Write to QSPI peripheral using custom write instruction
*
Expand All @@ -129,38 +137,38 @@ class QSPI : private NonCopyable<QSPI> {
* @returns
* Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
*/
qspi_status_t write(unsigned int address, const char *tx_buffer, size_t *tx_length);
qspi_status_t write(int address, const char *tx_buffer, size_t *tx_length);

/** Read from QSPI peripheral using custom read instruction, alt values
*
* @param instruction Instruction value to be used in instruction phase
* @param alt Alt value to be used in instruction phase
* @param alt Alt value to be used in Alternate-byte phase. Use -1 for ignoring Alternate-byte phase
* @param address Address to be accessed in QSPI peripheral
* @param rx_buffer Buffer for data to be read from the peripheral
* @param rx_length Pointer to a variable containing the length of rx_buffer, and on return this variable will be updated with the actual number of bytes read
*
* @returns
* Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
*/
qspi_status_t read(unsigned int instruction, unsigned int alt, unsigned int address, char *rx_buffer, size_t *rx_length);
qspi_status_t read(int instruction, int alt, int address, char *rx_buffer, size_t *rx_length);

/** Write to QSPI peripheral using custom write instruction, alt values
*
* @param instruction Instruction value to be used in instruction phase
* @param alt Alt value to be used in instruction phase
* @param alt Alt value to be used in Alternate-byte phase. Use -1 for ignoring Alternate-byte phase
* @param address Address to be accessed in QSPI peripheral
* @param tx_buffer Buffer containing data to be sent to peripheral
* @param tx_length Pointer to a variable containing the length of data to be transmitted, and on return this variable will be updated with the actual number of bytes written
*
* @returns
* Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
*/
qspi_status_t write(unsigned int instruction, unsigned int alt, unsigned int address, const char *tx_buffer, size_t *tx_length);
qspi_status_t write(int instruction, int alt, int address, const char *tx_buffer, size_t *tx_length);

/** Perform a transaction to write to an address(a control register) and get the status results
*
* @param instruction Instruction value to be used in instruction phase
* @param address Some instruction might require address. Use -1 for ignoring the address value
* @param address Some instruction might require address. Use -1 if no address
* @param tx_buffer Buffer containing data to be sent to peripheral
* @param tx_length Pointer to a variable containing the length of data to be transmitted, and on return this variable will be updated with the actual number of bytes written
* @param rx_buffer Buffer for data to be read from the peripheral
Expand All @@ -169,7 +177,7 @@ class QSPI : private NonCopyable<QSPI> {
* @returns
* Returns QSPI_STATUS_SUCCESS on successful reads and QSPI_STATUS_ERROR on failed reads.
*/
qspi_status_t command_transfer(unsigned int instruction, int address, const char *tx_buffer, size_t tx_length, const char *rx_buffer, size_t rx_length);
qspi_status_t command_transfer(int instruction, int address, const char *tx_buffer, size_t tx_length, const char *rx_buffer, size_t rx_length);

protected:
/** Acquire exclusive access to this SPI bus
Expand Down
38 changes: 37 additions & 1 deletion drivers/TableCRC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,12 +108,48 @@ extern const uint16_t Table_CRC_16bit_IBM[MBED_CRC_TABLE_SIZE] = {
0x220, 0x8225, 0x822f, 0x22a, 0x823b, 0x23e, 0x234, 0x8231, 0x8213, 0x216, 0x21c, 0x8219
};

extern const uint32_t Table_CRC_32bit_ANSI[MBED_OPTIMIZED_CRC_TABLE_SIZE] = {
extern const uint32_t Table_CRC_32bit_ANSI[MBED_CRC_TABLE_SIZE] = {
0x0, 0x4c11db7, 0x9823b6e, 0xd4326d9, 0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61, 0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9, 0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011, 0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039, 0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81, 0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49, 0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1, 0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae, 0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16, 0x18aeb13, 0x54bf6a4, 0x808d07d, 0xcc9cdca,
0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde, 0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066, 0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e, 0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6, 0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e, 0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686, 0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637, 0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f, 0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47, 0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
0x315d626, 0x7d4cb91, 0xa97ed48, 0xe56f0ff, 0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7, 0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f, 0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7, 0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f, 0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640, 0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8, 0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30, 0x29f3d35, 0x65e2082, 0xb1d065b, 0xfdc1bec,
0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088, 0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0, 0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18, 0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0, 0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668, 0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
};

extern const uint32_t Table_CRC_32bit_Rev_ANSI[MBED_OPTIMIZED_CRC_TABLE_SIZE] = {
0x00000000, 0x1db71064, 0x3b6e20c8, 0x26d930ac,
0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c,
0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c,
0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c
};


/** @}*/
} // namespace mbed
3 changes: 2 additions & 1 deletion drivers/TableCRC.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,8 @@ extern const uint8_t Table_CRC_7Bit_SD[MBED_CRC_TABLE_SIZE];
extern const uint8_t Table_CRC_8bit_CCITT[MBED_CRC_TABLE_SIZE];
extern const uint16_t Table_CRC_16bit_CCITT[MBED_CRC_TABLE_SIZE];
extern const uint16_t Table_CRC_16bit_IBM[MBED_CRC_TABLE_SIZE];
extern const uint32_t Table_CRC_32bit_ANSI[MBED_OPTIMIZED_CRC_TABLE_SIZE];
extern const uint32_t Table_CRC_32bit_ANSI[MBED_CRC_TABLE_SIZE];
extern const uint32_t Table_CRC_32bit_Rev_ANSI[MBED_OPTIMIZED_CRC_TABLE_SIZE];

/** @}*/
} // namespace mbed
Expand Down
7 changes: 7 additions & 0 deletions features/frameworks/mbed-coap/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Change Log

## [v4.6.3](https://github.com/ARMmbed/mbed-coap/releases/tag/v4.6.3)

- Bug fix: Remove timed out blockwise message from resend queue. If blockwise message was timed out message was still kept in the resend queue which causes unnecessary reconnections on client side.
- Documentation: Document all the available macros.

-[Full Changelog](https://github.com/ARMmbed/mbed-coap/compare/v4.6.2...v4.6.3)

## [v4.6.2](https://github.com/ARMmbed/mbed-coap/releases/tag/v4.6.2)

Do not clear block2 in subsequent block request.
Expand Down
Loading