From a8a02d916210e2cb55152cab5b1af0e6a4ff58b3 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Fri, 14 Jul 2017 21:53:43 -0500 Subject: [PATCH] v0.2.1 --- CHANGELOG.md | 14 ++++++++++ Cargo.toml | 4 +-- src/examples/_5_device.rs | 55 ++++++++++++++++++++++++++++++++------- 3 files changed, 61 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc20855..2392beb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [v0.2.1] - 2017-07-14 + +### Added + +- Troubleshooting documentation: how to fix the error of overwriting the + `.cargo/config` file when you meant to append text to it. + +### Changed + +- Xargo.toml: Changed the source of the `compiler-builtins` crate from git to + the `rust-src` component. + +- Expanded the `device` example to do some I/O. + ## [v0.2.0] - 2017-07-07 ### Changed diff --git a/Cargo.toml b/Cargo.toml index 4eccd62..5fff40f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -6,7 +6,7 @@ keywords = ["arm", "cortex-m", "template"] license = "MIT OR Apache-2.0" name = "cortex-m-quickstart" repository = "https://github.com/japaric/cortex-m-quickstart" -version = "0.2.0" +version = "0.2.1" [dependencies] cortex-m = "0.3.0" @@ -14,7 +14,7 @@ cortex-m-semihosting = "0.2.0" [dependencies.cortex-m-rt] features = ["abort-on-panic"] -version = "0.3.2" +version = "0.3.3" [profile.release] debug = true diff --git a/src/examples/_5_device.rs b/src/examples/_5_device.rs index 7a047ff..e0b296a 100644 --- a/src/examples/_5_device.rs +++ b/src/examples/_5_device.rs @@ -26,28 +26,57 @@ //! //! ``` //! +//! #![deny(warnings)] +//! #![feature(const_fn)] //! #![no_std] //! //! extern crate cortex_m; +//! extern crate cortex_m_semihosting; //! #[macro_use(exception, interrupt)] //! extern crate stm32f103xx; //! -//! use cortex_m::interrupt; +//! use core::cell::RefCell; +//! use core::fmt::Write; +//! +//! use cortex_m::interrupt::{self, Mutex}; +//! use cortex_m::peripheral::SystClkSource; +//! use cortex_m_semihosting::hio::{self, HStdout}; +//! use stm32f103xx::Interrupt; +//! +//! static HSTDOUT: Mutex>> = +//! Mutex::new(RefCell::new(None)); //! //! fn main() { //! interrupt::free(|cs| { -//! let _gpioa = stm32f103xx::GPIOA.borrow(cs); -//! // do something with GPIOA +//! let hstdout = HSTDOUT.borrow(cs); +//! if let Ok(fd) = hio::hstdout() { +//! *hstdout.borrow_mut() = Some(fd); +//! } +//! +//! let nvic = stm32f103xx::NVIC.borrow(cs); +//! nvic.enable(Interrupt::TIM2); +//! +//! let syst = stm32f103xx::SYST.borrow(cs); +//! syst.set_clock_source(SystClkSource::Core); +//! syst.set_reload(8_000_000); // 1s +//! syst.enable_counter(); +//! syst.enable_interrupt(); //! }); //! } //! -//! exception!(SYS_TICK, tick, locals: { -//! ticks: u32 = 0; -//! }); +//! exception!(SYS_TICK, tick); //! -//! fn tick(l: &mut SYS_TICK::Locals) { -//! l.ticks += 1; -//! // .. +//! fn tick() { +//! interrupt::free(|cs| { +//! let hstdout = HSTDOUT.borrow(cs); +//! if let Some(hstdout) = hstdout.borrow_mut().as_mut() { +//! writeln!(*hstdout, "Tick").ok(); +//! } +//! +//! let nvic = stm32f103xx::NVIC.borrow(cs); +//! +//! nvic.set_pending(Interrupt::TIM2); +//! }); //! } //! //! interrupt!(TIM2, tock, locals: { @@ -56,7 +85,13 @@ //! //! fn tock(l: &mut TIM2::Locals) { //! l.tocks += 1; -//! // .. +//! +//! interrupt::free(|cs| { +//! let hstdout = HSTDOUT.borrow(cs); +//! if let Some(hstdout) = hstdout.borrow_mut().as_mut() { +//! writeln!(*hstdout, "Tock ({})", l.tocks).ok(); +//! } +//! }); //! } //! ``` // Auto-generated. Do not modify.