Andre Richter
a44d487d89
Update .travis.yml
6 years ago
Andre Richter
fb17d56991
Adapter Travis badge to moved repo
6 years ago
Andre Richter
2046da5eab
Add objdump target
6 years ago
Andre Richter
3f92aab6e7
Bump extern crates
...
cortex-a -> 2.2.1
panic-abort -> 0.3.1
6 years ago
Andre Richter
6d135ee441
Makefile: Don't delete kernel8
6 years ago
Andre Richter
37fe055082
Alignment. Binaries from newer Rust version.
6 years ago
Andre Richter
68de789d15
0D: Instruction caching and better benchmark function.
...
The previous benchmark function had a few flaws. First of all, it wasn't
idiomatic Rust, because we used a loop construct that you would expect in C.
Revamped that by using an iterator. Also, the previous benchmark got heavily
optimized by the compiler, which unrolled the inner loop it into a huge sequence
of consecutive loads and stores, resulting in lots of instructions that needed
to be fetched from DRAM. Additionally, instruction caching was not turned on.
The new code compiles into two tight loops, fully leveraging the power of the I
and D caches, and providing an great showcase.
6 years ago
Andre Richter
c65e2e56cd
Add tutorial 0D_cache_performance
6 years ago
Andre Richter
bf2a1fff7e
First part of tutorial: 0C_virtual_memory
6 years ago
Andre Richter
60db699637
Add macOS
6 years ago
Andre Richter
4b1bac7509
First part of tutorial: 0B_exception_levels
...
- Added code
- Missing: README
6 years ago
Andre Richter
08235093c1
Bump cortex-a to v2.0.1
6 years ago
Andre Richter
1ca70bcd56
Check-in kernel8
...
Useful for assembly inspection via objdump
6 years ago
Andre Richter
4364173386
New todo entry
6 years ago
Andre Richter
c156a32411
rust-fmt all
6 years ago
Andre Richter
633510262d
Fix wrong Stack address
...
Luckily, this error was non-manifest.
6 years ago
Andre Richter
8fcfc76e74
Add TODO list
6 years ago
Andre Richter
5ca70912fb
Remove unused cortex-a imports.
...
Why doesn't clippy catch this...?
6 years ago
Andre Richter
bc32b52f96
Add gitignore
6 years ago
Andre Richter
21e181c63a
Bump cortex-a to v1.1.0
6 years ago
Andre Richter
0ededdc791
Bump register to v0.2.0
6 years ago
Andre Richter
6ba72c8625
Travis; I always forget about travis...
6 years ago
Andre Richter
c19993934c
Use cargo-xbuild
...
Also, have a config where the individual projects can reuse the same
sysroot.
6 years ago
Andre Richter
8175639399
Correct linker issues
...
The new target is not automatically using PIC.
Need some linker script corrections for errors that were hiding
previously, so that we don't accidentally generate alignment
exceptions on bss size variables that cause the target to fail.
6 years ago
Andre Richter
0d75a8eaf3
Use aarch64-unknown-none target in nightly 🎉
...
We have a generic target for writing bare-metal code
for 64-bit ARM architectures in upstream Rust now.
Use it to get rid of the fully custom target spec.
\o/
6 years ago
Andre Richter
5a71b00422
Merge pull request #4 from wizofe/fix/typo
...
Typo: partition
6 years ago
Andre Richter
c5981b6ccd
Don't invoke clippy via xargo
...
Despite invoking clippy with xargo, it wasnt actually using the custom
target, so we don't need xargo here for now...
The target argument was missing anyways. Using it throws an error.
Needs some more investigation.
6 years ago
Ioannis Valasakis
89aacd85f3
Typo: partition
6 years ago
Andre Richter
969704d498
Use correct sequence of MMIO timer reads
...
As discussed in #2
6 years ago
Andre Richter
0bd363f375
Sync with the newest Embedonomicon
...
https://github.com/rust-embedded/embedonomicon
Closes #3
6 years ago
Andre Richter
1b8b78d0c8
Use precompiled clippy
6 years ago
Andre Richter
907f8dc75c
Remove pending C tutorials
...
Presence of these files caused github to show the project as a C
project.
6 years ago
Andre Richter
6266cd38c6
Install clippy from git.
...
Better chances of compiling on nightly.
6 years ago
Andre Richter
3693bd6e8b
typos
6 years ago
Andre Richter
369dffa457
Make it compile on newest nightly
6 years ago
Andre Richter
747e902761
Rewrite for register-rs.
...
We now have the same API for MMIO and CPU registers.
Makes the code more concise, inntuitive, and improves readability.
https://crates.io/crates/register
6 years ago
Andre Richter
ea39d2ae1f
Update travis for llvm-tools from Rust
6 years ago
Andre Richter
323a346b07
Use llvm objcopy from rust toolchain 🎉
...
Its the last missing util we needed to be a rust-toolchain-only project.
https://github.com/rust-lang/rust/pull/50336
https://github.com/japaric/cargo-binutils
6 years ago
Andre Richter
038c8ac55c
Add travis CI
6 years ago
Andre Richter
69d9890c4a
Update #[lang = "panic_fmt"] -> #[panic_implementation]
...
More info: https://users.rust-lang.org/t/psa-breaking-change-panic-fmt-language-item-removed-in-favor-of-panic-implementation/17875
6 years ago
Andre Richter
8a3f6f5f15
utils: Exit early on build failure
6 years ago
Andre Richter
99f4dc24b3
Change dockcross path to newest upstream release
6 years ago
Andre Richter
27a5f64156
Dockcross binaries path changed
6 years ago
Andre Richter
fd4c62f9e8
Fix strange dockcross path changes
...
There were some strange changes to the aarch64 dockross image lately.
Looks like unintentional path changes. I'll adapt for now, but
hopefully this gets reverted to a sane state soon.
Referenece:
https://github.com/dockcross/dockcross/pull/221#issuecomment-387188681
7 years ago
Andre Richter
1b2fc525ea
Add tutorial 0A_power
7 years ago
Andre Richter
e6f823a224
Add timer tutorial
...
- Also, upgrade to new `cortex-a` 0.1.3 implementation.
7 years ago
Andre Richter
b2ddb8600d
Update README.md
7 years ago
Andre Richter
a3fef3844d
Add deref comment to tutorial 3 as well
...
This is the first time reader will encounter it.
7 years ago
Andre Richter
395d82908f
Add some utility scripts
7 years ago
Andre Richter
0ce1cde72c
Add Deref trait in the spirit of cortex-m peripherals
...
Improves code readability; Reduces need for unsafe blocks on register
reads.
https://github.com/japaric/cortex-m/blob/master/src/peripheral/mod.rs
7 years ago