Shifting negative numbers right is implementation-defined, and shifting
positive signed numbers left and exceeding positive range is undefined.
Take care to make sure we always shift unsigned values.
The proposed review fixes by Jerome, cherry-picked in.
(cherry picked from commit fb15f023a9b7b679301b45eaa160ae8cb2e1f23c)
Signed-off-by: Janne Kiiskila <janne.kiiskila@arm.com>
Manually replaced the existing STM32H7 section and replaced it with the
context of updated `index.json` that pulled in the Keil packs available
today, as of 18th October, 2019.
See related PR; https://github.com/ARMmbed/mbed-os/pull/11707
Updated Serial Flash interface & Network buffer classes to avoid warnings and improve robustness. Fixed issue with mbed_overrides trying to use an old implementation of cy_serial_flash_init() function.
DeviceKey was using mbedtls_ssl_safer_memcmp() to compare result against
buffer of equal length, but zero content. This comparison makes no sense
as the entropy function is already returning proper error, if it fails.
This uses HeapBlockDevice for providing the underlying storage block.
Check boundaries that slicingblockdevice do not overlow over to unassigned
blocks.
* Change MBED_ASSERTS() to return valid error code, so that
checks are not bypassed on release builds.
* Fix starting address calculations so that "addr" parameter is always
relative to SlicingDevice and "_start" is only added when calls to
underlying storage block is made.
* Bypass BlockDevice:is_valid_*() to underlying block device.
Slicingblockdevice was just verifying addresses independently, without
verifying those from underlying block storage.
* Refactor some headers to use relative path from Mbed OS root.
* Refactor some data types to compile on 64bit machines.
* Refactor some debug traces to use mbed_trace.
Protocols like mdns requires IPv6 link local address to be advertised in its
records (AAAA record). LWIP::Interface::bringup() API is creating IPv6 link
local address;But as of now there is no API exposed by mbed-os to get the
IPv6 link local address.
This new API is required to deliver mDNS library support on mbed-os for Cypress
platforms. Unit tested it by invoking get_ipv6_link_local_address with a simple
application.
Implementation of pwmout_read() is not consistent with the requirements.
This function should return the current float-point output duty-cycle in range <0.0f, 1.0f>.
Currently it returns decimal percentage value.
None of the USB drivers currently support entering deep sleep mode
while USB is active. To protect USB from malfunctioning lock deep
sleep in USBPhyHw::init.This is done for similar
This was done for all other implementations as part of
https://github.com/ARMmbed/mbed-os/commit/8ffbe5c6033
This copies the approach of the STM32F7 flash driver submitted via
PR https://github.com/ARMmbed/mbed-os/pull/10248
With this change the board finally passes all of the device key
tests 10/10 times correctly.
Recent measurements have shown that the total wake-up latency can be more
than the 3ms initially set. It was measured as 3,7ms on DISCO_L475VG_IOT01A
target and 3,1ms on NUCLEO_L073RZ target. So set it to 4ms to be on the
safe side.
i2c_byte_write implementation was broken.
Data sending was inside addressing block
Changed from:
i2c_byte_write
{
if (start) {
if (read_address)
start read;
esle
start write;
write byte;
}
}
to:
i2c_byte_write
{
if (start) {
// if first call after start
// address for reading or writing
if (read_address)
start read;
esle
start write;
} else {
// send data byte
write byte;
}
}