// write last buffer to memory void dfmemSync() { //if currentBufferOffset == 0, then we don't need to write anything to be sync'd if(currentBufferOffset != 0){ dfmemWriteBuffer2MemoryNoErase(nextPage, currentBuffer); currentBuffer = (currentBuffer) ? 0 : 1; //Toggle buffer number currentBufferOffset = 0; // reset to beginning of buffer nextPage++; } }
void dfmemSync() { while(!dfmemIsReady()); //if currentBufferOffset == 0, then we don't need to write anything to be sync'd if(currentBufferOffset != 0){ dfmemWriteBuffer2MemoryNoErase(nextPage, currentBuffer); currentBuffer = (currentBuffer) ? 0 : 1; //Toggle buffer number currentBufferOffset = 0; nextPage++; } }
void dfmemSave(unsigned char* data, unsigned int length) { //If this write will fit into the buffer, then just put it there if (currentBufferOffset + length >= dfmem_buffersize) { dfmemWriteBuffer2MemoryNoErase(nextPage, currentBuffer); currentBuffer = (currentBuffer) ? 0 : 1; currentBufferOffset = 0; nextPage++; } //We know there won't be an overrun here because of the previous 'if' // TODO (fgb) : Shouldn't this happen only when the buffer is full, // probably calling dfmemSync? dfmemWriteBuffer(data, length, currentBufferOffset, currentBuffer); currentBufferOffset += length; }