Fixes to SDMMCv2 driver, write still not working.

git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@13414 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2020-03-14 09:49:29 +00:00
parent 71348f96f8
commit 54f7db045f
3 changed files with 41 additions and 1 deletions

View File

@ -867,7 +867,9 @@ void sdc_lld_serve_interrupt(SDCDriver *sdcp) {
read/write functions needs to check them.*/
sdcp->sdmmc->MASK = 0;
osalSysLockFromISR();
osalThreadResumeI(&sdcp->thread, MSG_OK);
osalSysUnlockFromISR();
}
#endif /* HAL_USE_SDC */

View File

@ -160,10 +160,12 @@ static void cmd_tree(BaseSequentialStream *chp, int argc, char *argv[]) {
chprintf(chp, "Usage: tree\r\n");
return;
}
if (!fs_ready) {
chprintf(chp, "File System not mounted\r\n");
return;
}
err = f_getfree("/", &fre_clust, &fsp);
if (err != FR_OK) {
chprintf(chp, "FS: f_getfree() failed\r\n");
@ -176,8 +178,44 @@ static void cmd_tree(BaseSequentialStream *chp, int argc, char *argv[]) {
scan_files(chp, (char *)fbuff);
}
static void cmd_create(BaseSequentialStream *chp, int argc, char *argv[]) {
FRESULT err;
FIL f;
static const char data[] = "the quick brown fox jumps over the lazy dog";
UINT btw = sizeof data - 1;
UINT bw;
if (argc != 1) {
chprintf(chp, "Usage: create <filename>\r\n");
return;
}
if (!fs_ready) {
chprintf(chp, "File System not mounted\r\n");
return;
}
err = f_open(&f, (const TCHAR *)argv[0], FA_CREATE_ALWAYS | FA_WRITE);
if (err != FR_OK) {
chprintf(chp, "FS: f_open() failed\r\n");
return;
}
err = f_write(&f, (const void *)data, btw, &bw);
if (err != FR_OK) {
chprintf(chp, "FS: f_write() failed\r\n");
}
err = f_close(&f);
if (err != FR_OK) {
chprintf(chp, "FS: f_close() failed\r\n");
return;
}
}
static const ShellCommand commands[] = {
{"tree", cmd_tree},
{"create", cmd_create},
{NULL, NULL}
};

View File

@ -33,7 +33,7 @@
<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_REGISTER_GROUPS" value=""/>
<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList&gt;&lt;content id=&quot;xPSR-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IER-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;SR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IFCR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED0-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CRCPOLY-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXCRC-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXCRC-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;UDRDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;I2SCFGR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IER-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;SR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IFCR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED0-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CRCPOLY-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXCRC-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXCRC-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;UDRDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;I2SCFGR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;/contentList&gt;"/>
<stringAttribute key="org.eclipse.cdt.launch.FORMAT" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;contentList&gt;&lt;content id=&quot;I2SCFGR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;UDRDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXCRC-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXCRC-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CRCPOLY-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXDR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED0-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IFCR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;SR-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IER-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR2-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR1-spi-null-_idle_thread-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;I2SCFGR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;UDRDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXCRC-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXCRC-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CRCPOLY-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RXDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;TXDR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;RESERVED0-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IFCR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;SR-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;IER-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CFG1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR2-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;CR1-spi-null-spi_thread_1-(format)&quot; val=&quot;4&quot;/&gt;&lt;content id=&quot;xPSR-(format)&quot; val=&quot;4&quot;/&gt;&lt;/contentList&gt;"/>
<stringAttribute key="org.eclipse.cdt.launch.GLOBAL_VARIABLES" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;globalVariableList/&gt;&#10;"/>
<stringAttribute key="org.eclipse.cdt.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&#10;&lt;memoryBlockExpressionList&gt;&#10;&lt;memoryBlockExpressionItem&gt;&#10;&lt;expression text=&quot;0x40021004&quot;/&gt;&#10;&lt;/memoryBlockExpressionItem&gt;&#10;&lt;/memoryBlockExpressionList&gt;&#10;"/>
<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="${selected_resource_loc}"/>