Skip to content

Commit 33632eb

Browse files
ValentiWorkLearningVKorniienko
authored and
VKorniienko
committed
Moved winbond wrtie block setup to pre-transaction action #17 [SPI_FLASH]
1 parent 84df021 commit 33632eb

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

Firmware/drivers/winbondflash/winbond_flash.cpp

+14-12
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,22 @@ WinbondFlash::requestWriteBlock(
3333
);
3434
m_pBusPtr->addTransaction( std::move( requestWriteEnable ) );
3535

36-
auto& spiTrasnsmitBuffer = m_pBusPtr->getDmaBufferTransmit();
37-
spiTrasnsmitBuffer[0] = WindbondCommandSet::PageProgram;
38-
spiTrasnsmitBuffer[1] = ( _address >> 16 );
39-
spiTrasnsmitBuffer[2] = ( _address >> 8 );
40-
spiTrasnsmitBuffer[3] = ( _address >> 0 );
41-
42-
memcpy(
43-
reinterpret_cast<void*>( spiTrasnsmitBuffer.data() + 3 )
44-
, _blockData
45-
, _blockSize
46-
);
4736

4837
Interface::Spi::TransactionDescriptor blockSetup{
49-
nullptr
38+
[this,_address,_blockData,_blockSize]
39+
{
40+
auto& spiTrasnsmitBuffer = m_pBusPtr->getDmaBufferTransmit();
41+
spiTrasnsmitBuffer[0] = WindbondCommandSet::PageProgram;
42+
spiTrasnsmitBuffer[1] = ( _address >> 16 );
43+
spiTrasnsmitBuffer[2] = ( _address >> 8 );
44+
spiTrasnsmitBuffer[3] = ( _address >> 0 );
45+
46+
memcpy(
47+
reinterpret_cast<void*>( spiTrasnsmitBuffer.data() + 3 )
48+
, _blockData
49+
, _blockSize
50+
);
51+
}
5052
, [this]{ onBlockWriteRequestCompleted.emit(); }
5153
, Interface::Spi::TransactionDescriptor::DataSequence{
5254
reinterpret_cast<const std::uint8_t*>( &m_pBusPtr->getDmaBufferTransmit() )

0 commit comments

Comments
 (0)