mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-12-11 20:57:16 +01:00
137 lines
68 KiB
HTML
137 lines
68 KiB
HTML
|
<!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="Single-cycle IO block Provides core-local and inter-core hardware for the two processors, with single-cycle access."><title>SIO 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-b0742ba02757f159.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.83.0 (90b35a623 2024-11-26)" data-channel="1.83.0" data-search-js="search-f0d225181b97f9a4.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-f070b9041d14864c.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-0111fcff984fae8f.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><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">SIO</a></h2><h3><a href="#implementations">Associated Constants</a></h3><ul class="block associatedconstant"><li><a href="#associatedconstant.PTR" title="PTR">PTR</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.ptr" title="ptr">ptr</a></li><li><a href="#method.steal" title="steal">steal</a></li></ul><h3><a href="#deref-methods-RegisterBlock">Methods from Deref<<wbr>Target=<wbr>Register<wbr>Block></a></h3><ul class="block deref-methods"><li><a href="#method.cpuid" title="cpuid">cpuid</a></li><li><a href="#method.div_csr" title="div_csr">div_csr</a></li><li><a href="#method.div_quotient" title="div_quotient">div_quotient</a></li><li><a href="#method.div_remainder" title="div_remainder">div_remainder</a></li><li><a href="#method.div_sdividend" title="div_sdividend">div_sdividend</a></li><li><a href="#method.div_sdivisor" title="div_sdivisor">div_sdivisor</a></li><li><a href="#method.div_udividend" title="div_udividend">div_udividend</a></li><li><a href="#method.div_udivisor" title="div_udivisor">div_udivisor</a></li><li><a href="#method.fifo_rd" title="fifo_rd">fifo_rd</a></li><li><a href="#method.fifo_st" title="fifo_st">fifo_st</a></li><li><a href="#method.fifo_wr" title="fifo_wr">fifo_wr</a></li><li><a href="#method.gpio_hi_in" title="gpio_hi_in">gpio_hi_in</a></li><li><a href="#method.gpio_hi_oe" title="gpio_hi_oe">gpio_hi_oe</a></li><li><a href="#method.gpio_hi_oe_clr" title="gpio_hi_oe_clr">gpio_hi_oe_clr</a></li><li><a href="#method.gpio_hi_oe_set" title="gpio_hi_oe_set">gpio_hi_oe_set</a></li><li><a href="#method.gpio_hi_oe_xor" title="gpio_hi_oe_xor">gpio_hi_oe_xor</a></li><li><a href="#method.gpio_hi_out" title="gpio_hi_out">gpio_hi_out</a></li><li><a href="#method.gpio_hi_out_clr" title="gpio_hi_out_clr">gpio_hi_out_clr</a></li><li
|
|||
|
Provides core-local and inter-core hardware for the two processors, with single-cycle access.</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-SIO" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2144-2170">source</a><a href="#impl-SIO" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.SIO.html" title="struct rp2040_pac::SIO">SIO</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#2146">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.83.0/core/primitive.pointer.html">*const </a><a class="struct" href="sio/struct.RegisterBlock.html" title="struct rp2040_pac::sio::RegisterBlock">RegisterBlock</a> = {0xd0000000 as *const sio::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#2149-2151">source</a><h4 class="code-header">pub const fn <a href="#method.ptr" class="fn">ptr</a>() -> <a class="primitive" href="https://doc.rust-lang.org/1.83.0/core/primitive.pointer.html">*const </a><a class="struct" href="sio/struct.RegisterBlock.html" title="struct rp2040_pac::sio::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#2165-2169">source</a><h4 class="code-header">pub unsafe fn <a href="#method.steal" class="fn">steal</a>() -> 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><details class="toggle big-toggle" open><summary><h2 id="deref-methods-RegisterBlock" class="section-header"><span>Methods from <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a><Target = <a class="struct" href="sio/struct.RegisterBlock.html" title="struct rp2040_pac::sio::RegisterBlock">RegisterBlock</a>></span><a href="#deref-methods-RegisterBlock" class="anchor">§</a></h2></summary><div id="deref-methods-RegisterBlock-1" class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.cpuid" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#74-76">source</a><h4 class="code-header">pub fn <a href="#method.cpuid" class="fn">cpuid</a>(&self) -> &<a class="type" href="sio/type.CPUID.html" title="type rp2040_pac::sio::CPUID">CPUID</a></h4></section></summary><div class="docblock"><p>0x00 - Processor core identifier<br />
|
|||
|
Value is 0 when read from processor core 0, and 1 when read from processor core 1.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_in" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#79-81">source</a><h4 class="code-header">pub fn <a href="#method.gpio_in" class="fn">gpio_in</a>(&self) -> &<a class="type" href="sio/type.GPIO_IN.html" title="type rp2040_pac::sio::GPIO_IN">GPIO_IN</a></h4></section></summary><div class="docblock"><p>0x04 - Input value for GPIO pins</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_in" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#84-86">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_in" class="fn">gpio_hi_in</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_IN.html" title="type rp2040_pac::sio::GPIO_HI_IN">GPIO_HI_IN</a></h4></section></summary><div class="docblock"><p>0x08 - Input value for QSPI pins</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_out" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#89-91">source</a><h4 class="code-header">pub fn <a href="#method.gpio_out" class="fn">gpio_out</a>(&self) -> &<a class="type" href="sio/type.GPIO_OUT.html" title="type rp2040_pac::sio::GPIO_OUT">GPIO_OUT</a></h4></section></summary><div class="docblock"><p>0x10 - GPIO output value</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_out_set" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#94-96">source</a><h4 class="code-header">pub fn <a href="#method.gpio_out_set" class="fn">gpio_out_set</a>(&self) -> &<a class="type" href="sio/type.GPIO_OUT_SET.html" title="type rp2040_pac::sio::GPIO_OUT_SET">GPIO_OUT_SET</a></h4></section></summary><div class="docblock"><p>0x14 - GPIO output value set</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_out_clr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#99-101">source</a><h4 class="code-header">pub fn <a href="#method.gpio_out_clr" class="fn">gpio_out_clr</a>(&self) -> &<a class="type" href="sio/type.GPIO_OUT_CLR.html" title="type rp2040_pac::sio::GPIO_OUT_CLR">GPIO_OUT_CLR</a></h4></section></summary><div class="docblock"><p>0x18 - GPIO output value clear</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_out_xor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#104-106">source</a><h4 class="code-header">pub fn <a href="#method.gpio_out_xor" class="fn">gpio_out_xor</a>(&self) -> &<a class="type" href="sio/type.GPIO_OUT_XOR.html" title="type rp2040_pac::sio::GPIO_OUT_XOR">GPIO_OUT_XOR</a></h4></section></summary><div class="docblock"><p>0x1c - GPIO output value XOR</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_oe" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#109-111">source</a><h4 class="code-header">pub fn <a href="#method.gpio_oe" class="fn">gpio_oe</a>(&self) -> &<a class="type" href="sio/type.GPIO_OE.html" title="type rp2040_pac::sio::GPIO_OE">GPIO_OE</a></h4></section></summary><div class="docblock"><p>0x20 - GPIO output enable</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_oe_set" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#114-116">source</a><h4 class="code-header">pub fn <a href="#method.gpio_oe_set" class="fn">gpio_oe_set</a>(&self) -> &<a class="type" href="sio/type.GPIO_OE_SET.html" title="type rp2040_pac::sio::GPIO_OE_SET">GPIO_OE_SET</a></h4></section></summary><div class="docblock"><p>0x24 - GPIO output enable set</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_oe_clr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#119-121">source</a><h4 class="code-header">pub fn <a href="#method.gpio_oe_clr" class="fn">gpio_oe_clr</a>(&self) -> &<a class="type" href="sio/type.GPIO_OE_CLR.html" title="type rp2040_pac::sio::GPIO_OE_CLR">GPIO_OE_CLR</a></h4></section></summary><div class="docblock"><p>0x28 - GPIO output enable clear</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_oe_xor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#124-126">source</a><h4 class="code-header">pub fn <a href="#method.gpio_oe_xor" class="fn">gpio_oe_xor</a>(&self) -> &<a class="type" href="sio/type.GPIO_OE_XOR.html" title="type rp2040_pac::sio::GPIO_OE_XOR">GPIO_OE_XOR</a></h4></section></summary><div class="docblock"><p>0x2c - GPIO output enable XOR</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_out" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#129-131">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_out" class="fn">gpio_hi_out</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OUT.html" title="type rp2040_pac::sio::GPIO_HI_OUT">GPIO_HI_OUT</a></h4></section></summary><div class="docblock"><p>0x30 - QSPI output value</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_out_set" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#134-136">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_out_set" class="fn">gpio_hi_out_set</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OUT_SET.html" title="type rp2040_pac::sio::GPIO_HI_OUT_SET">GPIO_HI_OUT_SET</a></h4></section></summary><div class="docblock"><p>0x34 - QSPI output value set</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_out_clr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#139-141">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_out_clr" class="fn">gpio_hi_out_clr</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OUT_CLR.html" title="type rp2040_pac::sio::GPIO_HI_OUT_CLR">GPIO_HI_OUT_CLR</a></h4></section></summary><div class="docblock"><p>0x38 - QSPI output value clear</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_out_xor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#144-146">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_out_xor" class="fn">gpio_hi_out_xor</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OUT_XOR.html" title="type rp2040_pac::sio::GPIO_HI_OUT_XOR">GPIO_HI_OUT_XOR</a></h4></section></summary><div class="docblock"><p>0x3c - QSPI output value XOR</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_oe" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#149-151">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_oe" class="fn">gpio_hi_oe</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OE.html" title="type rp2040_pac::sio::GPIO_HI_OE">GPIO_HI_OE</a></h4></section></summary><div class="docblock"><p>0x40 - QSPI output enable</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_oe_set" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#154-156">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_oe_set" class="fn">gpio_hi_oe_set</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OE_SET.html" title="type rp2040_pac::sio::GPIO_HI_OE_SET">GPIO_HI_OE_SET</a></h4></section></summary><div class="docblock"><p>0x44 - QSPI output enable set</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_oe_clr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#159-161">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_oe_clr" class="fn">gpio_hi_oe_clr</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OE_CLR.html" title="type rp2040_pac::sio::GPIO_HI_OE_CLR">GPIO_HI_OE_CLR</a></h4></section></summary><div class="docblock"><p>0x48 - QSPI output enable clear</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.gpio_hi_oe_xor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#164-166">source</a><h4 class="code-header">pub fn <a href="#method.gpio_hi_oe_xor" class="fn">gpio_hi_oe_xor</a>(&self) -> &<a class="type" href="sio/type.GPIO_HI_OE_XOR.html" title="type rp2040_pac::sio::GPIO_HI_OE_XOR">GPIO_HI_OE_XOR</a></h4></section></summary><div class="docblock"><p>0x4c - QSPI output enable XOR</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.fifo_st" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#173-175">source</a><h4 class="code-header">pub fn <a href="#method.fifo_st" class="fn">fifo_st</a>(&self) -> &<a class="type" href="sio/type.FIFO_ST.html" title="type rp2040_pac::sio::FIFO_ST">FIFO_ST</a></h4></section></summary><div class="docblock"><p>0x50 - Status register for inter-core FIFOs (mailboxes).<br />
|
|||
|
There is one FIFO in the core 0 -> core 1 direction, and one core 1 -> core 0. Both are 32 bits wide and 8 words deep.<br />
|
|||
|
Core 0 can see the read side of the 1->0 FIFO (RX), and the write side of 0->1 FIFO (TX).<br />
|
|||
|
Core 1 can see the read side of the 0->1 FIFO (RX), and the write side of 1->0 FIFO (TX).<br />
|
|||
|
The SIO IRQ for each core is the logical OR of the VLD, WOF and ROE fields of its FIFO_ST register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.fifo_wr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#178-180">source</a><h4 class="code-header">pub fn <a href="#method.fifo_wr" class="fn">fifo_wr</a>(&self) -> &<a class="type" href="sio/type.FIFO_WR.html" title="type rp2040_pac::sio::FIFO_WR">FIFO_WR</a></h4></section></summary><div class="docblock"><p>0x54 - Write access to this core’s TX FIFO</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.fifo_rd" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#183-185">source</a><h4 class="code-header">pub fn <a href="#method.fifo_rd" class="fn">fifo_rd</a>(&self) -> &<a class="type" href="sio/type.FIFO_RD.html" title="type rp2040_pac::sio::FIFO_RD">FIFO_RD</a></h4></section></summary><div class="docblock"><p>0x58 - Read access to this core’s RX FIFO</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.spinlock_st" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#190-192">source</a><h4 class="code-header">pub fn <a href="#method.spinlock_st" class="fn">spinlock_st</a>(&self) -> &<a class="type" href="sio/type.SPINLOCK_ST.html" title="type rp2040_pac::sio::SPINLOCK_ST">SPINLOCK_ST</a></h4></section></summary><div class="docblock"><p>0x5c - Spinlock state<br />
|
|||
|
A bitmap containing the state of all 32 spinlocks (1=locked).<br />
|
|||
|
Mainly intended for debugging.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_udividend" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#199-201">source</a><h4 class="code-header">pub fn <a href="#method.div_udividend" class="fn">div_udividend</a>(&self) -> &<a class="type" href="sio/type.DIV_UDIVIDEND.html" title="type rp2040_pac::sio::DIV_UDIVIDEND">DIV_UDIVIDEND</a></h4></section></summary><div class="docblock"><p>0x60 - Divider unsigned dividend<br />
|
|||
|
Write to the DIVIDEND operand of the divider, i.e. the p in <code>p / q</code>.<br />
|
|||
|
Any operand write starts a new calculation. The results appear in QUOTIENT, REMAINDER.<br />
|
|||
|
UDIVIDEND/SDIVIDEND are aliases of the same internal register. The U alias starts an<br />
|
|||
|
unsigned calculation, and the S alias starts a signed calculation.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_udivisor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#208-210">source</a><h4 class="code-header">pub fn <a href="#method.div_udivisor" class="fn">div_udivisor</a>(&self) -> &<a class="type" href="sio/type.DIV_UDIVISOR.html" title="type rp2040_pac::sio::DIV_UDIVISOR">DIV_UDIVISOR</a></h4></section></summary><div class="docblock"><p>0x64 - Divider unsigned divisor<br />
|
|||
|
Write to the DIVISOR operand of the divider, i.e. the q in <code>p / q</code>.<br />
|
|||
|
Any operand write starts a new calculation. The results appear in QUOTIENT, REMAINDER.<br />
|
|||
|
UDIVISOR/SDIVISOR are aliases of the same internal register. The U alias starts an<br />
|
|||
|
unsigned calculation, and the S alias starts a signed calculation.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_sdividend" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#214-216">source</a><h4 class="code-header">pub fn <a href="#method.div_sdividend" class="fn">div_sdividend</a>(&self) -> &<a class="type" href="sio/type.DIV_SDIVIDEND.html" title="type rp2040_pac::sio::DIV_SDIVIDEND">DIV_SDIVIDEND</a></h4></section></summary><div class="docblock"><p>0x68 - Divider signed dividend<br />
|
|||
|
The same as UDIVIDEND, but starts a signed calculation, rather than unsigned.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_sdivisor" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#220-222">source</a><h4 class="code-header">pub fn <a href="#method.div_sdivisor" class="fn">div_sdivisor</a>(&self) -> &<a class="type" href="sio/type.DIV_SDIVISOR.html" title="type rp2040_pac::sio::DIV_SDIVISOR">DIV_SDIVISOR</a></h4></section></summary><div class="docblock"><p>0x6c - Divider signed divisor<br />
|
|||
|
The same as UDIVISOR, but starts a signed calculation, rather than unsigned.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_quotient" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#231-233">source</a><h4 class="code-header">pub fn <a href="#method.div_quotient" class="fn">div_quotient</a>(&self) -> &<a class="type" href="sio/type.DIV_QUOTIENT.html" title="type rp2040_pac::sio::DIV_QUOTIENT">DIV_QUOTIENT</a></h4></section></summary><div class="docblock"><p>0x70 - Divider result quotient<br />
|
|||
|
The result of <code>DIVIDEND / DIVISOR</code> (division). Contents undefined while CSR_READY is low.<br />
|
|||
|
For signed calculations, QUOTIENT is negative when the signs of DIVIDEND and DIVISOR differ.<br />
|
|||
|
This register can be written to directly, for context save/restore purposes. This halts any<br />
|
|||
|
in-progress calculation and sets the CSR_READY and CSR_DIRTY flags.<br />
|
|||
|
Reading from QUOTIENT clears the CSR_DIRTY flag, so should read results in the order<br />
|
|||
|
REMAINDER, QUOTIENT if CSR_DIRTY is used.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_remainder" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#240-242">source</a><h4 class="code-header">pub fn <a href="#method.div_remainder" class="fn">div_remainder</a>(&self) -> &<a class="type" href="sio/type.DIV_REMAINDER.html" title="type rp2040_pac::sio::DIV_REMAINDER">DIV_REMAINDER</a></h4></section></summary><div class="docblock"><p>0x74 - Divider result remainder<br />
|
|||
|
The result of <code>DIVIDEND % DIVISOR</code> (modulo). Contents undefined while CSR_READY is low.<br />
|
|||
|
For signed calculations, REMAINDER is negative only when DIVIDEND is negative.<br />
|
|||
|
This register can be written to directly, for context save/restore purposes. This halts any<br />
|
|||
|
in-progress calculation and sets the CSR_READY and CSR_DIRTY flags.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.div_csr" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#245-247">source</a><h4 class="code-header">pub fn <a href="#method.div_csr" class="fn">div_csr</a>(&self) -> &<a class="type" href="sio/type.DIV_CSR.html" title="type rp2040_pac::sio::DIV_CSR">DIV_CSR</a></h4></section></summary><div class="docblock"><p>0x78 - Control and status register for divider.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_accum0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#250-252">source</a><h4 class="code-header">pub fn <a href="#method.interp0_accum0" class="fn">interp0_accum0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_ACCUM0.html" title="type rp2040_pac::sio::INTERP0_ACCUM0">INTERP0_ACCUM0</a></h4></section></summary><div class="docblock"><p>0x80 - Read/write access to accumulator 0</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_accum1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#255-257">source</a><h4 class="code-header">pub fn <a href="#method.interp0_accum1" class="fn">interp0_accum1</a>(&self) -> &<a class="type" href="sio/type.INTERP0_ACCUM1.html" title="type rp2040_pac::sio::INTERP0_ACCUM1">INTERP0_ACCUM1</a></h4></section></summary><div class="docblock"><p>0x84 - Read/write access to accumulator 1</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_base0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#260-262">source</a><h4 class="code-header">pub fn <a href="#method.interp0_base0" class="fn">interp0_base0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_BASE0.html" title="type rp2040_pac::sio::INTERP0_BASE0">INTERP0_BASE0</a></h4></section></summary><div class="docblock"><p>0x88 - Read/write access to BASE0 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_base1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#265-267">source</a><h4 class="code-header">pub fn <a href="#method.interp0_base1" class="fn">interp0_base1</a>(&self) -> &<a class="type" href="sio/type.INTERP0_BASE1.html" title="type rp2040_pac::sio::INTERP0_BASE1">INTERP0_BASE1</a></h4></section></summary><div class="docblock"><p>0x8c - Read/write access to BASE1 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_base2" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#270-272">source</a><h4 class="code-header">pub fn <a href="#method.interp0_base2" class="fn">interp0_base2</a>(&self) -> &<a class="type" href="sio/type.INTERP0_BASE2.html" title="type rp2040_pac::sio::INTERP0_BASE2">INTERP0_BASE2</a></h4></section></summary><div class="docblock"><p>0x90 - Read/write access to BASE2 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_pop_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#275-277">source</a><h4 class="code-header">pub fn <a href="#method.interp0_pop_lane0" class="fn">interp0_pop_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_POP_LANE0.html" title="type rp2040_pac::sio::INTERP0_POP_LANE0">INTERP0_POP_LANE0</a></h4></section></summary><div class="docblock"><p>0x94 - Read LANE0 result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_pop_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#280-282">source</a><h4 class="code-header">pub fn <a href="#method.interp0_pop_lane1" class="fn">interp0_pop_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP0_POP_LANE1.html" title="type rp2040_pac::sio::INTERP0_POP_LANE1">INTERP0_POP_LANE1</a></h4></section></summary><div class="docblock"><p>0x98 - Read LANE1 result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_pop_full" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#285-287">source</a><h4 class="code-header">pub fn <a href="#method.interp0_pop_full" class="fn">interp0_pop_full</a>(&self) -> &<a class="type" href="sio/type.INTERP0_POP_FULL.html" title="type rp2040_pac::sio::INTERP0_POP_FULL">INTERP0_POP_FULL</a></h4></section></summary><div class="docblock"><p>0x9c - Read FULL result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_peek_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#290-292">source</a><h4 class="code-header">pub fn <a href="#method.interp0_peek_lane0" class="fn">interp0_peek_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_PEEK_LANE0.html" title="type rp2040_pac::sio::INTERP0_PEEK_LANE0">INTERP0_PEEK_LANE0</a></h4></section></summary><div class="docblock"><p>0xa0 - Read LANE0 result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_peek_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#295-297">source</a><h4 class="code-header">pub fn <a href="#method.interp0_peek_lane1" class="fn">interp0_peek_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP0_PEEK_LANE1.html" title="type rp2040_pac::sio::INTERP0_PEEK_LANE1">INTERP0_PEEK_LANE1</a></h4></section></summary><div class="docblock"><p>0xa4 - Read LANE1 result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_peek_full" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#300-302">source</a><h4 class="code-header">pub fn <a href="#method.interp0_peek_full" class="fn">interp0_peek_full</a>(&self) -> &<a class="type" href="sio/type.INTERP0_PEEK_FULL.html" title="type rp2040_pac::sio::INTERP0_PEEK_FULL">INTERP0_PEEK_FULL</a></h4></section></summary><div class="docblock"><p>0xa8 - Read FULL result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_ctrl_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#305-307">source</a><h4 class="code-header">pub fn <a href="#method.interp0_ctrl_lane0" class="fn">interp0_ctrl_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_CTRL_LANE0.html" title="type rp2040_pac::sio::INTERP0_CTRL_LANE0">INTERP0_CTRL_LANE0</a></h4></section></summary><div class="docblock"><p>0xac - Control register for lane 0</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_ctrl_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#310-312">source</a><h4 class="code-header">pub fn <a href="#method.interp0_ctrl_lane1" class="fn">interp0_ctrl_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP0_CTRL_LANE1.html" title="type rp2040_pac::sio::INTERP0_CTRL_LANE1">INTERP0_CTRL_LANE1</a></h4></section></summary><div class="docblock"><p>0xb0 - Control register for lane 1</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_accum0_add" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#316-318">source</a><h4 class="code-header">pub fn <a href="#method.interp0_accum0_add" class="fn">interp0_accum0_add</a>(&self) -> &<a class="type" href="sio/type.INTERP0_ACCUM0_ADD.html" title="type rp2040_pac::sio::INTERP0_ACCUM0_ADD">INTERP0_ACCUM0_ADD</a></h4></section></summary><div class="docblock"><p>0xb4 - Values written here are atomically added to ACCUM0<br />
|
|||
|
Reading yields lane 0’s raw shift and mask value (BASE0 not added).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_accum1_add" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#322-324">source</a><h4 class="code-header">pub fn <a href="#method.interp0_accum1_add" class="fn">interp0_accum1_add</a>(&self) -> &<a class="type" href="sio/type.INTERP0_ACCUM1_ADD.html" title="type rp2040_pac::sio::INTERP0_ACCUM1_ADD">INTERP0_ACCUM1_ADD</a></h4></section></summary><div class="docblock"><p>0xb8 - Values written here are atomically added to ACCUM1<br />
|
|||
|
Reading yields lane 1’s raw shift and mask value (BASE1 not added).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp0_base_1and0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#328-330">source</a><h4 class="code-header">pub fn <a href="#method.interp0_base_1and0" class="fn">interp0_base_1and0</a>(&self) -> &<a class="type" href="sio/type.INTERP0_BASE_1AND0.html" title="type rp2040_pac::sio::INTERP0_BASE_1AND0">INTERP0_BASE_1AND0</a></h4></section></summary><div class="docblock"><p>0xbc - On write, the lower 16 bits go to BASE0, upper bits to BASE1 simultaneously.<br />
|
|||
|
Each half is sign-extended to 32 bits if that lane’s SIGNED flag is set.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_accum0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#333-335">source</a><h4 class="code-header">pub fn <a href="#method.interp1_accum0" class="fn">interp1_accum0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_ACCUM0.html" title="type rp2040_pac::sio::INTERP1_ACCUM0">INTERP1_ACCUM0</a></h4></section></summary><div class="docblock"><p>0xc0 - Read/write access to accumulator 0</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_accum1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#338-340">source</a><h4 class="code-header">pub fn <a href="#method.interp1_accum1" class="fn">interp1_accum1</a>(&self) -> &<a class="type" href="sio/type.INTERP1_ACCUM1.html" title="type rp2040_pac::sio::INTERP1_ACCUM1">INTERP1_ACCUM1</a></h4></section></summary><div class="docblock"><p>0xc4 - Read/write access to accumulator 1</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_base0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#343-345">source</a><h4 class="code-header">pub fn <a href="#method.interp1_base0" class="fn">interp1_base0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_BASE0.html" title="type rp2040_pac::sio::INTERP1_BASE0">INTERP1_BASE0</a></h4></section></summary><div class="docblock"><p>0xc8 - Read/write access to BASE0 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_base1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#348-350">source</a><h4 class="code-header">pub fn <a href="#method.interp1_base1" class="fn">interp1_base1</a>(&self) -> &<a class="type" href="sio/type.INTERP1_BASE1.html" title="type rp2040_pac::sio::INTERP1_BASE1">INTERP1_BASE1</a></h4></section></summary><div class="docblock"><p>0xcc - Read/write access to BASE1 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_base2" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#353-355">source</a><h4 class="code-header">pub fn <a href="#method.interp1_base2" class="fn">interp1_base2</a>(&self) -> &<a class="type" href="sio/type.INTERP1_BASE2.html" title="type rp2040_pac::sio::INTERP1_BASE2">INTERP1_BASE2</a></h4></section></summary><div class="docblock"><p>0xd0 - Read/write access to BASE2 register.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_pop_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#358-360">source</a><h4 class="code-header">pub fn <a href="#method.interp1_pop_lane0" class="fn">interp1_pop_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_POP_LANE0.html" title="type rp2040_pac::sio::INTERP1_POP_LANE0">INTERP1_POP_LANE0</a></h4></section></summary><div class="docblock"><p>0xd4 - Read LANE0 result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_pop_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#363-365">source</a><h4 class="code-header">pub fn <a href="#method.interp1_pop_lane1" class="fn">interp1_pop_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP1_POP_LANE1.html" title="type rp2040_pac::sio::INTERP1_POP_LANE1">INTERP1_POP_LANE1</a></h4></section></summary><div class="docblock"><p>0xd8 - Read LANE1 result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_pop_full" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#368-370">source</a><h4 class="code-header">pub fn <a href="#method.interp1_pop_full" class="fn">interp1_pop_full</a>(&self) -> &<a class="type" href="sio/type.INTERP1_POP_FULL.html" title="type rp2040_pac::sio::INTERP1_POP_FULL">INTERP1_POP_FULL</a></h4></section></summary><div class="docblock"><p>0xdc - Read FULL result, and simultaneously write lane results to both accumulators (POP).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_peek_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#373-375">source</a><h4 class="code-header">pub fn <a href="#method.interp1_peek_lane0" class="fn">interp1_peek_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_PEEK_LANE0.html" title="type rp2040_pac::sio::INTERP1_PEEK_LANE0">INTERP1_PEEK_LANE0</a></h4></section></summary><div class="docblock"><p>0xe0 - Read LANE0 result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_peek_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#378-380">source</a><h4 class="code-header">pub fn <a href="#method.interp1_peek_lane1" class="fn">interp1_peek_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP1_PEEK_LANE1.html" title="type rp2040_pac::sio::INTERP1_PEEK_LANE1">INTERP1_PEEK_LANE1</a></h4></section></summary><div class="docblock"><p>0xe4 - Read LANE1 result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_peek_full" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#383-385">source</a><h4 class="code-header">pub fn <a href="#method.interp1_peek_full" class="fn">interp1_peek_full</a>(&self) -> &<a class="type" href="sio/type.INTERP1_PEEK_FULL.html" title="type rp2040_pac::sio::INTERP1_PEEK_FULL">INTERP1_PEEK_FULL</a></h4></section></summary><div class="docblock"><p>0xe8 - Read FULL result, without altering any internal state (PEEK).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_ctrl_lane0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#388-390">source</a><h4 class="code-header">pub fn <a href="#method.interp1_ctrl_lane0" class="fn">interp1_ctrl_lane0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_CTRL_LANE0.html" title="type rp2040_pac::sio::INTERP1_CTRL_LANE0">INTERP1_CTRL_LANE0</a></h4></section></summary><div class="docblock"><p>0xec - Control register for lane 0</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_ctrl_lane1" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#393-395">source</a><h4 class="code-header">pub fn <a href="#method.interp1_ctrl_lane1" class="fn">interp1_ctrl_lane1</a>(&self) -> &<a class="type" href="sio/type.INTERP1_CTRL_LANE1.html" title="type rp2040_pac::sio::INTERP1_CTRL_LANE1">INTERP1_CTRL_LANE1</a></h4></section></summary><div class="docblock"><p>0xf0 - Control register for lane 1</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_accum0_add" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#399-401">source</a><h4 class="code-header">pub fn <a href="#method.interp1_accum0_add" class="fn">interp1_accum0_add</a>(&self) -> &<a class="type" href="sio/type.INTERP1_ACCUM0_ADD.html" title="type rp2040_pac::sio::INTERP1_ACCUM0_ADD">INTERP1_ACCUM0_ADD</a></h4></section></summary><div class="docblock"><p>0xf4 - Values written here are atomically added to ACCUM0<br />
|
|||
|
Reading yields lane 0’s raw shift and mask value (BASE0 not added).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_accum1_add" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#405-407">source</a><h4 class="code-header">pub fn <a href="#method.interp1_accum1_add" class="fn">interp1_accum1_add</a>(&self) -> &<a class="type" href="sio/type.INTERP1_ACCUM1_ADD.html" title="type rp2040_pac::sio::INTERP1_ACCUM1_ADD">INTERP1_ACCUM1_ADD</a></h4></section></summary><div class="docblock"><p>0xf8 - Values written here are atomically added to ACCUM1<br />
|
|||
|
Reading yields lane 1’s raw shift and mask value (BASE1 not added).</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.interp1_base_1and0" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#411-413">source</a><h4 class="code-header">pub fn <a href="#method.interp1_base_1and0" class="fn">interp1_base_1and0</a>(&self) -> &<a class="type" href="sio/type.INTERP1_BASE_1AND0.html" title="type rp2040_pac::sio::INTERP1_BASE_1AND0">INTERP1_BASE_1AND0</a></h4></section></summary><div class="docblock"><p>0xfc - On write, the lower 16 bits go to BASE0, upper bits to BASE1 simultaneously.<br />
|
|||
|
Each half is sign-extended to 32 bits if that lane’s SIGNED flag is set.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.spinlock" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#422-424">source</a><h4 class="code-header">pub fn <a href="#method.spinlock" class="fn">spinlock</a>(&self, n: <a class="primitive" href="https://doc.rust-lang.org/1.83.0/core/primitive.usize.html">usize</a>) -> &<a class="type" href="sio/type.SPINLOCK.html" title="type rp2040_pac::sio::SPINLOCK">SPINLOCK</a></h4></section></summary><div class="docblock"><p>0x100..0x180 - Reading from a spinlock address will:</p>
|
|||
|
<ul>
|
|||
|
<li>Return 0 if lock is already locked</li>
|
|||
|
<li>Otherwise return nonzero, and simultaneously claim the lock</li>
|
|||
|
</ul>
|
|||
|
<p>Writing (any value) releases the lock.<br />
|
|||
|
If core 0 and core 1 attempt to claim the same lock simultaneously, core 0 wins.<br />
|
|||
|
The value returned on success is 0x1 << lock number.</p>
|
|||
|
</div></details><details class="toggle method-toggle" open><summary><section id="method.spinlock_iter" class="method"><a class="src rightside" href="../src/rp2040_pac/sio.rs.html#434-436">source</a><h4 class="code-header">pub fn <a href="#method.spinlock_iter" class="fn">spinlock_iter</a>(&self) -> impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a><Item = &<a class="type" href="sio/type.SPINLOCK.html" title="type rp2040_pac::sio::SPINLOCK">SPINLOCK</a>></h4></section></summary><div class="docblock"><p>Iterator for array of:
|
|||
|
0x100..0x180 - Reading from a spinlock address will:</p>
|
|||
|
<ul>
|
|||
|
<li>Return 0 if lock is already locked</li>
|
|||
|
<li>Otherwise return nonzero, and simultaneously claim the lock</li>
|
|||
|
</ul>
|
|||
|
<p>Writing (any value) releases the lock.<br />
|
|||
|
If core 0 and core 1 attempt to claim the same lock simultaneously, core 0 wins.<br />
|
|||
|
The value returned on success is 0x1 << lock number.</p>
|
|||
|
</div></details></div></details><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-SIO" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2178-2182">source</a><a href="#impl-Debug-for-SIO" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.SIO.html" title="struct rp2040_pac::SIO">SIO</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#2179-2181">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/1.83.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/1.83.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.83.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-SIO" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2171-2177">source</a><a href="#impl-Deref-for-SIO" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a> for <a class="struct" href="struct.SIO.html" title="struct rp2040_pac::SIO">SIO</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#2172">source</a><a href="#associatedtype.Target" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.83.0/core/ops/deref/trait.Deref.html#associatedtype.Target" class="associatedtype">Target</a> = <a class="struct" href="sio/struct.RegisterBlock.html" title="struct rp2040_pac::sio::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#2174-2176">source</a><a href="#method.deref" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.83.0/core/ops/deref/trait.Deref.html#tymethod.deref" class="fn">deref</a>(&self) -> &Self::<a class="associatedtype" href="https://doc.rust-lang.org/1.83.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-SIO" class="impl"><a class="src rightside" href="../src/rp2040_pac/lib.rs.html#2143">source</a><a href="#impl-Send-for-SIO" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SIO.html" title="struct rp2040_pac::SIO">SIO</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-SIO" class="i
|
|||
|
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.83.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.83.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.83.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/1.83.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.83.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.83.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<T> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T<div class="where">where
|
|||
|
T: ?<a class="trait" href="https://doc.rust-lang.org/1.83.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.83.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.83.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.83.0/core/primitive.reference.html">&T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.83.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.83.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<T> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<div class="where">where
|
|||
|
T: ?<a class="trait" href="https://doc.rust-lang.org/1.83.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.83.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.83.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/1.83.0/core/primitive.reference.html">&mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.83.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.83.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<T> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> 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.83.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.83.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -> 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.83.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<T, U> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T<div class="where">where
|
|||
|
U: <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>,</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.83.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.83.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -> 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.83.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> 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.83.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<T, U> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T<div class="where">where
|
|||
|
U: <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>,</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.83.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.83.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.83.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.83.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.83.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></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.83.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<T, U> <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T<div class="where">where
|
|||
|
U: <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>,</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.83.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.83.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.83.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.83.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.83.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/1.83.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="associatedtype" href="https://doc.rust-lang.org/1.83.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>
|