I'm tried to aggregate FIO_WriteFile , like this ..
Because, I think contenious sequential access is most faster when we write file to filesystem.
@@ -416,8 +417,12 @@
if(!skip_saving)
{
- FIO_WriteFile(save_file, UNCACHEABLE(&save_data->chunkData.chunkAddress[save_data->chunkData.chunkOffset]), avail);
+ memcpy(shmem+written,UNCACHEABLE(&save_data->chunkData.chunkAddress[save_data->chunkData.chunkOffset]),avail);
written += avail;
+ if(written == length)
+ {
+ FIO_WriteFile(save_file, shmem , length);
+ }
+
}
length -= avail;
@@ -451,12 +456,20 @@
strcpy(&data->fileSuffix[1], tmp);
}
void lv_rec_start()
{
int yPos = 3;
lv_rec_data_t data;
lv_rec_save_data_t save_data;
+ shmem = shoot_malloc(8000000);
+ if(shmem == NULL)
+ {
+ NotifyBox(3000,"8M shoot memory allocate failed");
+ msleep(3000);
+ return;
+ }
+
/* set all values to zero */
memset(&data, 0x00, sizeof(lv_rec_data_t));
memset(&save_data, 0x00, sizeof(lv_rec_save_data_t));
But memcpy from DMA mem to shoot mem is really slow. Let me know more faster memcpy method, If you know.
Also , shoot mem is only allocated about 8MB. where located more fast and bigger memory?
Modified
5D3 has no dma_memcpy