* Added mechanism enabling CPU to
enter WFI mode when the OS is
in idle, what results in large
power consumption reduction.
* Added mechanism to switch SDRAM to
self-refresh mode before entering
WFI, what resulted in further power
consumption reduction.
Updated FreeRTOS source code to 10.4.6.
Moved FreeRTOS sources to the third-party directory.
Added necessary changes to the CMake configuration.
Split FreeRTOSConfig.h. From now, each board has its own.
Added missing log headers.
Minor refactor of the module-os cmake.
Fixed stack overflows in bell application main and time service.
Added atexit functionality. All global destructors and functions
registered with atexit() should be called at program exit.
It was possbile to reuse original newlib implementation with
MALLOC_PROVIDED flag set.
Made sure logger destructructor is called as last one.
Due to mudita OS legacy, it was not possible to simply fix dependencies
in global objectes and hence there are neither global objects
destructors nor functions registered with atexit() called when exit()
is called.
Possibly it will be changed later.
Newlib nano is an optimized for size version of newlib libc library.
While newlib nano is smaller in size, it is also noticably slower than
the full version -
https://interrupt.memfault.com/blog/memcpy-newlib-nano
Moreover, full newlib provides native possiblity to printf 64-variables,
including double and float.
There was hard fault while trying to enable full newlib whithout
recompilling memcpy implementation with -mno-unaligned-access compile
option.
It was failing for missalinged memory access during memcpy.
Similar issue is described here -
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1857469
After moving some files to libboard.a the linker was not eager to look
for symbols that should be in the boot header (.boot_hdr section).
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Moved USB stack, defined separate library and its dependencies,
assigned library to specific sections in linker script, reduced
build time by more than 10 percent thanks to ending building
usb stack file both in module-bsp and module-vfs
The start address of the OS image adjusted to comply with HAB
Secure Boot. Proper SNVS initialization performed at system startup.
SNVS drivers updated to most recent version. Image signing can be
performed as a part of build process. See doc/secure_boot.md for
more info.
Integrate the CrashCatcher library in order to store phone state after
a fault occurs. The dumps are stored in the CrashCatcher hex format and
can be debugged using the CrashDebug stub built for x86_64 via the
'debug_crash_dump.sh' script.
There is a memory shortage in the DTCM region. In order to be able to
add new features linker script for the rt1051 needs to be cleanup.
A couple of issues has been fixed:
* double stack definition blocking 4kB
* excessive heap definition blocking 4kB
* a part of DTCM had not been used blocking 24kB.
Data has been split to user and system part, user data has been moved to
the SDRAM, therefore new data will be placed there. To place it inside
the MCU an explicit statement has to be used.
Added a basic description of memory layout and a couple of comments.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Change SDRAM configuration from 4M for code and 13M (which is invalid)
for heaps to 6M for code and 10M for heaps.
Usermem heap's size has been decreased to 9M.
Use heap start symbol __sdram_cached_start for MPU configuration instead
of using magic values which are easy to miss when they are need to be
changed.
This change is required to be able to fit in libphonenumber.