[−][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. |