Add RISC-V learning info
This commit is contained in:
		
							parent
							
								
									63f8cfb22a
								
							
						
					
					
						commit
						0b611f05f2
					
				
					 1 changed files with 9 additions and 5 deletions
				
			
		|  | @ -6,7 +6,7 @@ Again, right now we're a heavy work-in-progress. But eventually this will be use | ||||||
| ## Contributor Agreements | ## Contributor Agreements | ||||||
| By submitting resources to this project (code, art, writing, etc.), you must agree to the following terms: | By submitting resources to this project (code, art, writing, etc.), you must agree to the following terms: | ||||||
| 1. Resources will be licensed under the [CNPLv7+](https://thufie.lain.haus/NPL.html) license | 1. Resources will be licensed under the [CNPLv7+](https://thufie.lain.haus/NPL.html) license | ||||||
| 2. You *must* follow the [Code of Conduct](conduct.md) | 2. You *must* follow the [Code of Conduct](code-of-conduct.md) | ||||||
| 3. You should follow the [Design Goals](/development/design/index.md) and [Best Practices](#best-practices) when possible | 3. You should follow the [Design Goals](/development/design/index.md) and [Best Practices](#best-practices) when possible | ||||||
| 
 | 
 | ||||||
| Otherwise, feel free to start contributing! | Otherwise, feel free to start contributing! | ||||||
|  | @ -21,11 +21,8 @@ Feel free to [contact](https://mercury.the-system.eu.org/contribute/) a maintain | ||||||
| - `unsafe` code should be avoided when possible. | - `unsafe` code should be avoided when possible. | ||||||
| - Everything should be documented as it is written. | - Everything should be documented as it is written. | ||||||
| - Nesting should be avoided as much as possible. | - Nesting should be avoided as much as possible. | ||||||
| - `cargo fmt` must be used before each commit. |  | ||||||
| - If something can be excluded from the main `kernel`, it should be. It's a `microkernel`! | - If something can be excluded from the main `kernel`, it should be. It's a `microkernel`! | ||||||
| - While binary size should be kept down and optimized, it should not be done at the cost of performance. |  | ||||||
| - Features should be *opt-in* rather than *opt-out*. | - Features should be *opt-in* rather than *opt-out*. | ||||||
| - Releases should ideally contain no compiler or `clippy` warnings. |  | ||||||
| 
 | 
 | ||||||
| ## Source Code | ## Source Code | ||||||
| All of the source code for **Mercury** is on a self-hosted [Gitea](https://git.lavender.software/mercury), courtesy of [Lavender Software](https://lavender.software). | All of the source code for **Mercury** is on a self-hosted [Gitea](https://git.lavender.software/mercury), courtesy of [Lavender Software](https://lavender.software). | ||||||
|  | @ -37,10 +34,17 @@ The source for this site, and our [website](https://mercury.the-system.eu.org) i | ||||||
| All `crates`/`libraries` are in a `no-std` environment. This means we only have access to the [libcore](https://doc.rust-lang.org/core/) functionality. | All `crates`/`libraries` are in a `no-std` environment. This means we only have access to the [libcore](https://doc.rust-lang.org/core/) functionality. | ||||||
| However, we will be using the `alloc` crate to access the heap, and`collections` to have access to data structures like `Vec`. | However, we will be using the `alloc` crate to access the heap, and`collections` to have access to data structures like `Vec`. | ||||||
| 
 | 
 | ||||||
|  | We should, however, have basic support for [async](https://ferrous-systems.com/blog/stable-async-on-embedded/). | ||||||
|  | 
 | ||||||
| ## Learning | ## Learning | ||||||
| Before jumping in, I highly recommend learning some stuff abotu **Rust** and embedded developmend with it. | Before jumping in, I highly recommend learning some stuff abotu **Rust** and embedded development with it. | ||||||
| A thorough series of steps might be: | A thorough series of steps might be: | ||||||
| 1. Read through the [Rust Book](https://doc.rust-lang.org/book/) | 1. Read through the [Rust Book](https://doc.rust-lang.org/book/) | ||||||
| 2. Work through the [Interactive Rust Book](https://rust-book.cs.brown.edu/) | 2. Work through the [Interactive Rust Book](https://rust-book.cs.brown.edu/) | ||||||
| 3. Complete the [rustlings](https://github.com/rust-lang/rustlings) exercises | 3. Complete the [rustlings](https://github.com/rust-lang/rustlings) exercises | ||||||
| 4. Take a quick look through the [Embedded Rust Book](https://docs.rust-embedded.org/book/intro/index.html) | 4. Take a quick look through the [Embedded Rust Book](https://docs.rust-embedded.org/book/intro/index.html) | ||||||
|  | 5. Read the [RISC-V Guide](https://github.com/mikeroyal/RISC-V-Guide)/[RISC-V Bytes](https://danielmangum.com/categories/risc-v-bytes/) to learn more about the **RISC-V** architecture | ||||||
|  | 
 | ||||||
|  | Additionally you might want to learn about **Vulkan** if you're going to be hacking on the [GUI](/development/design/gui.md): | ||||||
|  | 1. Go through the [Vulkan Tutorial (Rust)](https://kylemayes.github.io/vulkanalia/introduction.html) to learn some of the basics | ||||||
|  | 2. Read through the [Vulkano](https://vulkano.rs/about.html) docs. *(**Vulkano** is a safe wrapper around the **Vulkan API**. It's likely what we will be using)* | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue