-
Notifications
You must be signed in to change notification settings - Fork 21
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
Replace RTX5 with FreeRTOS (or other)? #34
Comments
I have previously done some work with an older version of this SDK to port it to FreeRTOS and its doable. I would suggest we get all features working (i.e. ANC) before porting so we know it wasnt the port that broke it. |
You think FreeRTOS is where we want to go?
Older version?
What binary blobs are here? I didn't know this firmware needs binary blobs to work.
Of course it is.
Agree :) |
I dont like Amazon; but also not that many other options realistically.
I have been poking the bes2300 for a while for Pine.
There are 24 binary blobs:
|
I just want to suggest Zephyr as another alternative for RTX5. It is maintained by the Linux Foundation and actively used in the Sound Open Firmware. For what I experienced (while maybe being more complex initially) it provides more concepts than FreeRTOS (that are better fitted to the use case) and thus may be faster/more efficient. It is configurable with KConfig (the same system that Linux uses) and thus small in size (given an adaped config). It also seems to run on an ARM M4F core already. Edit: See here for the kernel API and the overall documentation. |
Thank you for the suggestion. My priority right now is to convert to CMake and implement REUSE for the repository. The plan I have for long-term code is to use Rust. Rust has good ARM support, and would greatly simplify the code we have already. We can also drop a lot of unused code from the SDK. I am planning to put out a 'call to developers' for PRs to the CMake and REUSE branch, so we can process these quicker, and get more done. There's a lot to go through, but we will get there soon. cc: @Ralim. |
Thank you for the feedback!
Zephyr ist built with the West tool, a meta build system that also uses CMake internally. West cares about getting the toolchain right, etc.., so it should be possible to combine both.
Rust is built around Cargo exclusively. Is this combinable with CMake somehow? I only now of Meson as build system with additional Rust support (while external crates aren't supported). For Rust, also the compiler is a big question. Rustc uses LLVM as a backend, so to keep it simple, the RTOS needs to be compatible with LLVM, too. Zephyr is compilable with LLVM on X86, however, there seems to be problems on ARM. Here is the tracking issue. However, the project wants support and probably parts of ARM are working already. I also found zephyr-rust as a project to built Rust applications on top of Zephyr. |
Apologies for the late reply, I took a break from GitHub over the weekend.
OK, that's good to know.
Yes, it is, and it's working pretty well so far. I'm using Corrosion and cxxbridge. I'm getting slowly there with CMake, but I have a lot to get through. It will be worth it in the end.
If, we did use Zephyr, then yes, this is worth keeping in mind. However, we're a long way off, and there's more to be done before we can even consider a different RTOS. I will star There is also an issue we have at the moment where, dependent on the compiler+linker, the bootloader of the earbuds, and by extension, the PineSound, fails to boot the firmware. We're not sure as to the cause of this yet. |
No need for that, you don't owe me any time :).
Hmm, looks promising. Thanks for the info.
Sure, thanks for the answer. Choose the RTOS that is best suited. |
Sorry, it's a bad habit of mine. Good to know you understand; often I get burned out on open source.
The CMake conversion is the first step. We could transpile, but I suspect a lot is unavoidable to rewrite.
Indeed. Zephyr certainly looks interesting. |
This firmware is based on this SDK. SDK creators have decided to use RTX5 and I'm not sure is it good choice? We probably don't have the resources to immediately change this, but I think it would be good to discuss, what we would like to use in the future? If we decide that FreeRTOS (or other) is better than RTX5, then let's make that a goal and try to move to it at some point.
The text was updated successfully, but these errors were encountered: