MCPcopy Create free account
hub / github.com/BernardoGiordano/Checkpoint / SPIWriteRead

Function SPIWriteRead

3ds/source/spi.cpp:52–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

50u8* fill_buf = NULL;
51
52Result SPIWriteRead(CardType type, void* cmd, u32 cmdSize, void* answer, u32 answerSize, void* data, u32 dataSize)
53{
54 u8 transferOp = pxiDevMakeTransferOption(BAUDRATE_4MHZ, BUSMODE_1BIT), transferOp2 = pxiDevMakeTransferOption(BAUDRATE_1MHZ, BUSMODE_1BIT);
55 u64 waitOp = pxiDevMakeWaitOperation(WAIT_NONE, DEASSERT_NONE, 0LL);
56 u64 headerFooterVal = 0;
57 bool b = type == FLASH_512KB_INFRARED || type == FLASH_256KB_INFRARED;
58
59 PXIDEV_SPIBuffer headerBuffer = {&headerFooterVal, (b) ? 1U : 0U, (b) ? transferOp2 : transferOp, waitOp};
60 PXIDEV_SPIBuffer cmdBuffer = {cmd, cmdSize, transferOp, waitOp};
61 PXIDEV_SPIBuffer answerBuffer = {answer, answerSize, transferOp, waitOp};
62 PXIDEV_SPIBuffer dataBuffer = {data, dataSize, transferOp, waitOp};
63 PXIDEV_SPIBuffer nullBuffer = {NULL, 0U, transferOp, waitOp};
64 PXIDEV_SPIBuffer footerBuffer = {&headerFooterVal, 0U, transferOp, waitOp};
65
66 return PXIDEV_SPIMultiWriteRead(&headerBuffer, &cmdBuffer, &answerBuffer, &dataBuffer, &nullBuffer, &footerBuffer);
67}
68
69Result SPIWaitWriteEnd(CardType type)
70{

Callers 7

SPIWaitWriteEndFunction · 0.85
SPIEnableWritingFunction · 0.85
SPIWriteSaveDataFunction · 0.85
SPIReadSaveDataFunction · 0.85
SPIEraseSectorFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected