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

Add Rust log support via serial console #1

Closed
kevinaboos opened this issue Apr 11, 2017 · 1 comment
Closed

Add Rust log support via serial console #1

kevinaboos opened this issue Apr 11, 2017 · 1 comment

Comments

@kevinaboos
Copy link
Member

Originally reported by: Kevin Boos (Bitbucket: kevinaboos, GitHub: kevinaboos)


https://doc.rust-lang.org/log/log/index.html#use-with-no_std

Rust's log crate supports no_std, we should utilize it and use set_raw_logger() to write to serial port.


@kevinaboos
Copy link
Member Author

Original comment by Kevin Boos (Bitbucket: kevinaboos, GitHub: kevinaboos):


Added rust log functionality, closes #1

kevinaboos added a commit that referenced this issue Jul 27, 2017
kevinaboos added a commit that referenced this issue Sep 1, 2020
Earlier commits from March 2017 - Mary 2017 include:

* updated README
* licensing
* fixed kthread arg passing by using stack bottom, not top (LIKE AN IDIOT!).
* kthreads with args/retval wrapping are working but i can't figure out how to actually call them once reconstructed from the stack!
* threading is working! dunno how to return from a thread yet though, haha.
* DOES NOT RUN. context seitching  still in progress
* DOES NOT BUILD.  still working on context switching code
* added initial context switching framework. DOES NOT WORK yet
* Added rust log functionality, closes #1
* large reorganization of source
* fix keyboard issues, basic kbd is working now. fixed stupid error in keycodes_ascii crate
* keyboard works now with unsafe VecDeque as a queue, but there's no real issue with it using unsafe static mut
* DOES NOT BUILD. In-progress commit. In the kbd interrupt handler, we cannot use Mutex (will cause deadlock), which means we can't use lazy_static. Tried to use Once<>, but it's not working with RefCells that would allow mutability. Need to find an alternate solution.
* keyboard still causing deadlock somewhere. might be the fact that the KBD_QUEUE mutex is being locked by both the kbd interrupt handler and by the rust_main
* keyboard works on the interrupt side, but my main loop that reads from the KBD_QUEUE in our main function causes the system to lockup...
* keyboard driver compiles but untested at runtime
* keyboard library compiles, but may not work yet. Still need to remove other dependencies on std library, like the queue crate
* added initial keyboard indirection layer and keyboard scancode to ascii library, which will be its own separate crate.
* fixed interrupt table indexing issue
* interrupts work but keyboard handler isn't finished yet, so it can only be triggered once
* added basic serial I/O support for debugging to QEMU console
kevinaboos added a commit that referenced this issue Sep 1, 2020
Earlier commits from March 2017 - Mary 2017 include:

* updated README
* licensing
* fixed kthread arg passing by using stack bottom, not top (LIKE AN IDIOT!).
* kthreads with args/retval wrapping are working but i can't figure out how to actually call them once reconstructed from the stack!
* threading is working! dunno how to return from a thread yet though, haha.
* DOES NOT RUN. context seitching  still in progress
* DOES NOT BUILD.  still working on context switching code
* added initial context switching framework. DOES NOT WORK yet
* Added rust log functionality, closes #1
* large reorganization of source
* fix keyboard issues, basic kbd is working now. fixed stupid error in keycodes_ascii crate
* keyboard works now with unsafe VecDeque as a queue, but there's no real issue with it using unsafe static mut
* DOES NOT BUILD. In-progress commit. In the kbd interrupt handler, we cannot use Mutex (will cause deadlock), which means we can't use lazy_static. Tried to use Once<>, but it's not working with RefCells that would allow mutability. Need to find an alternate solution.
* keyboard still causing deadlock somewhere. might be the fact that the KBD_QUEUE mutex is being locked by both the kbd interrupt handler and by the rust_main
* keyboard works on the interrupt side, but my main loop that reads from the KBD_QUEUE in our main function causes the system to lockup...
* keyboard driver compiles but untested at runtime
* keyboard library compiles, but may not work yet. Still need to remove other dependencies on std library, like the queue crate
* added initial keyboard indirection layer and keyboard scancode to ascii library, which will be its own separate crate.
* fixed interrupt table indexing issue
* interrupts work but keyboard handler isn't finished yet, so it can only be triggered once
* added basic serial I/O support for debugging to QEMU console
kevinaboos added a commit that referenced this issue Sep 1, 2020
Earlier commits from March 2017 - Mary 2017 include:

* updated README
* licensing
* fixed kthread arg passing by using stack bottom, not top (LIKE AN IDIOT!).
* kthreads with args/retval wrapping are working but i can't figure out how to actually call them once reconstructed from the stack!
* threading is working! dunno how to return from a thread yet though, haha.
* DOES NOT RUN. context seitching  still in progress
* DOES NOT BUILD.  still working on context switching code
* added initial context switching framework. DOES NOT WORK yet
* Added rust log functionality, closes #1
* large reorganization of source
* fix keyboard issues, basic kbd is working now. fixed stupid error in keycodes_ascii crate
* keyboard works now with unsafe VecDeque as a queue, but there's no real issue with it using unsafe static mut
* DOES NOT BUILD. In-progress commit. In the kbd interrupt handler, we cannot use Mutex (will cause deadlock), which means we can't use lazy_static. Tried to use Once<>, but it's not working with RefCells that would allow mutability. Need to find an alternate solution.
* keyboard still causing deadlock somewhere. might be the fact that the KBD_QUEUE mutex is being locked by both the kbd interrupt handler and by the rust_main
* keyboard works on the interrupt side, but my main loop that reads from the KBD_QUEUE in our main function causes the system to lockup...
* keyboard driver compiles but untested at runtime
* keyboard library compiles, but may not work yet. Still need to remove other dependencies on std library, like the queue crate
* added initial keyboard indirection layer and keyboard scancode to ascii library, which will be its own separate crate.
* fixed interrupt table indexing issue
* interrupts work but keyboard handler isn't finished yet, so it can only be triggered once
* added basic serial I/O support for debugging to QEMU console
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant