diff --git a/embassy-stm32/Cargo.toml b/embassy-stm32/Cargo.toml index a60827ef..cfdec6f4 100644 --- a/embassy-stm32/Cargo.toml +++ b/embassy-stm32/Cargo.toml @@ -174,4 +174,145 @@ stm32f479vg = [] stm32f479vi = [] stm32f479zg = [] stm32f479zi = [] +stm32l412c8 = [] +stm32l412cb = [] +stm32l412k8 = [] +stm32l412kb = [] +stm32l412r8 = [] +stm32l412rb = [] +stm32l412t8 = [] +stm32l412tb = [] +stm32l422cb = [] +stm32l422kb = [] +stm32l422rb = [] +stm32l422tb = [] +stm32l431cb = [] +stm32l431cc = [] +stm32l431kb = [] +stm32l431kc = [] +stm32l431rb = [] +stm32l431rc = [] +stm32l431vc = [] +stm32l432kb = [] +stm32l432kc = [] +stm32l433cb = [] +stm32l433cc = [] +stm32l433rb = [] +stm32l433rc = [] +stm32l433vc = [] +stm32l442kc = [] +stm32l443cc = [] +stm32l443rc = [] +stm32l443vc = [] +stm32l451cc = [] +stm32l451ce = [] +stm32l451rc = [] +stm32l451re = [] +stm32l451vc = [] +stm32l451ve = [] +stm32l452cc = [] +stm32l452ce = [] +stm32l452rc = [] +stm32l452re = [] +stm32l452vc = [] +stm32l452ve = [] +stm32l462ce = [] +stm32l462re = [] +stm32l462ve = [] +stm32l471qe = [] +stm32l471qg = [] +stm32l471re = [] +stm32l471rg = [] +stm32l471ve = [] +stm32l471vg = [] +stm32l471ze = [] +stm32l471zg = [] +stm32l475rc = [] +stm32l475re = [] +stm32l475rg = [] +stm32l475vc = [] +stm32l475ve = [] +stm32l475vg = [] +stm32l476je = [] +stm32l476jg = [] +stm32l476me = [] +stm32l476mg = [] +stm32l476qe = [] +stm32l476qg = [] +stm32l476rc = [] +stm32l476re = [] +stm32l476rg = [] +stm32l476vc = [] +stm32l476ve = [] +stm32l476vg = [] +stm32l476ze = [] +stm32l476zg = [] +stm32l485jc = [] +stm32l485je = [] +stm32l486jg = [] +stm32l486qg = [] +stm32l486rg = [] +stm32l486vg = [] +stm32l486zg = [] +stm32l496ae = [] +stm32l496ag = [] +stm32l496qe = [] +stm32l496qg = [] +stm32l496re = [] +stm32l496rg = [] +stm32l496ve = [] +stm32l496vg = [] +stm32l496wg = [] +stm32l496ze = [] +stm32l496zg = [] +stm32l4a6ag = [] +stm32l4a6qg = [] +stm32l4a6rg = [] +stm32l4a6vg = [] +stm32l4a6zg = [] +stm32l4p5ae = [] +stm32l4p5ag = [] +stm32l4p5ce = [] +stm32l4p5cg = [] +stm32l4p5qe = [] +stm32l4p5qg = [] +stm32l4p5re = [] +stm32l4p5rg = [] +stm32l4p5ve = [] +stm32l4p5vg = [] +stm32l4p5ze = [] +stm32l4p5zg = [] +stm32l4q5ag = [] +stm32l4q5cg = [] +stm32l4q5qg = [] +stm32l4q5rg = [] +stm32l4q5vg = [] +stm32l4q5zg = [] +stm32l4r5ag = [] +stm32l4r5ai = [] +stm32l4r5qg = [] +stm32l4r5qi = [] +stm32l4r5vg = [] +stm32l4r5vi = [] +stm32l4r5zg = [] +stm32l4r5zi = [] +stm32l4r7ai = [] +stm32l4r7vi = [] +stm32l4r7zi = [] +stm32l4r9ag = [] +stm32l4r9ai = [] +stm32l4r9vg = [] +stm32l4r9vi = [] +stm32l4r9zg = [] +stm32l4r9zi = [] +stm32l4s5ai = [] +stm32l4s5qi = [] +stm32l4s5vi = [] +stm32l4s5zi = [] +stm32l4s7ai = [] +stm32l4s7vi = [] +stm32l4s7zi = [] +stm32l4s9ai = [] +stm32l4s9vi = [] +stm32l4s9zi = [] # END GENERATED FEATURES diff --git a/embassy-stm32/gen.py b/embassy-stm32/gen.py index 980eecdc..d1b8cd81 100644 --- a/embassy-stm32/gen.py +++ b/embassy-stm32/gen.py @@ -14,7 +14,7 @@ os.chdir(dname) # ======= load chips chips = {} for f in sorted(glob('stm32-data/data/chips/*.yaml')): - if 'STM32F4' not in f: + if 'STM32F4' not in f and 'STM32L4' not in f: continue with open(f, 'r') as f: chip = yaml.load(f, Loader=yaml.SafeLoader) @@ -105,6 +105,9 @@ for chip in chips.values(): if func := funcs.get(f'{name}_CK'): impls.append(f'impl_usart_pin!({name}, CkPin, {pin}, {func});') + if peri['block'] == 'rng_v1/RNG': + impls.append(f'impl_rng!(0x{peri["address"]:x});') + with open(f'src/chip/{chip["name"]}.rs', 'w') as f: # TODO uart etc # TODO import the right GPIO AF map mod diff --git a/embassy-stm32/src/chip/mod.rs b/embassy-stm32/src/chip/mod.rs index c3cf0502..35fff08c 100644 --- a/embassy-stm32/src/chip/mod.rs +++ b/embassy-stm32/src/chip/mod.rs @@ -147,5 +147,146 @@ #[cfg_attr(feature = "stm32f479vi", path = "stm32f479vi.rs")] #[cfg_attr(feature = "stm32f479zg", path = "stm32f479zg.rs")] #[cfg_attr(feature = "stm32f479zi", path = "stm32f479zi.rs")] +#[cfg_attr(feature = "stm32l412c8", path = "stm32l412c8.rs")] +#[cfg_attr(feature = "stm32l412cb", path = "stm32l412cb.rs")] +#[cfg_attr(feature = "stm32l412k8", path = "stm32l412k8.rs")] +#[cfg_attr(feature = "stm32l412kb", path = "stm32l412kb.rs")] +#[cfg_attr(feature = "stm32l412r8", path = "stm32l412r8.rs")] +#[cfg_attr(feature = "stm32l412rb", path = "stm32l412rb.rs")] +#[cfg_attr(feature = "stm32l412t8", path = "stm32l412t8.rs")] +#[cfg_attr(feature = "stm32l412tb", path = "stm32l412tb.rs")] +#[cfg_attr(feature = "stm32l422cb", path = "stm32l422cb.rs")] +#[cfg_attr(feature = "stm32l422kb", path = "stm32l422kb.rs")] +#[cfg_attr(feature = "stm32l422rb", path = "stm32l422rb.rs")] +#[cfg_attr(feature = "stm32l422tb", path = "stm32l422tb.rs")] +#[cfg_attr(feature = "stm32l431cb", path = "stm32l431cb.rs")] +#[cfg_attr(feature = "stm32l431cc", path = "stm32l431cc.rs")] +#[cfg_attr(feature = "stm32l431kb", path = "stm32l431kb.rs")] +#[cfg_attr(feature = "stm32l431kc", path = "stm32l431kc.rs")] +#[cfg_attr(feature = "stm32l431rb", path = "stm32l431rb.rs")] +#[cfg_attr(feature = "stm32l431rc", path = "stm32l431rc.rs")] +#[cfg_attr(feature = "stm32l431vc", path = "stm32l431vc.rs")] +#[cfg_attr(feature = "stm32l432kb", path = "stm32l432kb.rs")] +#[cfg_attr(feature = "stm32l432kc", path = "stm32l432kc.rs")] +#[cfg_attr(feature = "stm32l433cb", path = "stm32l433cb.rs")] +#[cfg_attr(feature = "stm32l433cc", path = "stm32l433cc.rs")] +#[cfg_attr(feature = "stm32l433rb", path = "stm32l433rb.rs")] +#[cfg_attr(feature = "stm32l433rc", path = "stm32l433rc.rs")] +#[cfg_attr(feature = "stm32l433vc", path = "stm32l433vc.rs")] +#[cfg_attr(feature = "stm32l442kc", path = "stm32l442kc.rs")] +#[cfg_attr(feature = "stm32l443cc", path = "stm32l443cc.rs")] +#[cfg_attr(feature = "stm32l443rc", path = "stm32l443rc.rs")] +#[cfg_attr(feature = "stm32l443vc", path = "stm32l443vc.rs")] +#[cfg_attr(feature = "stm32l451cc", path = "stm32l451cc.rs")] +#[cfg_attr(feature = "stm32l451ce", path = "stm32l451ce.rs")] +#[cfg_attr(feature = "stm32l451rc", path = "stm32l451rc.rs")] +#[cfg_attr(feature = "stm32l451re", path = "stm32l451re.rs")] +#[cfg_attr(feature = "stm32l451vc", path = "stm32l451vc.rs")] +#[cfg_attr(feature = "stm32l451ve", path = "stm32l451ve.rs")] +#[cfg_attr(feature = "stm32l452cc", path = "stm32l452cc.rs")] +#[cfg_attr(feature = "stm32l452ce", path = "stm32l452ce.rs")] +#[cfg_attr(feature = "stm32l452rc", path = "stm32l452rc.rs")] +#[cfg_attr(feature = "stm32l452re", path = "stm32l452re.rs")] +#[cfg_attr(feature = "stm32l452vc", path = "stm32l452vc.rs")] +#[cfg_attr(feature = "stm32l452ve", path = "stm32l452ve.rs")] +#[cfg_attr(feature = "stm32l462ce", path = "stm32l462ce.rs")] +#[cfg_attr(feature = "stm32l462re", path = "stm32l462re.rs")] +#[cfg_attr(feature = "stm32l462ve", path = "stm32l462ve.rs")] +#[cfg_attr(feature = "stm32l471qe", path = "stm32l471qe.rs")] +#[cfg_attr(feature = "stm32l471qg", path = "stm32l471qg.rs")] +#[cfg_attr(feature = "stm32l471re", path = "stm32l471re.rs")] +#[cfg_attr(feature = "stm32l471rg", path = "stm32l471rg.rs")] +#[cfg_attr(feature = "stm32l471ve", path = "stm32l471ve.rs")] +#[cfg_attr(feature = "stm32l471vg", path = "stm32l471vg.rs")] +#[cfg_attr(feature = "stm32l471ze", path = "stm32l471ze.rs")] +#[cfg_attr(feature = "stm32l471zg", path = "stm32l471zg.rs")] +#[cfg_attr(feature = "stm32l475rc", path = "stm32l475rc.rs")] +#[cfg_attr(feature = "stm32l475re", path = "stm32l475re.rs")] +#[cfg_attr(feature = "stm32l475rg", path = "stm32l475rg.rs")] +#[cfg_attr(feature = "stm32l475vc", path = "stm32l475vc.rs")] +#[cfg_attr(feature = "stm32l475ve", path = "stm32l475ve.rs")] +#[cfg_attr(feature = "stm32l475vg", path = "stm32l475vg.rs")] +#[cfg_attr(feature = "stm32l476je", path = "stm32l476je.rs")] +#[cfg_attr(feature = "stm32l476jg", path = "stm32l476jg.rs")] +#[cfg_attr(feature = "stm32l476me", path = "stm32l476me.rs")] +#[cfg_attr(feature = "stm32l476mg", path = "stm32l476mg.rs")] +#[cfg_attr(feature = "stm32l476qe", path = "stm32l476qe.rs")] +#[cfg_attr(feature = "stm32l476qg", path = "stm32l476qg.rs")] +#[cfg_attr(feature = "stm32l476rc", path = "stm32l476rc.rs")] +#[cfg_attr(feature = "stm32l476re", path = "stm32l476re.rs")] +#[cfg_attr(feature = "stm32l476rg", path = "stm32l476rg.rs")] +#[cfg_attr(feature = "stm32l476vc", path = "stm32l476vc.rs")] +#[cfg_attr(feature = "stm32l476ve", path = "stm32l476ve.rs")] +#[cfg_attr(feature = "stm32l476vg", path = "stm32l476vg.rs")] +#[cfg_attr(feature = "stm32l476ze", path = "stm32l476ze.rs")] +#[cfg_attr(feature = "stm32l476zg", path = "stm32l476zg.rs")] +#[cfg_attr(feature = "stm32l485jc", path = "stm32l485jc.rs")] +#[cfg_attr(feature = "stm32l485je", path = "stm32l485je.rs")] +#[cfg_attr(feature = "stm32l486jg", path = "stm32l486jg.rs")] +#[cfg_attr(feature = "stm32l486qg", path = "stm32l486qg.rs")] +#[cfg_attr(feature = "stm32l486rg", path = "stm32l486rg.rs")] +#[cfg_attr(feature = "stm32l486vg", path = "stm32l486vg.rs")] +#[cfg_attr(feature = "stm32l486zg", path = "stm32l486zg.rs")] +#[cfg_attr(feature = "stm32l496ae", path = "stm32l496ae.rs")] +#[cfg_attr(feature = "stm32l496ag", path = "stm32l496ag.rs")] +#[cfg_attr(feature = "stm32l496qe", path = "stm32l496qe.rs")] +#[cfg_attr(feature = "stm32l496qg", path = "stm32l496qg.rs")] +#[cfg_attr(feature = "stm32l496re", path = "stm32l496re.rs")] +#[cfg_attr(feature = "stm32l496rg", path = "stm32l496rg.rs")] +#[cfg_attr(feature = "stm32l496ve", path = "stm32l496ve.rs")] +#[cfg_attr(feature = "stm32l496vg", path = "stm32l496vg.rs")] +#[cfg_attr(feature = "stm32l496wg", path = "stm32l496wg.rs")] +#[cfg_attr(feature = "stm32l496ze", path = "stm32l496ze.rs")] +#[cfg_attr(feature = "stm32l496zg", path = "stm32l496zg.rs")] +#[cfg_attr(feature = "stm32l4a6ag", path = "stm32l4a6ag.rs")] +#[cfg_attr(feature = "stm32l4a6qg", path = "stm32l4a6qg.rs")] +#[cfg_attr(feature = "stm32l4a6rg", path = "stm32l4a6rg.rs")] +#[cfg_attr(feature = "stm32l4a6vg", path = "stm32l4a6vg.rs")] +#[cfg_attr(feature = "stm32l4a6zg", path = "stm32l4a6zg.rs")] +#[cfg_attr(feature = "stm32l4p5ae", path = "stm32l4p5ae.rs")] +#[cfg_attr(feature = "stm32l4p5ag", path = "stm32l4p5ag.rs")] +#[cfg_attr(feature = "stm32l4p5ce", path = "stm32l4p5ce.rs")] +#[cfg_attr(feature = "stm32l4p5cg", path = "stm32l4p5cg.rs")] +#[cfg_attr(feature = "stm32l4p5qe", path = "stm32l4p5qe.rs")] +#[cfg_attr(feature = "stm32l4p5qg", path = "stm32l4p5qg.rs")] +#[cfg_attr(feature = "stm32l4p5re", path = "stm32l4p5re.rs")] +#[cfg_attr(feature = "stm32l4p5rg", path = "stm32l4p5rg.rs")] +#[cfg_attr(feature = "stm32l4p5ve", path = "stm32l4p5ve.rs")] +#[cfg_attr(feature = "stm32l4p5vg", path = "stm32l4p5vg.rs")] +#[cfg_attr(feature = "stm32l4p5ze", path = "stm32l4p5ze.rs")] +#[cfg_attr(feature = "stm32l4p5zg", path = "stm32l4p5zg.rs")] +#[cfg_attr(feature = "stm32l4q5ag", path = "stm32l4q5ag.rs")] +#[cfg_attr(feature = "stm32l4q5cg", path = "stm32l4q5cg.rs")] +#[cfg_attr(feature = "stm32l4q5qg", path = "stm32l4q5qg.rs")] +#[cfg_attr(feature = "stm32l4q5rg", path = "stm32l4q5rg.rs")] +#[cfg_attr(feature = "stm32l4q5vg", path = "stm32l4q5vg.rs")] +#[cfg_attr(feature = "stm32l4q5zg", path = "stm32l4q5zg.rs")] +#[cfg_attr(feature = "stm32l4r5ag", path = "stm32l4r5ag.rs")] +#[cfg_attr(feature = "stm32l4r5ai", path = "stm32l4r5ai.rs")] +#[cfg_attr(feature = "stm32l4r5qg", path = "stm32l4r5qg.rs")] +#[cfg_attr(feature = "stm32l4r5qi", path = "stm32l4r5qi.rs")] +#[cfg_attr(feature = "stm32l4r5vg", path = "stm32l4r5vg.rs")] +#[cfg_attr(feature = "stm32l4r5vi", path = "stm32l4r5vi.rs")] +#[cfg_attr(feature = "stm32l4r5zg", path = "stm32l4r5zg.rs")] +#[cfg_attr(feature = "stm32l4r5zi", path = "stm32l4r5zi.rs")] +#[cfg_attr(feature = "stm32l4r7ai", path = "stm32l4r7ai.rs")] +#[cfg_attr(feature = "stm32l4r7vi", path = "stm32l4r7vi.rs")] +#[cfg_attr(feature = "stm32l4r7zi", path = "stm32l4r7zi.rs")] +#[cfg_attr(feature = "stm32l4r9ag", path = "stm32l4r9ag.rs")] +#[cfg_attr(feature = "stm32l4r9ai", path = "stm32l4r9ai.rs")] +#[cfg_attr(feature = "stm32l4r9vg", path = "stm32l4r9vg.rs")] +#[cfg_attr(feature = "stm32l4r9vi", path = "stm32l4r9vi.rs")] +#[cfg_attr(feature = "stm32l4r9zg", path = "stm32l4r9zg.rs")] +#[cfg_attr(feature = "stm32l4r9zi", path = "stm32l4r9zi.rs")] +#[cfg_attr(feature = "stm32l4s5ai", path = "stm32l4s5ai.rs")] +#[cfg_attr(feature = "stm32l4s5qi", path = "stm32l4s5qi.rs")] +#[cfg_attr(feature = "stm32l4s5vi", path = "stm32l4s5vi.rs")] +#[cfg_attr(feature = "stm32l4s5zi", path = "stm32l4s5zi.rs")] +#[cfg_attr(feature = "stm32l4s7ai", path = "stm32l4s7ai.rs")] +#[cfg_attr(feature = "stm32l4s7vi", path = "stm32l4s7vi.rs")] +#[cfg_attr(feature = "stm32l4s7zi", path = "stm32l4s7zi.rs")] +#[cfg_attr(feature = "stm32l4s9ai", path = "stm32l4s9ai.rs")] +#[cfg_attr(feature = "stm32l4s9vi", path = "stm32l4s9vi.rs")] +#[cfg_attr(feature = "stm32l4s9zi", path = "stm32l4s9zi.rs")] mod chip; pub use chip::*; diff --git a/embassy-stm32/src/chip/stm32f405oe.rs b/embassy-stm32/src/chip/stm32f405oe.rs index a4a3ba27..706b2af1 100644 --- a/embassy-stm32/src/chip/stm32f405oe.rs +++ b/embassy-stm32/src/chip/stm32f405oe.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f405og.rs b/embassy-stm32/src/chip/stm32f405og.rs index a4a3ba27..706b2af1 100644 --- a/embassy-stm32/src/chip/stm32f405og.rs +++ b/embassy-stm32/src/chip/stm32f405og.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f405rg.rs b/embassy-stm32/src/chip/stm32f405rg.rs index a4a3ba27..706b2af1 100644 --- a/embassy-stm32/src/chip/stm32f405rg.rs +++ b/embassy-stm32/src/chip/stm32f405rg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f405vg.rs b/embassy-stm32/src/chip/stm32f405vg.rs index a4a3ba27..706b2af1 100644 --- a/embassy-stm32/src/chip/stm32f405vg.rs +++ b/embassy-stm32/src/chip/stm32f405vg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f405zg.rs b/embassy-stm32/src/chip/stm32f405zg.rs index a4a3ba27..706b2af1 100644 --- a/embassy-stm32/src/chip/stm32f405zg.rs +++ b/embassy-stm32/src/chip/stm32f405zg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407ie.rs b/embassy-stm32/src/chip/stm32f407ie.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407ie.rs +++ b/embassy-stm32/src/chip/stm32f407ie.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407ig.rs b/embassy-stm32/src/chip/stm32f407ig.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407ig.rs +++ b/embassy-stm32/src/chip/stm32f407ig.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407ve.rs b/embassy-stm32/src/chip/stm32f407ve.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407ve.rs +++ b/embassy-stm32/src/chip/stm32f407ve.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407vg.rs b/embassy-stm32/src/chip/stm32f407vg.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407vg.rs +++ b/embassy-stm32/src/chip/stm32f407vg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407ze.rs b/embassy-stm32/src/chip/stm32f407ze.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407ze.rs +++ b/embassy-stm32/src/chip/stm32f407ze.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f407zg.rs b/embassy-stm32/src/chip/stm32f407zg.rs index 814448ea..48db7fa2 100644 --- a/embassy-stm32/src/chip/stm32f407zg.rs +++ b/embassy-stm32/src/chip/stm32f407zg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410c8.rs b/embassy-stm32/src/chip/stm32f410c8.rs index ab6ffbc4..400fd889 100644 --- a/embassy-stm32/src/chip/stm32f410c8.rs +++ b/embassy-stm32/src/chip/stm32f410c8.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410cb.rs b/embassy-stm32/src/chip/stm32f410cb.rs index ab6ffbc4..400fd889 100644 --- a/embassy-stm32/src/chip/stm32f410cb.rs +++ b/embassy-stm32/src/chip/stm32f410cb.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410r8.rs b/embassy-stm32/src/chip/stm32f410r8.rs index ab6ffbc4..400fd889 100644 --- a/embassy-stm32/src/chip/stm32f410r8.rs +++ b/embassy-stm32/src/chip/stm32f410r8.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410rb.rs b/embassy-stm32/src/chip/stm32f410rb.rs index ab6ffbc4..400fd889 100644 --- a/embassy-stm32/src/chip/stm32f410rb.rs +++ b/embassy-stm32/src/chip/stm32f410rb.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410t8.rs b/embassy-stm32/src/chip/stm32f410t8.rs index d7e117fa..ec19c6d3 100644 --- a/embassy-stm32/src/chip/stm32f410t8.rs +++ b/embassy-stm32/src/chip/stm32f410t8.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f410tb.rs b/embassy-stm32/src/chip/stm32f410tb.rs index d7e117fa..ec19c6d3 100644 --- a/embassy-stm32/src/chip/stm32f410tb.rs +++ b/embassy-stm32/src/chip/stm32f410tb.rs @@ -74,6 +74,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x40080000); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412ce.rs b/embassy-stm32/src/chip/stm32f412ce.rs index d67df458..f2194552 100644 --- a/embassy-stm32/src/chip/stm32f412ce.rs +++ b/embassy-stm32/src/chip/stm32f412ce.rs @@ -75,6 +75,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412cg.rs b/embassy-stm32/src/chip/stm32f412cg.rs index d67df458..f2194552 100644 --- a/embassy-stm32/src/chip/stm32f412cg.rs +++ b/embassy-stm32/src/chip/stm32f412cg.rs @@ -75,6 +75,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412re.rs b/embassy-stm32/src/chip/stm32f412re.rs index cd7fcf4d..60dafe05 100644 --- a/embassy-stm32/src/chip/stm32f412re.rs +++ b/embassy-stm32/src/chip/stm32f412re.rs @@ -92,6 +92,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412rg.rs b/embassy-stm32/src/chip/stm32f412rg.rs index cd7fcf4d..60dafe05 100644 --- a/embassy-stm32/src/chip/stm32f412rg.rs +++ b/embassy-stm32/src/chip/stm32f412rg.rs @@ -92,6 +92,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412ve.rs b/embassy-stm32/src/chip/stm32f412ve.rs index ce727bb9..c405a041 100644 --- a/embassy-stm32/src/chip/stm32f412ve.rs +++ b/embassy-stm32/src/chip/stm32f412ve.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412vg.rs b/embassy-stm32/src/chip/stm32f412vg.rs index ce727bb9..c405a041 100644 --- a/embassy-stm32/src/chip/stm32f412vg.rs +++ b/embassy-stm32/src/chip/stm32f412vg.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412ze.rs b/embassy-stm32/src/chip/stm32f412ze.rs index ce727bb9..c405a041 100644 --- a/embassy-stm32/src/chip/stm32f412ze.rs +++ b/embassy-stm32/src/chip/stm32f412ze.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f412zg.rs b/embassy-stm32/src/chip/stm32f412zg.rs index ce727bb9..c405a041 100644 --- a/embassy-stm32/src/chip/stm32f412zg.rs +++ b/embassy-stm32/src/chip/stm32f412zg.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413cg.rs b/embassy-stm32/src/chip/stm32f413cg.rs index 71ac97e6..557723e9 100644 --- a/embassy-stm32/src/chip/stm32f413cg.rs +++ b/embassy-stm32/src/chip/stm32f413cg.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413ch.rs b/embassy-stm32/src/chip/stm32f413ch.rs index 71ac97e6..557723e9 100644 --- a/embassy-stm32/src/chip/stm32f413ch.rs +++ b/embassy-stm32/src/chip/stm32f413ch.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413mg.rs b/embassy-stm32/src/chip/stm32f413mg.rs index 20e1d608..009e1e87 100644 --- a/embassy-stm32/src/chip/stm32f413mg.rs +++ b/embassy-stm32/src/chip/stm32f413mg.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413mh.rs b/embassy-stm32/src/chip/stm32f413mh.rs index 20e1d608..009e1e87 100644 --- a/embassy-stm32/src/chip/stm32f413mh.rs +++ b/embassy-stm32/src/chip/stm32f413mh.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413rg.rs b/embassy-stm32/src/chip/stm32f413rg.rs index 20e1d608..009e1e87 100644 --- a/embassy-stm32/src/chip/stm32f413rg.rs +++ b/embassy-stm32/src/chip/stm32f413rg.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413rh.rs b/embassy-stm32/src/chip/stm32f413rh.rs index 20e1d608..009e1e87 100644 --- a/embassy-stm32/src/chip/stm32f413rh.rs +++ b/embassy-stm32/src/chip/stm32f413rh.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413vg.rs b/embassy-stm32/src/chip/stm32f413vg.rs index 33997b9f..1212322e 100644 --- a/embassy-stm32/src/chip/stm32f413vg.rs +++ b/embassy-stm32/src/chip/stm32f413vg.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413vh.rs b/embassy-stm32/src/chip/stm32f413vh.rs index 33997b9f..1212322e 100644 --- a/embassy-stm32/src/chip/stm32f413vh.rs +++ b/embassy-stm32/src/chip/stm32f413vh.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413zg.rs b/embassy-stm32/src/chip/stm32f413zg.rs index 33997b9f..1212322e 100644 --- a/embassy-stm32/src/chip/stm32f413zg.rs +++ b/embassy-stm32/src/chip/stm32f413zg.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f413zh.rs b/embassy-stm32/src/chip/stm32f413zh.rs index 33997b9f..1212322e 100644 --- a/embassy-stm32/src/chip/stm32f413zh.rs +++ b/embassy-stm32/src/chip/stm32f413zh.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f415og.rs b/embassy-stm32/src/chip/stm32f415og.rs index 68aa4330..919e2a64 100644 --- a/embassy-stm32/src/chip/stm32f415og.rs +++ b/embassy-stm32/src/chip/stm32f415og.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f415rg.rs b/embassy-stm32/src/chip/stm32f415rg.rs index 68aa4330..919e2a64 100644 --- a/embassy-stm32/src/chip/stm32f415rg.rs +++ b/embassy-stm32/src/chip/stm32f415rg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f415vg.rs b/embassy-stm32/src/chip/stm32f415vg.rs index 68aa4330..919e2a64 100644 --- a/embassy-stm32/src/chip/stm32f415vg.rs +++ b/embassy-stm32/src/chip/stm32f415vg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f415zg.rs b/embassy-stm32/src/chip/stm32f415zg.rs index 68aa4330..919e2a64 100644 --- a/embassy-stm32/src/chip/stm32f415zg.rs +++ b/embassy-stm32/src/chip/stm32f415zg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417ie.rs b/embassy-stm32/src/chip/stm32f417ie.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417ie.rs +++ b/embassy-stm32/src/chip/stm32f417ie.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417ig.rs b/embassy-stm32/src/chip/stm32f417ig.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417ig.rs +++ b/embassy-stm32/src/chip/stm32f417ig.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417ve.rs b/embassy-stm32/src/chip/stm32f417ve.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417ve.rs +++ b/embassy-stm32/src/chip/stm32f417ve.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417vg.rs b/embassy-stm32/src/chip/stm32f417vg.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417vg.rs +++ b/embassy-stm32/src/chip/stm32f417vg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417ze.rs b/embassy-stm32/src/chip/stm32f417ze.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417ze.rs +++ b/embassy-stm32/src/chip/stm32f417ze.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f417zg.rs b/embassy-stm32/src/chip/stm32f417zg.rs index b4f967c1..56d3778c 100644 --- a/embassy-stm32/src/chip/stm32f417zg.rs +++ b/embassy-stm32/src/chip/stm32f417zg.rs @@ -160,6 +160,7 @@ impl_gpio_pin!(PI12, 8, 12, EXTI12); impl_gpio_pin!(PI13, 8, 13, EXTI13); impl_gpio_pin!(PI14, 8, 14, EXTI14); impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f423ch.rs b/embassy-stm32/src/chip/stm32f423ch.rs index ec61ef35..4b4d17e0 100644 --- a/embassy-stm32/src/chip/stm32f423ch.rs +++ b/embassy-stm32/src/chip/stm32f423ch.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f423mh.rs b/embassy-stm32/src/chip/stm32f423mh.rs index c52e01a3..2da87958 100644 --- a/embassy-stm32/src/chip/stm32f423mh.rs +++ b/embassy-stm32/src/chip/stm32f423mh.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f423rh.rs b/embassy-stm32/src/chip/stm32f423rh.rs index c52e01a3..2da87958 100644 --- a/embassy-stm32/src/chip/stm32f423rh.rs +++ b/embassy-stm32/src/chip/stm32f423rh.rs @@ -143,6 +143,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f423vh.rs b/embassy-stm32/src/chip/stm32f423vh.rs index 4428a447..bbe4c056 100644 --- a/embassy-stm32/src/chip/stm32f423vh.rs +++ b/embassy-stm32/src/chip/stm32f423vh.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f423zh.rs b/embassy-stm32/src/chip/stm32f423zh.rs index 4428a447..bbe4c056 100644 --- a/embassy-stm32/src/chip/stm32f423zh.rs +++ b/embassy-stm32/src/chip/stm32f423zh.rs @@ -144,6 +144,7 @@ impl_gpio_pin!(PH12, 7, 12, EXTI12); impl_gpio_pin!(PH13, 7, 13, EXTI13); impl_gpio_pin!(PH14, 7, 14, EXTI14); impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427ag.rs b/embassy-stm32/src/chip/stm32f427ag.rs index 9080dd10..2511085a 100644 --- a/embassy-stm32/src/chip/stm32f427ag.rs +++ b/embassy-stm32/src/chip/stm32f427ag.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427ai.rs b/embassy-stm32/src/chip/stm32f427ai.rs index 9080dd10..2511085a 100644 --- a/embassy-stm32/src/chip/stm32f427ai.rs +++ b/embassy-stm32/src/chip/stm32f427ai.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427ig.rs b/embassy-stm32/src/chip/stm32f427ig.rs index b0b4b283..9eebdc8e 100644 --- a/embassy-stm32/src/chip/stm32f427ig.rs +++ b/embassy-stm32/src/chip/stm32f427ig.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427ii.rs b/embassy-stm32/src/chip/stm32f427ii.rs index b0b4b283..9eebdc8e 100644 --- a/embassy-stm32/src/chip/stm32f427ii.rs +++ b/embassy-stm32/src/chip/stm32f427ii.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427vg.rs b/embassy-stm32/src/chip/stm32f427vg.rs index 98f5fe2b..42dd8dee 100644 --- a/embassy-stm32/src/chip/stm32f427vg.rs +++ b/embassy-stm32/src/chip/stm32f427vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427vi.rs b/embassy-stm32/src/chip/stm32f427vi.rs index 98f5fe2b..42dd8dee 100644 --- a/embassy-stm32/src/chip/stm32f427vi.rs +++ b/embassy-stm32/src/chip/stm32f427vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427zg.rs b/embassy-stm32/src/chip/stm32f427zg.rs index b0b4b283..9eebdc8e 100644 --- a/embassy-stm32/src/chip/stm32f427zg.rs +++ b/embassy-stm32/src/chip/stm32f427zg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f427zi.rs b/embassy-stm32/src/chip/stm32f427zi.rs index b0b4b283..9eebdc8e 100644 --- a/embassy-stm32/src/chip/stm32f427zi.rs +++ b/embassy-stm32/src/chip/stm32f427zi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ag.rs b/embassy-stm32/src/chip/stm32f429ag.rs index 5cdefdef..0cd1fabb 100644 --- a/embassy-stm32/src/chip/stm32f429ag.rs +++ b/embassy-stm32/src/chip/stm32f429ag.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ai.rs b/embassy-stm32/src/chip/stm32f429ai.rs index 5cdefdef..0cd1fabb 100644 --- a/embassy-stm32/src/chip/stm32f429ai.rs +++ b/embassy-stm32/src/chip/stm32f429ai.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429be.rs b/embassy-stm32/src/chip/stm32f429be.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429be.rs +++ b/embassy-stm32/src/chip/stm32f429be.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429bg.rs b/embassy-stm32/src/chip/stm32f429bg.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429bg.rs +++ b/embassy-stm32/src/chip/stm32f429bg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429bi.rs b/embassy-stm32/src/chip/stm32f429bi.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429bi.rs +++ b/embassy-stm32/src/chip/stm32f429bi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ie.rs b/embassy-stm32/src/chip/stm32f429ie.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ie.rs +++ b/embassy-stm32/src/chip/stm32f429ie.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ig.rs b/embassy-stm32/src/chip/stm32f429ig.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ig.rs +++ b/embassy-stm32/src/chip/stm32f429ig.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ii.rs b/embassy-stm32/src/chip/stm32f429ii.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ii.rs +++ b/embassy-stm32/src/chip/stm32f429ii.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ne.rs b/embassy-stm32/src/chip/stm32f429ne.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ne.rs +++ b/embassy-stm32/src/chip/stm32f429ne.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ng.rs b/embassy-stm32/src/chip/stm32f429ng.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ng.rs +++ b/embassy-stm32/src/chip/stm32f429ng.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ni.rs b/embassy-stm32/src/chip/stm32f429ni.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ni.rs +++ b/embassy-stm32/src/chip/stm32f429ni.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ve.rs b/embassy-stm32/src/chip/stm32f429ve.rs index 1b224d36..1a9a3eed 100644 --- a/embassy-stm32/src/chip/stm32f429ve.rs +++ b/embassy-stm32/src/chip/stm32f429ve.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429vg.rs b/embassy-stm32/src/chip/stm32f429vg.rs index 1b224d36..1a9a3eed 100644 --- a/embassy-stm32/src/chip/stm32f429vg.rs +++ b/embassy-stm32/src/chip/stm32f429vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429vi.rs b/embassy-stm32/src/chip/stm32f429vi.rs index 1b224d36..1a9a3eed 100644 --- a/embassy-stm32/src/chip/stm32f429vi.rs +++ b/embassy-stm32/src/chip/stm32f429vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429ze.rs b/embassy-stm32/src/chip/stm32f429ze.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429ze.rs +++ b/embassy-stm32/src/chip/stm32f429ze.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429zg.rs b/embassy-stm32/src/chip/stm32f429zg.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429zg.rs +++ b/embassy-stm32/src/chip/stm32f429zg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f429zi.rs b/embassy-stm32/src/chip/stm32f429zi.rs index 3f63fbc4..5a7ac0a6 100644 --- a/embassy-stm32/src/chip/stm32f429zi.rs +++ b/embassy-stm32/src/chip/stm32f429zi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437ai.rs b/embassy-stm32/src/chip/stm32f437ai.rs index af873cbf..6960fb24 100644 --- a/embassy-stm32/src/chip/stm32f437ai.rs +++ b/embassy-stm32/src/chip/stm32f437ai.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437ig.rs b/embassy-stm32/src/chip/stm32f437ig.rs index 5218ef78..309b14e0 100644 --- a/embassy-stm32/src/chip/stm32f437ig.rs +++ b/embassy-stm32/src/chip/stm32f437ig.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437ii.rs b/embassy-stm32/src/chip/stm32f437ii.rs index 5218ef78..309b14e0 100644 --- a/embassy-stm32/src/chip/stm32f437ii.rs +++ b/embassy-stm32/src/chip/stm32f437ii.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437vg.rs b/embassy-stm32/src/chip/stm32f437vg.rs index 38f98719..d6b80875 100644 --- a/embassy-stm32/src/chip/stm32f437vg.rs +++ b/embassy-stm32/src/chip/stm32f437vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437vi.rs b/embassy-stm32/src/chip/stm32f437vi.rs index 38f98719..d6b80875 100644 --- a/embassy-stm32/src/chip/stm32f437vi.rs +++ b/embassy-stm32/src/chip/stm32f437vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437zg.rs b/embassy-stm32/src/chip/stm32f437zg.rs index 5218ef78..309b14e0 100644 --- a/embassy-stm32/src/chip/stm32f437zg.rs +++ b/embassy-stm32/src/chip/stm32f437zg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f437zi.rs b/embassy-stm32/src/chip/stm32f437zi.rs index 5218ef78..309b14e0 100644 --- a/embassy-stm32/src/chip/stm32f437zi.rs +++ b/embassy-stm32/src/chip/stm32f437zi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439ai.rs b/embassy-stm32/src/chip/stm32f439ai.rs index 63337a98..16621b67 100644 --- a/embassy-stm32/src/chip/stm32f439ai.rs +++ b/embassy-stm32/src/chip/stm32f439ai.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439bg.rs b/embassy-stm32/src/chip/stm32f439bg.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439bg.rs +++ b/embassy-stm32/src/chip/stm32f439bg.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439bi.rs b/embassy-stm32/src/chip/stm32f439bi.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439bi.rs +++ b/embassy-stm32/src/chip/stm32f439bi.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439ig.rs b/embassy-stm32/src/chip/stm32f439ig.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439ig.rs +++ b/embassy-stm32/src/chip/stm32f439ig.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439ii.rs b/embassy-stm32/src/chip/stm32f439ii.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439ii.rs +++ b/embassy-stm32/src/chip/stm32f439ii.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439ng.rs b/embassy-stm32/src/chip/stm32f439ng.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439ng.rs +++ b/embassy-stm32/src/chip/stm32f439ng.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439ni.rs b/embassy-stm32/src/chip/stm32f439ni.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439ni.rs +++ b/embassy-stm32/src/chip/stm32f439ni.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439vg.rs b/embassy-stm32/src/chip/stm32f439vg.rs index 2512b8ee..604ae003 100644 --- a/embassy-stm32/src/chip/stm32f439vg.rs +++ b/embassy-stm32/src/chip/stm32f439vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439vi.rs b/embassy-stm32/src/chip/stm32f439vi.rs index 2512b8ee..604ae003 100644 --- a/embassy-stm32/src/chip/stm32f439vi.rs +++ b/embassy-stm32/src/chip/stm32f439vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439zg.rs b/embassy-stm32/src/chip/stm32f439zg.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439zg.rs +++ b/embassy-stm32/src/chip/stm32f439zg.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f439zi.rs b/embassy-stm32/src/chip/stm32f439zi.rs index 0407ef12..d384f3da 100644 --- a/embassy-stm32/src/chip/stm32f439zi.rs +++ b/embassy-stm32/src/chip/stm32f439zi.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ae.rs b/embassy-stm32/src/chip/stm32f469ae.rs index aa97a30a..33832098 100644 --- a/embassy-stm32/src/chip/stm32f469ae.rs +++ b/embassy-stm32/src/chip/stm32f469ae.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ag.rs b/embassy-stm32/src/chip/stm32f469ag.rs index aa97a30a..33832098 100644 --- a/embassy-stm32/src/chip/stm32f469ag.rs +++ b/embassy-stm32/src/chip/stm32f469ag.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ai.rs b/embassy-stm32/src/chip/stm32f469ai.rs index aa97a30a..33832098 100644 --- a/embassy-stm32/src/chip/stm32f469ai.rs +++ b/embassy-stm32/src/chip/stm32f469ai.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469be.rs b/embassy-stm32/src/chip/stm32f469be.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469be.rs +++ b/embassy-stm32/src/chip/stm32f469be.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469bg.rs b/embassy-stm32/src/chip/stm32f469bg.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469bg.rs +++ b/embassy-stm32/src/chip/stm32f469bg.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469bi.rs b/embassy-stm32/src/chip/stm32f469bi.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469bi.rs +++ b/embassy-stm32/src/chip/stm32f469bi.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ie.rs b/embassy-stm32/src/chip/stm32f469ie.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ie.rs +++ b/embassy-stm32/src/chip/stm32f469ie.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ig.rs b/embassy-stm32/src/chip/stm32f469ig.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ig.rs +++ b/embassy-stm32/src/chip/stm32f469ig.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ii.rs b/embassy-stm32/src/chip/stm32f469ii.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ii.rs +++ b/embassy-stm32/src/chip/stm32f469ii.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ne.rs b/embassy-stm32/src/chip/stm32f469ne.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ne.rs +++ b/embassy-stm32/src/chip/stm32f469ne.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ng.rs b/embassy-stm32/src/chip/stm32f469ng.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ng.rs +++ b/embassy-stm32/src/chip/stm32f469ng.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ni.rs b/embassy-stm32/src/chip/stm32f469ni.rs index 4a8bd043..73484061 100644 --- a/embassy-stm32/src/chip/stm32f469ni.rs +++ b/embassy-stm32/src/chip/stm32f469ni.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ve.rs b/embassy-stm32/src/chip/stm32f469ve.rs index 0b4d3e4a..f11c35a0 100644 --- a/embassy-stm32/src/chip/stm32f469ve.rs +++ b/embassy-stm32/src/chip/stm32f469ve.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469vg.rs b/embassy-stm32/src/chip/stm32f469vg.rs index 0b4d3e4a..f11c35a0 100644 --- a/embassy-stm32/src/chip/stm32f469vg.rs +++ b/embassy-stm32/src/chip/stm32f469vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469vi.rs b/embassy-stm32/src/chip/stm32f469vi.rs index 0b4d3e4a..f11c35a0 100644 --- a/embassy-stm32/src/chip/stm32f469vi.rs +++ b/embassy-stm32/src/chip/stm32f469vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469ze.rs b/embassy-stm32/src/chip/stm32f469ze.rs index 4d29c786..8c8d412b 100644 --- a/embassy-stm32/src/chip/stm32f469ze.rs +++ b/embassy-stm32/src/chip/stm32f469ze.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469zg.rs b/embassy-stm32/src/chip/stm32f469zg.rs index 4d29c786..8c8d412b 100644 --- a/embassy-stm32/src/chip/stm32f469zg.rs +++ b/embassy-stm32/src/chip/stm32f469zg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f469zi.rs b/embassy-stm32/src/chip/stm32f469zi.rs index 4d29c786..8c8d412b 100644 --- a/embassy-stm32/src/chip/stm32f469zi.rs +++ b/embassy-stm32/src/chip/stm32f469zi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ag.rs b/embassy-stm32/src/chip/stm32f479ag.rs index 822202a9..89b9e538 100644 --- a/embassy-stm32/src/chip/stm32f479ag.rs +++ b/embassy-stm32/src/chip/stm32f479ag.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ai.rs b/embassy-stm32/src/chip/stm32f479ai.rs index 822202a9..89b9e538 100644 --- a/embassy-stm32/src/chip/stm32f479ai.rs +++ b/embassy-stm32/src/chip/stm32f479ai.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479bg.rs b/embassy-stm32/src/chip/stm32f479bg.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479bg.rs +++ b/embassy-stm32/src/chip/stm32f479bg.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479bi.rs b/embassy-stm32/src/chip/stm32f479bi.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479bi.rs +++ b/embassy-stm32/src/chip/stm32f479bi.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ig.rs b/embassy-stm32/src/chip/stm32f479ig.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479ig.rs +++ b/embassy-stm32/src/chip/stm32f479ig.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ii.rs b/embassy-stm32/src/chip/stm32f479ii.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479ii.rs +++ b/embassy-stm32/src/chip/stm32f479ii.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ng.rs b/embassy-stm32/src/chip/stm32f479ng.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479ng.rs +++ b/embassy-stm32/src/chip/stm32f479ng.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479ni.rs b/embassy-stm32/src/chip/stm32f479ni.rs index 6382e7ea..55b7542b 100644 --- a/embassy-stm32/src/chip/stm32f479ni.rs +++ b/embassy-stm32/src/chip/stm32f479ni.rs @@ -195,6 +195,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479vg.rs b/embassy-stm32/src/chip/stm32f479vg.rs index a5b4713d..365bd1ed 100644 --- a/embassy-stm32/src/chip/stm32f479vg.rs +++ b/embassy-stm32/src/chip/stm32f479vg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479vi.rs b/embassy-stm32/src/chip/stm32f479vi.rs index a5b4713d..365bd1ed 100644 --- a/embassy-stm32/src/chip/stm32f479vi.rs +++ b/embassy-stm32/src/chip/stm32f479vi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479zg.rs b/embassy-stm32/src/chip/stm32f479zg.rs index bcf63a60..2bebe947 100644 --- a/embassy-stm32/src/chip/stm32f479zg.rs +++ b/embassy-stm32/src/chip/stm32f479zg.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32f479zi.rs b/embassy-stm32/src/chip/stm32f479zi.rs index bcf63a60..2bebe947 100644 --- a/embassy-stm32/src/chip/stm32f479zi.rs +++ b/embassy-stm32/src/chip/stm32f479zi.rs @@ -194,6 +194,7 @@ impl_gpio_pin!(PK12, 10, 12, EXTI12); impl_gpio_pin!(PK13, 10, 13, EXTI13); impl_gpio_pin!(PK14, 10, 14, EXTI14); impl_gpio_pin!(PK15, 10, 15, EXTI15); +impl_rng!(0x50060800); impl_usart!(USART1, 0x40011000); impl_usart_pin!(USART1, RxPin, PA10, 7); impl_usart_pin!(USART1, CtsPin, PA11, 7); diff --git a/embassy-stm32/src/chip/stm32l412c8.rs b/embassy-stm32/src/chip/stm32l412c8.rs new file mode 100644 index 00000000..c20a8a60 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412c8.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412cb.rs b/embassy-stm32/src/chip/stm32l412cb.rs new file mode 100644 index 00000000..c20a8a60 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412cb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412k8.rs b/embassy-stm32/src/chip/stm32l412k8.rs new file mode 100644 index 00000000..c12d91a6 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412k8.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1, + SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412kb.rs b/embassy-stm32/src/chip/stm32l412kb.rs new file mode 100644 index 00000000..c12d91a6 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412kb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1, + SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412r8.rs b/embassy-stm32/src/chip/stm32l412r8.rs new file mode 100644 index 00000000..c20a8a60 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412r8.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412rb.rs b/embassy-stm32/src/chip/stm32l412rb.rs new file mode 100644 index 00000000..c20a8a60 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412rb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412t8.rs b/embassy-stm32/src/chip/stm32l412t8.rs new file mode 100644 index 00000000..c12d91a6 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412t8.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1, + SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l412tb.rs b/embassy-stm32/src/chip/stm32l412tb.rs new file mode 100644 index 00000000..c12d91a6 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l412tb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, + PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, + PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, + PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, PD12, + PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SPI1, + SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l422cb.rs b/embassy-stm32/src/chip/stm32l422cb.rs new file mode 100644 index 00000000..f3734f94 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l422cb.rs @@ -0,0 +1,95 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, + PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l422kb.rs b/embassy-stm32/src/chip/stm32l422kb.rs new file mode 100644 index 00000000..634db7aa --- /dev/null +++ b/embassy-stm32/src/chip/stm32l422kb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, + PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l422rb.rs b/embassy-stm32/src/chip/stm32l422rb.rs new file mode 100644 index 00000000..f3734f94 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l422rb.rs @@ -0,0 +1,95 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, + PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SPI1, SPI2, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USART3, USB, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l422tb.rs b/embassy-stm32/src/chip/stm32l422tb.rs new file mode 100644 index 00000000..634db7aa --- /dev/null +++ b/embassy-stm32/src/chip/stm32l422tb.rs @@ -0,0 +1,94 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, COMP1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, + PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SPI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TSC, USART1, USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431cb.rs b/embassy-stm32/src/chip/stm32l431cb.rs new file mode 100644 index 00000000..fb418c2a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431cb.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431cc.rs b/embassy-stm32/src/chip/stm32l431cc.rs new file mode 100644 index 00000000..fb418c2a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431cc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431kb.rs b/embassy-stm32/src/chip/stm32l431kb.rs new file mode 100644 index 00000000..3959d498 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431kb.rs @@ -0,0 +1,111 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SAI1, + SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, USART2, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431kc.rs b/embassy-stm32/src/chip/stm32l431kc.rs new file mode 100644 index 00000000..3959d498 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431kc.rs @@ -0,0 +1,111 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, SAI1, + SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, USART2, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431rb.rs b/embassy-stm32/src/chip/stm32l431rb.rs new file mode 100644 index 00000000..9c26d500 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431rb.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431rc.rs b/embassy-stm32/src/chip/stm32l431rc.rs new file mode 100644 index 00000000..9c26d500 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431rc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l431vc.rs b/embassy-stm32/src/chip/stm32l431vc.rs new file mode 100644 index 00000000..9c26d500 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l431vc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, RTC, + SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l432kb.rs b/embassy-stm32/src/chip/stm32l432kb.rs new file mode 100644 index 00000000..36b8571c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l432kb.rs @@ -0,0 +1,78 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l432kc.rs b/embassy-stm32/src/chip/stm32l432kc.rs new file mode 100644 index 00000000..36b8571c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l432kc.rs @@ -0,0 +1,78 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l433cb.rs b/embassy-stm32/src/chip/stm32l433cb.rs new file mode 100644 index 00000000..80e01da5 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l433cb.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l433cc.rs b/embassy-stm32/src/chip/stm32l433cc.rs new file mode 100644 index 00000000..80e01da5 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l433cc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l433rb.rs b/embassy-stm32/src/chip/stm32l433rb.rs new file mode 100644 index 00000000..a61a3c53 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l433rb.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l433rc.rs b/embassy-stm32/src/chip/stm32l433rc.rs new file mode 100644 index 00000000..a61a3c53 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l433rc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l433vc.rs b/embassy-stm32/src/chip/stm32l433vc.rs new file mode 100644 index 00000000..a61a3c53 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l433vc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l442kc.rs b/embassy-stm32/src/chip/stm32l442kc.rs new file mode 100644 index 00000000..331d152f --- /dev/null +++ b/embassy-stm32/src/chip/stm32l442kc.rs @@ -0,0 +1,78 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, + PH11, PH12, PH13, PH14, PH15, I2C1, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SPI1, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, USART1, + USART2, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l443cc.rs b/embassy-stm32/src/chip/stm32l443cc.rs new file mode 100644 index 00000000..10d538ae --- /dev/null +++ b/embassy-stm32/src/chip/stm32l443cc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, TSC, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l443rc.rs b/embassy-stm32/src/chip/stm32l443rc.rs new file mode 100644 index 00000000..4842bf0f --- /dev/null +++ b/embassy-stm32/src/chip/stm32l443rc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, + TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l443vc.rs b/embassy-stm32/src/chip/stm32l443vc.rs new file mode 100644 index 00000000..4842bf0f --- /dev/null +++ b/embassy-stm32/src/chip/stm32l443vc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM6, TIM7, + TSC, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451cc.rs b/embassy-stm32/src/chip/stm32l451cc.rs new file mode 100644 index 00000000..59132f49 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451cc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1, + USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451ce.rs b/embassy-stm32/src/chip/stm32l451ce.rs new file mode 100644 index 00000000..59132f49 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451ce.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1, + USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451rc.rs b/embassy-stm32/src/chip/stm32l451rc.rs new file mode 100644 index 00000000..af1f601c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451rc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451re.rs b/embassy-stm32/src/chip/stm32l451re.rs new file mode 100644 index 00000000..af1f601c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451re.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451vc.rs b/embassy-stm32/src/chip/stm32l451vc.rs new file mode 100644 index 00000000..af1f601c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451vc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l451ve.rs b/embassy-stm32/src/chip/stm32l451ve.rs new file mode 100644 index 00000000..af1f601c --- /dev/null +++ b/embassy-stm32/src/chip/stm32l451ve.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452cc.rs b/embassy-stm32/src/chip/stm32l452cc.rs new file mode 100644 index 00000000..9c348ae4 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452cc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1, + USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452ce.rs b/embassy-stm32/src/chip/stm32l452ce.rs new file mode 100644 index 00000000..9c348ae4 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452ce.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, USART1, + USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452rc.rs b/embassy-stm32/src/chip/stm32l452rc.rs new file mode 100644 index 00000000..5b23cead --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452rc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452re.rs b/embassy-stm32/src/chip/stm32l452re.rs new file mode 100644 index 00000000..5b23cead --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452re.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452vc.rs b/embassy-stm32/src/chip/stm32l452vc.rs new file mode 100644 index 00000000..5b23cead --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452vc.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l452ve.rs b/embassy-stm32/src/chip/stm32l452ve.rs new file mode 100644 index 00000000..5b23cead --- /dev/null +++ b/embassy-stm32/src/chip/stm32l452ve.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, + PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, + PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, PC10, + PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, PD11, + PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, PE12, + PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, RNG, + RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l462ce.rs b/embassy-stm32/src/chip/stm32l462ce.rs new file mode 100644 index 00000000..2b8be542 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l462ce.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, UART4, + USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l462re.rs b/embassy-stm32/src/chip/stm32l462re.rs new file mode 100644 index 00000000..40dbb9a0 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l462re.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, + UART4, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l462ve.rs b/embassy-stm32/src/chip/stm32l462ve.rs new file mode 100644 index 00000000..40dbb9a0 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l462ve.rs @@ -0,0 +1,112 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, PA5, PA6, + PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, PB7, PB8, + PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, PC9, + PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, PD10, + PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, PE11, + PE12, PE13, PE14, PE15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, QUADSPI, RCC, + RNG, RTC, SAI1, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM2, TIM3, TIM6, TSC, + UART4, USART1, USART2, USART3, USB, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471qe.rs b/embassy-stm32/src/chip/stm32l471qe.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471qe.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471qg.rs b/embassy-stm32/src/chip/stm32l471qg.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471qg.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471re.rs b/embassy-stm32/src/chip/stm32l471re.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471re.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471rg.rs b/embassy-stm32/src/chip/stm32l471rg.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471rg.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471ve.rs b/embassy-stm32/src/chip/stm32l471ve.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471ve.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471vg.rs b/embassy-stm32/src/chip/stm32l471vg.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471vg.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471ze.rs b/embassy-stm32/src/chip/stm32l471ze.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471ze.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l471zg.rs b/embassy-stm32/src/chip/stm32l471zg.rs new file mode 100644 index 00000000..937127de --- /dev/null +++ b/embassy-stm32/src/chip/stm32l471zg.rs @@ -0,0 +1,146 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475rc.rs b/embassy-stm32/src/chip/stm32l475rc.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475rc.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475re.rs b/embassy-stm32/src/chip/stm32l475re.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475re.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475rg.rs b/embassy-stm32/src/chip/stm32l475rg.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475rg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475vc.rs b/embassy-stm32/src/chip/stm32l475vc.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475vc.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475ve.rs b/embassy-stm32/src/chip/stm32l475ve.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475ve.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l475vg.rs b/embassy-stm32/src/chip/stm32l475vg.rs new file mode 100644 index 00000000..774df143 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l475vg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476je.rs b/embassy-stm32/src/chip/stm32l476je.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476je.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476jg.rs b/embassy-stm32/src/chip/stm32l476jg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476jg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476me.rs b/embassy-stm32/src/chip/stm32l476me.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476me.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476mg.rs b/embassy-stm32/src/chip/stm32l476mg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476mg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476qe.rs b/embassy-stm32/src/chip/stm32l476qe.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476qe.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476qg.rs b/embassy-stm32/src/chip/stm32l476qg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476qg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476rc.rs b/embassy-stm32/src/chip/stm32l476rc.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476rc.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476re.rs b/embassy-stm32/src/chip/stm32l476re.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476re.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476rg.rs b/embassy-stm32/src/chip/stm32l476rg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476rg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476vc.rs b/embassy-stm32/src/chip/stm32l476vc.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476vc.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476ve.rs b/embassy-stm32/src/chip/stm32l476ve.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476ve.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476vg.rs b/embassy-stm32/src/chip/stm32l476vg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476vg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476ze.rs b/embassy-stm32/src/chip/stm32l476ze.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476ze.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l476zg.rs b/embassy-stm32/src/chip/stm32l476zg.rs new file mode 100644 index 00000000..ce07466a --- /dev/null +++ b/embassy-stm32/src/chip/stm32l476zg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l485jc.rs b/embassy-stm32/src/chip/stm32l485jc.rs new file mode 100644 index 00000000..77b2e512 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l485jc.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l485je.rs b/embassy-stm32/src/chip/stm32l485je.rs new file mode 100644 index 00000000..77b2e512 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l485je.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, RNG, + RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, + TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, + WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l486jg.rs b/embassy-stm32/src/chip/stm32l486jg.rs new file mode 100644 index 00000000..e6b55967 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l486jg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l486qg.rs b/embassy-stm32/src/chip/stm32l486qg.rs new file mode 100644 index 00000000..e6b55967 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l486qg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l486rg.rs b/embassy-stm32/src/chip/stm32l486rg.rs new file mode 100644 index 00000000..e6b55967 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l486rg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l486vg.rs b/embassy-stm32/src/chip/stm32l486vg.rs new file mode 100644 index 00000000..e6b55967 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l486vg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l486zg.rs b/embassy-stm32/src/chip/stm32l486zg.rs new file mode 100644 index 00000000..e6b55967 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l486zg.rs @@ -0,0 +1,147 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, COMP1, COMP2, DAC1, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, I2C1, I2C2, I2C3, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, QUADSPI, RCC, + RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, TIM16, TIM17, + TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, USART3, + USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496ae.rs b/embassy-stm32/src/chip/stm32l496ae.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496ae.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496ag.rs b/embassy-stm32/src/chip/stm32l496ag.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496qe.rs b/embassy-stm32/src/chip/stm32l496qe.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496qe.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496qg.rs b/embassy-stm32/src/chip/stm32l496qg.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496qg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496re.rs b/embassy-stm32/src/chip/stm32l496re.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496re.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496rg.rs b/embassy-stm32/src/chip/stm32l496rg.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496rg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496ve.rs b/embassy-stm32/src/chip/stm32l496ve.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496ve.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496vg.rs b/embassy-stm32/src/chip/stm32l496vg.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496wg.rs b/embassy-stm32/src/chip/stm32l496wg.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496wg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496ze.rs b/embassy-stm32/src/chip/stm32l496ze.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496ze.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l496zg.rs b/embassy-stm32/src/chip/stm32l496zg.rs new file mode 100644 index 00000000..5200ecd8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l496zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, + PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, + PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, + PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, + PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, + PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, OPAMP2, + QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4a6ag.rs b/embassy-stm32/src/chip/stm32l4a6ag.rs new file mode 100644 index 00000000..d758caee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4a6ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, + PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, + PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, + PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, + PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, + PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, + OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4a6qg.rs b/embassy-stm32/src/chip/stm32l4a6qg.rs new file mode 100644 index 00000000..d758caee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4a6qg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, + PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, + PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, + PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, + PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, + PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, + OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4a6rg.rs b/embassy-stm32/src/chip/stm32l4a6rg.rs new file mode 100644 index 00000000..d758caee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4a6rg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, + PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, + PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, + PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, + PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, + PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, + OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4a6vg.rs b/embassy-stm32/src/chip/stm32l4a6vg.rs new file mode 100644 index 00000000..d758caee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4a6vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, + PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, + PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, + PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, + PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, + PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, + OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4a6zg.rs b/embassy-stm32/src/chip/stm32l4a6zg.rs new file mode 100644 index 00000000..d758caee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4a6zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, ADC3, AES, CAN1, CAN2, COMP1, COMP2, DAC1, DCMI, DMA2D, + PA0, PA1, PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, + PB2, PB3, PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, + PC4, PC5, PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, + PD6, PD7, PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, + PE8, PE9, PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, + PF10, PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, + PG11, PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, + PH12, PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, + PI13, PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LCD, LPTIM1, LPTIM2, LPUART1, OPAMP1, + OPAMP2, QUADSPI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SWPMI1, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5ae.rs b/embassy-stm32/src/chip/stm32l4p5ae.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5ae.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5ag.rs b/embassy-stm32/src/chip/stm32l4p5ag.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5ce.rs b/embassy-stm32/src/chip/stm32l4p5ce.rs new file mode 100644 index 00000000..f0ddb6b8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5ce.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5cg.rs b/embassy-stm32/src/chip/stm32l4p5cg.rs new file mode 100644 index 00000000..f0ddb6b8 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5cg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5qe.rs b/embassy-stm32/src/chip/stm32l4p5qe.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5qe.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5qg.rs b/embassy-stm32/src/chip/stm32l4p5qg.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5qg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5re.rs b/embassy-stm32/src/chip/stm32l4p5re.rs new file mode 100644 index 00000000..2c9823ee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5re.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5rg.rs b/embassy-stm32/src/chip/stm32l4p5rg.rs new file mode 100644 index 00000000..2c9823ee --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5rg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5ve.rs b/embassy-stm32/src/chip/stm32l4p5ve.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5ve.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5vg.rs b/embassy-stm32/src/chip/stm32l4p5vg.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5ze.rs b/embassy-stm32/src/chip/stm32l4p5ze.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5ze.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4p5zg.rs b/embassy-stm32/src/chip/stm32l4p5zg.rs new file mode 100644 index 00000000..6d2a2591 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4p5zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5ag.rs b/embassy-stm32/src/chip/stm32l4q5ag.rs new file mode 100644 index 00000000..295c68f1 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, + SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, + UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5cg.rs b/embassy-stm32/src/chip/stm32l4q5cg.rs new file mode 100644 index 00000000..1ae24843 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5cg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, PKA, RCC, RNG, RTC, SAI1, SAI2, SDMMC2, SPI1, SPI2, SPI3, SYSCFG, + TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5qg.rs b/embassy-stm32/src/chip/stm32l4q5qg.rs new file mode 100644 index 00000000..295c68f1 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5qg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, + SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, + UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5rg.rs b/embassy-stm32/src/chip/stm32l4q5rg.rs new file mode 100644 index 00000000..716f8233 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5rg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, + SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, + UART4, USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5vg.rs b/embassy-stm32/src/chip/stm32l4q5vg.rs new file mode 100644 index 00000000..295c68f1 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, + SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, + UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4q5zg.rs b/embassy-stm32/src/chip/stm32l4q5zg.rs new file mode 100644 index 00000000..295c68f1 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4q5zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, ADC2, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, PKA, PSSI, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SDMMC2, SPI1, + SPI2, SPI3, SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, + UART4, UART5, USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5ag.rs b/embassy-stm32/src/chip/stm32l4r5ag.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5ai.rs b/embassy-stm32/src/chip/stm32l4r5ai.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5qg.rs b/embassy-stm32/src/chip/stm32l4r5qg.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5qg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5qi.rs b/embassy-stm32/src/chip/stm32l4r5qi.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5qi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5vg.rs b/embassy-stm32/src/chip/stm32l4r5vg.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5vi.rs b/embassy-stm32/src/chip/stm32l4r5vi.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5zg.rs b/embassy-stm32/src/chip/stm32l4r5zg.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r5zi.rs b/embassy-stm32/src/chip/stm32l4r5zi.rs new file mode 100644 index 00000000..d8b9445b --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r5zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, PA4, + PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, PB6, + PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, PC8, + PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, OCTOSPIM, + OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, TIM15, + TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, USART2, + USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r7ai.rs b/embassy-stm32/src/chip/stm32l4r7ai.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r7ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r7vi.rs b/embassy-stm32/src/chip/stm32l4r7vi.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r7vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r7zi.rs b/embassy-stm32/src/chip/stm32l4r7zi.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r7zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9ag.rs b/embassy-stm32/src/chip/stm32l4r9ag.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9ag.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9ai.rs b/embassy-stm32/src/chip/stm32l4r9ai.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9vg.rs b/embassy-stm32/src/chip/stm32l4r9vg.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9vg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9vi.rs b/embassy-stm32/src/chip/stm32l4r9vi.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9zg.rs b/embassy-stm32/src/chip/stm32l4r9zg.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9zg.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4r9zi.rs b/embassy-stm32/src/chip/stm32l4r9zi.rs new file mode 100644 index 00000000..d0f3be66 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4r9zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, PA2, + PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, + PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, + PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, + PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s5ai.rs b/embassy-stm32/src/chip/stm32l4s5ai.rs new file mode 100644 index 00000000..88d4b7bc --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s5ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s5qi.rs b/embassy-stm32/src/chip/stm32l4s5qi.rs new file mode 100644 index 00000000..88d4b7bc --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s5qi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s5vi.rs b/embassy-stm32/src/chip/stm32l4s5vi.rs new file mode 100644 index 00000000..88d4b7bc --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s5vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s5zi.rs b/embassy-stm32/src/chip/stm32l4s5zi.rs new file mode 100644 index 00000000..88d4b7bc --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s5zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, PA0, PA1, PA2, PA3, + PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, PB4, PB5, + PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, PC6, PC7, + PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, PD8, PD9, + PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, PE10, + PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, PF11, + PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, PG12, + PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, PH13, + PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, PI14, + PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, OCTOSPI1, OCTOSPI2, + OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, SYSCFG, TIM1, + TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, USART1, + USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s7ai.rs b/embassy-stm32/src/chip/stm32l4s7ai.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s7ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s7vi.rs b/embassy-stm32/src/chip/stm32l4s7vi.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s7vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s7zi.rs b/embassy-stm32/src/chip/stm32l4s7zi.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s7zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s9ai.rs b/embassy-stm32/src/chip/stm32l4s9ai.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s9ai.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s9vi.rs b/embassy-stm32/src/chip/stm32l4s9vi.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s9vi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/chip/stm32l4s9zi.rs b/embassy-stm32/src/chip/stm32l4s9zi.rs new file mode 100644 index 00000000..bae37514 --- /dev/null +++ b/embassy-stm32/src/chip/stm32l4s9zi.rs @@ -0,0 +1,164 @@ +use embassy_extras::peripherals; +peripherals!( + EXTI0, EXTI1, EXTI2, EXTI3, EXTI4, EXTI5, EXTI6, EXTI7, EXTI8, EXTI9, EXTI10, EXTI11, EXTI12, + EXTI13, EXTI14, EXTI15, ADC1, AES, CAN1, COMP1, COMP2, DAC1, DCMI, DMA2D, GFXMMU, PA0, PA1, + PA2, PA3, PA4, PA5, PA6, PA7, PA8, PA9, PA10, PA11, PA12, PA13, PA14, PA15, PB0, PB1, PB2, PB3, + PB4, PB5, PB6, PB7, PB8, PB9, PB10, PB11, PB12, PB13, PB14, PB15, PC0, PC1, PC2, PC3, PC4, PC5, + PC6, PC7, PC8, PC9, PC10, PC11, PC12, PC13, PC14, PC15, PD0, PD1, PD2, PD3, PD4, PD5, PD6, PD7, + PD8, PD9, PD10, PD11, PD12, PD13, PD14, PD15, PE0, PE1, PE2, PE3, PE4, PE5, PE6, PE7, PE8, PE9, + PE10, PE11, PE12, PE13, PE14, PE15, PF0, PF1, PF2, PF3, PF4, PF5, PF6, PF7, PF8, PF9, PF10, + PF11, PF12, PF13, PF14, PF15, PG0, PG1, PG2, PG3, PG4, PG5, PG6, PG7, PG8, PG9, PG10, PG11, + PG12, PG13, PG14, PG15, PH0, PH1, PH2, PH3, PH4, PH5, PH6, PH7, PH8, PH9, PH10, PH11, PH12, + PH13, PH14, PH15, PI0, PI1, PI2, PI3, PI4, PI5, PI6, PI7, PI8, PI9, PI10, PI11, PI12, PI13, + PI14, PI15, HASH, I2C1, I2C2, I2C3, I2C4, IWDG, LPTIM1, LPTIM2, LPUART1, LTDC, OCTOSPI1, + OCTOSPI2, OCTOSPIM, OPAMP1, OPAMP2, RCC, RNG, RTC, SAI1, SAI2, SDMMC1, SPI1, SPI2, SPI3, + SYSCFG, TIM1, TIM15, TIM16, TIM17, TIM2, TIM3, TIM4, TIM5, TIM6, TIM7, TIM8, TSC, UART4, UART5, + USART1, USART2, USART3, USB_OTG_FS, WWDG +); +pub const GPIO_BASE: usize = 0x48000000; +pub const GPIO_STRIDE: usize = 0x400; +impl_gpio_pin!(PA0, 0, 0, EXTI0); +impl_gpio_pin!(PA1, 0, 1, EXTI1); +impl_gpio_pin!(PA2, 0, 2, EXTI2); +impl_gpio_pin!(PA3, 0, 3, EXTI3); +impl_gpio_pin!(PA4, 0, 4, EXTI4); +impl_gpio_pin!(PA5, 0, 5, EXTI5); +impl_gpio_pin!(PA6, 0, 6, EXTI6); +impl_gpio_pin!(PA7, 0, 7, EXTI7); +impl_gpio_pin!(PA8, 0, 8, EXTI8); +impl_gpio_pin!(PA9, 0, 9, EXTI9); +impl_gpio_pin!(PA10, 0, 10, EXTI10); +impl_gpio_pin!(PA11, 0, 11, EXTI11); +impl_gpio_pin!(PA12, 0, 12, EXTI12); +impl_gpio_pin!(PA13, 0, 13, EXTI13); +impl_gpio_pin!(PA14, 0, 14, EXTI14); +impl_gpio_pin!(PA15, 0, 15, EXTI15); +impl_gpio_pin!(PB0, 1, 0, EXTI0); +impl_gpio_pin!(PB1, 1, 1, EXTI1); +impl_gpio_pin!(PB2, 1, 2, EXTI2); +impl_gpio_pin!(PB3, 1, 3, EXTI3); +impl_gpio_pin!(PB4, 1, 4, EXTI4); +impl_gpio_pin!(PB5, 1, 5, EXTI5); +impl_gpio_pin!(PB6, 1, 6, EXTI6); +impl_gpio_pin!(PB7, 1, 7, EXTI7); +impl_gpio_pin!(PB8, 1, 8, EXTI8); +impl_gpio_pin!(PB9, 1, 9, EXTI9); +impl_gpio_pin!(PB10, 1, 10, EXTI10); +impl_gpio_pin!(PB11, 1, 11, EXTI11); +impl_gpio_pin!(PB12, 1, 12, EXTI12); +impl_gpio_pin!(PB13, 1, 13, EXTI13); +impl_gpio_pin!(PB14, 1, 14, EXTI14); +impl_gpio_pin!(PB15, 1, 15, EXTI15); +impl_gpio_pin!(PC0, 2, 0, EXTI0); +impl_gpio_pin!(PC1, 2, 1, EXTI1); +impl_gpio_pin!(PC2, 2, 2, EXTI2); +impl_gpio_pin!(PC3, 2, 3, EXTI3); +impl_gpio_pin!(PC4, 2, 4, EXTI4); +impl_gpio_pin!(PC5, 2, 5, EXTI5); +impl_gpio_pin!(PC6, 2, 6, EXTI6); +impl_gpio_pin!(PC7, 2, 7, EXTI7); +impl_gpio_pin!(PC8, 2, 8, EXTI8); +impl_gpio_pin!(PC9, 2, 9, EXTI9); +impl_gpio_pin!(PC10, 2, 10, EXTI10); +impl_gpio_pin!(PC11, 2, 11, EXTI11); +impl_gpio_pin!(PC12, 2, 12, EXTI12); +impl_gpio_pin!(PC13, 2, 13, EXTI13); +impl_gpio_pin!(PC14, 2, 14, EXTI14); +impl_gpio_pin!(PC15, 2, 15, EXTI15); +impl_gpio_pin!(PD0, 3, 0, EXTI0); +impl_gpio_pin!(PD1, 3, 1, EXTI1); +impl_gpio_pin!(PD2, 3, 2, EXTI2); +impl_gpio_pin!(PD3, 3, 3, EXTI3); +impl_gpio_pin!(PD4, 3, 4, EXTI4); +impl_gpio_pin!(PD5, 3, 5, EXTI5); +impl_gpio_pin!(PD6, 3, 6, EXTI6); +impl_gpio_pin!(PD7, 3, 7, EXTI7); +impl_gpio_pin!(PD8, 3, 8, EXTI8); +impl_gpio_pin!(PD9, 3, 9, EXTI9); +impl_gpio_pin!(PD10, 3, 10, EXTI10); +impl_gpio_pin!(PD11, 3, 11, EXTI11); +impl_gpio_pin!(PD12, 3, 12, EXTI12); +impl_gpio_pin!(PD13, 3, 13, EXTI13); +impl_gpio_pin!(PD14, 3, 14, EXTI14); +impl_gpio_pin!(PD15, 3, 15, EXTI15); +impl_gpio_pin!(PE0, 4, 0, EXTI0); +impl_gpio_pin!(PE1, 4, 1, EXTI1); +impl_gpio_pin!(PE2, 4, 2, EXTI2); +impl_gpio_pin!(PE3, 4, 3, EXTI3); +impl_gpio_pin!(PE4, 4, 4, EXTI4); +impl_gpio_pin!(PE5, 4, 5, EXTI5); +impl_gpio_pin!(PE6, 4, 6, EXTI6); +impl_gpio_pin!(PE7, 4, 7, EXTI7); +impl_gpio_pin!(PE8, 4, 8, EXTI8); +impl_gpio_pin!(PE9, 4, 9, EXTI9); +impl_gpio_pin!(PE10, 4, 10, EXTI10); +impl_gpio_pin!(PE11, 4, 11, EXTI11); +impl_gpio_pin!(PE12, 4, 12, EXTI12); +impl_gpio_pin!(PE13, 4, 13, EXTI13); +impl_gpio_pin!(PE14, 4, 14, EXTI14); +impl_gpio_pin!(PE15, 4, 15, EXTI15); +impl_gpio_pin!(PF0, 5, 0, EXTI0); +impl_gpio_pin!(PF1, 5, 1, EXTI1); +impl_gpio_pin!(PF2, 5, 2, EXTI2); +impl_gpio_pin!(PF3, 5, 3, EXTI3); +impl_gpio_pin!(PF4, 5, 4, EXTI4); +impl_gpio_pin!(PF5, 5, 5, EXTI5); +impl_gpio_pin!(PF6, 5, 6, EXTI6); +impl_gpio_pin!(PF7, 5, 7, EXTI7); +impl_gpio_pin!(PF8, 5, 8, EXTI8); +impl_gpio_pin!(PF9, 5, 9, EXTI9); +impl_gpio_pin!(PF10, 5, 10, EXTI10); +impl_gpio_pin!(PF11, 5, 11, EXTI11); +impl_gpio_pin!(PF12, 5, 12, EXTI12); +impl_gpio_pin!(PF13, 5, 13, EXTI13); +impl_gpio_pin!(PF14, 5, 14, EXTI14); +impl_gpio_pin!(PF15, 5, 15, EXTI15); +impl_gpio_pin!(PG0, 6, 0, EXTI0); +impl_gpio_pin!(PG1, 6, 1, EXTI1); +impl_gpio_pin!(PG2, 6, 2, EXTI2); +impl_gpio_pin!(PG3, 6, 3, EXTI3); +impl_gpio_pin!(PG4, 6, 4, EXTI4); +impl_gpio_pin!(PG5, 6, 5, EXTI5); +impl_gpio_pin!(PG6, 6, 6, EXTI6); +impl_gpio_pin!(PG7, 6, 7, EXTI7); +impl_gpio_pin!(PG8, 6, 8, EXTI8); +impl_gpio_pin!(PG9, 6, 9, EXTI9); +impl_gpio_pin!(PG10, 6, 10, EXTI10); +impl_gpio_pin!(PG11, 6, 11, EXTI11); +impl_gpio_pin!(PG12, 6, 12, EXTI12); +impl_gpio_pin!(PG13, 6, 13, EXTI13); +impl_gpio_pin!(PG14, 6, 14, EXTI14); +impl_gpio_pin!(PG15, 6, 15, EXTI15); +impl_gpio_pin!(PH0, 7, 0, EXTI0); +impl_gpio_pin!(PH1, 7, 1, EXTI1); +impl_gpio_pin!(PH2, 7, 2, EXTI2); +impl_gpio_pin!(PH3, 7, 3, EXTI3); +impl_gpio_pin!(PH4, 7, 4, EXTI4); +impl_gpio_pin!(PH5, 7, 5, EXTI5); +impl_gpio_pin!(PH6, 7, 6, EXTI6); +impl_gpio_pin!(PH7, 7, 7, EXTI7); +impl_gpio_pin!(PH8, 7, 8, EXTI8); +impl_gpio_pin!(PH9, 7, 9, EXTI9); +impl_gpio_pin!(PH10, 7, 10, EXTI10); +impl_gpio_pin!(PH11, 7, 11, EXTI11); +impl_gpio_pin!(PH12, 7, 12, EXTI12); +impl_gpio_pin!(PH13, 7, 13, EXTI13); +impl_gpio_pin!(PH14, 7, 14, EXTI14); +impl_gpio_pin!(PH15, 7, 15, EXTI15); +impl_gpio_pin!(PI0, 8, 0, EXTI0); +impl_gpio_pin!(PI1, 8, 1, EXTI1); +impl_gpio_pin!(PI2, 8, 2, EXTI2); +impl_gpio_pin!(PI3, 8, 3, EXTI3); +impl_gpio_pin!(PI4, 8, 4, EXTI4); +impl_gpio_pin!(PI5, 8, 5, EXTI5); +impl_gpio_pin!(PI6, 8, 6, EXTI6); +impl_gpio_pin!(PI7, 8, 7, EXTI7); +impl_gpio_pin!(PI8, 8, 8, EXTI8); +impl_gpio_pin!(PI9, 8, 9, EXTI9); +impl_gpio_pin!(PI10, 8, 10, EXTI10); +impl_gpio_pin!(PI11, 8, 11, EXTI11); +impl_gpio_pin!(PI12, 8, 12, EXTI12); +impl_gpio_pin!(PI13, 8, 13, EXTI13); +impl_gpio_pin!(PI14, 8, 14, EXTI14); +impl_gpio_pin!(PI15, 8, 15, EXTI15); +impl_rng!(0x50060800); diff --git a/embassy-stm32/src/lib.rs b/embassy-stm32/src/lib.rs index 909d3466..6d34a616 100644 --- a/embassy-stm32/src/lib.rs +++ b/embassy-stm32/src/lib.rs @@ -20,6 +20,9 @@ pub mod gpio; #[macro_use] pub mod usart; +#[macro_use] +pub mod rng; + // This must go LAST so that it sees the `impl_foo!` macros mod chip; pub use chip::{peripherals, Peripherals}; diff --git a/embassy-stm32/src/rng.rs b/embassy-stm32/src/rng.rs new file mode 100644 index 00000000..a618bd09 --- /dev/null +++ b/embassy-stm32/src/rng.rs @@ -0,0 +1,54 @@ +use crate::pac::rng_v1::{regs, Rng}; +use crate::peripherals; +use embassy::util::Unborrow; +use embassy_extras::unborrow; + +pub struct Random { + inner: T, +} + +impl Random { + pub fn new(inner: impl Unborrow) -> Self { + unborrow!(inner); + Self { + inner, + } + } +} + +use embassy::traits::rng::Rng as RngTrait; +use core::future::Future; +use core::marker::PhantomData; + +impl RngTrait for Random { + type Error = (); + type RngFuture<'a> where Self: 'a = impl Future>; + + fn fill<'a>(&'a mut self, dest: &'a mut [u8]) -> Self::RngFuture<'a> { + async move { + Ok(()) + } + } +} + +pub(crate) mod sealed { + use super::*; + + pub trait Instance { + fn regs(&self) -> Rng; + } +} + +pub trait Instance: sealed::Instance {} + +macro_rules! impl_rng { + ($addr:expr) => { + impl crate::rng::sealed::Instance for peripherals::RNG { + fn regs(&self) -> crate::pac::rng_v1::Rng { + crate::pac::rng_v1::Rng($addr as _) + } + } + + impl crate::rng::Instance for peripherals::RNG {} + } +} \ No newline at end of file diff --git a/embassy-stm32/stm32-data b/embassy-stm32/stm32-data index 581f642c..fa22ba0f 160000 --- a/embassy-stm32/stm32-data +++ b/embassy-stm32/stm32-data @@ -1 +1 @@ -Subproject commit 581f642c79c3c1a87f07ab88bb5bdececcb1240c +Subproject commit fa22ba0f886b548e6041db5e198f7ff847581928