[−][src]Crate wishbone_bridge
Wishbone Bridges
Wishbone is an internal bus that runs on-chip. It provides memory-based interconnect between various hardware modules. Wishbone buses frequently contain memories such as RAM and ROM, as well as memory-mapped peripherals.
By accessing these memories remotely, a target device may be examined or tested by a host.
Wishbone may be bridged from a target to a host using a variety of protocols. This library supports different protocols depending on what features are enabled. By default, all supported protocols are enabled.
Creating a Wishbone Bridge
object involves first creating a configuration
struct that describes the connection mechanism, and then calling .create()
on that struct to create the Bridge
. For example, to create a USB Bridge
using the USB PID 0x1234
, peek memory at address 0, and poke the value
0x12345678
into address 0x20000000
, you would use a UsbBridge
like this:
use wishbone_bridge::UsbBridge; let bridge = UsbBridge::new().pid(0x1234).create().unwrap(); println!("Memory at address 0: {:08x}", bridge.peek(0).unwrap()); bridge.poke(0x2000_0000, 0x1234_5678).unwrap();
Creating other bridges is done in a similar manner -- see their individual pages for more information.
Structs
Bridge | Bridges represent the actual connection to the device. You must create
a Bridge by constructing a configuration from the relevant
configuration type, and then calling |
EthernetBridge | A builder to create a connection to a target via Ethernet, either using
TCP or UDP. The |
PCIeBridge | Describes a connection to a target via PCI Express. |
SpiBridge | Describes a connection to a SPI bus. Note that not all platforms support SPI connections. |
UartBridge | Describes a connection to a UART or serial port |
UsbBridge | Connect to a target device via USB. |
Enums
BridgeError | Errors that are generated while creating or using the Wishbone Bridge. |
EthernetBridgeProtocol | Indicates which Ethernet protocol to use for Wishbone when connecting via a network. |