...
void FSDev_SD_Card_BSP_CmdDataWr (FS_QTY unit_nbr,
...
FS_DEV_SD_CARD_CMD *p_cmd,
...
void *p_src,
...
FS_DEV_SD_CARD_ERR *p_err);
...
...
File |
---|
...
...
Called from |
---|
...
Code enabled by |
---|
...
...
|
...
...
|
...
N/A |
...
Arguments
Anchor
unit_nbr
Unit number of SD/MMC card.
...
p_cmd
Anchor
Pointer to command that was started.
...
p_src
Anchor
Pointer to source buffer.
...
p_err
anchor
Pointer to variable that will receive the return error code from this function:
...
...
FS_DEV_SD_CARD_ERR_NONE
...
...
No error.
...
...
class | WebWorks_Indent_1 |
---|
...
FS_DEV_SD_CARD_ERR_NO_CARD
...
class | WebWorks_Indent_2 |
---|
...
...
No card present.
...
...
FS_DEV_SD_CARD_ERR_UNKNOWN
...
class | WebWorks_Indent_2 |
---|
...
Unknown or other error.
...
class | WebWorks_Indent_1 |
---|
...
FS_DEV_SD_CARD_ERR_WAIT_TIMEOUT
...
class | WebWorks_Indent_2 |
---|
...
...
Timeout in waiting for data.
...
...
FS_DEV_SD_CARD_ERR_DATA_UNDERRUN
...
class | WebWorks_Indent_2 |
---|
...
Data underrun.
...
class | WebWorks_Indent_1 |
---|
...
FS_DEV_SD_CARD_ERR_DATA_CHKSUM
...
class | WebWorks_Indent_2 |
---|
...
...
Error in data checksum.
...
...
FS_DEV_SD_CARD_ERR_DATA_START_BIT
...
...
Data start bit error.
...
class | WebWorks_Indent_1 |
---|
...
FS_DEV_SD_CARD_ERR_DATA
...
class | WebWorks_Indent_2 |
---|
...
...
Other data error.
...
Returned Value
Anchor
Notes/Warnings
...
None. Anchor
Example
...
The implementation of FSDev_SD_Card_BSP_CmdDataWr()
in Listing C-10 is is targeted for the same host controller as the other listings in this chapter; for more information, see FSDev_SD_Card_BSP_CmdStart()
.anchor
Code Block |
---|
...
|
...
HTML Table | |
---|---|
summary | |
class | Code_Listing |
Table Row (tr) | |
Table Cell (td) | |
Anchor | 1142735 | 1142735 | void
|
...
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
void FSDev_SD_Card_BSP_CmdDataWr (FS_QTY unit_nbr, Anchor | | 1142736 | 1142736 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142737 | 1142737 | void *p_src,|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Anchor | 1142738 | 1142738 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142739 | 1142739 | {|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142740 | 1142740 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142741 | 1142741 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142742 | 1142742 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142743 | 1142743 | timeout = 0u; /* Wait until data xfer compl. */ (1)|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142744 | 1142744 | interrupt_status =|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142745 | 1142745 | while|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142746 | 1142746 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142747 | 1142747 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142748 | 1142748 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142749 | 1142749 | if (timeout ==|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142750 | 1142750 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142751 | 1142751 | return;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142752 | 1142752 | }|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142753 | 1142753 | }|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142754 | 1142754 | /* Handle error. */ (2)|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142755 | 1142755 | if|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142756 | 1142756 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142757 | 1142757 | if|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142758 | 1142758 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142759 | 1142759 | } else if|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142760 | 1142760 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142761 | 1142761 | } else if|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142762 | 1142762 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142763 | 1142763 | } else {|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142764 | 1142764 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142765 | 1142765 | }|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142766 | 1142766 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142767 | 1142767 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142768 | 1142768 | return;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142769 | 1142769 | }|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142770 | 1142770 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142771 | 1142771 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Anchor | 1142772 | 1142772 | }
...
(3)
} |
Panel | ||
---|---|---|
| ||
(1) Wait until data transfer completes or an error occurs. The wait loop (or wait on semaphore) SHOULD always have a timeout to avoid blocking the task in the case of an unforeseen hardware malfunction or a software flaw. |
...
(2) Check if an error occurred. The error status register is decoded to produce the actual error condition. That is not necessary, strictly, but error counters that accumulate within the generic driver based upon returned error values may be useful while debugging a port. |
...
(3) Return no error. The data has been transferred already from the memory buffer using DMA. |