Merge pull request #4194 from i509VCB/update-metapac2
mspm0: generate features per chip + package
This commit is contained in:
		
						commit
						41263587df
					
				
							
								
								
									
										10
									
								
								ci.sh
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								ci.sh
									
									
									
									
									
								
							| @ -174,11 +174,11 @@ cargo batch \ | |||||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u073mb,defmt,exti,time-driver-any,time \ |     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u073mb,defmt,exti,time-driver-any,time \ | ||||||
|     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u083rc,defmt,exti,time-driver-any,time \ |     --- build --release --manifest-path embassy-stm32/Cargo.toml --target thumbv6m-none-eabi --features stm32u083rc,defmt,exti,time-driver-any,time \ | ||||||
|     --- build --release --manifest-path embassy-nxp/Cargo.toml --target thumbv8m.main-none-eabihf \ |     --- build --release --manifest-path embassy-nxp/Cargo.toml --target thumbv8m.main-none-eabihf \ | ||||||
|     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0c110x,defmt,time-driver-any \ |     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0c1104dgs20,defmt,time-driver-any \ | ||||||
|     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0g350x,defmt,time-driver-any \ |     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0g3507pm,defmt,time-driver-any \ | ||||||
|     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0g351x,defmt,time-driver-any \ |     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0g3519pz,defmt,time-driver-any \ | ||||||
|     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0l130x,defmt,time-driver-any \ |     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0l1306rhb,defmt,time-driver-any \ | ||||||
|     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0l222x,defmt,time-driver-any \ |     --- build --release --manifest-path embassy-mspm0/Cargo.toml --target thumbv6m-none-eabi --features mspm0l2228pn,defmt,time-driver-any \ | ||||||
|     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features ''\ |     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features ''\ | ||||||
|     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features 'log' \ |     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features 'log' \ | ||||||
|     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features 'defmt' \ |     --- build --release --manifest-path cyw43/Cargo.toml --target thumbv6m-none-eabi --features 'defmt' \ | ||||||
|  | |||||||
| @ -46,14 +46,14 @@ cortex-m = "0.7.6" | |||||||
| critical-section = "1.2.0" | critical-section = "1.2.0" | ||||||
| 
 | 
 | ||||||
| # mspm0-metapac = { version = "" } | # mspm0-metapac = { version = "" } | ||||||
| mspm0-metapac = { git = "https://github.com/mspm0-rs/mspm0-data-generated/", tag = "mspm0-data-119240dd23ef5748d2a7bef219ca298d37ba604a" } | mspm0-metapac = { git = "https://github.com/mspm0-rs/mspm0-data-generated/", tag = "mspm0-data-66a55c7bf38a2201ff48c299843e741f2d537f0b" } | ||||||
| 
 | 
 | ||||||
| [build-dependencies] | [build-dependencies] | ||||||
| proc-macro2 = "1.0.94" | proc-macro2 = "1.0.94" | ||||||
| quote = "1.0.40" | quote = "1.0.40" | ||||||
| 
 | 
 | ||||||
| # mspm0-metapac = { version = "", default-features = false, features = ["metadata"] } | # mspm0-metapac = { version = "", default-features = false, features = ["metadata"] } | ||||||
| mspm0-metapac = { git = "https://github.com/mspm0-rs/mspm0-data-generated/", tag = "mspm0-data-119240dd23ef5748d2a7bef219ca298d37ba604a", default-features = false, features = ["metadata"] } | mspm0-metapac = { git = "https://github.com/mspm0-rs/mspm0-data-generated/", tag = "mspm0-data-66a55c7bf38a2201ff48c299843e741f2d537f0b", default-features = false, features = ["metadata"] } | ||||||
| 
 | 
 | ||||||
| [features] | [features] | ||||||
| default = ["rt"] | default = ["rt"] | ||||||
| @ -120,14 +120,138 @@ time-driver-tima0 = ["_time-driver"] | |||||||
| time-driver-tima1 = ["_time-driver"] | time-driver-tima1 = ["_time-driver"] | ||||||
| 
 | 
 | ||||||
| #! ## Chip-selection features | #! ## Chip-selection features | ||||||
| #! Select your chip by specifying the model as a feature, e.g. `mspm0g350x`. | #! Select your chip by specifying the model as a feature, e.g. `mspm0g3507pm`. | ||||||
| #! Check the `Cargo.toml` for the latest list of supported chips. | #! Check the `Cargo.toml` for the latest list of supported chips. | ||||||
| #! | #! | ||||||
| #! **Important:** Do not forget to adapt the target chip in your toolchain, | #! **Important:** Do not forget to adapt the target chip in your toolchain, | ||||||
| #! e.g. in `.cargo/config.toml`. | #! e.g. in `.cargo/config.toml`. | ||||||
| 
 | 
 | ||||||
| mspm0c110x = [ "mspm0-metapac/mspm0c110x" ] | mspm0c1103dgs20 = ["mspm0-metapac/mspm0c1103dgs20"] | ||||||
| mspm0g350x = [ "mspm0-metapac/mspm0g350x" ] | mspm0c1103dsg = ["mspm0-metapac/mspm0c1103dsg"] | ||||||
| mspm0g351x = [ "mspm0-metapac/mspm0g351x" ] | mspm0c1103dyy = ["mspm0-metapac/mspm0c1103dyy"] | ||||||
| mspm0l130x = [ "mspm0-metapac/mspm0l130x" ] | mspm0c1103ruk = ["mspm0-metapac/mspm0c1103ruk"] | ||||||
| mspm0l222x = [ "mspm0-metapac/mspm0l222x" ] | mspm0c1104dgs20 = ["mspm0-metapac/mspm0c1104dgs20"] | ||||||
|  | mspm0c1104dsg = ["mspm0-metapac/mspm0c1104dsg"] | ||||||
|  | mspm0c1104dyy = ["mspm0-metapac/mspm0c1104dyy"] | ||||||
|  | mspm0c1104ruk = ["mspm0-metapac/mspm0c1104ruk"] | ||||||
|  | mspm0c1104ycj = ["mspm0-metapac/mspm0c1104ycj"] | ||||||
|  | mspm0g1105dgs28 = ["mspm0-metapac/mspm0g1105dgs28"] | ||||||
|  | mspm0g1105pm = ["mspm0-metapac/mspm0g1105pm"] | ||||||
|  | mspm0g1105pt = ["mspm0-metapac/mspm0g1105pt"] | ||||||
|  | mspm0g1105rge = ["mspm0-metapac/mspm0g1105rge"] | ||||||
|  | mspm0g1105rgz = ["mspm0-metapac/mspm0g1105rgz"] | ||||||
|  | mspm0g1105rhb = ["mspm0-metapac/mspm0g1105rhb"] | ||||||
|  | mspm0g1106dgs28 = ["mspm0-metapac/mspm0g1106dgs28"] | ||||||
|  | mspm0g1106pm = ["mspm0-metapac/mspm0g1106pm"] | ||||||
|  | mspm0g1106pt = ["mspm0-metapac/mspm0g1106pt"] | ||||||
|  | mspm0g1106rge = ["mspm0-metapac/mspm0g1106rge"] | ||||||
|  | mspm0g1106rgz = ["mspm0-metapac/mspm0g1106rgz"] | ||||||
|  | mspm0g1106rhb = ["mspm0-metapac/mspm0g1106rhb"] | ||||||
|  | mspm0g1107dgs28 = ["mspm0-metapac/mspm0g1107dgs28"] | ||||||
|  | mspm0g1107pm = ["mspm0-metapac/mspm0g1107pm"] | ||||||
|  | mspm0g1107pt = ["mspm0-metapac/mspm0g1107pt"] | ||||||
|  | mspm0g1107rge = ["mspm0-metapac/mspm0g1107rge"] | ||||||
|  | mspm0g1107rgz = ["mspm0-metapac/mspm0g1107rgz"] | ||||||
|  | mspm0g1107rhb = ["mspm0-metapac/mspm0g1107rhb"] | ||||||
|  | mspm0g1107ycj = ["mspm0-metapac/mspm0g1107ycj"] | ||||||
|  | mspm0g1505pm = ["mspm0-metapac/mspm0g1505pm"] | ||||||
|  | mspm0g1505pt = ["mspm0-metapac/mspm0g1505pt"] | ||||||
|  | mspm0g1505rge = ["mspm0-metapac/mspm0g1505rge"] | ||||||
|  | mspm0g1505rgz = ["mspm0-metapac/mspm0g1505rgz"] | ||||||
|  | mspm0g1505rhb = ["mspm0-metapac/mspm0g1505rhb"] | ||||||
|  | mspm0g1506pm = ["mspm0-metapac/mspm0g1506pm"] | ||||||
|  | mspm0g1506pt = ["mspm0-metapac/mspm0g1506pt"] | ||||||
|  | mspm0g1506rge = ["mspm0-metapac/mspm0g1506rge"] | ||||||
|  | mspm0g1506rgz = ["mspm0-metapac/mspm0g1506rgz"] | ||||||
|  | mspm0g1506rhb = ["mspm0-metapac/mspm0g1506rhb"] | ||||||
|  | mspm0g1507pm = ["mspm0-metapac/mspm0g1507pm"] | ||||||
|  | mspm0g1507pt = ["mspm0-metapac/mspm0g1507pt"] | ||||||
|  | mspm0g1507rge = ["mspm0-metapac/mspm0g1507rge"] | ||||||
|  | mspm0g1507rgz = ["mspm0-metapac/mspm0g1507rgz"] | ||||||
|  | mspm0g1507rhb = ["mspm0-metapac/mspm0g1507rhb"] | ||||||
|  | mspm0g1507ycj = ["mspm0-metapac/mspm0g1507ycj"] | ||||||
|  | mspm0g1519rgz = ["mspm0-metapac/mspm0g1519rgz"] | ||||||
|  | mspm0g1519rhb = ["mspm0-metapac/mspm0g1519rhb"] | ||||||
|  | mspm0g3105dgs20 = ["mspm0-metapac/mspm0g3105dgs20"] | ||||||
|  | mspm0g3105dgs28 = ["mspm0-metapac/mspm0g3105dgs28"] | ||||||
|  | mspm0g3105rhb = ["mspm0-metapac/mspm0g3105rhb"] | ||||||
|  | mspm0g3106dgs20 = ["mspm0-metapac/mspm0g3106dgs20"] | ||||||
|  | mspm0g3106dgs28 = ["mspm0-metapac/mspm0g3106dgs28"] | ||||||
|  | mspm0g3106rhb = ["mspm0-metapac/mspm0g3106rhb"] | ||||||
|  | mspm0g3107dgs20 = ["mspm0-metapac/mspm0g3107dgs20"] | ||||||
|  | mspm0g3107dgs28 = ["mspm0-metapac/mspm0g3107dgs28"] | ||||||
|  | mspm0g3107rhb = ["mspm0-metapac/mspm0g3107rhb"] | ||||||
|  | mspm0g3505dgs28 = ["mspm0-metapac/mspm0g3505dgs28"] | ||||||
|  | mspm0g3505pm = ["mspm0-metapac/mspm0g3505pm"] | ||||||
|  | mspm0g3505pt = ["mspm0-metapac/mspm0g3505pt"] | ||||||
|  | mspm0g3505rgz = ["mspm0-metapac/mspm0g3505rgz"] | ||||||
|  | mspm0g3505rhb = ["mspm0-metapac/mspm0g3505rhb"] | ||||||
|  | mspm0g3506dgs28 = ["mspm0-metapac/mspm0g3506dgs28"] | ||||||
|  | mspm0g3506pm = ["mspm0-metapac/mspm0g3506pm"] | ||||||
|  | mspm0g3506pt = ["mspm0-metapac/mspm0g3506pt"] | ||||||
|  | mspm0g3506rgz = ["mspm0-metapac/mspm0g3506rgz"] | ||||||
|  | mspm0g3506rhb = ["mspm0-metapac/mspm0g3506rhb"] | ||||||
|  | mspm0g3507dgs28 = ["mspm0-metapac/mspm0g3507dgs28"] | ||||||
|  | mspm0g3507pm = ["mspm0-metapac/mspm0g3507pm"] | ||||||
|  | mspm0g3507pt = ["mspm0-metapac/mspm0g3507pt"] | ||||||
|  | mspm0g3507rgz = ["mspm0-metapac/mspm0g3507rgz"] | ||||||
|  | mspm0g3507rhb = ["mspm0-metapac/mspm0g3507rhb"] | ||||||
|  | mspm0g3519pm = ["mspm0-metapac/mspm0g3519pm"] | ||||||
|  | mspm0g3519pn = ["mspm0-metapac/mspm0g3519pn"] | ||||||
|  | mspm0g3519pz = ["mspm0-metapac/mspm0g3519pz"] | ||||||
|  | mspm0g3519rgz = ["mspm0-metapac/mspm0g3519rgz"] | ||||||
|  | mspm0g3519rhb = ["mspm0-metapac/mspm0g3519rhb"] | ||||||
|  | mspm0l1105dgs20 = ["mspm0-metapac/mspm0l1105dgs20"] | ||||||
|  | mspm0l1105dgs28 = ["mspm0-metapac/mspm0l1105dgs28"] | ||||||
|  | mspm0l1105dyy = ["mspm0-metapac/mspm0l1105dyy"] | ||||||
|  | mspm0l1105rge = ["mspm0-metapac/mspm0l1105rge"] | ||||||
|  | mspm0l1105rtr = ["mspm0-metapac/mspm0l1105rtr"] | ||||||
|  | mspm0l1106dgs20 = ["mspm0-metapac/mspm0l1106dgs20"] | ||||||
|  | mspm0l1106dgs28 = ["mspm0-metapac/mspm0l1106dgs28"] | ||||||
|  | mspm0l1106dyy = ["mspm0-metapac/mspm0l1106dyy"] | ||||||
|  | mspm0l1106rge = ["mspm0-metapac/mspm0l1106rge"] | ||||||
|  | mspm0l1106rhb = ["mspm0-metapac/mspm0l1106rhb"] | ||||||
|  | mspm0l1106rtr = ["mspm0-metapac/mspm0l1106rtr"] | ||||||
|  | mspm0l1227pm = ["mspm0-metapac/mspm0l1227pm"] | ||||||
|  | mspm0l1227pn = ["mspm0-metapac/mspm0l1227pn"] | ||||||
|  | mspm0l1227pt = ["mspm0-metapac/mspm0l1227pt"] | ||||||
|  | mspm0l1227rge = ["mspm0-metapac/mspm0l1227rge"] | ||||||
|  | mspm0l1227rgz = ["mspm0-metapac/mspm0l1227rgz"] | ||||||
|  | mspm0l1227rhb = ["mspm0-metapac/mspm0l1227rhb"] | ||||||
|  | mspm0l1228pm = ["mspm0-metapac/mspm0l1228pm"] | ||||||
|  | mspm0l1228pn = ["mspm0-metapac/mspm0l1228pn"] | ||||||
|  | mspm0l1228pt = ["mspm0-metapac/mspm0l1228pt"] | ||||||
|  | mspm0l1228rge = ["mspm0-metapac/mspm0l1228rge"] | ||||||
|  | mspm0l1228rgz = ["mspm0-metapac/mspm0l1228rgz"] | ||||||
|  | mspm0l1228rhb = ["mspm0-metapac/mspm0l1228rhb"] | ||||||
|  | mspm0l1303rge = ["mspm0-metapac/mspm0l1303rge"] | ||||||
|  | mspm0l1304dgs20 = ["mspm0-metapac/mspm0l1304dgs20"] | ||||||
|  | mspm0l1304dgs28 = ["mspm0-metapac/mspm0l1304dgs28"] | ||||||
|  | mspm0l1304dyy = ["mspm0-metapac/mspm0l1304dyy"] | ||||||
|  | mspm0l1304rge = ["mspm0-metapac/mspm0l1304rge"] | ||||||
|  | mspm0l1304rhb = ["mspm0-metapac/mspm0l1304rhb"] | ||||||
|  | mspm0l1304rtr = ["mspm0-metapac/mspm0l1304rtr"] | ||||||
|  | mspm0l1305dgs20 = ["mspm0-metapac/mspm0l1305dgs20"] | ||||||
|  | mspm0l1305dgs28 = ["mspm0-metapac/mspm0l1305dgs28"] | ||||||
|  | mspm0l1305dyy = ["mspm0-metapac/mspm0l1305dyy"] | ||||||
|  | mspm0l1305rge = ["mspm0-metapac/mspm0l1305rge"] | ||||||
|  | mspm0l1305rtr = ["mspm0-metapac/mspm0l1305rtr"] | ||||||
|  | mspm0l1306dgs20 = ["mspm0-metapac/mspm0l1306dgs20"] | ||||||
|  | mspm0l1306dgs28 = ["mspm0-metapac/mspm0l1306dgs28"] | ||||||
|  | mspm0l1306dyy = ["mspm0-metapac/mspm0l1306dyy"] | ||||||
|  | mspm0l1306rge = ["mspm0-metapac/mspm0l1306rge"] | ||||||
|  | mspm0l1306rhb = ["mspm0-metapac/mspm0l1306rhb"] | ||||||
|  | mspm0l1343dgs20 = ["mspm0-metapac/mspm0l1343dgs20"] | ||||||
|  | mspm0l1344dgs20 = ["mspm0-metapac/mspm0l1344dgs20"] | ||||||
|  | mspm0l1345dgs28 = ["mspm0-metapac/mspm0l1345dgs28"] | ||||||
|  | mspm0l1346dgs28 = ["mspm0-metapac/mspm0l1346dgs28"] | ||||||
|  | mspm0l2227pm = ["mspm0-metapac/mspm0l2227pm"] | ||||||
|  | mspm0l2227pn = ["mspm0-metapac/mspm0l2227pn"] | ||||||
|  | mspm0l2227pt = ["mspm0-metapac/mspm0l2227pt"] | ||||||
|  | mspm0l2227rgz = ["mspm0-metapac/mspm0l2227rgz"] | ||||||
|  | mspm0l2228pm = ["mspm0-metapac/mspm0l2228pm"] | ||||||
|  | mspm0l2228pn = ["mspm0-metapac/mspm0l2228pn"] | ||||||
|  | mspm0l2228pt = ["mspm0-metapac/mspm0l2228pt"] | ||||||
|  | mspm0l2228rgz = ["mspm0-metapac/mspm0l2228rgz"] | ||||||
|  | msps003f3pw20 = ["mspm0-metapac/msps003f3pw20"] | ||||||
|  | msps003f4pw20 = ["mspm0-metapac/msps003f4pw20"] | ||||||
|  | |||||||
							
								
								
									
										28
									
								
								embassy-mspm0/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								embassy-mspm0/README.md
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,28 @@ | |||||||
|  | # Embassy MSPM0 HAL | ||||||
|  | 
 | ||||||
|  | The embassy-mspm0 HAL aims to provide a safe, idiomatic hardware abstraction layer for all MSPM0 and MSPS003 chips. | ||||||
|  | 
 | ||||||
|  | * [Documentation](https://docs.embassy.dev/embassy-mspm0/) (**Important:** use docs.embassy.dev rather than docs.rs to see the specific docs for the chip you’re using!) | ||||||
|  | * [Source](https://github.com/embassy-rs/embassy/tree/main/embassy-mspm0) | ||||||
|  | * [Examples](https://github.com/embassy-rs/embassy/tree/main/examples) | ||||||
|  | 
 | ||||||
|  | ## Embedded-hal | ||||||
|  | 
 | ||||||
|  | The `embassy-mspm0` HAL implements the traits from [embedded-hal](https://crates.io/crates/embedded-hal) (1.0) and [embedded-hal-async](https://crates.io/crates/embedded-hal-async), as well as [embedded-io](https://crates.io/crates/embedded-io) and [embedded-io-async](https://crates.io/crates/embedded-io-async). | ||||||
|  | 
 | ||||||
|  | ## A note on feature flag names | ||||||
|  | 
 | ||||||
|  | Feature flag names for chips do not include temperature rating or distribution format. | ||||||
|  | 
 | ||||||
|  | Usually chapter 10 of your device's datasheet will explain the device nomenclature and how to decode it. Feature names in embassy-mspm0 only use the following from device nomenclature: | ||||||
|  | - MCU platform | ||||||
|  | - Product family | ||||||
|  | - Device subfamily | ||||||
|  | - Flash memory | ||||||
|  | - Package type | ||||||
|  | 
 | ||||||
|  | This means for a part such as `MSPM0G3507SPMR`, the feature name is `mspm0g3507pm`. This also means that `MSPM0G3507QPMRQ1` uses the feature `mspm0g3507pm`, since the Q1 parts are just qualified variants of the base G3507 with a PM (QFP-64) package. | ||||||
|  | 
 | ||||||
|  | ## Interoperability | ||||||
|  | 
 | ||||||
|  | This crate can run on any executor. | ||||||
| @ -7,7 +7,7 @@ use std::sync::LazyLock; | |||||||
| use std::{env, fs}; | use std::{env, fs}; | ||||||
| 
 | 
 | ||||||
| use common::CfgSet; | use common::CfgSet; | ||||||
| use mspm0_metapac::metadata::METADATA; | use mspm0_metapac::metadata::{ALL_CHIPS, METADATA}; | ||||||
| use proc_macro2::{Ident, Literal, Span, TokenStream}; | use proc_macro2::{Ident, Literal, Span, TokenStream}; | ||||||
| use quote::{format_ident, quote}; | use quote::{format_ident, quote}; | ||||||
| 
 | 
 | ||||||
| @ -24,6 +24,27 @@ fn generate_code() { | |||||||
| 
 | 
 | ||||||
|     cfgs.declare_all(&["gpio_pb", "gpio_pc", "int_group1"]); |     cfgs.declare_all(&["gpio_pb", "gpio_pc", "int_group1"]); | ||||||
| 
 | 
 | ||||||
|  |     let chip_name = match env::vars() | ||||||
|  |         .map(|(a, _)| a) | ||||||
|  |         .filter(|x| x.starts_with("CARGO_FEATURE_MSPM0") || x.starts_with("CARGO_FEATURE_MSPS")) | ||||||
|  |         .get_one() | ||||||
|  |     { | ||||||
|  |         Ok(x) => x, | ||||||
|  |         Err(GetOneError::None) => panic!("No mspm0xx/mspsxx Cargo feature enabled"), | ||||||
|  |         Err(GetOneError::Multiple) => panic!("Multiple mspm0xx/mspsxx Cargo features enabled"), | ||||||
|  |     } | ||||||
|  |     .strip_prefix("CARGO_FEATURE_") | ||||||
|  |     .unwrap() | ||||||
|  |     .to_ascii_lowercase() | ||||||
|  |     .replace('_', "-"); | ||||||
|  | 
 | ||||||
|  |     eprintln!("chip: {chip_name}"); | ||||||
|  | 
 | ||||||
|  |     cfgs.enable_all(&get_chip_cfgs(&chip_name)); | ||||||
|  |     for chip in ALL_CHIPS { | ||||||
|  |         cfgs.declare_all(&get_chip_cfgs(&chip)); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     let mut singletons = get_singletons(&mut cfgs); |     let mut singletons = get_singletons(&mut cfgs); | ||||||
| 
 | 
 | ||||||
|     time_driver(&mut singletons, &mut cfgs); |     time_driver(&mut singletons, &mut cfgs); | ||||||
| @ -44,6 +65,60 @@ fn generate_code() { | |||||||
|     rustfmt(&out_file); |     rustfmt(&out_file); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | fn get_chip_cfgs(chip_name: &str) -> Vec<String> { | ||||||
|  |     let mut cfgs = Vec::new(); | ||||||
|  | 
 | ||||||
|  |     // GPIO on C110x is special as it does not belong to an interrupt group.
 | ||||||
|  |     if chip_name.starts_with("mspm0c110") || chip_name.starts_with("msps003f") { | ||||||
|  |         cfgs.push("mspm0c110x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // Family ranges (temporary until int groups are generated)
 | ||||||
|  |     //
 | ||||||
|  |     // TODO: Remove this once int group stuff is generated.
 | ||||||
|  |     if chip_name.starts_with("mspm0g110") { | ||||||
|  |         cfgs.push("mspm0g110x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0g150") { | ||||||
|  |         cfgs.push("mspm0g150x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0g310") { | ||||||
|  |         cfgs.push("mspm0g310x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0g350") { | ||||||
|  |         cfgs.push("mspm0g350x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0g351") { | ||||||
|  |         cfgs.push("mspm0g351x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0l110") { | ||||||
|  |         cfgs.push("mspm0l110x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0l122") { | ||||||
|  |         cfgs.push("mspm0l122x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0l130") { | ||||||
|  |         cfgs.push("mspm0l130x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0l134") { | ||||||
|  |         cfgs.push("mspm0l134x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if chip_name.starts_with("mspm0l222") { | ||||||
|  |         cfgs.push("mspm0l222x".to_string()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     cfgs | ||||||
|  | } | ||||||
|  | 
 | ||||||
| #[derive(Debug, Clone)] | #[derive(Debug, Clone)] | ||||||
| struct Singleton { | struct Singleton { | ||||||
|     name: String, |     name: String, | ||||||
| @ -146,7 +221,7 @@ fn make_valid_identifier(s: &str) -> Singleton { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn generate_pincm_mapping() -> TokenStream { | fn generate_pincm_mapping() -> TokenStream { | ||||||
|     let pincms = METADATA.pincm_mappings.iter().map(|mapping| { |     let pincms = METADATA.pins.iter().map(|mapping| { | ||||||
|         let port_letter = mapping.pin.strip_prefix("P").unwrap(); |         let port_letter = mapping.pin.strip_prefix("P").unwrap(); | ||||||
|         let port_base = (port_letter.chars().next().unwrap() as u8 - b'A') * 32; |         let port_base = (port_letter.chars().next().unwrap() as u8 - b'A') * 32; | ||||||
|         // This assumes all ports are single letter length.
 |         // This assumes all ports are single letter length.
 | ||||||
| @ -174,11 +249,11 @@ fn generate_pincm_mapping() -> TokenStream { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn generate_pin() -> TokenStream { | fn generate_pin() -> TokenStream { | ||||||
|     let pin_impls = METADATA.pincm_mappings.iter().map(|pincm_mapping| { |     let pin_impls = METADATA.pins.iter().map(|pin| { | ||||||
|         let name = Ident::new(&pincm_mapping.pin, Span::call_site()); |         let name = Ident::new(&pin.pin, Span::call_site()); | ||||||
|         let port_letter = pincm_mapping.pin.strip_prefix("P").unwrap(); |         let port_letter = pin.pin.strip_prefix("P").unwrap(); | ||||||
|         let port_letter = port_letter.chars().next().unwrap(); |         let port_letter = port_letter.chars().next().unwrap(); | ||||||
|         let pin_number = Literal::u8_unsuffixed(pincm_mapping.pin[2..].parse::<u8>().unwrap()); |         let pin_number = Literal::u8_unsuffixed(pin.pin[2..].parse::<u8>().unwrap()); | ||||||
| 
 | 
 | ||||||
|         let port = Ident::new(&format!("Port{}", port_letter), Span::call_site()); |         let port = Ident::new(&format!("Port{}", port_letter), Span::call_site()); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -10,7 +10,7 @@ use embassy_sync::waitqueue::AtomicWaker; | |||||||
| 
 | 
 | ||||||
| use crate::pac::gpio::vals::*; | use crate::pac::gpio::vals::*; | ||||||
| use crate::pac::gpio::{self}; | use crate::pac::gpio::{self}; | ||||||
| #[cfg(all(feature = "rt", feature = "mspm0c110x"))] | #[cfg(all(feature = "rt", mspm0c110x))] | ||||||
| use crate::pac::interrupt; | use crate::pac::interrupt; | ||||||
| use crate::pac::{self}; | use crate::pac::{self}; | ||||||
| 
 | 
 | ||||||
| @ -1120,7 +1120,7 @@ impl Iterator for BitIter { | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // C110x has a dedicated interrupt just for GPIOA, as it does not have a GROUP1 interrupt.
 | // C110x has a dedicated interrupt just for GPIOA, as it does not have a GROUP1 interrupt.
 | ||||||
| #[cfg(all(feature = "rt", feature = "mspm0c110x"))] | #[cfg(all(feature = "rt", mspm0c110x))] | ||||||
| #[interrupt] | #[interrupt] | ||||||
| fn GPIOA() { | fn GPIOA() { | ||||||
|     gpioa_interrupt(); |     gpioa_interrupt(); | ||||||
|  | |||||||
							
								
								
									
										51
									
								
								embassy-mspm0/src/int_group/g150x.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								embassy-mspm0/src/int_group/g150x.rs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,51 @@ | |||||||
|  | use crate::pac; | ||||||
|  | use crate::pac::interrupt; | ||||||
|  | 
 | ||||||
|  | #[cfg(feature = "rt")] | ||||||
|  | #[interrupt] | ||||||
|  | fn GROUP0() { | ||||||
|  |     use mspm0_metapac::Group0; | ||||||
|  | 
 | ||||||
|  |     let group = pac::CPUSS.int_group(0); | ||||||
|  | 
 | ||||||
|  |     // Must subtract by 1 since NO_INTR is value 0
 | ||||||
|  |     let iidx = group.iidx().read().stat().to_bits() - 1; | ||||||
|  | 
 | ||||||
|  |     let Ok(group) = pac::Group0::try_from(iidx as u8) else { | ||||||
|  |         debug!("Invalid IIDX for group 0: {}", iidx); | ||||||
|  |         return; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     match group { | ||||||
|  |         Group0::WWDT0 => todo!("implement WWDT0"), | ||||||
|  |         Group0::WWDT1 => todo!("implement WWDT1"), | ||||||
|  |         Group0::DEBUGSS => todo!("implement DEBUGSS"), | ||||||
|  |         Group0::FLASHCTL => todo!("implement FLASHCTL"), | ||||||
|  |         Group0::SYSCTL => todo!("implement SYSCTL"), | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | #[cfg(feature = "rt")] | ||||||
|  | #[interrupt] | ||||||
|  | fn GROUP1() { | ||||||
|  |     use mspm0_metapac::Group1; | ||||||
|  | 
 | ||||||
|  |     let group = pac::CPUSS.int_group(1); | ||||||
|  | 
 | ||||||
|  |     // Must subtract by 1 since NO_INTR is value 0
 | ||||||
|  |     let iidx = group.iidx().read().stat().to_bits() - 1; | ||||||
|  | 
 | ||||||
|  |     let Ok(group) = pac::Group1::try_from(iidx as u8) else { | ||||||
|  |         debug!("Invalid IIDX for group 1: {}", iidx); | ||||||
|  |         return; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     match group { | ||||||
|  |         Group1::GPIOA => crate::gpio::gpioa_interrupt(), | ||||||
|  |         Group1::GPIOB => crate::gpio::gpiob_interrupt(), | ||||||
|  |         Group1::COMP0 => todo!("implement COMP0"), | ||||||
|  |         Group1::COMP1 => todo!("implement COMP1"), | ||||||
|  |         Group1::COMP2 => todo!("implement COMP2"), | ||||||
|  |         Group1::TRNG => todo!("implement TRNG"), | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -1,6 +1,11 @@ | |||||||
| #![no_std] | #![no_std] | ||||||
| // Doc feature labels can be tested locally by running RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc
 | // Doc feature labels can be tested locally by running RUSTDOCFLAGS="--cfg=docsrs" cargo +nightly doc
 | ||||||
| #![cfg_attr(docsrs, feature(doc_auto_cfg, doc_cfg_hide), doc(cfg_hide(doc, docsrs)))] | #![cfg_attr(docsrs, feature(doc_auto_cfg, doc_cfg_hide), doc(cfg_hide(doc, docsrs)))] | ||||||
|  | #![cfg_attr(
 | ||||||
|  |     docsrs, | ||||||
|  |     doc = "<div style='padding:30px;background:#810;color:#fff;text-align:center;'><p>You might want to <a href='https://docs.embassy.dev/embassy-mspm0'>browse the `embassy-mspm0` documentation on the Embassy website</a> instead.</p><p>The documentation here on `docs.rs` is built for a single chip only, while on the Embassy website you can pick your exact chip from the top menu. Available peripherals and their APIs change depending on the chip.</p></div>\n\n" | ||||||
|  | )] | ||||||
|  | #![doc = include_str!("../README.md")] | ||||||
| 
 | 
 | ||||||
| // This mod MUST go first, so that the others see its macros.
 | // This mod MUST go first, so that the others see its macros.
 | ||||||
| pub(crate) mod fmt; | pub(crate) mod fmt; | ||||||
| @ -35,11 +40,11 @@ pub mod mode { | |||||||
| mod time_driver; | mod time_driver; | ||||||
| 
 | 
 | ||||||
| // Interrupt group handlers.
 | // Interrupt group handlers.
 | ||||||
| #[cfg_attr(feature = "mspm0c110x", path = "int_group/c110x.rs")] | #[cfg_attr(mspm0c110x, path = "int_group/c110x.rs")] | ||||||
| #[cfg_attr(feature = "mspm0g350x", path = "int_group/g350x.rs")] | #[cfg_attr(mspm0g350x, path = "int_group/g350x.rs")] | ||||||
| #[cfg_attr(feature = "mspm0g351x", path = "int_group/g351x.rs")] | #[cfg_attr(mspm0g351x, path = "int_group/g351x.rs")] | ||||||
| #[cfg_attr(feature = "mspm0l130x", path = "int_group/l130x.rs")] | #[cfg_attr(mspm0l130x, path = "int_group/l130x.rs")] | ||||||
| #[cfg_attr(feature = "mspm0l222x", path = "int_group/l222x.rs")] | #[cfg_attr(mspm0l222x, path = "int_group/l222x.rs")] | ||||||
| mod int_group; | mod int_group; | ||||||
| 
 | 
 | ||||||
| pub(crate) mod _generated { | pub(crate) mod _generated { | ||||||
| @ -109,7 +114,7 @@ pub fn init(_config: Config) -> Peripherals { | |||||||
| 
 | 
 | ||||||
|         _generated::enable_group_interrupts(cs); |         _generated::enable_group_interrupts(cs); | ||||||
| 
 | 
 | ||||||
|         #[cfg(feature = "mspm0c110x")] |         #[cfg(mspm0c110x)] | ||||||
|         unsafe { |         unsafe { | ||||||
|             use crate::_generated::interrupt::typelevel::Interrupt; |             use crate::_generated::interrupt::typelevel::Interrupt; | ||||||
|             crate::interrupt::typelevel::GPIOA::enable(); |             crate::interrupt::typelevel::GPIOA::enable(); | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0c110x", "defmt", "rt", "time-driver-any"] } | embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0c1104dgs20", "defmt", "rt", "time-driver-any"] } | ||||||
| embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | ||||||
| embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | ||||||
| embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| # Examples for MSPM0C110x family | # Examples for MSPM0C1104 | ||||||
| 
 | 
 | ||||||
| Run individual examples with | Run individual examples with | ||||||
| ``` | ``` | ||||||
| @ -15,7 +15,7 @@ A large number of the examples are written for the [LP-MSPM0C1104](https://www.t | |||||||
| You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | ||||||
| 
 | 
 | ||||||
| * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for C1104 it should be `probe-rs run --chip MSPM0C1104`. (use `probe-rs chip list` to find your chip) | * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for C1104 it should be `probe-rs run --chip MSPM0C1104`. (use `probe-rs chip list` to find your chip) | ||||||
| * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for C1104 it should be `mspm0c1104`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For the LP-MSPM0C1104 it should be `mspm0c1104dgs20`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | ||||||
| * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | ||||||
| * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g350x", "defmt", "rt", "time-driver-any"] } | embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g3507pm", "defmt", "rt", "time-driver-any"] } | ||||||
| embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | ||||||
| embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | ||||||
| embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| # Examples for MSPM0C350x family | # Examples for MSPM0M3507 | ||||||
| 
 | 
 | ||||||
| Run individual examples with | Run individual examples with | ||||||
| ``` | ``` | ||||||
| @ -15,7 +15,7 @@ A large number of the examples are written for the [LP-MSPM0G3507](https://www.t | |||||||
| You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | ||||||
| 
 | 
 | ||||||
| * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for G3507 it should be `probe-rs run --chip MSPM0G3507`. (use `probe-rs chip list` to find your chip) | * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for G3507 it should be `probe-rs run --chip MSPM0G3507`. (use `probe-rs chip list` to find your chip) | ||||||
| * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for G3507 it should be `mspm0g3507`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For the LP-MSPM0G3507 it should be `mspm0g3507pm`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | ||||||
| * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | ||||||
| * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g351x", "defmt", "rt", "time-driver-any"] } | embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g3519pz", "defmt", "rt", "time-driver-any"] } | ||||||
| embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | ||||||
| embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | ||||||
| embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| # Examples for MSPM0G351x family | # Examples for MSPM0G3519 | ||||||
| 
 | 
 | ||||||
| Run individual examples with | Run individual examples with | ||||||
| ``` | ``` | ||||||
| @ -15,7 +15,7 @@ A large number of the examples are written for the [LP-MSPM0G3519](https://www.t | |||||||
| You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | ||||||
| 
 | 
 | ||||||
| * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for G3519 it should be `probe-rs run --chip MSPM0G3519`. (use `probe-rs chip list` to find your chip) | * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for G3519 it should be `probe-rs run --chip MSPM0G3519`. (use `probe-rs chip list` to find your chip) | ||||||
| * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for G3519 it should be `mspm0g3519`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For the LP-MSPM0G3519 it should be `mspm0g3519pz`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | ||||||
| * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | ||||||
| * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l130x", "defmt", "rt", "time-driver-any"] } | embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l1306rhb", "defmt", "rt", "time-driver-any"] } | ||||||
| embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | ||||||
| embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | ||||||
| embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| # Examples for MSPM0L130x family | # Examples for MSPM0L1306 | ||||||
| 
 | 
 | ||||||
| Run individual examples with | Run individual examples with | ||||||
| ``` | ``` | ||||||
| @ -15,7 +15,7 @@ A large number of the examples are written for the [LP-MSPM0L1306](https://www.t | |||||||
| You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | ||||||
| 
 | 
 | ||||||
| * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for L1306 it should be `probe-rs run --chip MSPM0L1306`. (use `probe-rs chip list` to find your chip) | * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for L1306 it should be `probe-rs run --chip MSPM0L1306`. (use `probe-rs chip list` to find your chip) | ||||||
| * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for L1306 it should be `mspm0l1306`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For the LP-MSPM0L1306 it should be `mspm0l1306rhb`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | ||||||
| * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | ||||||
| * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l222x", "defmt", "rt", "time-driver-any"] } | embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l2228pn", "defmt", "rt", "time-driver-any"] } | ||||||
| embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | embassy-executor = { version = "0.7.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt"] } | ||||||
| embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | embassy-sync = { version = "0.6.2", path = "../../embassy-sync", features = ["defmt"] } | ||||||
| embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | embassy-time = { version = "0.4.0", path = "../../embassy-time", features = ["defmt"] } | ||||||
|  | |||||||
| @ -1,4 +1,4 @@ | |||||||
| # Examples for MSPM0L222x family | # Examples for MSPM0L2228 | ||||||
| 
 | 
 | ||||||
| Run individual examples with | Run individual examples with | ||||||
| ``` | ``` | ||||||
| @ -15,7 +15,7 @@ A large number of the examples are written for the [LP-MSPM0L2228](https://www.t | |||||||
| You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | You might need to adjust `.cargo/config.toml`, `Cargo.toml` and possibly update pin numbers or peripherals to match the specific MCU or board you are using. | ||||||
| 
 | 
 | ||||||
| * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for L2228 it should be `probe-rs run --chip MSPM0L2228`. (use `probe-rs chip list` to find your chip) | * [ ] Update .cargo/config.toml with the correct probe-rs command to use your specific MCU. For example for L2228 it should be `probe-rs run --chip MSPM0L2228`. (use `probe-rs chip list` to find your chip) | ||||||
| * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for L2228 it should be `mspm0l2228`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | * [ ] Update Cargo.toml to have the correct `embassy-mspm0` feature. For example for LP-MSPM0L2228 it should be `mspm0l2228pn`. Look in the `Cargo.toml` file of the `embassy-mspm0` project to find the correct feature flag for your chip. | ||||||
| * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | * [ ] If your board has a special clock or power configuration, make sure that it is set up appropriately. | ||||||
| * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | * [ ] If your board has different pin mapping, update any pin numbers or peripherals in the given example code to match your schematic | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ version = "0.1.0" | |||||||
| license = "MIT OR Apache-2.0" | license = "MIT OR Apache-2.0" | ||||||
| 
 | 
 | ||||||
| [features] | [features] | ||||||
| mspm0g3507 = [ "embassy-mspm0/mspm0g350x" ] | mspm0g3507 = [ "embassy-mspm0/mspm0g3507pm" ] | ||||||
| 
 | 
 | ||||||
| [dependencies] | [dependencies] | ||||||
| teleprobe-meta = "1.1" | teleprobe-meta = "1.1" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user