Skip to content

Commit

Permalink
feat: place __INTERRUPTS vector in .trap.rodata (#119)
Browse files Browse the repository at this point in the history
* feat: place __INTERRUPTS vector in `.trap.rodata`

This commit preemptively adopts the change proposed to [svd2rust] to
expose the link section as a config parameter.

[svd2rust]: rust-embedded/svd2rust#718

* chore: update generated files

via:

```
(cd xtask; cargo run -- --generate-only)
```

* fix: quiet rust-analyzer's noisy complaints

Rust-analyzer's "all targets" default mode runs afoul of `#[no_std]`
crates that don't have a test harness. This change tells cargo (and
indirectly, rust-analyzer) that we have no expectation for that to work.

The CI changes don't have any effect currently, since none of these
crates have any `bin`s or `example`s, but it does check that the
rust-analzyzer complaints won't crop back up in the future.

* chore: point at post-merge-queue commit
  • Loading branch information
sethp authored May 22, 2023
1 parent 4fe0791 commit 0165453
Show file tree
Hide file tree
Showing 79 changed files with 484 additions and 421 deletions.
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ jobs:
- name: generate pac
run: cargo run --manifest-path=xtask/Cargo.toml -- --generate-only ${{ matrix.chip }}
- name: build pac
run: cd ${{ matrix.chip }} && cargo check
run: cd ${{ matrix.chip }} && cargo check --all-targets

check-xtensa:
runs-on: ubuntu-latest
Expand All @@ -64,7 +64,7 @@ jobs:
- name: generate pac
run: cargo run --manifest-path=xtask/Cargo.toml -- --generate-only ${{ matrix.chip }}
- name: build pac
run: cd ${{ matrix.chip }} && cargo check
run: cd ${{ matrix.chip }} && cargo check --all-targets

# --------------------------------------------------------------------------
# MSRV
Expand Down Expand Up @@ -92,7 +92,7 @@ jobs:
- name: generate pac
run: cargo +nightly run --manifest-path=xtask/Cargo.toml -- --generate-only ${{ matrix.chip }}
- name: build pac
run: cd ${{ matrix.chip }} && cargo +1.65.0 check
run: cd ${{ matrix.chip }} && cargo +1.65.0 check --all-targets

msrv-xtensa:
runs-on: ubuntu-latest
Expand All @@ -115,4 +115,4 @@ jobs:
- name: generate pac
run: cargo run --manifest-path=xtask/Cargo.toml -- --generate-only ${{ matrix.chip }}
- name: build pac
run: cd ${{ matrix.chip }} && cargo check
run: cd ${{ matrix.chip }} && cargo check --all-targets
4 changes: 4 additions & 0 deletions esp32/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ include = [
"device.x",
]

[lib]
bench = false
test = false

[dependencies]
critical-section = { version = "1.1.1", optional = true }
vcell = "0.1.3"
Expand Down
2 changes: 1 addition & 1 deletion esp32/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![doc = "Peripheral access API for ESP32 microcontrollers (generated using svd2rust v0.28.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next] svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.28.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
#![doc = "Peripheral access API for ESP32 microcontrollers (generated using svd2rust v0.28.0 (e6a6d15 2023-05-19))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next] svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.28.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
#![deny(dead_code)]
#![deny(improper_ctypes)]
#![deny(missing_docs)]
Expand Down
8 changes: 4 additions & 4 deletions esp32/src/sens/sar_dac_ctrl1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,9 @@ pub type DEBUG_BIT_SEL_R = crate::FieldReader<u8, u8>;
#[doc = "Field `DEBUG_BIT_SEL` writer - "]
pub type DEBUG_BIT_SEL_W<'a, const O: u8> =
crate::FieldWriter<'a, u32, SAR_DAC_CTRL1_SPEC, u8, u8, 5, O>;
#[doc = "Field `DAC_DIG_FORCE` reader - 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA"]
#[doc = "Field `DAC_DIG_FORCE` reader - 1: DAC1 &amp; DAC2 use DMA 0: DAC1 &amp; DAC2 do not use DMA"]
pub type DAC_DIG_FORCE_R = crate::BitReader<bool>;
#[doc = "Field `DAC_DIG_FORCE` writer - 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA"]
#[doc = "Field `DAC_DIG_FORCE` writer - 1: DAC1 &amp; DAC2 use DMA 0: DAC1 &amp; DAC2 do not use DMA"]
pub type DAC_DIG_FORCE_W<'a, const O: u8> = crate::BitWriter<'a, u32, SAR_DAC_CTRL1_SPEC, bool, O>;
#[doc = "Field `DAC_CLK_FORCE_LOW` reader - 1: force PDAC_CLK to low"]
pub type DAC_CLK_FORCE_LOW_R = crate::BitReader<bool>;
Expand Down Expand Up @@ -82,7 +82,7 @@ impl R {
pub fn debug_bit_sel(&self) -> DEBUG_BIT_SEL_R {
DEBUG_BIT_SEL_R::new(((self.bits >> 17) & 0x1f) as u8)
}
#[doc = "Bit 22 - 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA"]
#[doc = "Bit 22 - 1: DAC1 &amp; DAC2 use DMA 0: DAC1 &amp; DAC2 do not use DMA"]
#[inline(always)]
pub fn dac_dig_force(&self) -> DAC_DIG_FORCE_R {
DAC_DIG_FORCE_R::new(((self.bits >> 22) & 1) != 0)
Expand Down Expand Up @@ -122,7 +122,7 @@ impl W {
pub fn debug_bit_sel(&mut self) -> DEBUG_BIT_SEL_W<17> {
DEBUG_BIT_SEL_W::new(self)
}
#[doc = "Bit 22 - 1: DAC1 & DAC2 use DMA 0: DAC1 & DAC2 do not use DMA"]
#[doc = "Bit 22 - 1: DAC1 &amp; DAC2 use DMA 0: DAC1 &amp; DAC2 do not use DMA"]
#[inline(always)]
#[must_use]
pub fn dac_dig_force(&mut self) -> DAC_DIG_FORCE_W<22> {
Expand Down
8 changes: 4 additions & 4 deletions esp32/src/sens/sar_touch_ctrl1.rs
Original file line number Diff line number Diff line change
Expand Up @@ -49,9 +49,9 @@ pub type TOUCH_OUT_SEL_R = crate::BitReader<bool>;
#[doc = "Field `TOUCH_OUT_SEL` writer - 1: when the counter is greater then the threshold the touch pad is considered as \"touched\" 0: when the counter is less than the threshold the touch pad is considered as \"touched\""]
pub type TOUCH_OUT_SEL_W<'a, const O: u8> =
crate::BitWriter<'a, u32, SAR_TOUCH_CTRL1_SPEC, bool, O>;
#[doc = "Field `TOUCH_OUT_1EN` reader - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 & SET2 is both \"touched\""]
#[doc = "Field `TOUCH_OUT_1EN` reader - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 &amp; SET2 is both \"touched\""]
pub type TOUCH_OUT_1EN_R = crate::BitReader<bool>;
#[doc = "Field `TOUCH_OUT_1EN` writer - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 & SET2 is both \"touched\""]
#[doc = "Field `TOUCH_OUT_1EN` writer - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 &amp; SET2 is both \"touched\""]
pub type TOUCH_OUT_1EN_W<'a, const O: u8> =
crate::BitWriter<'a, u32, SAR_TOUCH_CTRL1_SPEC, bool, O>;
#[doc = "Field `XPD_HALL_FORCE` reader - 1: XPD HALL is controlled by SW. 0: XPD HALL is controlled by FSM in ULP-coprocessor"]
Expand Down Expand Up @@ -80,7 +80,7 @@ impl R {
pub fn touch_out_sel(&self) -> TOUCH_OUT_SEL_R {
TOUCH_OUT_SEL_R::new(((self.bits >> 24) & 1) != 0)
}
#[doc = "Bit 25 - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 & SET2 is both \"touched\""]
#[doc = "Bit 25 - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 &amp; SET2 is both \"touched\""]
#[inline(always)]
pub fn touch_out_1en(&self) -> TOUCH_OUT_1EN_R {
TOUCH_OUT_1EN_R::new(((self.bits >> 25) & 1) != 0)
Expand Down Expand Up @@ -115,7 +115,7 @@ impl W {
pub fn touch_out_sel(&mut self) -> TOUCH_OUT_SEL_W<24> {
TOUCH_OUT_SEL_W::new(self)
}
#[doc = "Bit 25 - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 & SET2 is both \"touched\""]
#[doc = "Bit 25 - 1: wakeup interrupt is generated if SET1 is \"touched\" 0: wakeup interrupt is generated only if SET1 &amp; SET2 is both \"touched\""]
#[inline(always)]
#[must_use]
pub fn touch_out_1en(&mut self) -> TOUCH_OUT_1EN_W<25> {
Expand Down
8 changes: 4 additions & 4 deletions esp32/src/sens/sar_touch_ctrl2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ impl From<crate::W<SAR_TOUCH_CTRL2_SPEC>> for W {
pub type TOUCH_MEAS_EN_R = crate::FieldReader<u16, u16>;
#[doc = "Field `TOUCH_MEAS_DONE` reader - fsm set 1 to indicate touch touch meas is done"]
pub type TOUCH_MEAS_DONE_R = crate::BitReader<bool>;
#[doc = "Field `TOUCH_START_FSM_EN` reader - 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START & TOUCH_XPD is controlled by registers"]
#[doc = "Field `TOUCH_START_FSM_EN` reader - 1: TOUCH_START &amp; TOUCH_XPD is controlled by touch fsm 0: TOUCH_START &amp; TOUCH_XPD is controlled by registers"]
pub type TOUCH_START_FSM_EN_R = crate::BitReader<bool>;
#[doc = "Field `TOUCH_START_FSM_EN` writer - 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START & TOUCH_XPD is controlled by registers"]
#[doc = "Field `TOUCH_START_FSM_EN` writer - 1: TOUCH_START &amp; TOUCH_XPD is controlled by touch fsm 0: TOUCH_START &amp; TOUCH_XPD is controlled by registers"]
pub type TOUCH_START_FSM_EN_W<'a, const O: u8> =
crate::BitWriter<'a, u32, SAR_TOUCH_CTRL2_SPEC, bool, O>;
#[doc = "Field `TOUCH_START_EN` reader - 1: start touch fsm valid when reg_touch_start_force is set"]
Expand Down Expand Up @@ -72,7 +72,7 @@ impl R {
pub fn touch_meas_done(&self) -> TOUCH_MEAS_DONE_R {
TOUCH_MEAS_DONE_R::new(((self.bits >> 10) & 1) != 0)
}
#[doc = "Bit 11 - 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START & TOUCH_XPD is controlled by registers"]
#[doc = "Bit 11 - 1: TOUCH_START &amp; TOUCH_XPD is controlled by touch fsm 0: TOUCH_START &amp; TOUCH_XPD is controlled by registers"]
#[inline(always)]
pub fn touch_start_fsm_en(&self) -> TOUCH_START_FSM_EN_R {
TOUCH_START_FSM_EN_R::new(((self.bits >> 11) & 1) != 0)
Expand All @@ -94,7 +94,7 @@ impl R {
}
}
impl W {
#[doc = "Bit 11 - 1: TOUCH_START & TOUCH_XPD is controlled by touch fsm 0: TOUCH_START & TOUCH_XPD is controlled by registers"]
#[doc = "Bit 11 - 1: TOUCH_START &amp; TOUCH_XPD is controlled by touch fsm 0: TOUCH_START &amp; TOUCH_XPD is controlled by registers"]
#[inline(always)]
#[must_use]
pub fn touch_start_fsm_en(&mut self) -> TOUCH_START_FSM_EN_W<11> {
Expand Down
8 changes: 4 additions & 4 deletions esp32/src/sens/sar_tsens_ctrl.rs
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ pub type TSENS_POWER_UP_R = crate::BitReader<bool>;
#[doc = "Field `TSENS_POWER_UP` writer - temperature sensor power up"]
pub type TSENS_POWER_UP_W<'a, const O: u8> =
crate::BitWriter<'a, u32, SAR_TSENS_CTRL_SPEC, bool, O>;
#[doc = "Field `TSENS_POWER_UP_FORCE` reader - 1: dump out & power up controlled by SW 0: by FSM"]
#[doc = "Field `TSENS_POWER_UP_FORCE` reader - 1: dump out &amp; power up controlled by SW 0: by FSM"]
pub type TSENS_POWER_UP_FORCE_R = crate::BitReader<bool>;
#[doc = "Field `TSENS_POWER_UP_FORCE` writer - 1: dump out & power up controlled by SW 0: by FSM"]
#[doc = "Field `TSENS_POWER_UP_FORCE` writer - 1: dump out &amp; power up controlled by SW 0: by FSM"]
pub type TSENS_POWER_UP_FORCE_W<'a, const O: u8> =
crate::BitWriter<'a, u32, SAR_TSENS_CTRL_SPEC, bool, O>;
#[doc = "Field `TSENS_DUMP_OUT` reader - temperature sensor dump out only active when reg_tsens_power_up_force = 1"]
Expand Down Expand Up @@ -113,7 +113,7 @@ impl R {
pub fn tsens_power_up(&self) -> TSENS_POWER_UP_R {
TSENS_POWER_UP_R::new(((self.bits >> 24) & 1) != 0)
}
#[doc = "Bit 25 - 1: dump out & power up controlled by SW 0: by FSM"]
#[doc = "Bit 25 - 1: dump out &amp; power up controlled by SW 0: by FSM"]
#[inline(always)]
pub fn tsens_power_up_force(&self) -> TSENS_POWER_UP_FORCE_R {
TSENS_POWER_UP_FORCE_R::new(((self.bits >> 25) & 1) != 0)
Expand Down Expand Up @@ -167,7 +167,7 @@ impl W {
pub fn tsens_power_up(&mut self) -> TSENS_POWER_UP_W<24> {
TSENS_POWER_UP_W::new(self)
}
#[doc = "Bit 25 - 1: dump out & power up controlled by SW 0: by FSM"]
#[doc = "Bit 25 - 1: dump out &amp; power up controlled by SW 0: by FSM"]
#[inline(always)]
#[must_use]
pub fn tsens_power_up_force(&mut self) -> TSENS_POWER_UP_FORCE_W<25> {
Expand Down
4 changes: 4 additions & 0 deletions esp32c2/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ include = [
"device.x"
]

[lib]
bench = false
test = false

[dependencies]
critical-section = { version = "1.1.1", optional = true }
vcell = "0.1.3"
Expand Down
8 changes: 4 additions & 4 deletions esp32c2/src/gpio/func_out_sel_cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ impl From<crate::W<FUNC_OUT_SEL_CFG_SPEC>> for W {
W(writer)
}
}
#[doc = "Field `OUT_SEL` reader - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Field `OUT_SEL` reader - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
pub type OUT_SEL_R = crate::FieldReader<u8, u8>;
#[doc = "Field `OUT_SEL` writer - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Field `OUT_SEL` writer - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
pub type OUT_SEL_W<'a, const O: u8> =
crate::FieldWriter<'a, u32, FUNC_OUT_SEL_CFG_SPEC, u8, u8, 8, O>;
#[doc = "Field `INV_SEL` reader - set this bit to invert output signal.1:invert.0:not invert."]
Expand All @@ -52,7 +52,7 @@ pub type OEN_INV_SEL_R = crate::BitReader<bool>;
#[doc = "Field `OEN_INV_SEL` writer - set this bit to invert output enable signal.1:invert.0:not invert."]
pub type OEN_INV_SEL_W<'a, const O: u8> = crate::BitWriter<'a, u32, FUNC_OUT_SEL_CFG_SPEC, bool, O>;
impl R {
#[doc = "Bits 0:7 - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Bits 0:7 - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[inline(always)]
pub fn out_sel(&self) -> OUT_SEL_R {
OUT_SEL_R::new((self.bits & 0xff) as u8)
Expand All @@ -74,7 +74,7 @@ impl R {
}
}
impl W {
#[doc = "Bits 0:7 - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Bits 0:7 - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[inline(always)]
#[must_use]
pub fn out_sel(&mut self) -> OUT_SEL_W<0> {
Expand Down
3 changes: 2 additions & 1 deletion esp32c2/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#![doc = "Peripheral access API for ESP32-C2 microcontrollers (generated using svd2rust v0.28.0 ( ))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next] svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.28.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
#![doc = "Peripheral access API for ESP32-C2 microcontrollers (generated using svd2rust v0.28.0 (e6a6d15 2023-05-19))\n\nYou can find an overview of the generated API [here].\n\nAPI features to be included in the [next] svd2rust release can be generated by cloning the svd2rust [repository], checking out the above commit, and running `cargo doc --open`.\n\n[here]: https://docs.rs/svd2rust/0.28.0/svd2rust/#peripheral-api\n[next]: https://github.com/rust-embedded/svd2rust/blob/master/CHANGELOG.md#unreleased\n[repository]: https://github.com/rust-embedded/svd2rust"]
#![deny(dead_code)]
#![deny(improper_ctypes)]
#![deny(missing_docs)]
Expand Down Expand Up @@ -77,6 +77,7 @@ pub union Vector {
}
#[cfg(feature = "rt")]
#[doc(hidden)]
#[link_section = ".trap.rodata"]
#[no_mangle]
pub static __EXTERNAL_INTERRUPTS: [Vector; 42] = [
Vector { _handler: WIFI_MAC },
Expand Down
4 changes: 4 additions & 0 deletions esp32c3/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ include = [
"device.x"
]

[lib]
bench = false
test = false

[dependencies]
critical-section = { version = "1.1.1", optional = true }
vcell = "0.1.3"
Expand Down
8 changes: 4 additions & 4 deletions esp32c3/src/gpio/func_out_sel_cfg.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ impl From<crate::W<FUNC_OUT_SEL_CFG_SPEC>> for W {
W(writer)
}
}
#[doc = "Field `OUT_SEL` reader - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Field `OUT_SEL` reader - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
pub type OUT_SEL_R = crate::FieldReader<u8, u8>;
#[doc = "Field `OUT_SEL` writer - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Field `OUT_SEL` writer - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
pub type OUT_SEL_W<'a, const O: u8> =
crate::FieldWriter<'a, u32, FUNC_OUT_SEL_CFG_SPEC, u8, u8, 8, O>;
#[doc = "Field `INV_SEL` reader - set this bit to invert output signal.1:invert.0:not invert."]
Expand All @@ -52,7 +52,7 @@ pub type OEN_INV_SEL_R = crate::BitReader<bool>;
#[doc = "Field `OEN_INV_SEL` writer - set this bit to invert output enable signal.1:invert.0:not invert."]
pub type OEN_INV_SEL_W<'a, const O: u8> = crate::BitWriter<'a, u32, FUNC_OUT_SEL_CFG_SPEC, bool, O>;
impl R {
#[doc = "Bits 0:7 - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Bits 0:7 - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[inline(always)]
pub fn out_sel(&self) -> OUT_SEL_R {
OUT_SEL_R::new((self.bits & 0xff) as u8)
Expand All @@ -74,7 +74,7 @@ impl R {
}
}
impl W {
#[doc = "Bits 0:7 - The value of the bits: 0<=s<=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[doc = "Bits 0:7 - The value of the bits: 0&lt;=s&lt;=256. Set the value to select output signal. s=0-255: output of GPIO\\[n\\] equals input of peripheral\\[s\\]. s=256: output of GPIO\\[n\\] equals GPIO_OUT_REG\\[n\\]."]
#[inline(always)]
#[must_use]
pub fn out_sel(&mut self) -> OUT_SEL_W<0> {
Expand Down
Loading

0 comments on commit 0165453

Please sign in to comment.