Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
}
}