-
Notifications
You must be signed in to change notification settings - Fork 0
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
Hardware agnostic kernel #69
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…ons of current borrow checker (borrowing fields of self), what's cool is that is _did_ compile with -Zpolonius.
- Removing the System concept completly is not feasible - Instead of a Struct, System is now a trait - Added back agnostic display manager - Added back some states - Added back the application_manager, however it is currently crippled - need to rethink the impl for FFI
- add back uop & notification state
… pointers to all structs, which in turn cast to their concrete types on the kernel implementation side
- add back info state, will less info for now - Add all the states back to display_manager
Instead of passing the display across the threshold, there is a new Display trait which exposes FrameBuffer a FFI safe representation of the frame buffer - This is easier to send over FFI, no longer a Table entry is needed. - Safer, casting from *mut () didn't feel right - Harder to encaptulate display details, i.e pixel format- but we could suppliment FrameBuffer with this information. A big refactor and deps update may be required soon. I had to jump through some hoops for implementing the display wrapper. But it works for now.
- Add rtt logging interface - Implement Display trait for the ssd1351 (kinda hacky, have to switch between eg crates) - Add FB mut method to ssd1351 (need to bump or patch release for this) - Removed Event from ingress_manager, back to passing System in
- Update `SetupFn` to take a pointer to the Table - Fixed bug where apps would try and access unitialized memory instead of Context/Table - Add commented code for preloading an app
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Moves the non specific hardware code into an agnostic crate -
mwatch_kernel
. The original implementation has now been moved tomwatch-kernel-stm32l4
. Many things were pretty easy to port, but one big change has been to use a trait forSystem
instead of a concrete struct.TODO
Handle the unwraps on the new ingress event system