osEepromLongRead.htm 1.98 KB
<HTML>

<HEAD>
<TITLE>Manual for osEepromLongRead</TITLE>
</HEAD>

<BODY>

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

<P>
<B>構文<BR>
</B>
<P>
#include &lt;ultra64.h&gt;<BR><P>
<B>s32 osEepromLongRead (OSMesgQueue *mq, u8 address, u8 *buffer,
int nbytes);</B><BR>
s32 osEepromLongWrite(OSMesgQueue *mq, u8 address, u8 *buffer,
int nbytes);<BR>

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