From d5429b71bd27f604acfbdea3db4a66476dc52d01 Mon Sep 17 00:00:00 2001 From: Sebastian Urban Date: Thu, 22 Feb 2024 19:52:41 +0100 Subject: [PATCH] Version 0.9.0 --- CHANGELOG.md | 8 ++++++++ README.md | 11 +++++++++++ openemc-firmware/Cargo.lock | 2 +- openemc-firmware/Cargo.toml | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d96bc3..1e465e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ 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.9.0 - 2024-02-22 +### Added +- board IO support +- board ioctl support +- task spawning by board +### Changed +- refactored board init + ## 0.8.1 - 2023-11-17 ### Added - allow querying whether power on was by charger attachment diff --git a/README.md b/README.md index 34a025d..91003f3 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,7 @@ The following features are implemented: - GPIO with interrupts - pin control - analog digital converter (ADC) + - fully customizable board communication (read, write, ioctl) with Linux userspace via device file - battery charger (BQ25713) - external power supply with USB PD (STUSB4500) and USB charger detector (MAX14636) - charging mode with system power off @@ -118,6 +119,16 @@ and executed directly by invoking from the respective directory. Set the environment variable `DEFMT_LOG` your desired log level. +## Board IO and ioctl + +OpenEMC allows direct communication between Linux userspace and board-specific code. +For this purpose the device `/dev/openemc` is provided, which supports reading, writing, polling +and ioctls. +Corresponding to these operations the board-specific functions `Board::io_read`, `Board::io_write` and +`Board::ioctl` are called. +An example is provided in the board file `stm_nucleo_f103rb.rs` together with the host-side code +in `board-io-test`. + ## License The OpenEMC firmware is released under the [GNU GPL version 3], diff --git a/openemc-firmware/Cargo.lock b/openemc-firmware/Cargo.lock index 079a881..962d29d 100644 --- a/openemc-firmware/Cargo.lock +++ b/openemc-firmware/Cargo.lock @@ -344,7 +344,7 @@ version = "0.0.0" [[package]] name = "openemc-firmware" -version = "0.8.1" +version = "0.9.0" dependencies = [ "byteorder", "cortex-m", diff --git a/openemc-firmware/Cargo.toml b/openemc-firmware/Cargo.toml index baea28c..705fded 100644 --- a/openemc-firmware/Cargo.toml +++ b/openemc-firmware/Cargo.toml @@ -3,7 +3,7 @@ name = "openemc-firmware" description = "OpenEMC Firmware" authors = ["Sebastian Urban "] license = "GPL-3.0" -version = "0.8.1" +version = "0.9.0" publish = false edition = "2021"