* 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.
Added info about product, OS version and
commit hash to crashdump filename to
simplify analysis of the crashdumps
without corresponding logs available.
Adding indexing to crashdumps to to ensure resistance to the device date
retraction.
When max crashdump count reach the file with higher index number will be
remove.
Workaround required to make MuditaOS
able to boot from ext4-formatted OS
partition.
Previously OS partition was mounted
on /sys and user partition on
/sys/user. This worked
when two separate FS drivers
(FATFS and lwext4) were used.
Changing OS partition to ext4
created an ambiguity whether
/sys/user is user partition
mountpoint or folder 'user'
on OS partition. This
workaround still may create
ambiguities, so the issue
should be fixed in one of
the further releases by
completely removing 'sys'
prefix.
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
Fix saving crash dump and add create crash dump
when exit function is called.
Also crashdumps size is slighthy reduced
because for backtrace we don't need to grab
the text section and heap section.
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
Add global __GTHREADS definition to trick standard library into thinking
we have a proper threading support and that it should not used single
threaded locking policies. As a result shared pointers will use atomic
locking policy to synchronize access to reference counter.
Add own version of gthr.h to override __gthread_active_p.
Add cxa guard and release for globs.
Looks like there was conflict when __GTHREADS was set so own version of
atomicity.h is removed.
Co-authored-by: Alek Rudnik <aleksander.rudnik@mudita.com>
Co-authored-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
Tested-by: Alek Rudnik <aleksander.rudnik@mudita.com>
Tested-by: Tomasz Krosnowski <tomasz.krosnowski@mudita.com>
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add support for the EXT4 filesystem using LWEXT4
Add minor VFS fixes
Add unittest for the EXT4 partitions
Reformat partition for use EXT4 filesystem
[EGD-7587] Initial cmake of the ext4
[EGD-7587] Block driver for the ext4
Initial version of the block driver for the ext4 device
[EGD-7587] Initial version of the EXT4 fs support
Initial version of the ext4 filesystem support
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
[EGD-7587] Mount unmount initial unit tests
Mount and unmount initial unit tests
[EGD-7587] Unit tests and fixes for ext4
Unit tests and fixes for the ext4 partition
[EGD-7587[ adjust flags
Adjust ext configuration flags
[EGD-7587] Change to generate ext4 image
Change image generation script to generate ext4 image
[EGD-7584] Change cache memory settings
Change cache memory settings
[EGD-7587] Change create image flags
Change create image flags
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
[EGD-7587] Git change lwext4 to the mudita version
Change LWEXT4 to mudita version
[EGD-7587] Modify ext4 implementation
Modify ext4 implementation according to the new lwext4
mudita branch. Some issues were fixed in this branch
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
[EGD-7587] Add to VFS rmdir syscall
Add to VFS missing rmdir for compliance POSIX std
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
Added dumps rotation. Maximum count of the files set to 5.
The oldest dumps are removed if there're more than 5 of them.
Comparison is taken by the date.
Unified log and crash dumps rotators.
Split module-utils into smaller components for better dependency
management. Fix many dependencies throughout the project.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Remove duplicated header for linux; move header for rt1051 to the same
tree as for linux.
_exit.c uses os so it should be placed in the os.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add atomic primitives for fix
random crash on idle mode
Signed-off-by: Lucjan Bryndza <lucjan.bryndza@mudita.com>
(cherry picked from commit 7b75494ba5)
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>
Remove obsolete target dependencies across modules.
Remove 'cross' and 'unittests' targets.
Refactor some remaining target dependencies to use board include macro.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
To support bell hardware one needs to distinguish between the rt1051
generic target and product's boards.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Remove dependency to the production image by creating separate sysroot
for test assets alongside with a test image Test.img.
Signed-off-by: Marcin Smoczyński <smoczynski.marcin@gmail.com>
Add ability to change an image name in the vfs code by decoupling vfs
from a so-called board code.
Introduce platforms as a hardware and os abstraction layer for product
code.
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
`CrashCatcher_armv7m.S` wasn't properly linked to
`CrashCatcher::CrashCatcher`, which cause that HFs on rt1051
wasn't caught via GDB.
Added `CrashCatcherARM` library that solves
above issue.
Introducing changes required for adding BellHybird target without
removing PurePhone.
Adden new targets:
* Pure (builds PurePhone and PurePhone.img)
* Bell (builds BellHybird and BellHybird.img)
* [PurePhone|BellHybrid]-[UpdatePackage|StandaloneImage)
Changed submodule directory and changed way its linked,
in order to use target_link_libraries checkouted phmap
dependency to the newest revision which includes small
cmake fixes (see 031d214f2ce1973933abdf2a998d986ff8094d8e),
updated paths in PureCoverage script and Doxyfile