rtic/2/api/rp2040_pac/struct.PIO0.html
2024-10-24 05:57:30 +00:00

55 lines
No EOL
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Programmable IO block"><title>PIO0 in rp2040_pac - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-492a78a4a87dcc01.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="rp2040_pac" data-themes="" data-resource-suffix="" data-rustdoc-version="1.82.0 (f6e511eec 2024-10-15)" data-channel="1.82.0" data-search-js="search-a99f1315e7cc5121.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-118b08c4c78b968e.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-921df33f47b8780c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-3b12f09e550e0385.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../rp2040_pac/index.html">rp2040_<wbr>pac</a><span class="version">0.6.0</span></h2></div><h2 class="location"><a href="#">PIO0</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Associated Constants</a></h3><ul class="block associatedconstant"><li><a href="#associatedconstant.PTR">PTR</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.ptr">ptr</a></li><li><a href="#method.steal">steal</a></li></ul><h3><a href="#deref-methods-RegisterBlock">Methods from Deref&lt;<wbr>Target=<wbr>Register<wbr>Block&gt;</a></h3><ul class="block deref-methods"><li><a href="#method.ctrl">ctrl</a></li><li><a href="#method.dbg_cfginfo">dbg_cfginfo</a></li><li><a href="#method.dbg_padoe">dbg_padoe</a></li><li><a href="#method.dbg_padout">dbg_padout</a></li><li><a href="#method.fdebug">fdebug</a></li><li><a href="#method.flevel">flevel</a></li><li><a href="#method.fstat">fstat</a></li><li><a href="#method.input_sync_bypass">input_sync_bypass</a></li><li><a href="#method.instr_mem">instr_mem</a></li><li><a href="#method.instr_mem_iter">instr_mem_iter</a></li><li><a href="#method.intr">intr</a></li><li><a href="#method.irq">irq</a></li><li><a href="#method.irq_force">irq_force</a></li><li><a href="#method.rxf">rxf</a></li><li><a href="#method.rxf_iter">rxf_iter</a></li><li><a href="#method.sm">sm</a></li><li><a href="#method.sm_irq">sm_irq</a></li><li><a href="#method.sm_irq_iter">sm_irq_iter</a></li><li><a href="#method.sm_iter">sm_iter</a></li><li><a href="#method.txf">txf</a></li><li><a href="#method.txf_iter">txf_iter</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Debug-for-PIO0">Debug</a></li><li><a href="#impl-Deref-for-PIO0">Deref</a></li><li><a href="#impl-Send-for-PIO0">Send</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Sync-for-PIO0">!Sync</a></li><li><a href="#impl-Freeze-for-PIO0">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-PIO0">RefUnwindSafe</a></li><li><a href="#impl-Unpin-for-PIO0">Unpin</a></li><li><a href="#impl-UnwindSafe-for-PIO0">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto&#60;U&#62;</a></li></ul></section><h2><a href="index.html">In crate rp2040_<wbr>pac</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">rp2040_pac</a>::<wbr><a class="struct" href="#">PIO0</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/rp2040_pac/lib.rs.html#2047-2049">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub struct PIO0 { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Programmable IO block</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-PIO0" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2051-2077">source</a><a href="#impl-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.PTR" class="associatedconstant"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2053">source</a><h4 class="code-header">pub const <a href="#associatedconstant.PTR" class="constant">PTR</a>: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.pointer.html">*const </a><a class="struct" href="pio0/struct.RegisterBlock.html" title="struct rp2040_pac::pio0::RegisterBlock">RegisterBlock</a> = {0x50200000 as *const pio0::RegisterBlock}</h4></section></summary><div class="docblock"><p>Pointer to the register block</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ptr" class="method"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2056-2058">source</a><h4 class="code-header">pub const fn <a href="#method.ptr" class="fn">ptr</a>() -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.pointer.html">*const </a><a class="struct" href="pio0/struct.RegisterBlock.html" title="struct rp2040_pac::pio0::RegisterBlock">RegisterBlock</a></h4></section></summary><div class="docblock"><p>Return the pointer to the register block</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.steal" class="method"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2072-2076">source</a><h4 class="code-header">pub unsafe fn <a href="#method.steal" class="fn">steal</a>() -&gt; Self</h4></section></summary><div class="docblock"><p>Steal an instance of this peripheral</p>
<h5 id="safety"><a class="doc-anchor" href="#safety">§</a>Safety</h5>
<p>Ensure that the new instance of the peripheral cannot be used in a way
that may race with any existing instances, for example by only
accessing read-only or write-only registers, or by consuming the
original peripheral and using critical sections to coordinate
access between multiple new instances.</p>
<p>Additionally, other software such as HALs may rely on only one
peripheral instance existing to ensure memory safety; ensure
no stolen instances are passed to such software.</p>
</div></details></div></details></div><h2 id="deref-methods-RegisterBlock" class="section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&lt;Target = <a class="struct" href="pio0/struct.RegisterBlock.html" title="struct rp2040_pac::pio0::RegisterBlock">RegisterBlock</a>&gt;</span><a href="#deref-methods-RegisterBlock" class="anchor">§</a></h2><div id="deref-methods-RegisterBlock-1" class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.ctrl" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#24-26">source</a><h4 class="code-header">pub fn <a href="#method.ctrl" class="fn">ctrl</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.CTRL.html" title="type rp2040_pac::pio0::CTRL">CTRL</a></h4></section></summary><div class="docblock"><p>0x00 - PIO control register</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.fstat" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#29-31">source</a><h4 class="code-header">pub fn <a href="#method.fstat" class="fn">fstat</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.FSTAT.html" title="type rp2040_pac::pio0::FSTAT">FSTAT</a></h4></section></summary><div class="docblock"><p>0x04 - FIFO status register</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.fdebug" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#34-36">source</a><h4 class="code-header">pub fn <a href="#method.fdebug" class="fn">fdebug</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.FDEBUG.html" title="type rp2040_pac::pio0::FDEBUG">FDEBUG</a></h4></section></summary><div class="docblock"><p>0x08 - FIFO debug register</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.flevel" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#39-41">source</a><h4 class="code-header">pub fn <a href="#method.flevel" class="fn">flevel</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.FLEVEL.html" title="type rp2040_pac::pio0::FLEVEL">FLEVEL</a></h4></section></summary><div class="docblock"><p>0x0c - FIFO levels</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.txf" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#44-46">source</a><h4 class="code-header">pub fn <a href="#method.txf" class="fn">txf</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.usize.html">usize</a>) -&gt; &amp;<a class="type" href="pio0/type.TXF.html" title="type rp2040_pac::pio0::TXF">TXF</a></h4></section></summary><div class="docblock"><p>0x10..0x20 - Direct write access to the TX FIFO for this state machine. Each write pushes one word to the FIFO. Attempting to write to a full FIFO has no effect on the FIFO state or contents, and sets the sticky FDEBUG_TXOVER error flag for this FIFO.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.txf_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#50-52">source</a><h4 class="code-header">pub fn <a href="#method.txf_iter" class="fn">txf_iter</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="type" href="pio0/type.TXF.html" title="type rp2040_pac::pio0::TXF">TXF</a>&gt;</h4></section></summary><div class="docblock"><p>Iterator for array of:
0x10..0x20 - Direct write access to the TX FIFO for this state machine. Each write pushes one word to the FIFO. Attempting to write to a full FIFO has no effect on the FIFO state or contents, and sets the sticky FDEBUG_TXOVER error flag for this FIFO.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.rxf" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#55-57">source</a><h4 class="code-header">pub fn <a href="#method.rxf" class="fn">rxf</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.usize.html">usize</a>) -&gt; &amp;<a class="type" href="pio0/type.RXF.html" title="type rp2040_pac::pio0::RXF">RXF</a></h4></section></summary><div class="docblock"><p>0x20..0x30 - Direct read access to the RX FIFO for this state machine. Each read pops one word from the FIFO. Attempting to read from an empty FIFO has no effect on the FIFO state, and sets the sticky FDEBUG_RXUNDER error flag for this FIFO. The data returned to the system on a read from an empty FIFO is undefined.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.rxf_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#61-63">source</a><h4 class="code-header">pub fn <a href="#method.rxf_iter" class="fn">rxf_iter</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="type" href="pio0/type.RXF.html" title="type rp2040_pac::pio0::RXF">RXF</a>&gt;</h4></section></summary><div class="docblock"><p>Iterator for array of:
0x20..0x30 - Direct read access to the RX FIFO for this state machine. Each read pops one word from the FIFO. Attempting to read from an empty FIFO has no effect on the FIFO state, and sets the sticky FDEBUG_RXUNDER error flag for this FIFO. The data returned to the system on a read from an empty FIFO is undefined.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.irq" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#68-70">source</a><h4 class="code-header">pub fn <a href="#method.irq" class="fn">irq</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.IRQ.html" title="type rp2040_pac::pio0::IRQ">IRQ</a></h4></section></summary><div class="docblock"><p>0x30 - State machine IRQ flags register. Write 1 to clear. There are 8 state machine IRQ flags, which can be set, cleared, and waited on by the state machines. Theres no fixed association between flags and state machines any state machine can use any flag.</p>
<p>Any of the 8 flags can be used for timing synchronisation between state machines, using IRQ and WAIT instructions. The lower four of these flags are also routed out to system-level interrupt requests, alongside FIFO status interrupts see e.g. IRQ0_INTE.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.irq_force" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#73-75">source</a><h4 class="code-header">pub fn <a href="#method.irq_force" class="fn">irq_force</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.IRQ_FORCE.html" title="type rp2040_pac::pio0::IRQ_FORCE">IRQ_FORCE</a></h4></section></summary><div class="docblock"><p>0x34 - Writing a 1 to each of these bits will forcibly assert the corresponding IRQ. Note this is different to the INTF register: writing here affects PIO internal state. INTF just asserts the processor-facing IRQ signal for testing ISRs, and is not visible to the state machines.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.input_sync_bypass" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#81-83">source</a><h4 class="code-header">pub fn <a href="#method.input_sync_bypass" class="fn">input_sync_bypass</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.INPUT_SYNC_BYPASS.html" title="type rp2040_pac::pio0::INPUT_SYNC_BYPASS">INPUT_SYNC_BYPASS</a></h4></section></summary><div class="docblock"><p>0x38 - There is a 2-flipflop synchronizer on each GPIO input, which protects PIO logic from metastabilities. This increases input delay, and for fast synchronous IO (e.g. SPI) these synchronizers may need to be bypassed. Each bit in this register corresponds to one GPIO.<br />
0 -&gt; input is synchronized (default)<br />
1 -&gt; synchronizer is bypassed<br />
If in doubt, leave this register as all zeroes.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.dbg_padout" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#86-88">source</a><h4 class="code-header">pub fn <a href="#method.dbg_padout" class="fn">dbg_padout</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.DBG_PADOUT.html" title="type rp2040_pac::pio0::DBG_PADOUT">DBG_PADOUT</a></h4></section></summary><div class="docblock"><p>0x3c - Read to sample the pad output values PIO is currently driving to the GPIOs. On RP2040 there are 30 GPIOs, so the two most significant bits are hardwired to 0.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.dbg_padoe" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#91-93">source</a><h4 class="code-header">pub fn <a href="#method.dbg_padoe" class="fn">dbg_padoe</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.DBG_PADOE.html" title="type rp2040_pac::pio0::DBG_PADOE">DBG_PADOE</a></h4></section></summary><div class="docblock"><p>0x40 - Read to sample the pad output enables (direction) PIO is currently driving to the GPIOs. On RP2040 there are 30 GPIOs, so the two most significant bits are hardwired to 0.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.dbg_cfginfo" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#97-99">source</a><h4 class="code-header">pub fn <a href="#method.dbg_cfginfo" class="fn">dbg_cfginfo</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.DBG_CFGINFO.html" title="type rp2040_pac::pio0::DBG_CFGINFO">DBG_CFGINFO</a></h4></section></summary><div class="docblock"><p>0x44 - The PIO hardware has some free parameters that may vary between chip products.<br />
These should be provided in the chip datasheet, but are also exposed here.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.instr_mem" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#102-104">source</a><h4 class="code-header">pub fn <a href="#method.instr_mem" class="fn">instr_mem</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.usize.html">usize</a>) -&gt; &amp;<a class="type" href="pio0/type.INSTR_MEM.html" title="type rp2040_pac::pio0::INSTR_MEM">INSTR_MEM</a></h4></section></summary><div class="docblock"><p>0x48..0xc8 - Write-only access to instruction memory location %s</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.instr_mem_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#108-110">source</a><h4 class="code-header">pub fn <a href="#method.instr_mem_iter" class="fn">instr_mem_iter</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="type" href="pio0/type.INSTR_MEM.html" title="type rp2040_pac::pio0::INSTR_MEM">INSTR_MEM</a>&gt;</h4></section></summary><div class="docblock"><p>Iterator for array of:
0x48..0xc8 - Write-only access to instruction memory location %s</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.sm" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#113-115">source</a><h4 class="code-header">pub fn <a href="#method.sm" class="fn">sm</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.usize.html">usize</a>) -&gt; &amp;<a class="struct" href="pio0/sm/struct.SM.html" title="struct rp2040_pac::pio0::sm::SM">SM</a></h4></section></summary><div class="docblock"><p>0xc8..0x128 - Cluster SM%s, containing SM*_CLKDIV, SM*_EXECCTRL, SM*_SHIFTCTRL, SM*_ADDR, SM*_INSTR, SM*_PINCTRL</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.sm_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#119-121">source</a><h4 class="code-header">pub fn <a href="#method.sm_iter" class="fn">sm_iter</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="struct" href="pio0/sm/struct.SM.html" title="struct rp2040_pac::pio0::sm::SM">SM</a>&gt;</h4></section></summary><div class="docblock"><p>Iterator for array of:
0xc8..0x128 - Cluster SM%s, containing SM*_CLKDIV, SM*_EXECCTRL, SM*_SHIFTCTRL, SM*_ADDR, SM*_INSTR, SM*_PINCTRL</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.intr" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#124-126">source</a><h4 class="code-header">pub fn <a href="#method.intr" class="fn">intr</a>(&amp;self) -&gt; &amp;<a class="type" href="pio0/type.INTR.html" title="type rp2040_pac::pio0::INTR">INTR</a></h4></section></summary><div class="docblock"><p>0x128 - Raw Interrupts</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.sm_irq" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#129-131">source</a><h4 class="code-header">pub fn <a href="#method.sm_irq" class="fn">sm_irq</a>(&amp;self, n: <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.usize.html">usize</a>) -&gt; &amp;<a class="struct" href="pio0/sm_irq/struct.SM_IRQ.html" title="struct rp2040_pac::pio0::sm_irq::SM_IRQ">SM_IRQ</a></h4></section></summary><div class="docblock"><p>0x12c..0x144 - Cluster SM_IRQ%s, containing IRQ*_INTE, IRQ*_INTF, IRQ*_INTS</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.sm_irq_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/pio0.rs.html#135-137">source</a><h4 class="code-header">pub fn <a href="#method.sm_irq_iter" class="fn">sm_irq_iter</a>(&amp;self) -&gt; impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = &amp;<a class="struct" href="pio0/sm_irq/struct.SM_IRQ.html" title="struct rp2040_pac::pio0::sm_irq::SM_IRQ">SM_IRQ</a>&gt;</h4></section></summary><div class="docblock"><p>Iterator for array of:
0x12c..0x144 - Cluster SM_IRQ%s, containing IRQ*_INTE, IRQ*_INTF, IRQ*_INTS</p>
</div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-PIO0" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2085-2089">source</a><a href="#impl-Debug-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2086-2088">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.82.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.82.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.82.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Deref-for-PIO0" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2078-2084">source</a><a href="#impl-Deref-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Target" class="associatedtype trait-impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2079">source</a><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.82.0/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = <a class="struct" href="pio0/struct.RegisterBlock.html" title="struct rp2040_pac::pio0::RegisterBlock">RegisterBlock</a></h4></section></summary><div class='docblock'>The resulting type after dereferencing.</div></details><details class="toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2081-2083">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&amp;self) -&gt; &amp;Self::<a class="associatedtype" href="https://doc.rust-lang.org/1.82.0/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a></h4></section></summary><div class='docblock'>Dereferences the value.</div></details></div></details><section id="impl-Send-for-PIO0" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2050">source</a><a href="#impl-Send-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-PIO0" class="impl"><a href="#impl-Freeze-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section><section id="impl-RefUnwindSafe-for-PIO0" class="impl"><a href="#impl-RefUnwindSafe-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section><section id="impl-Sync-for-PIO0" class="impl"><a href="#impl-Sync-for-PIO0" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section><section id="impl-Unpin-for-PIO0" class="impl"><a href="#impl-Unpin-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section><section id="impl-UnwindSafe-for-PIO0" class="impl"><a href="#impl-UnwindSafe-for-PIO0" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.PIO0.html" title="struct rp2040_pac::PIO0">PIO0</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/any.rs.html#139">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.82.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.82.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/borrow.rs.html#211">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/borrow.rs.html#217">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.82.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/borrow.rs.html#218">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.82.0/core/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.82.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#768">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#748-750">source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#758">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#805-807">source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#809">source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.82.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#812">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.82.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#790-792">source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#794">source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.82.0/src/core/convert/mod.rs.html#797">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.82.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.82.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>