Skip to content
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

Feature Request: External "System Service" #3921

Closed
janwiesemann opened this issue Sep 27, 2024 · 1 comment
Closed

Feature Request: External "System Service" #3921

janwiesemann opened this issue Sep 27, 2024 · 1 comment
Labels
App Loader FAP loader + API-related Core+Services HAL, furi & core system services Feature Request New feature or user-story you wanna add to flipper

Comments

@janwiesemann
Copy link
Contributor

Description of the feature you're suggesting.

In the pats few months I've learned a lot about the Flipper firmware and even started to develop a few small applications. One thing I've had in mind was to develop some sort of Task Manager. This would include a graph with the CPU load over time. For this feature to work well, the application has to be loaded at system startup to constantly monitor the system usage. While doing some research, I came across the FlipperAppType.SERVICE.

As far as I understand it, scripts/fbt_tools/fbt_apps.py is generating the source file for applications/services/applications.h at compiletime and it can not be expanded at runtime/startup.

Enabling the expansion of such lists could enable a whole bunch of new and exiting features for third party app developers.

I'm not super familiar with all of the firmwares internals or the STM32WB55RG features, but since the RAM is quite limited, it could be a good idea to dynamically flash such apps onto the STM's internal flash. If the application is directly executed from the flash, it would remove the need of dynamically loading it into your precious RAM.

Anything else?

No response

@janwiesemann janwiesemann changed the title Feature Request: External "System Services" Feature Request: External "System Service" Sep 27, 2024
@hedger hedger added Feature Request New feature or user-story you wanna add to flipper Core+Services HAL, furi & core system services App Loader FAP loader + API-related labels Oct 1, 2024
@hedger
Copy link
Member

hedger commented Oct 1, 2024

Flipper app subsystem design and underlying APIs were created within a single foreground task paradigm. Background services must be carefully implemented with that in mind, and introducing user-created system threads might lead to hard-to-diagnose usability issues - resource leaks, heap management, conflicting access to peripherals, etc.

Flashing and managing of externally-supplied pieces of code is problematic on its own.

Overall, while there are valid reasons for that feature, its use-cases are severely limited on our current platform. You can look into hacky ways of creating background threads from a regular application by abusing the furi_record subsystem and manual app plugin loading, but that's something we do not officially support and you're on your own here.

@hedger hedger closed this as not planned Won't fix, can't repro, duplicate, stale Oct 1, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
App Loader FAP loader + API-related Core+Services HAL, furi & core system services Feature Request New feature or user-story you wanna add to flipper
Projects
None yet
Development

No branches or pull requests

2 participants