Skip to content

Commit c3a51e2

Browse files
bors[bot]robyoung
andauthored
Merge #299
299: Make glossary more linkable and add more detail r=eldruin a=robyoung While writing a blog post I found that I wanted to be able to link to a common definition of certain terms but I was not able to find one. This change makes the glossary up from sub-headings so that each item can be linked to directly. I have also filled out some more detail on the areas I'm particularly interested in (BSP, HAL and PAC). Things I'm not sure about: - I am very new to embedded development so please review what I've written carefully, it may not be correct. - I'm not sure how much detail to put here as there seems to be a bit of overlap with the [registers page](https://docs.rust-embedded.org/book/start/registers.html). I've gone with more detail here because I would like to link to these definitions from outside this book. Co-authored-by: Rob Young <rob@robyoung.digital> Co-authored-by: Rob Young <bubblenut@gmail.com>
2 parents 4f9fcaa + 5a1cc85 commit c3a51e2

File tree

1 file changed

+58
-10
lines changed

1 file changed

+58
-10
lines changed

src/appendix/glossary.md

Lines changed: 58 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,61 @@ The embedded ecosystem is full of different protocols, hardware components and
44
vendor-specific things that use their own terms and abbreviations. This Glossary
55
attempts to list them with pointers for understanding them better.
66

7-
Term | Meaning
8-
-------------|--------
9-
I2C | Sometimes referred to as `I² C` or Inter-IC. It is a protocol meant for hardware communication within a single integrated circuit. See [i2c.info] for more details
10-
SPI | Serial Peripheral Interface
11-
USART | Universal synchronous and asynchronous receiver-transmitter
12-
UART | Universal asynchronous receiver-transmitter
13-
FPU | Floating-point Unit. A 'math processor' running only operations on floating-point numbers
14-
PAC | Peripheral Access Crate
15-
16-
[i2c.info]: https://i2c.info/
7+
### BSP
8+
9+
A Board Support Crate provides a high level interface configured for a specific
10+
board. It usually depends on a [HAL](#hal) crate.
11+
There is a more detailed description on the [memory-mapped registers page](../start/registers.md)
12+
or for a broader overview see [this video](https://youtu.be/vLYit_HHPaY).
13+
14+
### FPU
15+
16+
Floating-point Unit. A 'math processor' running only operations on floating-point numbers.
17+
18+
### HAL
19+
20+
A Hardware Abstraction Layer crate provides a developer friendly interface to a microcontroller's
21+
features and peripherals. It is usually implemented on top of a [Peripheral Access Crate (PAC)](#pac).
22+
It may also implement traits from the [`embedded-hal`](https://crates.io/crates/embedded-hal) crate.
23+
There is a more detailed description on the [memory-mapped registers page](../start/registers.md)
24+
or for a broader overview see [this video](https://youtu.be/vLYit_HHPaY).
25+
26+
### I2C
27+
28+
Sometimes referred to as `I²C` or Inter-IC. It is a protocol meant for hardware communication
29+
within a single integrated circuit. See [here][i2c] for more details
30+
31+
[i2c]: https://en.wikipedia.org/wiki/I2c
32+
33+
### PAC
34+
35+
A Peripheral Access Crate provides access to a microcontroller's peripherals. It is one of
36+
the lower level crates and is usually generated directly from the provided [SVD](#svd), often
37+
using [svd2rust](https://github.com/rust-embedded/svd2rust/). The [Hardware Abstraction Layer](#hal)
38+
would usually depend on this crate.
39+
There is a more detailed description on the [memory-mapped registers page](../start/registers.md)
40+
or for a broader overview see [this video](https://youtu.be/vLYit_HHPaY).
41+
42+
### SPI
43+
44+
Serial Peripheral Interface. See [here][spi] for more information.
45+
46+
[spi]: https://en.wikipedia.org/wiki/Serial_peripheral_interface
47+
48+
### SVD
49+
50+
System View Description is an XML file format used to describe the programmers view of a
51+
microcontroller device. You can read more about it on
52+
[the ARM CMSIS documentation site](https://www.keil.com/pack/doc/CMSIS/SVD/html/index.html).
53+
54+
### UART
55+
56+
Universal asynchronous receiver-transmitter. See [here][uart] for more information.
57+
58+
[uart]: https://en.wikipedia.org/wiki/Universal_asynchronous_receiver-transmitter
59+
60+
### USART
61+
62+
Universal synchronous and asynchronous receiver-transmitter. See [here][usart] for more information.
63+
64+
[usart]: https://en.wikipedia.org/wiki/Universal_synchronous_and_asynchronous_receiver-transmitter

0 commit comments

Comments
 (0)