30 static MMCConfig mmcconfig;
31 static SPIConfig lowspeed;
32 static SPIConfig highspeed;
33 static bool sdcard_running;
43 sdcStart(&SDCD1,
NULL);
45 if(sdcConnect(&SDCD1) == HAL_FAILED) {
46 printf(
"Err: Failed to initialize SDIO!\n");
49 printf(
"Err: Failed to mount SD Card!\n");
50 sdcDisconnect(&SDCD1);
52 printf(
"Successfully mounted SDCard..\n");
60 printf(
"No sdcard SPI device found\n");
64 sdcard_running =
true;
66 mmcObjectInit(&MMCD1);
70 mmcconfig.hscfg = &highspeed;
71 mmcconfig.lscfg = &lowspeed;
73 mmcStart(&MMCD1, &mmcconfig);
75 if (mmcConnect(&MMCD1) == HAL_FAILED) {
76 printf(
"Err: Failed to initialize SDCARD_SPI!\n");
77 sdcard_running =
false;
80 printf(
"Err: Failed to mount SD Card!\n");
81 mmcDisconnect(&MMCD1);
83 printf(
"Successfully mounted SDCard..\n");
102 if (sdcard_running) {
103 mmcDisconnect(&MMCD1);
105 sdcard_running =
false;
118 void spiStartHook(SPIDriver *spip,
const SPIConfig *config)
130 if (sdcard_running) {
138 if (sdcard_running) {
146 if (sdcard_running) {
151 void spiSendHook(SPIDriver *spip,
size_t n,
const void *txbuf)
153 if (sdcard_running) {
154 device->
transfer((
const uint8_t *)txbuf, n,
nullptr, 0);
160 if (sdcard_running) {
161 device->
transfer(
nullptr, 0, (uint8_t *)rxbuf, n);
void spiSendHook(SPIDriver *spip, size_t n, const void *txbuf)
int printf(const char *fmt,...)
virtual bool clock_pulse(uint32_t len)
void spiReceiveHook(SPIDriver *spip, size_t n, void *rxbuf)
virtual OwnPtr< SPIDevice > get_device(const char *name)
void spiStartHook(SPIDriver *spip, const SPIConfig *config)
virtual Semaphore * get_semaphore() override=0
virtual bool set_chip_select(bool set)
AP_HAL::SPIDeviceManager * spi
FRESULT f_mount(FATFS *fs, const TCHAR *path, BYTE opt)
int mkdir(const char *pathname, mode_t mode)
POSIX make a directory.
virtual void take_blocking()
void spiStopHook(SPIDriver *spip)
virtual bool set_speed(Device::Speed speed) override=0
virtual bool transfer(const uint8_t *send, uint32_t send_len, uint8_t *recv, uint32_t recv_len) override=0
void spiUnselectHook(SPIDriver *spip)
void spiIgnoreHook(SPIDriver *spip, size_t n)
void spiSelectHook(SPIDriver *spip)