Optimization in write operations of the MMC_SPI driver.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@3953 35acf78f-673a-0410-8e92-d51de3d6d3f4
This commit is contained in:
parent
aab3b75fc1
commit
cf5dfef7a8
|
@ -665,10 +665,8 @@ bool_t mmcSequentialWrite(MMCDriver *mmcp, const uint8_t *buffer) {
|
||||||
spiSend(mmcp->spip, MMC_SECTOR_SIZE, buffer); /* Data. */
|
spiSend(mmcp->spip, MMC_SECTOR_SIZE, buffer); /* Data. */
|
||||||
spiIgnore(mmcp->spip, 2); /* CRC ignored. */
|
spiIgnore(mmcp->spip, 2); /* CRC ignored. */
|
||||||
spiReceive(mmcp->spip, 1, b);
|
spiReceive(mmcp->spip, 1, b);
|
||||||
if ((b[0] & 0x1F) == 0x05) {
|
if ((b[0] & 0x1F) == 0x05)
|
||||||
wait(mmcp);
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
|
||||||
|
|
||||||
/* Error.*/
|
/* Error.*/
|
||||||
spiUnselect(mmcp->spip);
|
spiUnselect(mmcp->spip);
|
||||||
|
@ -701,6 +699,10 @@ bool_t mmcStopSequentialWrite(MMCDriver *mmcp) {
|
||||||
}
|
}
|
||||||
chSysUnlock();
|
chSysUnlock();
|
||||||
|
|
||||||
|
/* Wait completion of the last write operation.*/
|
||||||
|
wait(mmcp);
|
||||||
|
|
||||||
|
/* Semd stop command.*/
|
||||||
spiSend(mmcp->spip, sizeof(stop), stop);
|
spiSend(mmcp->spip, sizeof(stop), stop);
|
||||||
spiUnselect(mmcp->spip);
|
spiUnselect(mmcp->spip);
|
||||||
|
|
||||||
|
|
2
todo.txt
2
todo.txt
|
@ -15,6 +15,7 @@ Within 2.5.x:
|
||||||
* Revision of scheduling strategy for threads at equal priority.
|
* Revision of scheduling strategy for threads at equal priority.
|
||||||
* Handling of Virtual Timer callbacks out of critical zone.
|
* Handling of Virtual Timer callbacks out of critical zone.
|
||||||
* Add normal API (not iclass) variants of the VT functions.
|
* Add normal API (not iclass) variants of the VT functions.
|
||||||
|
* MMC_SPI driver speedup.
|
||||||
- Add the RTC service inside the kernel and port, remove from HAL.
|
- Add the RTC service inside the kernel and port, remove from HAL.
|
||||||
- Add option to use the RTC counter instead of the systick counter into the
|
- Add option to use the RTC counter instead of the systick counter into the
|
||||||
trace buffer.
|
trace buffer.
|
||||||
|
@ -27,7 +28,6 @@ Within 2.5.x:
|
||||||
- Runtime errors manager in HAL.
|
- Runtime errors manager in HAL.
|
||||||
- Critical errors manager in HAL (to replace or complement assertions).
|
- Critical errors manager in HAL (to replace or complement assertions).
|
||||||
- Streaming DAC/I2S driver model and STM32 implementation.
|
- Streaming DAC/I2S driver model and STM32 implementation.
|
||||||
- MMC_SPI driver speedup.
|
|
||||||
- USB driver model revision.
|
- USB driver model revision.
|
||||||
- MAC driver for STM32F107, STM32F2xx, STM32F4xx.
|
- MAC driver for STM32F107, STM32F2xx, STM32F4xx.
|
||||||
- STM32 OTG USB cell support for CL, F2, F4 devices.
|
- STM32 OTG USB cell support for CL, F2, F4 devices.
|
||||||
|
|
Loading…
Reference in New Issue