![](/media/cache/profiles/0_oRVmxLy.jpg.50x50_q85.jpg)
Example of using block device class for creating a block device to access a SD/MMC card via SD/MMC interface on DISCO_F746NG
Dependencies: BD_SD_DISCO_F746NG
You are viewing an older revision! See the latest version
Homepage
Example of using block device class for creating a block device to access a SD/MMC card via SD/MMC interface on DISCO_F746NG development board. This block device API provides an interface for access to block-based storage. You can use a block device to back a full file system or write to it directly. More about Block Devices
Simple example how to use the block device
#include "mbed.h" #include "BD_SD_DISCO_F746NG.h" DigitalOut led (LED1); // Instantiate the Block Device for sd card on DISCO-F746NG BD_SD_DISCO_F746NG bd; uint8_t block[512] = "Hello World!\n"; int main () { Serial pc (SERIAL_TX, SERIAL_RX); pc.baud (115200); printf ("Start\n"); // Call the BD_SD_DISCO_F746NG instance initialisation method. printf ("sd card init...\n"); if (0 != bd.init ()) { printf ("Init failed \n"); return -1; } printf ("sd size: %llu\n", bd.size ()); printf ("sd read size: %llu\n", bd.get_read_size ()); printf ("sd program size: %llu\n", bd.get_program_size ()); printf ("sd erase size: %llu\n\n", bd.get_erase_size ()); printf ("sd erase...\n"); if (0 != bd.erase (0, bd.get_erase_size ())) { printf ("Error Erasing block \n"); } // Write some the data block to the device printf ("sd write: %s\n", block); if (0 == bd.program (block, 0, 512)) { // read the data block from the device printf ("sd read: "); if (0 == bd.read (block, 0, 512)) { // print the contents of the block printf ("%s", block); } } // Call the BD_SD_DISCO_F746NG instance de-initialisation method. printf ("sd card deinit...\n"); if (0 != bd.deinit ()) { printf ("Deinit failed \n"); return -1; } // Blink led with 2 Hz while (true) { led = !led; wait (0.5); } }