タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

itronに関するkei-os2007のブックマーク (1)

  • ITRONのランデブ機能を使って、mallocで確保したメモリを受け渡してはいけない

    ITRONには、ランデブという機能がある。 簡単に説明すると、タスクAからタスクBにメッセージを送り、BからAにその返答を返すことができる機能。 ぱっと見便利な機能なのだが、タスクAからタスクBにメッセージを渡すときに、malloc()等で動的に確保したメモリのポインタを渡すことができないというワナがある。 このワナを知らないと、メモリリークを起こす。 以下、詳細。 タスクAからメッセージを送るときには、cal_por()またはtcal_por()というAPIを使う。 tcal_por(portid, 0x1, msg, msgsize, timeout); これでタスクAは、タスクBにmsgを送ることができる。 タスクB側は、以下のようなコードになる。 acp_por(portid, 0x1, &retno, buf); /* tcal_porされるのを待つ */ ... rpl_rdv

  • 1