MCPcopy Create free account
hub / github.com/DISTORTEC/distortos / decodeSdStatus

Function decodeSdStatus

source/devices/memory/SdCardSpiBased.cpp:367–390  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

365 */
366
367SdStatus decodeSdStatus(const std::array<uint8_t, 64>& buffer)
368{
369 SdStatus sdStatus {};
370 sdStatus.datBusWidth = extractBits(ConstUint8Range{buffer}, 510, 511 - 510 + 1);
371 sdStatus.securedMode = extractBits(ConstUint8Range{buffer}, 509, 509 - 509 + 1);
372 sdStatus.sdCardType = extractBits(ConstUint8Range{buffer}, 480, 495 - 480 + 1);
373 sdStatus.sizeOfProtectedArea = extractBits(ConstUint8Range{buffer}, 448, 479 - 448 + 1);
374 sdStatus.speedClass = extractBits(ConstUint8Range{buffer}, 440, 447 - 440 + 1);
375 sdStatus.performanceMove = extractBits(ConstUint8Range{buffer}, 432, 439 - 432 + 1);
376 sdStatus.auSize = extractBits(ConstUint8Range{buffer}, 428, 431 - 428 + 1);
377 sdStatus.eraseSize = extractBits(ConstUint8Range{buffer}, 408, 423 - 408 + 1);
378 sdStatus.eraseTimeout = extractBits(ConstUint8Range{buffer}, 402, 407 - 402 + 1);
379 sdStatus.eraseOffset = extractBits(ConstUint8Range{buffer}, 400, 401 - 400 + 1);
380 sdStatus.uhsSpeedGrade = extractBits(ConstUint8Range{buffer}, 396, 399 - 396 + 1);
381 sdStatus.uhsAuSize = extractBits(ConstUint8Range{buffer}, 392, 395 - 392 + 1);
382 sdStatus.videoSpeedClass = extractBits(ConstUint8Range{buffer}, 384, 391 - 384 + 1);
383 sdStatus.vscAuSize = extractBits(ConstUint8Range{buffer}, 368, 377 - 368 + 1);
384 sdStatus.susAddr = extractBits(ConstUint8Range{buffer}, 346, 367 - 346 + 1);
385 sdStatus.appPerfClass = extractBits(ConstUint8Range{buffer}, 336, 339 - 336 + 1);
386 sdStatus.performanceEnhance = extractBits(ConstUint8Range{buffer}, 328, 335 - 328 + 1);
387 sdStatus.discardSupport = extractBits(ConstUint8Range{buffer}, 313, 313 - 313 + 1);
388 sdStatus.fuleSupport = extractBits(ConstUint8Range{buffer}, 312, 312 - 312 + 1);
389 return sdStatus;
390}
391
392/**
393 * \brief Waits while byte received via SPI satisfies predicate.

Callers 1

initializeMethod · 0.85

Calls 1

extractBitsFunction · 0.85

Tested by

no test coverage detected