私はfreertos fatの使用中にこの問題を提起します。 iarコンパイラとMCUを使用する開発環境では、cortex-m4を使用しています。 私はHALライブラリを使用して、次のようにFreeRTOS FAT config.hの内容は次のとおりです。FreeRTOSファットサイクルの問題は、私は50hzで512bytesを書くことができますか?
#define BUS_4BITS 1
#define SDIO_USES_DMA 1
私は50Hzので400byteを書く1つのタスクのみ、SDカードの書き込み、 次のようにタスクがある生成:
をvoid SDCARD_WRITE_Task(void * pvParameters)
{
uint32_t PreviousWakeTime = 0;
SDcard_Init();
SDcard_SetFileName("FDR","/FDR");
for(;;)
{
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6,GPIO_PIN_SET); //pin high
PreviousWakeTime = osKernelSysTick();
SDcard_Write(ucFileName, SDCARD_Buffer, sizeof(SDCARD_Buffer));
HAL_GPIO_WritePin(GPIOG, GPIO_PIN_6,GPIO_PIN_RESET); // pin low
vTaskDelayUntil(&PreviousWakeTime, 20/portTICK_PERIOD_MS);
}
}
PG6、ピンが関数であるから、以下のようにSDカードの内容を書く処理時間 をチェックするために、サイクルの終了時にロー状態になり、始動時の高い:
の
SDCARD WRITEタスクオシロスコープの結果は、いつかそれは私が変更してもoftenly 200〜250msの
取り、私は400byteを書くために50Hzのそれを設定し、予想外の時間の長さは、テスト中に発生した例が確認されたが、問題がまだ発生したバイト数
この問題はなぜ発生しますか?
私は50hzで512bytesを書き込むことができますか?
またはSDcard書き込みのバイトまたは周波数に制限がありますか?