osEepromLongWrite.htm 1.99 KB
<HTML>

<HEAD>
<TITLE>Manual for osEepromLongWrite</TITLE>
</HEAD>

<BODY>
<P>
<B><FONT FACE="Arial">osEepromLongWrite(3P) <BR>
</FONT></B>
<P>
<B>関数名<BR>
</B>
<P>
osEepromLongRead, osEepromLongWrite
<P>
→ EEPROMの複数ブロックのリード/ライト
<BR>

<P>
<B>構文<BR>
</B>
<P>
#include &lt;ultra64.h&gt;<BR>

<P>
s32 osEepromLongRead (OSMesgQueue *mq, u8 address,
u8 *buffer, int nbytes);<BR>
<B>s32 osEepromLongWrite(OSMesgQueue *mq, u8 address,
u8 *buffer, int nbytes);</B><BR>

<P>
<B>説明<BR>
</B>
osEepromLongRead関数は、EEPROM に対してリードコマンドを発行し、
address で指定したアドレスから、nbytes バイトのデータを読み込みます。
また、<B>osEepromLongWrite</B>関数は、EEPROM
に対してライトコマンドを発行して、address で指定したアドレスから、
nbytes バイトのデータを書き込みます。
<P>
データ格納用バッファ bufferは、
nbytes バイトのデータが格納できるだけのサイズを用意しておく必要があります。
また、ハードウェアの制限から、転送するバイト数
nbyte は 8の倍数にしなければなりません。
<P>
メッセージキュー mq は、OS_EVENT_SI
イベントに関連付けて初期化されたメッセージキューでなければなりません。
詳しくは、<A HREF="osSetEventMesg.htm" >osSetEventMesg</A>(3P)
を参照してください。
アドレス addressは、EEPROM ブロックアドレスであることに注意してください。
8バイト単位のブロックですので、実際のアドレスを8で割った値を指定する必要があります。<BR>

<P>
EEPROM の書き込みコマンドは、転送終了までに最大およそ15ミリ秒の時間がかかります。
osEepromLongWrite では、内部的にはタイマを使用してこれに対処しています。
<P>
さらに注意点として、
関数 osEepromLongRead や osEepromLongWrite を呼ぶ前に、
<A HREF="osContInit.htm" >osContInit</A>(3P)を呼んでおく必要があります。
これは、OS の低レベルでの初期化のためです。 <BR>

<P>
<B>参照<BR>
</B>
<P>
<A HREF="osContInit.htm" >osContInit</A> (3P), <A HREF="osEepromProbe.htm" >osEepromProbe</A>
(3p), 
<A HREF="osEepromRead.htm" >osEepromRead</A> (3p), <A HREF="osEepromWrite.htm" >osEepromWrite</A>
(3p).<BR>

</BODY>

</HTML>