ページ 11

アプリケーションからMACアドレスを設定できますか?

Posted: 2014年7月14日(月) 14:55
by eForce技術担当
可能です。
μNet3ではデバイスのMACアドレスを広域変数gNET_DEV[n]に保持します。
(nはデバイスID-1)
アプリケーションプログラムは直接この変数にMACアドレスを設定します。
尚、MACアドレスの設定はプロトコルスタックやネットワークデバイスの
初期化前に実行する必要があります。以下にサンプルコードを示します。

コード: 全て選択

#include "net_hdr.h"
void cfg_mac(UH devid, UB *mac)
{
    T_NET_DEV *dev;
    dev = &gNET_DEV[devid-1];
    net_memcpy(dev->cfg.eth.mac, mac, 6);
}

ER net_setup(void)
{
    ER ercd;
    UH devid;
    UB mac[] = {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC}; /* MACアドレス*/

    devid = 1;  /* デバイスID */

    /* MACアドレスの設定 */
    cfg_mac(devid, mac);

    /* プロトコルスタックの初期化 */
    ercd = net_ini();
    if (ercd != E_OK) {
        return ercd;
    }

    /* ネットワークデバイスの初期化 */
    ercd = net_dev_ini(devid);
    if (ercd != E_OK) {
        return ercd;
    }
}