Merge pull request #2334 from embassy-rs/embassy-net-adin1110-docs
docs: embassy-net-adin1110
This commit is contained in:
commit
76c600365d
5 changed files with 15 additions and 5 deletions
|
@ -6,8 +6,7 @@ keywords = ["embedded", "ADIN1110", "embassy-net", "embedded-hal-async", "ethern
|
|||
categories = ["embedded", "hardware-support", "no-std", "network-programming", "async"]
|
||||
license = "MIT OR Apache-2.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
repository = "https://github.com/embassy-rs/embassy"
|
||||
|
||||
[dependencies]
|
||||
heapless = "0.8"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
/// CRC32 lookup table.
|
||||
pub const CRC32R_LOOKUP_TABLE: [u32; 256] = [
|
||||
0x0000_0000,
|
||||
0x7707_3096,
|
||||
|
@ -263,8 +264,9 @@ pub const CRC32R_LOOKUP_TABLE: [u32; 256] = [
|
|||
pub struct ETH_FCS(pub u32);
|
||||
|
||||
impl ETH_FCS {
|
||||
pub const CRC32_OK: u32 = 0x2144_df1c;
|
||||
const CRC32_OK: u32 = 0x2144_df1c;
|
||||
|
||||
/// Create a new frame check sequence from `data`.
|
||||
#[must_use]
|
||||
pub fn new(data: &[u8]) -> Self {
|
||||
let fcs = data.iter().fold(u32::MAX, |crc, byte| {
|
||||
|
@ -274,6 +276,7 @@ impl ETH_FCS {
|
|||
Self(fcs)
|
||||
}
|
||||
|
||||
/// Update the frame check sequence with `data`.
|
||||
#[must_use]
|
||||
pub fn update(self, data: &[u8]) -> Self {
|
||||
let fcs = data.iter().fold(self.0 ^ u32::MAX, |crc, byte| {
|
||||
|
@ -283,16 +286,19 @@ impl ETH_FCS {
|
|||
Self(fcs)
|
||||
}
|
||||
|
||||
/// Check if the frame check sequence is correct.
|
||||
#[must_use]
|
||||
pub fn crc_ok(&self) -> bool {
|
||||
self.0 == Self::CRC32_OK
|
||||
}
|
||||
|
||||
/// Switch byte order.
|
||||
#[must_use]
|
||||
pub fn hton_bytes(&self) -> [u8; 4] {
|
||||
self.0.to_le_bytes()
|
||||
}
|
||||
|
||||
/// Switch byte order as a u32.
|
||||
#[must_use]
|
||||
pub fn hton(&self) -> u32 {
|
||||
self.0.to_le()
|
||||
|
|
|
@ -5,6 +5,7 @@
|
|||
#![allow(clippy::missing_errors_doc)]
|
||||
#![allow(clippy::missing_panics_doc)]
|
||||
#![doc = include_str!("../README.md")]
|
||||
#![warn(missing_docs)]
|
||||
|
||||
// must go first!
|
||||
mod fmt;
|
||||
|
@ -26,8 +27,9 @@ use embedded_hal_async::digital::Wait;
|
|||
use embedded_hal_async::spi::{Error, Operation, SpiDevice};
|
||||
use heapless::Vec;
|
||||
pub use mdio::MdioBus;
|
||||
pub use phy::{Phy10BaseT1x, RegsC22, RegsC45};
|
||||
pub use regs::{Config0, Config2, SpiRegisters as sr, Status0, Status1};
|
||||
pub use phy::Phy10BaseT1x;
|
||||
use phy::{RegsC22, RegsC45};
|
||||
use regs::{Config0, Config2, SpiRegisters as sr, Status0, Status1};
|
||||
|
||||
use crate::fmt::Bytes;
|
||||
use crate::regs::{LedCntrl, LedFunc, LedPol, LedPolarity, SpiHeader};
|
||||
|
@ -446,6 +448,7 @@ pub struct Runner<'d, SPI, INT, RST> {
|
|||
}
|
||||
|
||||
impl<'d, SPI: SpiDevice, INT: Wait, RST: OutputPin> Runner<'d, SPI, INT, RST> {
|
||||
/// Run the driver.
|
||||
#[allow(clippy::too_many_lines)]
|
||||
pub async fn run(mut self) -> ! {
|
||||
loop {
|
||||
|
|
|
@ -39,6 +39,7 @@ enum Reg13Op {
|
|||
///
|
||||
/// Clause 45 methodes are bases on <https://www.ieee802.org/3/efm/public/nov02/oam/pannell_oam_1_1102.pdf>
|
||||
pub trait MdioBus {
|
||||
/// Error type.
|
||||
type Error;
|
||||
|
||||
/// Read, Clause 22
|
||||
|
|
|
@ -2,6 +2,7 @@ use core::fmt::{Debug, Display};
|
|||
|
||||
use bitfield::{bitfield, bitfield_bitrange, bitfield_fields};
|
||||
|
||||
#[allow(missing_docs)]
|
||||
#[allow(non_camel_case_types)]
|
||||
#[derive(Debug, Copy, Clone)]
|
||||
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
|
||||
|
|
Loading…
Reference in a new issue