mirror of
https://git.intern.spaceteamaachen.de/ALPAKA/driver-w25qxxx.git
synced 2025-09-29 00:37:33 +00:00
Added search functionality using binary search
This commit is contained in:
@@ -44,6 +44,31 @@ namespace sta
|
||||
return 1;
|
||||
}
|
||||
|
||||
uint32_t W25Qxx::findLastPage(std::function<bool(uint8_t*)> criterion)
|
||||
{
|
||||
uint32_t left = 0;
|
||||
uint32_t right = 0xFFFFFFFF & (addrMode_ == AddressMode::_32BIT ? 0xFFFFFFFF : 0x00FFFFFF);
|
||||
uint32_t middle;
|
||||
uint8_t * page = new uint8_t[256];
|
||||
|
||||
while (left < right)
|
||||
{
|
||||
middle = (left + right) / 2 + 1;
|
||||
readData(middle, page, 256);
|
||||
|
||||
if (criterion(page))
|
||||
{
|
||||
left = middle;
|
||||
}
|
||||
else
|
||||
{
|
||||
right = middle-1;
|
||||
}
|
||||
}
|
||||
|
||||
return middle;
|
||||
}
|
||||
|
||||
uint8_t W25Qxx::setAddressMode(AddressMode addrMode)
|
||||
{
|
||||
busWrite(W25QXX_4_BYTE_ADDR_ENABLE);
|
||||
|
Reference in New Issue
Block a user