Skip to content

Commit

Permalink
Version 0.7.0
Browse files Browse the repository at this point in the history
  • Loading branch information
surban committed Sep 5, 2023
1 parent 95fea60 commit 4c98eeb
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 2 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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`).
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 4c98eeb

Please sign in to comment.