内蔵データフラッシュを使用するためのルーチン  
[詳細]
ソースコードを見る。
内蔵データフラッシュを使用するためのルーチン 
このライブラリは低レベルなイーサネットフレームの送受信を行う。 TCP/IPレベルでの送受信は、 tkdnip.h を参照すること。 
 tkdn_ether.h で定義されています。
      
        
          | void ether_phy_softreset | ( |  | ) |  | 
      
 
 
      
        
          | int ether_open | ( | unsigned char | mac_addr[] | ) |  | 
      
 
MACアドレスをセットして、内蔵イーサネットPHYをセットアップする 
- 引数
- 
  
    | mac_addr[] | MACアドレスが格納された6バイトの配列 |  
 
- 戻り値
- 成功すると1を返す。失敗すると0を返す。PHYエラーの場合は失敗する。 
 
 
      
        
          | void ether_close | ( | void |  | ) |  | 
      
 
内蔵イーサネットPHYを終了する。 
- 引数
- 
  
  
- 戻り値
- なし 
 
 
      
        
          | int ether_write | ( | unsigned char * | buf, | 
        
          |  |  | int | len | 
        
          |  | ) |  |  | 
      
 
イーサネットフレームを送信する 
- 引数
- 
  
    | [in] | buf | 送信したいデータが格納されたバッファへのポインタ |  |  | len | 送信したいイーサネットフレームの長さ。プリアンプル、FCS、CRC等は含まない。 |  
 
- 戻り値
- 送信した長さ(バイト数)を返す 
- 覚え書き
- 送信データは、宛先MACアドレスから、最終データまでを格納しておいてください。プリアンプル、FCS、CRC等の制御コードは不要です。 
- 
60バイト未満だと、末尾に00をパディングしてしまう? 
 
 
      
        
          | int ether_read | ( | unsigned char * | buf | ) |  | 
      
 
受信したイーサネットフレームを取得する 
受信したイーサネットフレームは、DMAによってRAM上の専用領域に格納されています。
 この関数を呼び出すと、専用領域からユーザバッファへデータを転送します。
 また、受信エラーをチェックし、エラーが発生していれば解除します。 
- 引数
- 
  
    | [in] | buf | データを格納するユーザが用意したバッファへのポインタ |  
 
- 戻り値
- 受信した長さ(バイト数)を返す。0の場合はデータがないことを示す 
- 覚え書き
- RAM上の受信バッファはデフォルトでは2KBしかないので、受信したら早く取り出すこと。 
- 
内蔵MACは受信エラー(バッファオーバーラン等)が発生すると以後の受信が不可能になる。
 この関数を呼び出すことでクリアされるので、必要がなくても繰り返し呼び出すこと。
 
 
      
        
          | int ether_is_linkup | ( | void |  | ) |  | 
      
 
リンクアップしているかどうかを調べる 
PHYのレジスタを参照し、リンクアップを調べる。LINK_STAの端子は使っていない。 
- 引数
- 
  
  
- 戻り値
- リンクアップしていれば1を返す。リンクダウンしていれば0を返す。 
 
 
      
        
          | int ether_is_100M | ( | void |  | ) |  | 
      
 
リンクが100Mかどうかを調べる 
- 引数
- 
  
  
- 戻り値
- 100Mモードならば1を返す。10Mモードならば0を返す。 
 
 
      
        
          | int ether_is_fullduplex | ( | void |  | ) |  | 
      
 
リンクが全二重かどうかを調べる 
- 引数
- 
  
  
- 戻り値
- 全二重ならば1を返す。半二重ならば0を返す。 
 
 
      
        
          | void ether_autonegotiate | ( | void |  | ) |  | 
      
 
 
      
        
          | int ether_link_changed | ( | void |  | ) |  | 
      
 
 
フレームを受信したときに呼び出される関数を登録する 
- 引数
- 
  
  
- 戻り値
- なし 
- 覚え書き
- 登録された関数は割り込みのコンテキストで呼び出される 
 
 
      
        
          | int ether_check_recv | ( | void |  | ) |  | 
      
 
受信バッファをチェックするとともに、受信エラーを解除する 
- 引数
- 
  
  
- 戻り値
- 受信エラーがあれば-1、データがなければ0、データがあれば正の数を返す。 
- 覚え書き
- 実際の受信は行わない。返す値はデータ長とは必ずしも一致しない。 
 
 
      
        
          | void ether_change_macaddr | ( | const unsigned char | macaddr[6] | ) |  | 
      
 
 
      
        
          | void ether_enable_promis | ( | int | enable | ) |  | 
      
 
プロミスキャスモードへの移行と解除 
- 引数
- 
  
    | enable | 0:プロミスキャスモード解除 1:プロミスキャスモード設定 |  
 
- 戻り値
- なし