From 4c98eeb9ab1ddc4c75ef5889e40e59480ea9fbb2 Mon Sep 17 00:00:00 2001 From: Sebastian Urban Date: Tue, 5 Sep 2023 22:08:25 +0200 Subject: [PATCH] Version 0.7.0 --- CHANGELOG.md | 13 +++++++++++++ README.md | 12 ++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b4d127..c37fd20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,19 @@ All notable changes to OpenEMC will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## 0.7.0 - 2023-09-05 +### Added +- reliable configuration storage in flash memory +- power: configuration option to prohibit power off +- power: confiugration option to power on when charger is attached +- verify firmware fits into flash during packing +- support board power off request during initialization +### Changed +- optimize firmware size +- build core crate when using Rust nightly toolchain to save flash space +- update dependencies +- bootloader version 0.2.7 + ## 0.6.6 - 2023-08-19 ### Added - standby entry support from bootloader diff --git a/README.md b/README.md index bf07ac8..34a025d 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,8 @@ The following features are implemented: - communication with the host over I2C and one interrupt line - field-upgradable firmware - - full logging to host over I2C in production system - - power control: system on/off and restart + - full logging to host over I2C in production system + - power control: system on/off, restart, optional power on when external power supplied - watchdog - real-time clock (RTC) with alarm and system wake-up - GPIO with interrupts @@ -23,6 +23,7 @@ The following features are implemented: - battery charger (BQ25713) - external power supply with USB PD (STUSB4500) and USB charger detector (MAX14636) - charging mode with system power off + - configuration storage in flash memory - full devicetree integration Due to its open-source nature, modular design and usage of the Rust programming @@ -50,6 +51,7 @@ For building the firmware your machine must have the following things installed: - a recent enough stable Rust toolchain (install from https://rustup.rs), - Rust target thumbv7m-none-eabi (`rustup target add thumbv7m-none-eabi`), - Rust LLVM utils (`rustup component add llvm-tools-preview`), + - on Rust nightly: Rust source (`rustup component add rust-src`) - Cargo binutils (`cargo install cargo-binutils`), - STLINK tools (from https://github.com/stlink-org/stlink or your Linux distribution), - for development: probe-run (`cargo install probe-run`). @@ -101,6 +103,12 @@ Examples are provided in the `devicetree` directory. Use `scripts/devicetree-build.sh` to build them and `scripts/devicetree-load.sh` to dynamically load a devicetree overlay into a running system. +## Firmware size considerations + +When using a nightly Rust toolchain the `core` crate is built along with the firmware and optimized +for small size. +This saves about 2 kBytes of flash memory space. + ## Development and testing For development and testing, both the bootloader and main firmware can be flashed