PIC32MX170F256BとENC28J60を組み合わせに対してMicrochip Harmony v3のtcpipライブラリを用いてTCPソケット構築を目指しています。
現在、実行時にdrv_enc28j60_api.c内のpkt = (*pDrvInst->stackCfg.pktAllocF)(pDrvInst->drvCfg.rxDescBufferSize, pDrvInst->drvCfg.rxDescBufferSize, TCPIP_MAC_PKT_FLAG_STATIC);構文の箇所でメモリ割り当て失敗のエラーが発生していることが確認できています。
Harmony v3のメモリ設定項目は以下の通り多岐にわたりますが、それぞれが満たすべき条件<例:64kB > XC32_HEAP_SIZE > FREERTOS_TOTAL_HEAP_SIZE等>をご存知でしょうか?
2.FreeRTOSブロック内のFREERTOS_MINIMAL_STACK_SIZE、FREERTOS_ISR_STACK_SIZE、FREERTOS_TOTAL_HEAP_SIZE
3.TCPIP Coreブロック内のTCPIP_RTOS_TASK_STACK_SIZE、TCPIP_STACK_DRAM_SIZE、TCPIP_STACK_DRAM_RUN_LIMIT、TCPIP_STACK_HEAP_SIZE_RECOMMENDED
4.ENC28J60ブロック内のDRV_ENC28J60_CLIENT_INSTANCES_IDX0、DRV_ENC28J60_MAC_TX_DESCRIPTORS_IDX0、DRV_ENC28J60_MAC_RX_DESCRIPTORS_IDX0、DRV_ENC28J60_MAX_RX_BUFFER_IDX0、DRV_ENC28J60_RX_BUFFER_SIZE_IDX0
5.TCPブロック内のTCPIP_TCP_MAX_SEG_SIZE_TX、
TCPIP_TCP_SOCKET_DEFAULT_TX_SIZE、TCPIP_TCP_SOCKET_DEFAULT_RX_SIZE
6.COREブロック内のGEN_APP_RTOS_TASK_X_SIZE
また上記以外にICMPv4、IPv4、ARPブロックを含んでおりますが、メモリ(ヒープ関連)設定項目がなかったため記載しておりません。
上記メモリ割り当て条件およびそれ以外に気をつけるべき箇所がございましたらご教授よろしくおねがいします。
あなたの回答
tips
プレビュー