山崎 直己

DSPI制御でヒープ領域の枯渇の解消。

Discussion created by 山崎 直己 on Apr 22, 2015

DSPIによる制御でヒープ領域の枯渇していた現象が解消しましたので報告します。

<環境>

    マイクロコントローラ: MK64FN1M0VLQ12

    開発環境: IAR Embedded Workbench IDE

    SDK: KSDK_1.0.0

    OS  : FreeRTOS

 

DSPIによる周辺デバイスへの制御を実施。

 

下記モジュールでDSPIによる制御を実施した場合、「OSA_SemaCreate(&dspiState->irqSync, 0);」

で獲得したヒープ領域の解放がされていないため、複数回DSPI制御を実施した時に、queue.cでヒープ領域

が獲得できなくなり、xQueueGenericCreate(313行目~)の出口の「configASSERT( xReturn );」で停止していました。

そのため、下記箇所にてヒープ領域の解放を実施することで、ヒープ領域の枯渇が解消されました。

 

  <場所>

  KSDK_1.0.0\platform\drivers\dspi\dspi_master\src

  <ファイル名>

  fsl_dspi_master_driver.c

 

< モジュール名:dspi_status_t DSPI_DRV_MasterTransferDataBlocking() >

 

346 else {

347     OSA_SemaDestroy(&dspiState->irqSync);

348 }

 

※ 左端の数値は行番号です。

 

  ─── 以上 ───

Outcomes