Module capsules::sdcard [] [src]

Provides driver for accessing an SD Card and a userspace Driver.

This allows initialization and block reads or writes on top of SPI.

Usage

let sdcard_spi = static_init!(
    capsules::virtual_spi::VirtualSpiMasterDevice<'static, usart::USART>,
    capsules::virtual_spi::VirtualSpiMasterDevice::new(mux_spi,
                                                       Some(&sam4l::gpio::PA[13])));
let sdcard_virtual_alarm = static_init!(
    VirtualMuxAlarm<'static, sam4l::ast::Ast>,
    VirtualMuxAlarm::new(mux_alarm));

let sdcard = static_init!(
    capsules::sdcard::SDCard<'static, VirtualMuxAlarm<'static, sam4l::ast::Ast>>,
    capsules::sdcard::SDCard::new(sdcard_spi,
                                  sdcard_virtual_alarm,
                                  Some(&sam4l::gpio::PA[17]),
                                  &mut capsules::sdcard::TXBUFFER,
                                  &mut capsules::sdcard::RXBUFFER));
sdcard_spi.set_client(sdcard);
sdcard_virtual_alarm.set_client(sdcard);
sam4l::gpio::PA[17].set_client(sdcard);

let sdcard_driver = static_init!(
    capsules::sdcard::SDCardDriver<'static, VirtualMuxAlarm<'static, sam4l::ast::Ast>>,
    capsules::sdcard::SDCardDriver::new(sdcard, &mut capsules::sdcard::KERNEL_BUFFER));
sdcard.set_client(sdcard_driver);

Reexports

use core::cell::Cell;
use core::cmp;
use kernel::AppId;
use kernel::AppSlice;
use kernel::Callback;
use kernel::Driver;
use kernel::ReturnCode;
use kernel::Shared;
use kernel::common::take_cell::MapCell;
use kernel::common::take_cell::TakeCell;
use kernel::hil;
use kernel::hil::time::Frequency;

Structs

App

Holds buffers and whatnot that the application has passed us.

SDCard

SD Card capsule, capable of being built on top of by other kernel capsules

SDCardDriver

Application driver for SD Card capsule, layers on top of SD Card capsule This is used if the SDCard is going to be attached directly to userspace syscalls. SDCardDriver can be ignored if another capsule is going to build off of the SDCard instead

Enums

AlarmState

Alarm states

ErrorCode

Error codes returned if an SD card transaction fails

SDCardType

SD card types, determined during initialization

SDCmd

SD card command codes

SDResponse

SD card response codes

SpiState

SPI states

Constants

DATA_TOKEN
INITIALIZING_STATUS
SUCCESS_STATUS

Statics

KERNEL_BUFFER

Buffer for SD card driver, assigned in board main.rs files

RXBUFFER
TXBUFFER

Buffers used for SD card transactions, assigned in board main.rs files Constraints:

Traits

SDCardClient

Callback functions from SDCard