The structured MCU DB of HPM MCUs. The home of hpm-metapac.
All PRs and Issues are handled in hpmicro/hpm-data.
hpm-metapac is generated from this repo. For each commit(or push) of hpm-data, it's pushed to https://github.com/hpmicro-rs/hpm-metapac,
with a tag of hpm-data-<commit-hash>.
- The
hpm-metapaccrate has ametadatafeature, when enabled, it will provide the basic metadata of the currrent MCU - Patch vectored interrupt mode, add
CORE_LOCALfor Non-External Interrupts - To best fit for HPM RISC-V's clustered register desigin, the following is added:
- All clocks, for
SYSCTL.CLOCK, underhpm_metapac::clocks:: - All SYSCTL resources, under
hpm_metapac::resources:: - All GPIOs and it's PADs, for
IOC, underhpm_metapac::pins:: - All IOMUX settings (
FUNC_CTL), underhpm_metapac::iomux:: - All TRGM const definitions, under
hpm_metapac::trgmmux::
- All clocks, for
- The version on crates.io is not updated frequently, please use the git repo directly
[dependencies]
hpm-metapac = { version = "0.0.4", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-d8c87c6a676818ff6abd3b7ae54a1a7612cc8534", features = ["hpm5361"] }
# If you want to use the metadata feature in build.rs
[build-dependencies]
hpm-metapac = { version = "0.0.4", git = "https://github.com/hpmicro-rs/hpm-metapac.git", tag = "hpm-data-d8c87c6a676818ff6abd3b7ae54a1a7612cc8534", default-features = false, features = [
"metadata",
"hpm5361",
] }A simple example to configure pin PA25 for PWM1_P1:
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));To get a local build of hpm-metapac, you can use the following commands:
./d download-all
./d genNow you have a local build of hpm-metapac in the build/hpm-metapac directory.
[dependencies]
hpm-metapac = { path = "path/to/hpm-data/build/hpm-metapac", features = ["hpm5361"] }- All peripherals are supported
- All MCU families are supported
- Peripherals that have an HAL driver or raw PAC demo in hpm-hal are reviewed and tested
(in order of release date)
- HPM6700/HPM6400 - High performance
- HPM6300 - General purpose
- HPM6200 - High performance, real-time, mixed signal
- HPM5300 - General purpose, motion control
- HPM6800 - Display dirver, user interface
- HPM6E00 - EtherCAT
- https://www.hpmicro.com/
- https://github.com/hpmicro/hpm_pinmux_tool
- https://github.com/hpmicro/hpm_sdk
- https://tools.hpmicro.com/pinmux
As of 2024-09-19, this project is transferred from andelf to hpmicro.