From 133f4f069e30f27ed2455e65fafcd696cf44dcad Mon Sep 17 00:00:00 2001 From: Thomas Niederberger Date: Sun, 3 Mar 2019 15:30:59 +0100 Subject: [PATCH] Small text changes --- src/intro/hardware.md | 6 +++--- src/intro/index.md | 10 +++++----- src/intro/no-std.md | 2 +- src/intro/tooling.md | 12 ++++++------ src/start/qemu.md | 6 +++--- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/src/intro/hardware.md b/src/intro/hardware.md index ef45a901..b458aa19 100644 --- a/src/intro/hardware.md +++ b/src/intro/hardware.md @@ -18,7 +18,7 @@ What does this board contain? - 48 KiB of RAM. - - Many integrated peripherals such as timers, I2C, SPI and USART. + - A variety of integrated peripherals such as timers, I2C, SPI and USART. - General purpose Input Output (GPIO) and other types of pins accessible through the two rows of headers along side the board. @@ -34,6 +34,6 @@ What does this board contain? - A second microcontroller: a [STM32F103](https://www.st.com/en/microcontrollers/stm32f103cb.html). This microcontroller is actually part of an on-board programmer / debugger and is connected to the USB port named "USB ST-LINK". -For a more detailed features list and further specification of the board take a look at [STMicroelectronics](https://www.st.com/en/evaluation-tools/stm32f3discovery.html) website. +For a more detailed list of features and further specifications of the board take a look at the [STMicroelectronics](https://www.st.com/en/evaluation-tools/stm32f3discovery.html) website. -A word of warning: be careful if you want to apply external signals to the board. The microcontroller STM32F303VCT6 pins take a nominal voltage of 3.3 volts. For further information consult the [6.2 Absolute maximum ratings section in the manual](https://www.st.com/resource/en/datasheet/stm32f303vc.pdf) +A word of caution: be careful if you want to apply external signals to the board. The microcontroller STM32F303VCT6 pins take a nominal voltage of 3.3 volts. For further information consult the [6.2 Absolute maximum ratings section in the manual](https://www.st.com/resource/en/datasheet/stm32f303vc.pdf) diff --git a/src/intro/index.md b/src/intro/index.md index e412c43c..88fa40ec 100644 --- a/src/intro/index.md +++ b/src/intro/index.md @@ -4,7 +4,7 @@ Welcome to The Embedded Rust Book: An introductory book about using the Rust Programming Language on "Bare Metal" embedded systems, such as Microcontrollers. ## Who Embedded Rust is For -Embedded Rust is for everyone who wants to do embedded programming backed by the higher-level concepts and safety guarantees the Rust language provides. +Embedded Rust is for everyone who wants to do embedded programming while taking advantage of the higher-level concepts and safety guarantees the Rust language provides. (See also [Who Rust Is For](https://doc.rust-lang.org/book/2018-edition/ch00-00-introduction.html)) ## Scope @@ -23,16 +23,16 @@ The goals of this book are: This book tries to be as general as possible but to make things easier for both the readers and the writers it uses the ARM Cortex-M architecture in all its -examples. However, the book assumes that the reader is not familiar with this +examples. However, the book doesn't assume that the reader is familiar with this particular architecture and explains details particular to this architecture where required. ## Who This Book is For -This book caters towards people with either some embedded background or some Rust background, however we assume +This book caters towards people with either some embedded background or some Rust background, however we believe everybody curious about embedded Rust programming can get something out of this book. For those without any prior knowledge we suggest you read the "Assumptions and Prerequisites" section and catch up on missing knowledge to get more out of the book and improve your reading experience. You can check out the "Other Resources" section to find resources on topics -you want to catch up on. +you might want to catch up on. ### Assumptions and Prerequisites @@ -72,7 +72,7 @@ not dig into details on a topic, revisiting the topic in a later chapter. This book will be using the [STM32F3DISCOVERY] development board from STMicroelectronics for the majority of the examples contained within. This board is based on the ARM Cortex-M architecture, and while basic functionality is -common across most CPUs based on this architecture, peripherals and other +the same across most CPUs based on this architecture, peripherals and other implementation details of Microcontrollers are different between different vendors, and often even different between Microcontroller families from the same vendor. diff --git a/src/intro/no-std.md b/src/intro/no-std.md index 4c141173..0c77155b 100644 --- a/src/intro/no-std.md +++ b/src/intro/no-std.md @@ -11,7 +11,7 @@ There are two general Embedded Programming classifications: ## Hosted Environments These kinds of environments are close to a normal PC environment. -What this means is you are provided with a System Interface [E.G. POSIX](https://en.wikipedia.org/wiki/POSIX) +What this means is that you are provided with a System Interface [E.G. POSIX](https://en.wikipedia.org/wiki/POSIX) that provides you with primitives to interact with various systems, such as file systems, networking, memory management, threads, etc. Standard libraries in turn usually depend on these primitives to implement their functionality. You may also have some sort of sysroot and restrictions on RAM/ROM-usage, and perhaps some diff --git a/src/intro/tooling.md b/src/intro/tooling.md index 9992cf6c..88adc2d1 100644 --- a/src/intro/tooling.md +++ b/src/intro/tooling.md @@ -24,11 +24,11 @@ can be found on the next page. ## `cargo-generate` OR `git` Bare metal programs are non-standard (`no_std`) Rust programs that require some -fiddling with the linking process to get the memory layout of the program -right. All this requires unusual files (like linker scripts) and unusual -settings (like linker flags). We have packaged all that for you in a template -so that you only need to fill in the blanks such as the project name and the -characteristics of your target hardware. +adjustments to the linking process in order to get the memory layout of the program +right. This requires some additional files (like linker scripts) and +settings (like linker flags). We have packaged those for you in a template +such that you only need to fill in the missing information (such as the project name and the +characteristics of your target hardware). Our template is compatible with `cargo-generate`: a Cargo subcommand for creating new Cargo projects from templates. You can also download the @@ -57,7 +57,7 @@ can follow some parts of this book even if you don't have any hardware with you! A debugger is a very important component of embedded development as you may not always have the luxury to log stuff to the host console. In some cases, you may -not have LEDs to blink on your hardware! +not even have LEDs to blink on your hardware! In general, LLDB works as well as GDB when it comes to debugging but we haven't found an LLDB counterpart to GDB's `load` command, which uploads the program to diff --git a/src/start/qemu.md b/src/start/qemu.md index 040d1226..e68a19fe 100644 --- a/src/start/qemu.md +++ b/src/start/qemu.md @@ -7,9 +7,9 @@ the tooling and the development process. [LM3S6965]: http://www.ti.com/product/LM3S6965 -## A non standard Rust program +## Creating a non standard Rust program -We'll use the [`cortex-m-quickstart`] project template so go generate a new +We'll use the [`cortex-m-quickstart`] project template to generate a new project from it. [`cortex-m-quickstart`]: https://github.com/rust-embedded/cortex-m-quickstart @@ -73,7 +73,7 @@ $ mv cortex-m-quickstart-master app $ cd app ``` -OR you can browse to [`cortex-m-quickstart`], click the green "Clone or +Or you can browse to [`cortex-m-quickstart`], click the green "Clone or download" button and then click "Download ZIP". Then fill in the placeholders in the `Cargo.toml` file as done in the second