From 7abae9b268d75b6b78b1833614b047ebb4232179 Mon Sep 17 00:00:00 2001 From: Andelf Date: Mon, 12 Aug 2024 04:29:14 +0800 Subject: [PATCH] docs(README): update doc structure and project status --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index a302622..ea887f9 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,53 @@ The structured MCU DB of HPM MCUs. The home of [hpm-metapac][docs-rs]. All PRs and Issues are handled in [andelf/hpm-data](https://github.com/andelf/hpm-data). -## MCU Family +`hpm-metapac` is generated from this repo. For each commit(or push) of hpm-data, it's pushed to , +with a tag of `hpm-data-`. + +## hpm-metapac + +- The `hpm-metapac` crate has a `metadata` feature, when enabled, it will provide the basic metadata of the currrent MCU +- Patch vectored interrupt mode, add `CORE_LOCAL` for Non-External Interrupts +- To best fit for HPM RISC-V's clustered register desigin, the following is added: + - All clocks, for `SYSCTL.CLOCK`, under `hpm_metapac::clocks::` + - All SYSCTL resources, under `hpm_metapac::resources::` + - All GPIOs and it's PADs, for `IOC`, under `hpm_metapac::pins::` + - All IOMUX settings (`FUNC_CTL`), under `hpm_metapac::iomux::` + - All TRGM const definitions, under `hpm_metapac::trgmmux::` +- The version on crates.io is not updated frequently, please use the git repo directly + +### Usage + +```toml +[dependencies] +hpm-metapac = { version = "0.0.3", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-6740ca6fd1ed6d9bb57944b42aa299761b974713" } + +# If you want to use the metadata feature in build.rs +[build-dependencies] +hpm-metapac = { version = "0.0.3", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-6740ca6fd1ed6d9bb57944b42aa299761b974713", default-features = false, features = [ + "metadata", +] } +``` + +A simple example to configure pin PA25 for PWM1_P1: + +```rust +use hpm_metapac as pac; +use pac::{iomux, pins}; + +pac::IOC + .pad(pins::PA25) + .func_ctl() + .modify(|w| w.set_alt_select(iomux::IOC_PA25_FUNC_CTL_PWM1_P_1)); +``` + +## Support Status + +- All peripherals are supported +- All MCU families are supported +- Peripherals that have a HAL driver or raw PAC demo in [hpm-hal](https://github.com/hpmicro-rs/hpm-hal) is reviewed and tested + +### MCU Family (in order of release date) @@ -26,8 +72,6 @@ All PRs and Issues are handled in [andelf/hpm-data](https://github.com/andelf/hp - HPM6800 - display, user interface - HPM6E00 - EtherCAT -### Support status - - [x] HPM6700/HPM6400 - [x] HPM6300 - [x] HPM6200 @@ -35,15 +79,6 @@ All PRs and Issues are handled in [andelf/hpm-data](https://github.com/andelf/hp - [x] HPM6800 - [x] HPM6E00 -## hpm-metapac - -- The `hpm-metapac` crate has a `metadata` feature, when enabled, it will provide the basic metadata of the currrent MCU -- Patch vectored interrupt mode, add `CORE_LOCAL` for Non-External Interrupts -- To best fit for HPM RISC-V's cluster register desigin, the following is added: - - All clocks, for `SYSCTL.CLOCK`, in `hpm_metapac::clocks::` - - All GPIOs and it's PADs, for `IOC`, in `hpm_metapac::pins::` - - All IOMUX settings (`FUNC_CTL`) in `hpm_metapac::iomux::` - ## Data Source -