Andrew Walbran
01f5ecf1e6
Run dependabot on bare-metal examples and exercises too. ( #1712 )
...
These can't be in the main workspace due to needing custom cargo config
for linker scripts and targets.
2024-01-18 10:21:46 +00:00
Andrew Walbran
864bb942c0
Clarify distinction between Drop trait and drop function. ( #1255 )
...
This clears up some misleading explanation from #246 .
2023-09-26 11:59:16 +01:00
Andrew Walbran
bc972711a2
Clarify distinction between interior mutability and mutable statics. ( #1019 )
2023-07-26 13:22:42 +02:00
Andrew Walbran
0202ba2fc9
Make User pub to avoid unused code warnings when running tests ( #822 )
2023-06-21 15:08:37 +01:00
Andrew Walbran
c1ad97c659
Fix example to build and run ( #838 )
2023-06-21 09:48:05 +01:00
Andrew Walbran
54fd2578d3
Add pages about entry point and exception handling on APs ( #802 )
...
* Add page about entry point before Rust code.
* Convert tabs to spaces.
mdbook doesn't seem to handle tabs in code properly.
* Add page about handling exceptions.
* More nuanced discussion of Rust Raspberry Pi OS tutorial.
* Add note about EL1 to entry point page too.
2023-06-14 18:27:07 +00:00
Andrew Walbran
5a495a508e
Update Cargo.lock. ( #614 )
...
This was missed in #583 .
2023-05-05 11:25:45 +01:00
Andrew Walbran
9cff14ca31
Link arm-gic to main documentation page rather than crate page ( #610 )
2023-05-04 14:42:08 +00:00
Andrew Walbran
226aa21f3c
Use hyphen rather than underscore for gic-version ( #611 )
...
Older versions of QEMU seem to only accept a hyphen, while new versions accept either.
2023-05-04 15:41:15 +01:00
Andrew Walbran
93c1c814c3
Improve phrasing of comment ( #609 )
...
Some people interpreted the previous comment as meaning the RTC itself needed to be initialised or started somehow, but this is not the case.
2023-05-04 15:08:44 +01:00
Andrew Walbran
9d4a34c501
Use smccc crate rather than psci in examples and exercise. ( #583 )
...
It was renamed.
2023-04-27 10:54:48 +01:00
Andrew Walbran
4266078684
Add pkg-config to list of packages ( #575 )
...
pkg-config is also required for the cargo install to work.
2023-04-21 20:29:18 +02:00
Andrew Walbran
c5863f6642
Add optional extension to RTC exercise ( #562 )
...
* Add methods to mask and clear interrupts.
* Start on GICv3 driver.
* Enable and use RTC interrupt.
* WFI
* Add newtype for interrupt ID.
* Add extension to use interrupt.
* Add method to send an SGI.
* Silence warnings about unused methods in provided drivers.
* Implement Debug manually for IntId.
It's useful to say what kind of interrupt it is.
* Acknowledge and log interrupt.
We should end it as well, but doing so results in a loop unless we first
clear the match.
* cargo fmt with imports_granularity = "module"
* Use arm-gic crate rather than including driver in the example.
2023-04-17 15:38:51 +01:00
Andrew Walbran
87f1976589
cargo fmt with imports_granularity = "module" ( #564 )
2023-04-16 20:57:59 +02:00
Andrew Walbran
d8e442b9cb
Extend bare metal afternoon exercise ( #561 )
...
* Add methods to set match register and check whether it matches.
* Add first extension to RTC exercise, using match register.
* No need for constants to be public.
2023-04-13 10:58:06 +01:00
Andrew Walbran
bf18b33e39
Use exerciser for day 4 exercises too.
2023-04-11 10:47:18 +01:00
Andrew Walbran
86d8c4ae54
Rename exercise template directory and archive.
2023-04-05 16:28:07 +01:00
Andrew Walbran
ed4f5b64c4
Zip exercise templates for translation build artifacts.
2023-04-05 16:28:07 +01:00
Andrew Walbran
6b7c7cbc73
Fix publishing translations.
2023-04-05 16:28:07 +01:00
Andrew Walbran
6cba1ef2bb
rustfmt with imports_granularity = "module".
2023-04-05 16:28:07 +01:00
Andrew Walbran
b6f5ba1af0
Run exerciser as mdbook renderer.
2023-04-05 16:28:07 +01:00
Andrew Walbran
e204b5060f
Rename directory to match crate name.
2023-04-05 16:28:07 +01:00
Andrew Walbran
3e224e6f55
No need to handle #include directives ourselves anymore.
...
The mdbook links preprocessor will process them before we get called.
2023-04-05 16:28:07 +01:00
Andrew Walbran
edd9df042c
Make exerciser an mdbook renderer.
2023-04-05 16:28:07 +01:00
Andrew Walbran
b24b5b02f3
Include input filename in error message.
2023-04-05 16:28:07 +01:00
Andrew Walbran
6bac3aad01
Split out library.
2023-04-05 16:28:07 +01:00
Andrew Walbran
5f5cf9dc7f
Add a comment explaining the state machine.
2023-04-05 16:28:07 +01:00
Andrew Walbran
04c36de355
Add README for exerciser.
2023-04-05 16:28:07 +01:00
Andrew Walbran
9375126b3c
Use comment rather than inline code to find filename.
2023-04-05 16:28:07 +01:00
Andrew Walbran
9f91699be6
Ensure that book directory exists.
2023-04-05 16:28:07 +01:00
Andrew Walbran
06badccb19
Remove output before building exercises.
2023-04-05 16:28:07 +01:00
Andrew Walbran
3f7cc60686
Make zip part as part of script.
...
This makes running local builds easier.
2023-04-05 16:28:07 +01:00
Andrew Walbran
c17e8abbd7
Add links to exercise template archive.
2023-04-05 16:28:07 +01:00
Andrew Walbran
d0ef072cf2
Publish exercise templates to Pages.
2023-04-05 16:28:07 +01:00
Andrew Walbran
adabd342ff
Add Rustdoc comments for functions.
2023-04-05 16:28:07 +01:00
Andrew Walbran
9372d14378
Build exercise templates in CI.
2023-04-05 16:28:07 +01:00
Andrew Walbran
97d3c9c17d
Add script to run exerciser on bare metal exercises.
2023-04-05 16:28:07 +01:00
Andrew Walbran
89c8eb0ef2
Add utility to build exercise starting directory from Markdown.
2023-04-05 16:28:07 +01:00
Andrew Walbran
b85c893390
Explain entry point and entry.S.
2023-04-05 15:13:10 +01:00
Andrew Walbran
2e94a80d9d
Discuss use of unsafe functions and safe wrappers.
2023-04-05 15:13:10 +01:00
Andrew Walbran
5068b1288d
Add notes about running examples.
2023-04-05 15:13:10 +01:00
Andrew Walbran
8c56c949ef
Fix GCC package name.
2023-03-27 17:20:31 +01:00
Andrew Walbran
4427241ca7
cargo-binutils requires llvm-tools-preview
2023-03-27 17:20:31 +01:00
Andrew Walbran
aa1036af66
Add more hints for bare metal morning exercise.
2023-03-27 17:20:31 +01:00
Andrew Walbran
956c137e51
Format hints as bullet-points.
2023-03-27 17:20:31 +01:00
Andrew Walbran
d513109b92
Add Mac OS instructions for picocom too.
2023-03-27 17:20:31 +01:00
Andrew Walbran
6f83b97e69
Fix Markdown formatting.
2023-03-27 17:20:31 +01:00
Andrew Walbran
357f62e137
A compass doesn't tell us the temperature.
2023-03-27 17:20:31 +01:00
Andrew Walbran
8ed300d620
Fix Linux build of bare metal AP code.
2023-03-27 17:20:31 +01:00
Andrew Walbran
ae83778173
Show actual driver code on solution page.
2023-03-27 17:20:31 +01:00
Andrew Walbran
9c166d4e97
Set publish = false in examples and exercises.
2023-03-23 15:12:23 +00:00
Andrew Walbran
f8dea1df2f
Use title case in SUMMARY.
2023-03-23 15:12:23 +00:00
Andrew Walbran
fa56c70dcb
Get AP examples working on Mac OS too.
2023-03-23 15:06:23 +00:00
Andrew Walbran
fc36e40eef
Make base address constants a pointer rather than a usize.
2023-03-23 15:06:23 +00:00
Andrew Walbran
782313e16e
Add commands to run examples to speaker notes.
2023-03-23 15:06:23 +00:00
Andrew Walbran
72ff50e60b
Build bare-metal examples in presubmit.
2023-03-23 15:06:23 +00:00
Andrew Walbran
b670098ab1
Update Cargo.lock, and no need for beta toolchain.
2023-03-23 15:06:23 +00:00
Andrew Walbran
b2ce958f2e
Add pages about Android and vmbase.
2023-03-23 15:06:23 +00:00
Andrew Walbran
8aef12bf1d
Add page about spin.
2023-03-23 15:06:23 +00:00
Andrew Walbran
f5b6e47f31
Put tinyvec example inline.
2023-03-23 15:06:23 +00:00
Andrew Walbran
fb3fd3979c
Add RTC exercise.
2023-03-23 15:06:23 +00:00
Andrew Walbran
8b21f5070e
Add page about inline assembly.
2023-03-23 15:06:23 +00:00
Andrew Walbran
f293ede958
Add page about tinyvec.
2023-03-23 15:06:23 +00:00
Andrew Walbran
8d1f903202
Add MacOS instructions.
2023-03-23 15:06:23 +00:00
Andrew Walbran
56319e016b
Add page about buddy_system_allocator.
2023-03-23 15:06:23 +00:00
Andrew Walbran
f0043637e2
Write page about aarch64-paging.
2023-03-23 15:06:23 +00:00
Andrew Walbran
dc95bd1dae
Write page about zerocopy.
2023-03-23 15:06:23 +00:00
Andrew Walbran
f3edffd1a7
Fix mdbook test failure.
2023-03-23 15:06:23 +00:00
Andrew Walbran
ada6a53942
Improve makefile.
2023-03-23 15:06:23 +00:00
Andrew Walbran
31c7b283c2
Add example implementing logger.
2023-03-23 15:06:23 +00:00
Andrew Walbran
15518aa177
Add separate binary for minimal UART driver.
2023-03-23 15:06:23 +00:00
Andrew Walbran
d6027f5080
Add notes about traits.
2023-03-23 15:06:23 +00:00
Andrew Walbran
bc21369dcb
Add example of using UART driver.
2023-03-23 15:06:23 +00:00
Andrew Walbran
1f315da903
Write a more complete UART driver.
2023-03-23 15:06:23 +00:00
Andrew Walbran
f6fc0edb11
We need qemu-system-arm too.
2023-03-23 15:06:23 +00:00
Andrew Walbran
790f4c88d5
Add note about QEMU UART.
2023-03-23 15:06:23 +00:00
Andrew Walbran
c7831953bb
QEMU virt machine uses PL011 UART not 16550.
2023-03-23 15:06:23 +00:00
Andrew Walbran
08c0c53412
Add section about Android bare-metal Rust support.
2023-03-23 15:06:23 +00:00
Andrew Walbran
7eee892195
Start on AP UART driver example.
2023-03-23 15:06:23 +00:00
Andrew Walbran
76ad4b2939
Add first AP slide and mention other projects.
2023-03-23 15:06:23 +00:00
Andrew Walbran
dee3e64442
Start writing about MMIO.
2023-03-23 15:06:23 +00:00
Andrew Walbran
3b02b09901
Fix line numbers in debugging example.
2023-03-20 14:44:43 +00:00
Andrew Walbran
6dd2a9f002
Mention why we need extern crate panic_halt.
2023-03-20 14:44:43 +00:00
Andrew Walbran
e31df488f3
Explain what the udev rule does.
2023-03-20 14:26:57 +00:00
Andrew Walbran
3afc10fbfd
cargo-embed needs libudev-dev.
2023-03-20 14:26:57 +00:00
Andrew Walbran
e2d7bc56ec
Add other files for compass exercise to exercise page.
2023-03-20 14:26:57 +00:00
Andrew Walbran
8513adfd3c
Add more hints for compass exercise.
2023-03-20 14:26:57 +00:00
Andrew Walbran
fe32d06862
Note where commands should be run.
2023-03-20 14:26:57 +00:00
Andrew Walbran
a070573867
Expand IMU acronym first time.
2023-03-20 14:26:57 +00:00
Andrew Walbran
52f0c9ef64
Rename Day 5A to Bare Metal Rust.
2023-03-20 14:26:57 +00:00
Andrew Walbran
ecbb7e41bb
Format imports with imports_granularity = "Module".
2023-03-20 14:26:57 +00:00
Andrew Walbran
94eafee6bb
Add more notes.
2023-03-20 14:26:57 +00:00
Andrew Walbran
f40261646c
Add option to display accelerometer rather than compass.
2023-03-20 14:26:57 +00:00
Andrew Walbran
8f2a851e95
Display accelerometer rather than compass.
2023-03-20 14:26:57 +00:00
Andrew Walbran
44a4b4b234
Display compass values on LEDs.
2023-03-20 14:26:57 +00:00
Andrew Walbran
82f4dab523
Get compass solution working and add more information.
2023-03-20 14:26:57 +00:00
Andrew Walbran
17bbf5f0b7
Explain how to run other examples too.
2023-03-20 14:26:57 +00:00
Andrew Walbran
53223d3581
Add page about debugging with cargo-embed.
2023-03-20 14:26:57 +00:00
Andrew Walbran
0c3664bef3
Add slide about probe-rs and cargo-embed.
2023-03-20 14:26:57 +00:00
Andrew Walbran
948c44b66d
Explain audience.
2023-03-20 14:26:57 +00:00