<?xml version="1.0" encoding="UTF-8"?>

<rdf:RDF
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:admin="http://webns.net/mvcb/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns="http://purl.org/rss/1.0/"
>

<channel rdf:about="http://hamayan.blog.so-net.ne.jp/">
<title>Under Power 研究所</title>
<link>http://hamayan.blog.so-net.ne.jp/</link>
<description>hamayan.contact あっと 爺メール</description>
<items>
<rdf:Seq>
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-16" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-14" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-13-3" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-13-2" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-13-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-13" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-05-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-05" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-04-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-04" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-03" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-02-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-02" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-27" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-03-01" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-28-2" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-28-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-28" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-26-1" />
<rdf:li rdf:resource="http://hamayan.blog.so-net.ne.jp/2010-02-26" />
</rdf:Seq>
</items>

<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-16T00:48:14+09:00</dc:date>
<dc:language>ja</dc:language>
</channel>

<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-16">
<title>細かい事なのかもしれないけれど、重要な事なので。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-16</link>
<description>ええっと、HOSはProject HOSの成果物です。http://sourceforge.jp/projects/hos/CopyrightもProject HOSとなっております。ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発作者: 濱原 和明出版社/メーカー: オーム社発売日: 2005/04/25メディア: 単行本</description>
<dc:subject>HOS</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-16T00:48:14+09:00</dc:date>
<content:encoded><![CDATA[
ええっと、HOSはProject HOSの成果物です。<br />
<a href="http://sourceforge.jp/projects/hos/" target="_blank">http://sourceforge.jp/projects/hos/</a><br />
<br />
CopyrightもProject HOSとなっております。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51K6FRKR7BL._SL160_.jpg" class="sonet-asin-image" alt="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発" title="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank">ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発</a></p><ul><li class="sonet-asin-label">作者: 濱原 和明</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2005/04/25</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-14">
<title>SX基板を大いに盛り上げるしがない電子工作団 活動日誌３</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-14</link>
<description>組み込みにWEBサーバーを実現する場合、一番考えられる用途が計測/制御を行わせると言ったものでしょう。わざわざ静的コンテンツをWEBコンテンツとして提供する理由はあまり無い。と言う事は組み込みのコンテンツと言うのはイコール動的コンテンツを主に考える方がよさそうだ！と言うのが私の実感です。計測の場面ですが、動的コンテンツとなるとサーバーサイドでプログラムが動いてくれる、つまりSSIの実装が必要です。以下の図はW5300を使って作成したWEBサーバーの画面の一部です。FORMタグとは別に例えば「サンプリング回数は2500000回に設定されています。」の”2500000”はSSIで生成しています。html文章の中に以下の文字を埋め込む事で実際にはプログラムがその数字を生成しています。&amp;lt;!--#SMPL_TIME--&amp;gt;同様にゲインの数値、オフセット電圧、較正の有無、稼働時間、IPアドレス、バージョン番号、署名などもSSIとしてhtml文章に埋め込み、WEBサーバー内に作った構文解析プログラムにて該当するプログラムが実行されています。サンプリング回数を出力するプログラムの実体は以下です。/*************************************************************************//*  SSI実行:サンプリング時間の表示                                       *//*************************************************************************/static int ssi_smpl_time( int soc, int argc, char *argv[] ){  char buf[32];  itoa( buf, sample_time );  return W5300_Data_Write( soc, buf, strlen( buf ) );}おまけで作ったこんな物もあります(笑)。勿論55を表示します。&amp;lt;!--#CALC 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10--&amp;gt;/*****************************************************************..</description>
<dc:subject>NETWORK</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-14T12:18:17+09:00</dc:date>
<content:encoded><![CDATA[
組み込みにWEBサーバーを実現する場合、一番考えられる用途が計測/制御を行わせると言ったものでしょう。わざわざ静的コンテンツをWEBコンテンツとして提供する理由はあまり無い。<br />
<br />
と言う事は組み込みのコンテンツと言うのはイコール動的コンテンツを主に考える方がよさそうだ！と言うのが私の実感です。<br />
<br />
計測の場面ですが、動的コンテンツとなるとサーバーサイドでプログラムが動いてくれる、つまりSSIの実装が必要です。<br />
以下の図はW5300を使って作成したWEBサーバーの画面の一部です。<br />
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_with_w5300_03.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_with_w5300_03.png" width="252" height="300" border="0" align="left" alt="h8sx_with_w5300_03.png" /></a>FORMタグとは別に例えば「サンプリング回数は2500000回に設定されています。」の”2500000”はSSIで生成しています。<br />
html文章の中に以下の文字を埋め込む事で実際にはプログラムがその数字を生成しています。<br />
&lt;!--#SMPL_TIME--&gt;<br />
同様にゲインの数値、オフセット電圧、較正の有無、稼働時間、IPアドレス、バージョン番号、署名などもSSIとしてhtml文章に埋め込み、WEBサーバー内に作った構文解析プログラムにて該当するプログラムが実行されています。<br />
<br clear="all"><br />
サンプリング回数を出力するプログラムの実体は以下です。<br />
<pre>
/*************************************************************************/
/*  SSI実行:サンプリング時間の表示                                       */
/*************************************************************************/
static int ssi_smpl_time( int soc, int argc, char *argv[] )
{
  char buf[32];

  itoa( buf, sample_time );
  return W5300_Data_Write( soc, buf, strlen( buf ) );
}
</pre><br />
<br />
おまけで作ったこんな物もあります(笑)。勿論55を表示します。<br />
&lt;!--#CALC 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10--&gt;<br />
<pre>
/*************************************************************************/
/*  SSI実行:引数の計算を行って表示                                       */
/*************************************************************************/
static int ssi_calc( int soc, int argc, char *argv[] )
{
  enum ENZAN_PATTERN { PULS, MINUS, MULTI, DIVID, MODULO };
  int i,enzan;
  long temp;
  char buf[32],*ptr;

  if( argc &lt; 4 ) return 0;

  for( i = 2, temp = atoi(argv[1]); i &lt; argc; i++ )
  {
    ptr = argv[i];
    if( isdigit( *ptr ) &amp;&amp; (i &amp; 1) )  /*数字の時の処理。今の処理では数字は奇数番号で出現する*/
    {
      if( enzan == PULS ) temp += atoi( argv[i] );
      else if( enzan == MINUS ) temp -= atoi( argv[i] );
      else if( enzan == MULTI ) temp *= atoi( argv[i] );
      else if( enzan == DIVID ) temp /= atoi( argv[i] );
      else if( enzan == MODULO ) temp %= atoi( argv[i] );
      else {}
    }
    else
    {
      if( *ptr == '+' ) enzan = PULS;
      else if( *ptr == '-' ) enzan = MINUS;
      else if( *ptr == '*' ) enzan = MULTI;
      else if( *ptr == '/' ) enzan = DIVID;
      else if( *ptr == '%' ) enzan = MODULO;
      else break;
    }
  }

  itoa( buf, (int)temp );

  return W5300_Data_Write( soc, buf, strlen( buf ) );
}
</pre><br />
<br />
こんな感じでしょうか。しばらくこの日誌はこの辺の実装について解説する事になりそうです。他にネタが無いですしね（笑）。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066770/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/416ehyynIYL._SL160_.jpg" class="sonet-asin-image" alt="マスタリングTCP/IP 入門編 第4版" title="マスタリングTCP/IP 入門編 第4版"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066770/developerspla-22/ref=nosim" target="_blank">マスタリングTCP/IP 入門編 第4版</a></p><ul><li class="sonet-asin-label">作者: 竹下 隆史</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2007/02/24</li><li class="sonet-asin-label">メディア: 大型本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798105163/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/517M99SRR6L._SL160_.jpg" class="sonet-asin-image" alt="TCP/IPの絵本 ネットワークっておもしろい!" title="TCP/IPの絵本 ネットワークっておもしろい!"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4798105163/developerspla-22/ref=nosim" target="_blank">TCP/IPの絵本 ネットワークっておもしろい!</a></p><ul><li class="sonet-asin-label">作者: アンク</li><li class="sonet-asin-label">出版社/メーカー: 翔泳社</li><li class="sonet-asin-label">発売日: 2003/12/13</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-13-3">
<title>SX基板を大いに盛り上げるしがない電子工作団 活動日誌２</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-13-3</link>
<description>前回の配線図を元に配線をちゃっちゃと終わらしたら、早速動かしてみましょう。デバックは勿論この辺を参考にどうぞ。http://hamayan.blog.so-net.ne.jp/2010-03-01W5300に関係する処理を以下に記載します。実は平行してSTM32Fでもやっていたりするので、２つのCPUに関する記載が有ったりします。とりあえず低レベルのIO処理と、TCPソケットの実現までは書いてあります。W5300_Initが完了するとpingを受け付けるようになります。Cソース/***********************************************************************//*                                                                     *//*  FILE        :w5300.c                                               *//*  DATE        :Wed, Mar 03, 2010                                     *//*  DESCRIPTION :w5300 low level access driver Program                 *//*  CPU TYPE    :H8SX/1658                                             *//*  CPU TYPE    :STM32F103ZET                                          *//*                                                                     *//*  This file is generated by Renesas Project Generator (Ver.4.16).    *//*                                                                     *//****************************************************..</description>
<dc:subject>NETWORK</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-13T23:53:24+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1815-28046.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1815-28046.jpg" width="300" height="225" border="0" align="left" alt="Img_1815.jpg" /></a>前回の配線図を元に配線をちゃっちゃと終わらしたら、早速動かしてみましょう。<br />
デバックは勿論この辺を参考にどうぞ。<br />
<a href="http://hamayan.blog.so-net.ne.jp/2010-03-01" target="_blank">http://hamayan.blog.so-net.ne.jp/2010-03-01</a><br />
<br />
W5300に関係する処理を以下に記載します。<br />
実は平行してSTM32Fでもやっていたりするので、２つのCPUに関する記載が有ったりします。<br />
<br clear="all"><br />
とりあえず低レベルのIO処理と、TCPソケットの実現までは書いてあります。<br />
W5300_Initが完了するとpingを受け付けるようになります。<br />
<br />
Cソース<br />
<font size="-1"><pre>
/***********************************************************************/
/*                                                                     */
/*  FILE        :w5300.c                                               */
/*  DATE        :Wed, Mar 03, 2010                                     */
/*  DESCRIPTION :w5300 low level access driver Program                 */
/*  CPU TYPE    :H8SX/1658                                             */
/*  CPU TYPE    :STM32F103ZET                                          */
/*                                                                     */
/*  This file is generated by Renesas Project Generator (Ver.4.16).    */
/*                                                                     */
/***********************************************************************/
#include  &lt;string.h&gt;
#include  &lt;ctype.h&gt;
#if !defined( __H8SXA__ )
#include  "stm32f10x.h"
#include  "peripheral.h"
#endif
#include  "strutil.h"
#include  "w5300.h"
#include  "timer.h"

/*************************************************************************/
/* 端子定義                                                              */
/* W5300の割込みはIRQ0-Bに接続                                           */
/*************************************************************************/

/*************************************************************************/
/* その他の定義                                                          */
/*************************************************************************/

/*************************************************************************/
/* IOレジスタ定義                                                        */
/*************************************************************************/

/*************************************************************************/
/* プロトタイプ宣言                                                      */
/*************************************************************************/
static unsigned short w5300_read( unsigned short addr );
static void w5300_write( unsigned short addr, unsigned short data );
static void w5300_mac_write( const unsigned char *mac );
static void w5300_mac_read( unsigned char *mac );
static void w5300_gateway_write( const unsigned char *gateway );
static void w5300_gateway_read( unsigned char *gateway );
static void w5300_subnet_write( const unsigned char *subnet );
static void w5300_subnet_read( unsigned char *subnet );
static void w5300_sip_write( const unsigned char *sip );
static void w5300_sip_read( unsigned char *sip );
static void w5300_dmac_write( unsigned short adr, const unsigned char *dmac );
static void w5300_dmac_read( unsigned short adr, unsigned char *dmac );
static void w5300_dip_write( unsigned short adr, const unsigned char *dip );
static void w5300_dip_read( unsigned short adr, unsigned char *dip );

/*************************************************************************/
/* 大域変数宣言                                                          */
/*************************************************************************/
static char first_snd[8];

/*************************************************************************/
/* W5300のポート及びそれ自身の初期化                                     */
/*************************************************************************/
int W5300_Init( void )
{
//  volatile unsigned char uc_buf[ 8 ];
  volatile unsigned short temp;

#if !defined( __H8SXA__ )
  /*W5300_INT*/
  GPIO_Terminal_Init( GPIOG, GPIO_Speed_2MHz, GPIO_Mode_IPU, GPIO_Pin_14 );
  /*W5300_RST*/
  GPIO_Terminal_Init( GPIOG, GPIO_Speed_2MHz, GPIO_Mode_Out_PP, GPIO_Pin_11 );
#endif

#if !defined( __H8SXA__ )
  /*デバイスリセット*/
  W5300_RST_HI;
  W5300_RST_LO;
  WaitMs( 5 );  /*パルス幅としては2μs有れば良い*/
  W5300_RST_HI;
  WaitMs( 10 );  /*立ち上がり後は10ms必要*/
#endif

  /*ソフトウエアリセット*/
  temp = W5300_MR;
#if defined( __H8SXA__ )
  temp |= 0x0080;
  W5300_MR = temp;
  while( (temp = W5300_MR) &amp; 0x0080 );
#else  /*defined( __H8SXA__ )*/
  temp |= 0x0080;
  W5300_MR = temp;
  while( (temp = W5300_MR) &amp; 0x0080 );
#endif  /*defined( __H8SXA__ )*/

  /*MR設定*/
  /*インダイレクトモードに設定*/
#if defined( __H8SXA__ )
  temp |= 0x0001;  /*これ以降、ビッグエンディアンでアクセスできる筈*/
  temp &amp;= ~0x3800;  /*書き込み時のフェッチタイミング*/
  temp |= 7 &lt;&lt; 11;  /*PLLは150M？(周期が6.67ns) 、CSアサートから6.67ns単位で調整？*/
  W5300_MR = temp;  /*実は長くても問題にならない？*/
#else  /*defined( __H8SXA__ )*/
  temp |= 0x0101;  /*DBSとINDを立てている。これ以降、???エンディアンでアクセスできる筈*/
  temp &amp;= ~0x3800;  /*書き込み時のフェッチタイミング*/
  temp |= 7 &lt;&lt; 11;  /*PLLは150M？(周期が6.67ns) 、CSアサートから6.67ns単位で調整？*/
  W5300_MR = temp;  /*実は長くても問題にならない？*/
#endif  /*defined( __H8SXA__ )*/

  /*ID Registerの確認*/
  temp = w5300_read( COMM_IDR );
  if( temp != 0x5300 )
    return (-1);  /*正常に読み出せない時*/

  /*IMR設定*/
  w5300_write( COMM_IMR, 0x8000 | 0x4000 | 0x0000 );  /*IP衝突と相手先未到達位はサポートするか*/

  /*mac addressの書き込み*/
  w5300_mac_write( smac );
//  w5300_mac_read( uc_buf );

  /*ip addressの書き込み*/
  w5300_sip_write( sip );
//  w5300_sip_read( uc_buf );

  /*sub net maskの書き込み*/
  w5300_subnet_write( mask );
//  w5300_subnet_read( uc_buf );

  /*gatewayの書き込み*/
  w5300_gateway_write( gateway );
//  w5300_gateway_read( uc_buf );

  /*RTR設定*/
  w5300_write( COMM_RTR, 200 / 1 * 10 );  /*再送間隔の設定*/

  /*RCR設定*/
  w5300_write( COMM_RCR, 10 );  /*再送回数の設定*/

  /*メモリ割付*/
  w5300_write( COMM_MTYPER, 0x00ff );  /*取り敢えず送信と受信の振り分けは半々としてみる*/

  /*ソケット別メモリ割付 TX*/
  w5300_write( COMM_TMSR01, (8 &lt;&lt; 8) | 8 );  /*socket0=8kbyte,socket1=8kbyte*/
  w5300_write( COMM_TMSR23, (8 &lt;&lt; 8) | 8 );  /*socket2=8kbyte,socket3=8kbyte*/
  w5300_write( COMM_TMSR45, (8 &lt;&lt; 8) | 8 );  /*socket4=8kbyte,socket5=8kbyte*/
  w5300_write( COMM_TMSR67, (8 &lt;&lt; 8) | 8 );  /*socket6=8kbyte,socket7=8kbyte*/

  /*ソケット別メモリ割付 RX*/
  w5300_write( COMM_RMSR01, (8 &lt;&lt; 8) | 8 );  /*socket0=8kbyte,socket1=8kbyte*/
  w5300_write( COMM_RMSR23, (8 &lt;&lt; 8) | 8 );  /*socket2=8kbyte,socket3=8kbyte*/
  w5300_write( COMM_RMSR45, (8 &lt;&lt; 8) | 8 );  /*socket4=8kbyte,socket5=8kbyte*/
  w5300_write( COMM_RMSR67, (8 &lt;&lt; 8) | 8 );  /*socket6=8kbyte,socket7=8kbyte*/

  return 0;
}

/*************************************************************************/
/* インダイレクトモードでW5300からの読み出し                             */
/*************************************************************************/
static unsigned short w5300_read( unsigned short addr )
{
  unsigned short data;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = addr;
  data = IDM_DR;
  IINCHIP_CRITICAL_SECTION_EXIT();

  return data;
}

/*************************************************************************/
/* インダイレクトモードでW5300からの書き込み                             */
/*************************************************************************/
static void w5300_write( unsigned short addr, unsigned short data )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = addr;
  IDM_DR = data;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* ソースハードウエアアドレス(MACアドレス)の書き込み                     */
/*************************************************************************/
static void w5300_mac_write( const unsigned char *mac )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SHAR01;
  IDM_DR = (mac[0] &lt;&lt; 8) | mac[1];

  IDM_AR = COMM_SHAR23;
  IDM_DR = (mac[2] &lt;&lt; 8) | mac[3];

  IDM_AR = COMM_SHAR45;
  IDM_DR = (mac[4] &lt;&lt; 8) | mac[5];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* ソースハードウエアアドレス(MACアドレス)の読み込み                     */
/*************************************************************************/
static void w5300_mac_read( unsigned char *mac )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SHAR01;
  temp = IDM_DR;
  mac[0] = temp &gt;&gt; 8; mac[1] = temp;

  IDM_AR = COMM_SHAR23;
  temp = IDM_DR;
  mac[2] = temp &gt;&gt; 8; mac[3] = temp;

  IDM_AR = COMM_SHAR45;
  temp = IDM_DR;
  mac[4] = temp &gt;&gt; 8; mac[5] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* GATEWAY IP アドレスの書き込み                                         */
/*************************************************************************/
static void w5300_gateway_write( const unsigned char *gw )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_GAR01;
  IDM_DR = (gw[0] &lt;&lt; 8) | gw[1];

  IDM_AR = COMM_GAR23;
  IDM_DR = (gw[2] &lt;&lt; 8) | gw[3];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* GATEWAY IP アドレスの読み込み                                         */
/*************************************************************************/
static void w5300_gateway_read( unsigned char *gw )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_GAR01;
  temp = IDM_DR;
  gw[0] = temp &gt;&gt; 8; gw[1] = temp;

  IDM_AR = COMM_GAR23;
  temp = IDM_DR;
  gw[2] = temp &gt;&gt; 8; gw[3] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* サブネットマスクの書き込み                                            */
/*************************************************************************/
static void w5300_subnet_write( const unsigned char *subnet )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SUBR01;
  IDM_DR = (subnet[0] &lt;&lt; 8) | subnet[1];

  IDM_AR = COMM_SUBR23;
  IDM_DR = (subnet[2] &lt;&lt; 8) | subnet[3];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* サブネットマスクの読み込み                                            */
/*************************************************************************/
static void w5300_subnet_read( unsigned char *subnet )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SUBR01;
  temp = IDM_DR;
  subnet[0] = temp &gt;&gt; 8; subnet[1] = temp;

  IDM_AR = COMM_SUBR23;
  temp = IDM_DR;
  subnet[2] = temp &gt;&gt; 8; subnet[3] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* 送信元IPアドレスの書き込み                                            */
/*************************************************************************/
static void w5300_sip_write( const unsigned char *ip )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SIPR01;
  IDM_DR = (ip[0] &lt;&lt; 8) | ip[1];

  IDM_AR = COMM_SIPR23;
  IDM_DR = (ip[2] &lt;&lt; 8) | ip[3];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* 送信元IPアドレスの読み込み                                            */
/*************************************************************************/
static void w5300_sip_read( unsigned char *ip )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = COMM_SIPR01;
  temp = IDM_DR;
  ip[0] = temp &gt;&gt; 8; ip[1] = temp;

  IDM_AR = COMM_SIPR23;
  temp = IDM_DR;
  ip[2] = temp &gt;&gt; 8; ip[3] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* ディスティネーションハードウエアアドレス(MACアドレス)の書き込み       */
/* 注意！RAWレベルでの通信にしか使わない                                 */
/*************************************************************************/
static void w5300_dmac_write( unsigned short adr, const unsigned char *dmac )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = adr;
  adr += 2;
  IDM_DR = (dmac[0] &lt;&lt; 8) | dmac[1];

  IDM_AR = adr;
  adr += 2;
  IDM_DR = (dmac[2] &lt;&lt; 8) | dmac[3];

  IDM_AR = COMM_SHAR45;
  IDM_DR = (dmac[4] &lt;&lt; 8) | dmac[5];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* ディスティネーションハードウエアアドレス(MACアドレス)の読み込み       */
/* 注意！RAWレベルでの通信にしか使わない                                 */
/*************************************************************************/
static void w5300_dmac_read( unsigned short adr, unsigned char *dmac )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = adr;
  adr += 2;
  temp = IDM_DR;
  dmac[0] = temp &gt;&gt; 8; dmac[1] = temp;

  IDM_AR = adr;
  adr += 2;
  temp = IDM_DR;
  dmac[2] = temp &gt;&gt; 8; dmac[3] = temp;

  IDM_AR = adr;
  temp = IDM_DR;
  dmac[4] = temp &gt;&gt; 8; dmac[5] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* 相手先IPアドレスの書き込み                                            */
/*************************************************************************/
static void w5300_dip_write( unsigned short adr, const unsigned char *dip )
{
  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = adr;
  adr += 2;
  IDM_DR = (dip[0] &lt;&lt; 8) | dip[1];

  IDM_AR = adr;
  IDM_DR = (dip[2] &lt;&lt; 8) | dip[3];
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* 相手先IPアドレスの読み込み                                            */
/*************************************************************************/
static void w5300_dip_read( unsigned short adr, unsigned char *dip )
{
  unsigned short temp;

  IINCHIP_CRITICAL_SECTION_ENTER();
  IDM_AR = adr;
  adr += 2;
  temp = IDM_DR;
  dip[0] = temp &gt;&gt; 8; dip[1] = temp;

  IDM_AR = adr;
  temp = IDM_DR;
  dip[2] = temp &gt;&gt; 8; dip[3] = temp;
  IINCHIP_CRITICAL_SECTION_EXIT();
}

/*************************************************************************/
/* W5300のソケットをOPENする。                                           */
/* 引数はソケット番号と自ポート番号。                                    */
/* 戻り値は成功すれば0、失敗で-1を返す。                                 */
/* ソケット番号は0からスタート                                           */
/*************************************************************************/
int W5300_TCP_Open( int soc, unsigned short sport )
{
  static unsigned short ephemeral_port = 1024;

  /*ソケットがCLOSEDである事*/
  if( (w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff) != SOCK_CLOSED ) return (-1);

  /*IMR再設定*/
  w5300_write( COMM_IMR, w5300_read( COMM_IMR ) | (0x0001 &lt;&lt; soc) );

  /*ソケットモードレジスタの設定*/
  w5300_write( (soc * 0x40) + S0_MR,
    0x0020 | Sn_MR_TCP );  /*アライメント無し、マルチキャスト無し、即時ACK返し、TCP*/

  /*自己ポート番号の設定*/
  if( sport == 0 )  /*0番地の時はエフェメラルポートから割付を行う*/
  {
    IINCHIP_CRITICAL_SECTION_ENTER();
    sport = ephemeral_port;
    if( ++ephemeral_port &gt; 5000 ) ephemeral_port = 1024;
    IINCHIP_CRITICAL_SECTION_EXIT();
  }
  w5300_write( (soc * 0x40) + S0_PORTR, sport );  /*0番の時はBINDしない*/

  /*OPEN*/
  w5300_write( (soc * 0x40) + S0_CR, CMD_OPEN );  /**/
  WaitMs( 1 );

  /*ソケットがINITとなった事を確認*/
  if( (w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff) != SOCK_INIT )
  {
    w5300_write( (soc * 0x40) + S0_CR, CMD_CLOSE );  /*ソケットを閉じてから終了*/
    w5300_write( (soc * 0x40) + S0_IMR, 0x0000 );  /*割込みの禁止*/
    w5300_write( COMM_IMR, w5300_read( COMM_IMR ) &amp; ~(0x0001 &lt;&lt; soc) );  /*割込みも解除*/
    return (-1);
  }

  w5300_write( (soc * 0x40) + S0_IMR, 0x001f );  /*割込みの許可*/

  return 0;
}

/*************************************************************************/
/* W5300のソケットをLISTENする。                                         */
/* 戻り値は成功すれば0、失敗で-1を返す。                                 */
/*************************************************************************/
int W5300_TCP_Listen( int soc )
{
  /*ソケットがINITである事*/
  if( (w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff) != SOCK_INIT ) return (-1);

  /*LISTEN*/
  w5300_write( (soc * 0x40) + S0_CR, CMD_LISTEN );  /**/
  WaitMs( 1 );

  /*ソケットがLISTENとなった事を確認*/
  if( (w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff) != SOCK_LISTEN )
  {
    w5300_write( (soc * 0x40) + S0_CR, CMD_CLOSE );  /*ソケットを閉じてから終了*/
    w5300_write( (soc * 0x40) + S0_IMR, 0x0000 );  /*割込みの禁止*/
    w5300_write( COMM_IMR, w5300_read( COMM_IMR ) &amp; ~(0x0001 &lt;&lt; soc) );  /*割込みも解除*/
    return (-1);
  }

  return 0;
}

/*************************************************************************/
/* W5300のソケットをCLOSEする。                                          */
/* 引数はソケット番号。                                                  */
/*************************************************************************/
void W5300_TCP_Close( int soc )
{
  unsigned short temp;

  temp = w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff;

  /*ソケットがCLOSEDならそのまま終了*/
  if( temp == SOCK_CLOSED ) return;
  else if( temp == SOCK_ESTABLISHED )
  {
    w5300_write( (soc * 0x40) + S0_CR, CMD_DISCON );  /**/
  }
  else if( temp == SOCK_INIT ||
      temp == SOCK_LISTEN )
  {
    w5300_write( (soc * 0x40) + S0_CR, CMD_CLOSE );  /**/
  }
  else if( temp == SOCK_CLOSE_WAIT ||
      temp == SOCK_FIN_WAIT ||
      temp == SOCK_TIME_WAIT ||
      temp == SOCK_LAST_ACK ) {}
  else return;

  do
  {
    temp = w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff;
  } while( temp != SOCK_CLOSED ) ;

  /*割込み解除*/
  w5300_write( (soc * 0x40) + S0_IMR, 0x0000 );  /*割込みの禁止*/
  w5300_write( COMM_IMR, w5300_read( COMM_IMR ) &amp; ~(0x0001 &lt;&lt; soc) );
}

/*************************************************************************/
/* W5300のESTABLISHEDチェック                                            */
/*************************************************************************/
int W5300_TCP_Check_Established( int soc )
{
  volatile unsigned short temp;

  if( (temp = w5300_read( (soc * 0x40) + S0_IR )) &amp; 0x0001 )  /*Sn_IRのCONをチェックする*/
  {
    w5300_write( (soc * 0x40) + S0_IR, 0x0001 );
    return 0;
  }

  return (-1);
}

/*************************************************************************/
/* W5300のソケットをESTABLISHED待ち                                      */
/*************************************************************************/
void W5300_TCP_Wait_Established( int soc )
{
  while( W5300_TCP_Check_Established( soc ) != 0 ) {}
}

/*************************************************************************/
/* W5300のデータ受信確認                                                 */
/* 受信が有れば0以外の値を返す。                                         */
/*************************************************************************/
int W5300_Rcv_Data_Available( int soc )
{
  if( w5300_read( (soc * 0x40) + S0_IR ) &amp; 0x0004 )
  {
    w5300_write( (soc * 0x40) + S0_IR, 0x0004 );
    return 1;
  }

  return 0;
}

/*************************************************************************/
/* W5300のデータ受信                                                     */
/* 格納用のバッファと、そのバッファのサイズを引数に取る。                */
/* 戻り値は取得したデータのサイズ                                        */
/*************************************************************************/
int W5300_Data_Read( int soc, void *buf, unsigned long buf_sz )
{
  unsigned short *ptr;
  unsigned long packet_size,rcv_cnt;

  if( w5300_read( (soc * 0x40) + S0_MR ) &amp; 0x0100 )  /*アライメントが必要*/
  {
    packet_size = w5300_read( (soc * 0x40) + S0_RX_RSR ) &amp; 0x0001;
    packet_size = (packet_size &lt;&lt; 16) | w5300_read( (soc * 0x40) + S0_RX_RSR2 );
  }
  else  /*アライメントは必要とされない*/
  {
    packet_size = w5300_read( (soc * 0x40) + S0_RX_FIFOR );
  }

  /*バッファの上限以上は取らない*/
  if( packet_size &gt; buf_sz ) packet_size = buf_sz;

  /*受信サイズが奇数の場合は1byteパディングして読み込む*/
  rcv_cnt = (packet_size &amp; 1) ? (packet_size + 1) / 2 : packet_size / 2;

  /*受信FIFOのアドレスを設定*/
  IDM_AR = (soc * 0x40) + S0_RX_FIFOR;

  /*受信FIFOからデータを取得*/
  for( ptr = (unsigned short *)buf; rcv_cnt &gt; 0; rcv_cnt-- )
  {
    *ptr++ = IDM_DR;
  }

  /*受信完了した事を伝える*/
  w5300_write( (soc * 0x40) + S0_CR, CMD_RECV );

  return packet_size;
}

/*************************************************************************/
/* W5300のデータ送信                                                     */
/* 格納元のバッファと、送信サイズを引数に取る。                          */
/* 戻り値は実際に書けたデータのサイズ                                    */
/*************************************************************************/
int W5300_Data_Write( int soc, const void *buf, unsigned long snd_sz )
{
  unsigned short temp;
  unsigned long wrt_cnt,free_size;
#if defined( __H8SXA__ )
  const unsigned char *bptr;
#endif  /*defined( __H8SXA__ )*/
  const unsigned short *ptr;

  do
  {
    /*送信バッファの空きを調べる*/
    free_size = w5300_read( (soc * 0x40) + S0_TX_FSR ) &amp; 0x0001;
    free_size = (free_size &lt;&lt; 16) | w5300_read( (soc * 0x40) + S0_TX_FSR2 );

    /*ESTABLISHEDまたはCLOSE_WAITである事の確認*/
    temp = w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff;
    if( temp != SOCK_ESTABLISHED &amp;&amp; temp != SOCK_CLOSE_WAIT )
    {
      w5300_write( (soc * 0x40) + S0_CR, CMD_CLOSE );  /*ソケットを閉じてから終了*/
      w5300_write( (soc * 0x40) + S0_IMR, 0x0000 );  /*割込みの禁止*/
      w5300_write( COMM_IMR, w5300_read( COMM_IMR ) &amp; ~(0x0001 &lt;&lt; soc) );  /*割込みも解除*/
      return (-1);
    }
  } while( free_size &lt; snd_sz ) ;

  /*送信サイズが奇数の場合は1byteパディングして書き込む*/
  wrt_cnt = (snd_sz &amp; 1) ? (snd_sz + 1) / 2 : snd_sz / 2;

  /*送信FIFOのアドレスを設定*/
  IDM_AR = (soc * 0x40) + S0_TX_FIFOR;

#if defined( __H8SXA__ )
  /*送信FIFOにデータを転送。但し奇数から書いてしまう事も想定が必要*/
  if( (unsigned long)buf &amp; 1 )  /*奇数*/
  {
    for( bptr = (const unsigned char *)buf; wrt_cnt &gt; 0; wrt_cnt-- )
    {
      temp = *bptr++ &lt;&lt; 8;
      temp |= *bptr++;
      IDM_DR = temp;
    }
  }
  else  /*偶数*/
  {
    for( ptr = (const unsigned short *)buf; wrt_cnt &gt; 0; wrt_cnt-- )
    {
      IDM_DR = *ptr++;
    }
  }
#else  /*defined( __H8SXA__ )*/
  for( ptr = (const unsigned short *)buf; wrt_cnt &gt; 0; wrt_cnt-- )
  {
    IDM_DR = *ptr++;
  }
#endif  /*defined( __H8SXA__ )*/

  /*前回の送信が完了していない時は送信処理に入れない*/
  if( first_snd[soc] == 0 ) first_snd[soc]++;
  else
  {
    while( (w5300_read( (soc * 0x40) + S0_IR ) &amp; 0x0010) == 0 )
    {
      if( (w5300_read( (soc * 0x40) + S0_SSR ) &amp; 0x00ff) == SOCK_CLOSED )
      {
        /*この隙にソケットクローズとなってしまった場合*/
        return 0;
      }
    }
  }

  /*送信サイズを書き込む*/
  w5300_write( (soc * 0x40) + S0_TX_WRSR, snd_sz &gt;&gt; 16 );
  w5300_write( (soc * 0x40) + S0_TX_WRSR2, snd_sz );

  /*送信実行*/
  w5300_write( (soc * 0x40) + S0_CR, CMD_SEND );

  return snd_sz;
}

/*********************************************************************************/
/* end of file                                                                   */
/*                                         designed by hamayan since 2009/05/21  */
/*********************************************************************************/

</pre></font><br />
ヘッダーファイル<br />
<font size="-1"><pre>
/***********************************************************************/
/*                                                                     */
/*  FILE        :w5300.h                                               */
/*  DATE        :Wed, Mar 03, 2010                                     */
/*  DESCRIPTION :Main Program                                          */
/*  CPU TYPE    :H8SX/1658                                             */
/*  CPU TYPE    :STM32F103ZET                                          */
/*                                                                     */
/*  This file is generated by Renesas Project Generator (Ver.4.16).    */
/*                                                                     */
/***********************************************************************/

/*************************************************************************/
/* 端子定義                                                              */
/* W5300の割込みはIRQ0-Bに接続                                           */
/*************************************************************************/
#if !defined( __H8SXA__ )
#define  W5300_RESET    GPIO_Pin_11       /*W5300のリセット。アクティブLO*/
#define  W5300_RST_LO   GPIOG-&gt;BSRR = (W5300_RESET &lt;&lt; 16)
#define  W5300_RST_HI   GPIOG-&gt;BSRR = (W5300_RESET)
#endif

/*************************************************************************/
/* その他の定義                                                          */
/*************************************************************************/
#define  IINCHIP_CRITICAL_SECTION_ENTER()
#define  IINCHIP_CRITICAL_SECTION_EXIT()

#define  Sn_MR_CLOSE    0
#define  Sn_MR_TCP      1
#define  Sn_MR_UDP      2
#define  Sn_MR_IPRAW    3
#define  S0_MR_MACRAW   4
#define  S0_MR_PPPoE    5

#define  CMD_OPEN       0x01
#define  CMD_LISTEN     0x02
#define  CMD_DISCON     0x08
#define  CMD_CLOSE      0x10
#define  CMD_SEND       0x20
#define  CMD_SEND_MAC   0x21
#define  CMD_SEND_KEEP  0x22
#define  CMD_RECV       0x40
#define  CMD_PCON       0x23
#define  CMD_PDISCON    0x24
#define  CMD_PCR        0x25
#define  CMD_PCN        0x26
#define  CMD_PCJ        0x27

#define  SOCK_CLOSED    0x00
#define  SOCK_INIT      0x13
#define  SOCK_LISTEN    0x14
#define  SOCK_ESTABLISHED 0x17
#define  SOCK_CLOSE_WAIT 0x1c
#define  SOCK_UDP       0x22
#define  SOCK_IPRAW     0x32
#define  SOCK_MACRAW    0x42
#define  SOCK_PPPoE     0x5f
#define  SOCK_SYNSENT   0x15
#define  SOCK_SYNRECV   0x16
#define  SOCK_FIN_WAIT  0x18
#define  SOCK_TIME_WAIT 0x1b
#define  SOCK_LAST_ACK  0x1d
#define  SOCK_ARP       0x01

/*************************************************************************/
/* IOレジスタ定義                                                        */
/*************************************************************************/
#if defined( __H8SXA__ )
#define  W5300_BASE_ADR  0x100000
#else  /*defined( __H8SXA__ )*/
#define  W5300_BASE_ADR  0x64000000
#endif

/*************************************************************************/
/* インダイレクトレジスタ関連定義                                        */
/*************************************************************************/
#if defined( __H8SXA__ )
#define  W5300_MR       *(volatile unsigned short *)(W5300_BASE_ADR + 0x00)
#define  IDM_AR         *(volatile unsigned short *)(W5300_BASE_ADR + 0x02)
#define  IDM_DR         *(volatile unsigned short *)(W5300_BASE_ADR + 0x04)
#else  /*defined( __H8SXA__ )*/
#define  W5300_MR       *(volatile unsigned short *)(W5300_BASE_ADR + 0x00)
#define  IDM_AR         *(volatile unsigned short *)(W5300_BASE_ADR + 0x04)
#define  IDM_DR         *(volatile unsigned short *)(W5300_BASE_ADR + 0x08)
#endif

/*************************************************************************/
/* COMMON レジスタ関連定義                                               */
/*************************************************************************/
#define  COMM_IR        0x0002  /*Interrupt Register*/
#define  COMM_IMR       0x0004  /*Interrupt Mask Register*/
#define  COMM_SHAR01    0x0008  /*Source Hardware Address Register*/
#define  COMM_SHAR23    0x000a  /*Source Hardware Address Register*/
#define  COMM_SHAR45    0x000c  /*Source Hardware Address Register*/
#define  COMM_GAR01     0x0010  /*Gateway IP Address Register*/
#define  COMM_GAR23     0x0012  /*Gateway IP Address Register*/
#define  COMM_SUBR01    0x0014  /*Subnet Mask IP Address Register*/
#define  COMM_SUBR23    0x0016  /*Subnet Mask IP Address Register*/
#define  COMM_SIPR01    0x0018  /*Source IP Address Register*/
#define  COMM_SIPR23    0x001a  /*Source IP Address Register*/
#define  COMM_RTR       0x001c  /*Retransmission Time-out Period Register*/
#define  COMM_RCR       0x001e  /*Retransmission Retry-count Register*/
#define  COMM_TMSR01    0x0020  /*TX Memory Size Register*/
#define  COMM_TMSR23    0x0022  /*TX Memory Size Register*/
#define  COMM_TMSR45    0x0024  /*TX Memory Size Register*/
#define  COMM_TMSR67    0x0026  /*TX Memory Size Register*/
#define  COMM_RMSR01    0x0028  /*RX Memory Size Register*/
#define  COMM_RMSR23    0x002a  /*RX Memory Size Register*/
#define  COMM_RMSR45    0x002c  /*RX Memory Size Register*/
#define  COMM_RMSR67    0x002e  /*RX Memory Size Register*/
#define  COMM_MTYPER    0x0030  /*Memory Type Register*/
#define  COMM_PATR      0x0032  /*PPPoE Authentication Type Register*/
#define  COMM_PTIMER    0x0036  /*PPP Link Control Request Timer Register*/
#define  COMM_PMAGICR   0x0038  /*PPP LCP Magic Number Register*/
#define  COMM_PSIDR     0x003c  /*PPPoE Session ID Register*/
#define  COMM_PDHAR01   0x0040  /*PPPoE Destination Hardware Address Register*/
#define  COMM_PDHAR23   0x0042  /*PPPoE Destination Hardware Address Register*/
#define  COMM_PDHAR45   0x0044  /*PPPoE Destination Hardware Address Register*/
#define  COMM_UIPR01    0x0048  /*Unreachable IP Address Register*/
#define  COMM_UIPR23    0x004a  /*Unreachable IP Address Register*/
#define  COMM_UPORT     0x004c  /*Unreachable Port Number Register*/
#define  COMM_FMTUR     0x004e  /*Fragment MTU Register*/
#define  COMM_P0_BRDYR  0x0060  /*BRDY0 Configure Register*/
#define  COMM_P1_BRDYR  0x0064  /*BRDY1 Configure Register*/
#define  COMM_P2_BRDYR  0x0068  /*BRDY2 Configure Register*/
#define  COMM_P3_BRDYR  0x006c  /*BRDY3 Configure Register*/
#define  COMM_P0_BDPTHR 0x0062  /*PIN BRDY0 Buffer Depth Register*/
#define  COMM_P1_BDPTHR 0x0066  /*PIN BRDY1 Buffer Depth Register*/
#define  COMM_P2_BDPTHR 0x006a  /*PIN BRDY2 Buffer Depth Register*/
#define  COMM_P3_BDPTHR 0x006e  /*PIN BRDY3 Buffer Depth Register*/
#define  COMM_IDR       0x00fe  /*Identification Register*/

/*************************************************************************/
/* ソケットレジスタ関連定義                                              */
/*************************************************************************/
#define  S0_BASE_ADR    0x0200
#define  S0_MR          (S0_BASE_ADR + 0x0000)
#define  S0_CR          (S0_BASE_ADR + 0x0002)
#define  S0_IMR         (S0_BASE_ADR + 0x0004)
#define  S0_IR          (S0_BASE_ADR + 0x0006)
#define  S0_SSR         (S0_BASE_ADR + 0x0008)
#define  S0_PORTR       (S0_BASE_ADR + 0x000a)
#define  S0_DHAR01      (S0_BASE_ADR + 0x000c)
#define  S0_DHAR23      (S0_BASE_ADR + 0x000e)
#define  S0_DHAR45      (S0_BASE_ADR + 0x0010)
#define  S0_DPORT       (S0_BASE_ADR + 0x0012)
#define  S0_DIPR01      (S0_BASE_ADR + 0x0014)
#define  S0_DIPR23      (S0_BASE_ADR + 0x0016)
#define  S0_MSSR        (S0_BASE_ADR + 0x0018)
#define  S0_PORTOR      (S0_BASE_ADR + 0x001a)
#define  S0_TOSR        (S0_BASE_ADR + 0x001c)
#define  S0_TTLR        (S0_BASE_ADR + 0x001e)
#define  S0_TX_WRSR     (S0_BASE_ADR + 0x0020)
#define  S0_TX_WRSR2    (S0_BASE_ADR + 0x0022)
#define  S0_TX_FSR      (S0_BASE_ADR + 0x0024)
#define  S0_TX_FSR2     (S0_BASE_ADR + 0x0026)
#define  S0_RX_RSR      (S0_BASE_ADR + 0x0028)
#define  S0_RX_RSR2     (S0_BASE_ADR + 0x002a)
#define  S0_FRAGR       (S0_BASE_ADR + 0x002c)
#define  S0_TX_FIFOR    (S0_BASE_ADR + 0x002e)
#define  S0_RX_FIFOR    (S0_BASE_ADR + 0x0030)

#define  S1_BASE_ADR    0x0240
#define  S1_MR          (S1_BASE_ADR + 0x0000)
#define  S1_CR          (S1_BASE_ADR + 0x0002)
#define  S1_IMR         (S1_BASE_ADR + 0x0004)
#define  S1_IR          (S1_BASE_ADR + 0x0006)
#define  S1_SSR         (S1_BASE_ADR + 0x0008)
#define  S1_PORTR       (S1_BASE_ADR + 0x000a)
#define  S1_DHAR01      (S1_BASE_ADR + 0x000c)
#define  S1_DHAR23      (S1_BASE_ADR + 0x000e)
#define  S1_DHAR45      (S1_BASE_ADR + 0x0010)
#define  S1_DPORT       (S1_BASE_ADR + 0x0012)
#define  S1_DIPR01      (S1_BASE_ADR + 0x0014)
#define  S1_DIPR23      (S1_BASE_ADR + 0x0016)
#define  S1_MSSR        (S1_BASE_ADR + 0x0018)
#define  S1_PORTOR      (S1_BASE_ADR + 0x001a)
#define  S1_TOSR        (S1_BASE_ADR + 0x001c)
#define  S1_TTLR        (S1_BASE_ADR + 0x001e)
#define  S1_TX_WRSR     (S1_BASE_ADR + 0x0020)
#define  S1_TX_WRSR2    (S1_BASE_ADR + 0x0022)
#define  S1_TX_FSR      (S1_BASE_ADR + 0x0024)
#define  S1_TX_FSR2     (S1_BASE_ADR + 0x0026)
#define  S1_RX_RSR      (S1_BASE_ADR + 0x0028)
#define  S1_RX_RSR2     (S1_BASE_ADR + 0x002a)
#define  S1_FRAGR       (S1_BASE_ADR + 0x002c)
#define  S1_TX_FIFOR    (S1_BASE_ADR + 0x002e)
#define  S1_RX_FIFOR    (S1_BASE_ADR + 0x0030)

#define  S2_BASE_ADR    0x0280
#define  S2_MR          (S2_BASE_ADR + 0x0000)
#define  S2_CR          (S2_BASE_ADR + 0x0002)
#define  S2_IMR         (S2_BASE_ADR + 0x0004)
#define  S2_IR          (S2_BASE_ADR + 0x0006)
#define  S2_SSR         (S2_BASE_ADR + 0x0008)
#define  S2_PORTR       (S2_BASE_ADR + 0x000a)
#define  S2_DHAR01      (S2_BASE_ADR + 0x000c)
#define  S2_DHAR23      (S2_BASE_ADR + 0x000e)
#define  S2_DHAR45      (S2_BASE_ADR + 0x0010)
#define  S2_DPORT       (S2_BASE_ADR + 0x0012)
#define  S2_DIPR01      (S2_BASE_ADR + 0x0014)
#define  S2_DIPR23      (S2_BASE_ADR + 0x0016)
#define  S2_MSSR        (S2_BASE_ADR + 0x0018)
#define  S2_PORTOR      (S2_BASE_ADR + 0x001a)
#define  S2_TOSR        (S2_BASE_ADR + 0x001c)
#define  S2_TTLR        (S2_BASE_ADR + 0x001e)
#define  S2_TX_WRSR     (S2_BASE_ADR + 0x0020)
#define  S2_TX_WRSR2    (S2_BASE_ADR + 0x0022)
#define  S2_TX_FSR      (S2_BASE_ADR + 0x0024)
#define  S2_TX_FSR2     (S2_BASE_ADR + 0x0026)
#define  S2_RX_RSR      (S2_BASE_ADR + 0x0028)
#define  S2_RX_RSR2     (S2_BASE_ADR + 0x002a)
#define  S2_FRAGR       (S2_BASE_ADR + 0x002c)
#define  S2_TX_FIFOR    (S2_BASE_ADR + 0x002e)
#define  S2_RX_FIFOR    (S2_BASE_ADR + 0x0030)

#define  S3_BASE_ADR    0x02c0
#define  S3_MR          (S3_BASE_ADR + 0x0000)
#define  S3_CR          (S3_BASE_ADR + 0x0002)
#define  S3_IMR         (S3_BASE_ADR + 0x0004)
#define  S3_IR          (S3_BASE_ADR + 0x0006)
#define  S3_SSR         (S3_BASE_ADR + 0x0008)
#define  S3_PORTR       (S3_BASE_ADR + 0x000a)
#define  S3_DHAR01      (S3_BASE_ADR + 0x000c)
#define  S3_DHAR23      (S3_BASE_ADR + 0x000e)
#define  S3_DHAR45      (S3_BASE_ADR + 0x0010)
#define  S3_DPORT       (S3_BASE_ADR + 0x0012)
#define  S3_DIPR01      (S3_BASE_ADR + 0x0014)
#define  S3_DIPR23      (S3_BASE_ADR + 0x0016)
#define  S3_MSSR        (S3_BASE_ADR + 0x0018)
#define  S3_PORTOR      (S3_BASE_ADR + 0x001a)
#define  S3_TOSR        (S3_BASE_ADR + 0x001c)
#define  S3_TTLR        (S3_BASE_ADR + 0x001e)
#define  S3_TX_WRSR     (S3_BASE_ADR + 0x0020)
#define  S3_TX_WRSR2    (S3_BASE_ADR + 0x0022)
#define  S3_TX_FSR      (S3_BASE_ADR + 0x0024)
#define  S3_TX_FSR2     (S3_BASE_ADR + 0x0026)
#define  S3_RX_RSR      (S3_BASE_ADR + 0x0028)
#define  S3_RX_RSR2     (S3_BASE_ADR + 0x002a)
#define  S3_FRAGR       (S3_BASE_ADR + 0x002c)
#define  S3_TX_FIFOR    (S3_BASE_ADR + 0x002e)
#define  S3_RX_FIFOR    (S3_BASE_ADR + 0x0030)

#define  S4_BASE_ADR    0x0300
#define  S4_MR          (S4_BASE_ADR + 0x0000)
#define  S4_CR          (S4_BASE_ADR + 0x0002)
#define  S4_IMR         (S4_BASE_ADR + 0x0004)
#define  S4_IR          (S4_BASE_ADR + 0x0006)
#define  S4_SSR         (S4_BASE_ADR + 0x0008)
#define  S4_PORTR       (S4_BASE_ADR + 0x000a)
#define  S4_DHAR01      (S4_BASE_ADR + 0x000c)
#define  S4_DHAR23      (S4_BASE_ADR + 0x000e)
#define  S4_DHAR45      (S4_BASE_ADR + 0x0010)
#define  S4_DPORT       (S4_BASE_ADR + 0x0012)
#define  S4_DIPR01      (S4_BASE_ADR + 0x0014)
#define  S4_DIPR23      (S4_BASE_ADR + 0x0016)
#define  S4_MSSR        (S4_BASE_ADR + 0x0018)
#define  S4_PORTOR      (S4_BASE_ADR + 0x001a)
#define  S4_TOSR        (S4_BASE_ADR + 0x001c)
#define  S4_TTLR        (S4_BASE_ADR + 0x001e)
#define  S4_TX_WRSR     (S4_BASE_ADR + 0x0020)
#define  S4_TX_WRSR2    (S4_BASE_ADR + 0x0022)
#define  S4_TX_FSR      (S4_BASE_ADR + 0x0024)
#define  S4_TX_FSR2     (S4_BASE_ADR + 0x0026)
#define  S4_RX_RSR      (S4_BASE_ADR + 0x0028)
#define  S4_RX_RSR2     (S4_BASE_ADR + 0x002a)
#define  S4_FRAGR       (S4_BASE_ADR + 0x002c)
#define  S4_TX_FIFOR    (S4_BASE_ADR + 0x002e)
#define  S4_RX_FIFOR    (S4_BASE_ADR + 0x0030)

#define  S5_BASE_ADR    0x0340
#define  S5_MR          (S5_BASE_ADR + 0x0000)
#define  S5_CR          (S5_BASE_ADR + 0x0002)
#define  S5_IMR         (S5_BASE_ADR + 0x0004)
#define  S5_IR          (S5_BASE_ADR + 0x0006)
#define  S5_SSR         (S5_BASE_ADR + 0x0008)
#define  S5_PORTR       (S5_BASE_ADR + 0x000a)
#define  S5_DHAR01      (S5_BASE_ADR + 0x000c)
#define  S5_DHAR23      (S5_BASE_ADR + 0x000e)
#define  S5_DHAR45      (S5_BASE_ADR + 0x0010)
#define  S5_DPORT       (S5_BASE_ADR + 0x0012)
#define  S5_DIPR01      (S5_BASE_ADR + 0x0014)
#define  S5_DIPR23      (S5_BASE_ADR + 0x0016)
#define  S5_MSSR        (S5_BASE_ADR + 0x0018)
#define  S5_PORTOR      (S5_BASE_ADR + 0x001a)
#define  S5_TOSR        (S5_BASE_ADR + 0x001c)
#define  S5_TTLR        (S5_BASE_ADR + 0x001e)
#define  S5_TX_WRSR     (S5_BASE_ADR + 0x0020)
#define  S5_TX_WRSR2    (S5_BASE_ADR + 0x0022)
#define  S5_TX_FSR      (S5_BASE_ADR + 0x0024)
#define  S5_TX_FSR2     (S5_BASE_ADR + 0x0026)
#define  S5_RX_RSR      (S5_BASE_ADR + 0x0028)
#define  S5_RX_RSR2     (S5_BASE_ADR + 0x002a)
#define  S5_FRAGR       (S5_BASE_ADR + 0x002c)
#define  S5_TX_FIFOR    (S5_BASE_ADR + 0x002e)
#define  S5_RX_FIFOR    (S5_BASE_ADR + 0x0030)

#define  S6_BASE_ADR    0x0380
#define  S6_MR          (S6_BASE_ADR + 0x0000)
#define  S6_CR          (S6_BASE_ADR + 0x0002)
#define  S6_IMR         (S6_BASE_ADR + 0x0004)
#define  S6_IR          (S6_BASE_ADR + 0x0006)
#define  S6_SSR         (S6_BASE_ADR + 0x0008)
#define  S6_PORTR       (S6_BASE_ADR + 0x000a)
#define  S6_DHAR01      (S6_BASE_ADR + 0x000c)
#define  S6_DHAR23      (S6_BASE_ADR + 0x000e)
#define  S6_DHAR45      (S6_BASE_ADR + 0x0010)
#define  S6_DPORT       (S6_BASE_ADR + 0x0012)
#define  S6_DIPR01      (S6_BASE_ADR + 0x0014)
#define  S6_DIPR23      (S6_BASE_ADR + 0x0016)
#define  S6_MSSR        (S6_BASE_ADR + 0x0018)
#define  S6_PORTOR      (S6_BASE_ADR + 0x001a)
#define  S6_TOSR        (S6_BASE_ADR + 0x001c)
#define  S6_TTLR        (S6_BASE_ADR + 0x001e)
#define  S6_TX_WRSR     (S6_BASE_ADR + 0x0020)
#define  S6_TX_WRSR2    (S6_BASE_ADR + 0x0022)
#define  S6_TX_FSR      (S6_BASE_ADR + 0x0024)
#define  S6_TX_FSR2     (S6_BASE_ADR + 0x0026)
#define  S6_RX_RSR      (S6_BASE_ADR + 0x0028)
#define  S6_RX_RSR2     (S6_BASE_ADR + 0x002a)
#define  S6_FRAGR       (S6_BASE_ADR + 0x002c)
#define  S6_TX_FIFOR    (S6_BASE_ADR + 0x002e)
#define  S6_RX_FIFOR    (S6_BASE_ADR + 0x0030)

#define  S7_BASE_ADR    0x03c0
#define  S7_MR          (S7_BASE_ADR + 0x0000)
#define  S7_CR          (S7_BASE_ADR + 0x0002)
#define  S7_IMR         (S7_BASE_ADR + 0x0004)
#define  S7_IR          (S7_BASE_ADR + 0x0006)
#define  S7_SSR         (S7_BASE_ADR + 0x0008)
#define  S7_PORTR       (S7_BASE_ADR + 0x000a)
#define  S7_DHAR01      (S7_BASE_ADR + 0x000c)
#define  S7_DHAR23      (S7_BASE_ADR + 0x000e)
#define  S7_DHAR45      (S7_BASE_ADR + 0x0010)
#define  S7_DPORT       (S7_BASE_ADR + 0x0012)
#define  S7_DIPR01      (S7_BASE_ADR + 0x0014)
#define  S7_DIPR23      (S7_BASE_ADR + 0x0016)
#define  S7_MSSR        (S7_BASE_ADR + 0x0018)
#define  S7_PORTOR      (S7_BASE_ADR + 0x001a)
#define  S7_TOSR        (S7_BASE_ADR + 0x001c)
#define  S7_TTLR        (S7_BASE_ADR + 0x001e)
#define  S7_TX_WRSR     (S7_BASE_ADR + 0x0020)
#define  S7_TX_WRSR2    (S7_BASE_ADR + 0x0022)
#define  S7_TX_FSR      (S7_BASE_ADR + 0x0024)
#define  S7_TX_FSR2     (S7_BASE_ADR + 0x0026)
#define  S7_RX_RSR      (S7_BASE_ADR + 0x0028)
#define  S7_RX_RSR2     (S7_BASE_ADR + 0x002a)
#define  S7_FRAGR       (S7_BASE_ADR + 0x002c)
#define  S7_TX_FIFOR    (S7_BASE_ADR + 0x002e)
#define  S7_RX_FIFOR    (S7_BASE_ADR + 0x0030)

/*************************************************************************/
/* プロトタイプ宣言                                                      */
/*************************************************************************/
int W5300_Init( void );
int W5300_TCP_Open( int soc, unsigned short sport );
int W5300_TCP_Listen( int soc );
void W5300_TCP_Close( int soc );
int W5300_TCP_Check_Established( int soc );
void W5300_TCP_Wait_Established( int soc );
int W5300_Rcv_Data_Available( int soc );
int W5300_Data_Read( int soc, void *buf, unsigned long buf_sz );
int W5300_Data_Write( int soc, const void *buf, unsigned long snd_sz );

/*************************************************************************/
/* 大域変数宣言                                                          */
/*************************************************************************/
extern const unsigned char smac[];     /*自己mac address*/
extern const unsigned char sip[];      /*自己ip address*/
extern const unsigned char mask[];     /*sub net mask*/
extern const unsigned char gateway[];  /*gateway ip address*/

/*********************************************************************************/
/* end of file                                                                   */
/*                                         designed by hamayan since 2009/05/21  */
/*********************************************************************************/
</pre></font><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066770/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/416ehyynIYL._SL160_.jpg" class="sonet-asin-image" alt="マスタリングTCP/IP 入門編 第4版" title="マスタリングTCP/IP 入門編 第4版"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066770/developerspla-22/ref=nosim" target="_blank">マスタリングTCP/IP 入門編 第4版</a></p><ul><li class="sonet-asin-label">作者: 竹下 隆史</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2007/02/24</li><li class="sonet-asin-label">メディア: 大型本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/5170NTDGESL._SL160_.jpg" class="sonet-asin-image" alt="詳解TCP/IP〈Vol.1〉プロトコル" title="詳解TCP/IP〈Vol.1〉プロトコル"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4894713209/developerspla-22/ref=nosim" target="_blank">詳解TCP/IP〈Vol.1〉プロトコル</a></p><ul><li class="sonet-asin-label">作者: W.リチャード スティーヴンス</li><li class="sonet-asin-label">出版社/メーカー: ピアソンエデュケーション</li><li class="sonet-asin-label">発売日: 2000/12</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-13-2">
<title>ディジインターナショナルさんのフォーラムにエイブラムスも参加</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-13-2</link>
<description>レオⅡも出しています。フォーラムのレポートが以下のリンクから行けます。3月10日のレポートhttp://www.digi-intl.co.jp/news/seminar/2010/100311repo.html3月11日のレポートhttp://www.digi-intl.co.jp/news/seminar/2010/100310repo.html無事動いて良かったです。Making Things Talk ―Arduinoで作る「会話」するモノたち作者: Tom Igoe出版社/メーカー: オライリージャパン発売日: 2008/11/17メディア: 大型本Zigbee開発ハンドブック (実践入門ネットワーク)作者: 鄭 立出版社/メーカー: リックテレコム発売日: 2006/02メディア: 単行本</description>
<dc:subject>SilentC ＆ XBee</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-13T08:34:15+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1809-32d00.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1809-32d00.jpg" width="300" height="225" border="0" align="left" alt="Img_1809.jpg" /></a>レオⅡも出しています。<br />
フォーラムのレポートが以下のリンクから行けます。<br />
3月10日のレポート<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/100311repo.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/100311repo.html</a><br />
<br />
3月11日のレポート<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/100310repo.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/100310repo.html</a><br />
<br />
無事動いて良かったです。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113849/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51i8Q20O9IL._SL160_.jpg" class="sonet-asin-image" alt="Making Things Talk ―Arduinoで作る「会話」するモノたち" title="Making Things Talk ―Arduinoで作る「会話」するモノたち"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873113849/developerspla-22/ref=nosim" target="_blank">Making Things Talk ―Arduinoで作る「会話」するモノたち</a></p><ul><li class="sonet-asin-label">作者: Tom Igoe</li><li class="sonet-asin-label">出版社/メーカー: オライリージャパン</li><li class="sonet-asin-label">発売日: 2008/11/17</li><li class="sonet-asin-label">メディア: 大型本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4897976464/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41M95MKDZKL._SL160_.jpg" class="sonet-asin-image" alt="Zigbee開発ハンドブック (実践入門ネットワーク)" title="Zigbee開発ハンドブック (実践入門ネットワーク)"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4897976464/developerspla-22/ref=nosim" target="_blank">Zigbee開発ハンドブック (実践入門ネットワーク)</a></p><ul><li class="sonet-asin-label">作者: 鄭 立</li><li class="sonet-asin-label">出版社/メーカー: リックテレコム</li><li class="sonet-asin-label">発売日: 2006/02</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-13-1">
<title>SX基板を大いに盛り上げるしがない電子工作団</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-13-1</link>
<description>やはり団員1号なので。消失は観てきました。面白かったです。さて、何故かWiznetのW5300を搭載したWIZ830MJが有ったので、H8/SX基板との間にびよーんと配線を飛ばしてお気楽に実験です。配線図を掲載して置きます。30本位飛ばす事になりますが、まあ作業時間は１～２時間と言ったところでしょう。べらぼうに大変でもないです。W5300の使い方は16bitバス、インダイレクトモードです。なのでアドレス線はA1とA2のみの使用となります。インダイレクトモードとダイレクトモードではパフォーマンスに差は殆ど出ないでしょう。肝心のデータ転送に付いて言えば１アドレスに対してのみ行うので、インダイレクトモードでもDMAは問題無く使用できます。ただ、ここはデータシートのエラーなのですが、A0～A9までの各入力には内部にプルダウン抵抗が入っている筈ですが、実際には入っていません。販売店を経由してメーカーに聞いてデータシートのミスである事を確認しています。使用しないA0、A3～A9はGNDに接続してしまうか、もっと楽なのはWIZ830MJ上で写真の様にモジュール抵抗でプルダウンしてしまうかをする必要が有ります。え！、H8/SXボード側にピンヘッダーではなくソケットヘッダーを取り付けちゃった！。そりゃ残念（笑）。お手軽基板作りたいね。今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発作者: 濱原 和明出版社/メーカー: オーム社発売日: 2005/04/25メディア: 単行本</description>
<dc:subject>NETWORK</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-13T08:21:51+09:00</dc:date>
<content:encoded><![CDATA[
やはり団員1号なので。消失は観てきました。面白かったです。<br />
さて、何故かWiznetのW5300を搭載したWIZ830MJが有ったので、H8/SX基板との間にびよーんと配線を飛ばしてお気楽に実験です。<br />
<table border="0" align="left">
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1814-a447a.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1814-a447a.jpg" width="300" height="225" border="0" align="left" alt="Img_1814.jpg" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1813.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1813.jpg" width="300" height="225" border="0" align="left" alt="Img_1813.jpg" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_with_w5300_01.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_with_w5300_01.png" width="300" height="217" border="0" align="left" alt="h8sx_with_w5300_01.png" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_with_w5300_02-fdf2a.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_with_w5300_02-fdf2a.png" width="300" height="217" border="0" align="left" alt="h8sx_with_w5300_02.png" /></a></td></tr>
</table>配線図を掲載して置きます。30本位飛ばす事になりますが、まあ作業時間は１～２時間と言ったところでしょう。べらぼうに大変でもないです。<br />
<br />
W5300の使い方は16bitバス、インダイレクトモードです。なのでアドレス線はA1とA2のみの使用となります。<br />
インダイレクトモードとダイレクトモードではパフォーマンスに差は殆ど出ないでしょう。肝心のデータ転送に付いて言えば１アドレスに対してのみ行うので、インダイレクトモードでもDMAは問題無く使用できます。<br />
<br />
ただ、ここはデータシートのエラーなのですが、A0～A9までの各入力には内部にプルダウン抵抗が入っている筈ですが、実際には入っていません。販売店を経由してメーカーに聞いてデータシートのミスである事を確認しています。<br />
<br />
使用しないA0、A3～A9はGNDに接続してしまうか、もっと楽なのはWIZ830MJ上で写真の様にモジュール抵抗でプルダウンしてしまうかをする必要が有ります。<br />
<br />
え！、H8/SXボード側にピンヘッダーではなくソケットヘッダーを取り付けちゃった！。そりゃ残念（笑）。<br />
<br />
お手軽基板作りたいね。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51K6FRKR7BL._SL160_.jpg" class="sonet-asin-image" alt="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発" title="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank">ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発</a></p><ul><li class="sonet-asin-label">作者: 濱原 和明</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2005/04/25</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-13">
<title>H8/SX基板とW5300基板で遊ぶ</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-13</link>
<description>H8/SX基板とWIZ830MJ（W5300）基板をこんな風に接続して遊んでいます。W5300は訳の判らないデータシートのミスで（データシートのケンチャナヨはやめて欲しい）とても残念なことになっていますが、でも、でも結構遊べます。こうなると基板作りたいですよね、H8/SX基板＋ネットワーク＋α＋β＋Γって感じで。今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌H8マイコン完全マニュアル作者: 藤沢 幸穂出版社/メーカー: オーム社発売日: 2000/12メディア: 単行本</description>
<dc:subject>NETWORK</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-13T01:25:15+09:00</dc:date>
<content:encoded><![CDATA[
<table border="0" align="left">
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1815-28046.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1815-28046.jpg" width="300" height="225" border="0" align="left" alt="Img_1815.jpg" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1814-a447a.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1814-a447a.jpg" width="300" height="225" border="0" align="left" alt="Img_1814.jpg" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1813.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1813.jpg" width="300" height="225" border="0" align="left" alt="Img_1813.jpg" /></a></td></tr>
</table>H8/SX基板とWIZ830MJ（W5300）基板をこんな風に接続して遊んでいます。<br />
W5300は訳の判らないデータシートのミスで（データシートのケンチャナヨはやめて欲しい）とても残念なことになっていますが、でも、でも結構遊べます。<br />
<br />
こうなると基板作りたいですよね、H8/SX基板＋ネットワーク＋α＋β＋Γって感じで。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079104/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51JY4XGVJFL._SL160_.jpg" class="sonet-asin-image" alt="H8マイコン完全マニュアル" title="H8マイコン完全マニュアル"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079104/developerspla-22/ref=nosim" target="_blank">H8マイコン完全マニュアル</a></p><ul><li class="sonet-asin-label">作者: 藤沢 幸穂</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2000/12</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-05-1">
<title>某社の某フォーラムで戦車（エイブラムスとレオⅡ）を出す（かもしれない）ので、マニュアル代わりに書いてみた。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-05-1</link>
<description>いたってローカルな話なので、ついつい見ちゃってがっかりした人、ごめんなさいね。MTM03で出品した戦車です。エイブラムスはMTM03の時とは操縦方法が変わって、加速度センサーとタッチパネルでの操縦となります。つまり一人で操作可能です。コントローラがZBのコーディネーターとなっていますので、全部のデバイスに先立ってコントローラの電源を入れる必要があります。コントローラ側の電源はここになります。あ！、その前にSDカードがちゃんとささっている事を確認してください。表示画像の一部はSDカード側に保存してありますので。起動すると画面右側にメニューが並びますので、一番下のM1A2を指先と言うか爪の先でタッチします。この画面が出てピッっと鳴ると、コントローラ側の準備はOKです。次に戦車の電源を投入します。戦車の電源スイッチは裏にありますので、これを入れて下さい。64bitアドレスやPAN IDもここに書いて有ります。ZBは全てATモードで制御しているので、実はX-CTUからもコントロール可能です。BB弾の給弾や発射スイッチの操作はこのハッチを開けると行えます。砲身の横のLEDはアソシエートLEDとなっています。箱に仕舞う時は少しだけ砲塔を左に向け、砲身を下げて置いてください。そうしないと箱に入らなくなります。操縦は、車体の動きはコントローラを傾ける事で加速度センサーが働き、傾きに応じて動きます。手前に向って傾けると前進。逆に手前を持ち上げると後退。前進または後退中に更に左を下げると左折、右を下げると右折。水平状態から左側に傾けるとその場で左回転。逆は右回転を行います。砲塔より上のコントロールは、画面の赤いボタンをタッチする事で行えます。左端、または右端をタッチすればその方向に砲塔が回転し（左右共に最大で150度までしか回転しません）、一つ内側のボタンは砲身の上下に使います。一番真中のボタンが射撃ボタンです。画面左上の青いボタンをタッチすれば終了です。続いてレオⅡの扱いです。レオⅡの場合はこのセットとなります。どちらも液晶のコントローラはコーディネータなので必ず最初に起動している必要が有ります。レオⅡの操縦方法はMTM03のままですので、二つのコントローラ（つまりドライバーとガンナーの二人で操縦する）で行います。基板の裏側の左上側の赤いスイッチが電源スイッチとなっています。ちなみにこの基板はArduino互換のオリジナル基板です..</description>
<dc:subject>SilentC ＆ XBee</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-06T00:01:18+09:00</dc:date>
<content:encoded><![CDATA[
いたってローカルな話なので、ついつい見ちゃってがっかりした人、ごめんなさいね。<br />
<br />
MTM03で出品した戦車です。エイブラムスはMTM03の時とは操縦方法が変わって、加速度センサーとタッチパネルでの操縦となります。つまり一人で操作可能です。<br />
<br />
<table border="0" align="left" valign="top">
<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1802.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1802.jpg" width="300" height="225" border="0" align="left" alt="Img_1802.jpg" /></a></td>
<td>
コントローラがZBのコーディネーターとなっていますので、全部のデバイスに先立ってコントローラの電源を入れる必要があります。コントローラ側の電源はここになります。
あ！、その前にSDカードがちゃんとささっている事を確認してください。表示画像の一部はSDカード側に保存してありますので。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1803-eef03.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1803-eef03.jpg" width="300" height="225" border="0" align="left" alt="Img_1803.jpg" /></a></td>
<td>
起動すると画面右側にメニューが並びますので、一番下のM1A2を指先と言うか爪の先でタッチします。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1804-51f25.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1804-51f25.jpg" width="300" height="225" border="0" align="left" alt="Img_1804.jpg" /></a></td>
<td>
この画面が出てピッっと鳴ると、コントローラ側の準備はOKです。次に戦車の電源を投入します。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1805-80015.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1805-80015.jpg" width="300" height="225" border="0" align="left" alt="Img_1805.jpg" /></a></td>
<td>
戦車の電源スイッチは裏にありますので、これを入れて下さい。64bitアドレスやPAN IDもここに書いて有ります。ZBは全てATモードで制御しているので、実はX-CTUからもコントロール可能です。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1806-b641e.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1806-b641e.jpg" width="300" height="225" border="0" align="left" alt="Img_1806.jpg" /></a></td>
<td>
BB弾の給弾や発射スイッチの操作はこのハッチを開けると行えます。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1807-3a9b4.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1807-3a9b4.jpg" width="300" height="225" border="0" align="left" alt="Img_1807.jpg" /></a></td>
<td>
砲身の横のLEDはアソシエートLEDとなっています。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1808.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1808.jpg" width="300" height="225" border="0" align="left" alt="Img_1808.jpg" /></a></td>
<td>
箱に仕舞う時は少しだけ砲塔を左に向け、砲身を下げて置いてください。そうしないと箱に入らなくなります。
</td>
</tr>
</table><br />
<br clear="all"><br />
操縦は、車体の動きはコントローラを傾ける事で加速度センサーが働き、傾きに応じて動きます。<br />
手前に向って傾けると前進。逆に手前を持ち上げると後退。前進または後退中に更に左を下げると左折、右を下げると右折。<br />
水平状態から左側に傾けるとその場で左回転。逆は右回転を行います。<br />
<br />
砲塔より上のコントロールは、画面の赤いボタンをタッチする事で行えます。<br />
左端、または右端をタッチすればその方向に砲塔が回転し（左右共に最大で150度までしか回転しません）、一つ内側のボタンは砲身の上下に使います。<br />
一番真中のボタンが射撃ボタンです。<br />
<br />
画面左上の青いボタンをタッチすれば終了です。<br />
<br />
続いてレオⅡの扱いです。<br />
<table border="0" align="left" valign="top">
<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1809-32d00.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1809-32d00.jpg" width="300" height="225" border="0" align="left" alt="Img_1809.jpg" /></a></td>
<td>
レオⅡの場合はこのセットとなります。どちらも液晶のコントローラはコーディネータなので必ず最初に起動している必要が有ります。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1810-e3ada.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1810-e3ada.jpg" width="300" height="225" border="0" align="left" alt="Img_1810.jpg" /></a></td>
<td>レオⅡの操縦方法はMTM03のままですので、二つのコントローラ（つまりドライバーとガンナーの二人で操縦する）で行います。
基板の裏側の左上側の赤いスイッチが電源スイッチとなっています。ちなみにこの基板はArduino互換のオリジナル基板です。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1811-37081.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1811-37081.jpg" width="300" height="225" border="0" align="left" alt="Img_1811.jpg" /></a></td>
<td>
レオⅡもやはり裏側に電源スイッチと64bitアドレス、PAN IDが書かれたラベルが有ります。
</td>
</tr>

<tr align="left" valign="top">
<td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1812-c766e.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1812-c766e.jpg" width="300" height="225" border="0" align="left" alt="Img_1812.jpg" /></a></td>
<td>
同様に砲塔上部のハッチを開ける事でBB弾の給弾とスイッチの操作を行う事が出来ます。
</td>
</tr>
</table><br />
<br clear="all"><br />
こちらの操縦は簡単で、基板表側の４つの押しボタンスイッチで行う事となります。<br />
<br />
ドライバー側のスイッチは左右それぞれのキャタピラーの動きとなり、上側２つを同時に押せば前進、下側２つの同時押しで後退。左右を対角に押すとその場で回転します。<br />
<br />
ガンナー側は下の２つのスイッチが砲塔の回転（左右共に最大で150度まで）。上の二つが砲身の上下を行います。また、上の2つを同時押しで射撃となります。<br />
<br />
以上、気を付けて遊んで下さい。<br />
<br />
※液晶コントローラは、電源を入れないでしばらく放置するとバックアップ用のスーパーキャパシタが放電し切ってしまいます。その場合電源投入時にタッチパネルのキャリブレーション画面が出ますので、タッチペンなどを使ってキャリブレーションを行ってください。<br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-05">
<title>H8-SX基板 デバックモニタにコンテンツを追加してRAMデバックを快適にしよう</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-05</link>
<description>今回のデバックモニタのH8SX側にインストールされるプログラムはモトローラSフォーマットのファイル（1655.mot）として提供されています。ソースコードで提供されている訳ではないのでこのデバックモニタ自体に機能を追加する事はできませんが、とは言え500KbyteもあるFLASH ROM領域の殆どを空けたままというのも勿体無いので、FLASH領域に何か置いてみましょう！と言うのがこの企画です。図の様に1655.motをテキストエディタで開くと、テキストファイルとして実際に読む事ができます。※全て16進表記となっています。先頭の２文字がレコードタイプ、次の２文字はこれ以降行末までのデータの数（見た目にはその半分）、次の４文字（先頭のS1タイプの場合）がデータの開始アドレス、それ以降行末の2文字手前までが実際のデータであり、最後の2文字はチェックサムと言う事になります。1655.motファイルの先頭のレコードはS00E000031363535202020206D6F74501665.motのアスキーコードです。一番最後のレコードはS9031000ECエントリーポイントを示しています。さてモトローラSフォーマットはこの様にテキストとして扱え、非常に簡単な構造で、しかもレコードは各行で完結しているので、ここに自分で作成したレコードを追加するのは容易です。今回の場合はS9031000ECの直前に自分で作成したレコードを追加してみました。但し注意すべき点としてアドレスは必ず重ならないようにしておく必要があります。1655.motの最後から2番目のレコードに着目してみると、S10B2EF00000077800000A301Dとなっています。つまりS1レコード、11byte、0x2EF0からスタートなので終了アドレスは0x2EF8と言う事になります。これ以降のアドレスからユーザーが作成したレコードを置く事ができます。ここには何を置けばよいのでしょうか？。ROM化できるものは何を置いても大丈夫です。プログラムコードであっても、定数データであっても、H8は全アドレス空間がリニアにアクセスできますので問題ありません。例えばグラフィックLCDに文字を出力したい時、FONTデータ等はしばしばROM化しますが、16×16のビットマップ日本語FONTならまず入り切ります。外部のシリアルROM辺りに置くより高速にアクセスできますので、その分表示..</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-05T15:51:58+09:00</dc:date>
<content:encoded><![CDATA[
<table border="0" align="left">
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_005.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_005.png" width="229" height="300" border="0" align="left" alt="h8sx_005.png" /></a></td></tr>
<tr><td><a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_006.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_006.png" width="216" height="300" border="0" align="left" alt="h8sx_006.png" /></a></td></tr>
</table>今回のデバックモニタのH8SX側にインストールされるプログラムはモトローラSフォーマットのファイル（1655.mot）として提供されています。ソースコードで提供されている訳ではないのでこのデバックモニタ自体に機能を追加する事はできませんが、とは言え500KbyteもあるFLASH ROM領域の殆どを空けたままというのも勿体無いので、FLASH領域に何か置いてみましょう！と言うのがこの企画です。<br />
<br />
図の様に1655.motをテキストエディタで開くと、テキストファイルとして実際に読む事ができます。<br />
※全て16進表記となっています。<br />
先頭の２文字がレコードタイプ、次の２文字はこれ以降行末までのデータの数（見た目にはその半分）、次の４文字（先頭のS1タイプの場合）がデータの開始アドレス、それ以降行末の2文字手前までが実際のデータであり、最後の2文字はチェックサムと言う事になります。<br />
<br />
1655.motファイルの先頭のレコードは<br />
S00E000031363535202020206D6F7450<br />
1665.motのアスキーコードです。<br />
<br />
一番最後のレコードは<br />
S9031000EC<br />
エントリーポイントを示しています。<br />
<br />
さてモトローラSフォーマットはこの様にテキストとして扱え、非常に簡単な構造で、しかもレコードは各行で完結しているので、ここに自分で作成したレコードを追加するのは容易です。<br />
今回の場合は<br />
S9031000EC<br />
の直前に自分で作成したレコードを追加してみました。<br />
<br />
但し注意すべき点としてアドレスは必ず重ならないようにしておく必要があります。<br />
1655.motの最後から2番目のレコードに着目してみると、<br />
S10B2EF00000077800000A301D<br />
となっています。<br />
つまりS1レコード、11byte、0x2EF0からスタートなので終了アドレスは0x2EF8と言う事になります。<br />
これ以降のアドレスからユーザーが作成したレコードを置く事ができます。<br />
<br />
ここには何を置けばよいのでしょうか？。<br />
ROM化できるものは何を置いても大丈夫です。プログラムコードであっても、定数データであっても、H8は全アドレス空間がリニアにアクセスできますので問題ありません。<br />
<br />
例えばグラフィックLCDに文字を出力したい時、FONTデータ等はしばしばROM化しますが、16×16のビットマップ日本語FONTならまず入り切ります。外部のシリアルROM辺りに置くより高速にアクセスできますので、その分表示が高速になりますね。<br />
<br />
プログラムを置いた場合はリンカーではアドレスの解決ができないので、アドレス情報を書いたマクロをプロトタイプ宣言として用意して置けば、やはりFLASH ROM上に置いたプログラムも実行可能となります。<br />
<br />
下の図は1655.motにhtmlファイルをmotファイル化したものを追加してH8-SX基板に焼き込み、ブラウザからアクセスしてみたものです。データ自体はRAM上にはありません。ROMから引っ張ってきた物です。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51K6FRKR7BL._SL160_.jpg" class="sonet-asin-image" alt="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発" title="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank">ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発</a></p><ul><li class="sonet-asin-label">作者: 濱原 和明</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2005/04/25</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-04-1">
<title>ディジインターナショナルさんのイベント、2日連続で</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-04-1</link>
<description>私は多分行けないけれど、身代わりが行く予定です。2日間、それぞれ別のイベントをやるんですね。で、例の1万円キットもあるみたい。3月10日http://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.html3月11日http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.htmlそろそろ1万円キットも終了と言う噂も聞くので、まだの方はこの機会に是非。よくわかるワイヤレス通信作者: 田中 博出版社/メーカー: 東京電機大学出版局発売日: 2009/03/20メディア: 単行本アドホック・メッシュネットワーク―ユビキタスネットワーク社会の実現に向けて作者: 間瀬 憲一出版社/メーカー: コロナ社発売日: 2007/08メディア: 単行本</description>
<dc:subject>SilentC ＆ XBee</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-04T23:19:19+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/IMG_1794.JPG" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_IMG_1794.JPG" width="300" height="225" border="0" align="left" alt="IMG_1794.JPG" /></a>私は多分行けないけれど、身代わりが行く予定です。<br />
2日間、それぞれ別のイベントをやるんですね。で、例の1万円キットもあるみたい。<br />
3月10日<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.html</a><br />
<br />
3月11日<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.html</a><br />
<br />
そろそろ1万円キットも終了と言う噂も聞くので、まだの方はこの機会に是非。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4501326905/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41Xzr2T6NrL._SL160_.jpg" class="sonet-asin-image" alt="よくわかるワイヤレス通信" title="よくわかるワイヤレス通信"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4501326905/developerspla-22/ref=nosim" target="_blank">よくわかるワイヤレス通信</a></p><ul><li class="sonet-asin-label">作者: 田中 博</li><li class="sonet-asin-label">出版社/メーカー: 東京電機大学出版局</li><li class="sonet-asin-label">発売日: 2009/03/20</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4339007919/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51NJ03K70FL._SL160_.jpg" class="sonet-asin-image" alt="アドホック・メッシュネットワーク―ユビキタスネットワーク社会の実現に向けて" title="アドホック・メッシュネットワーク―ユビキタスネットワーク社会の実現に向けて"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4339007919/developerspla-22/ref=nosim" target="_blank">アドホック・メッシュネットワーク―ユビキタスネットワーク社会の実現に向けて</a></p><ul><li class="sonet-asin-label">作者: 間瀬 憲一</li><li class="sonet-asin-label">出版社/メーカー: コロナ社</li><li class="sonet-asin-label">発売日: 2007/08</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-04">
<title>H8-SX基板 HEWのコンパイラ出力に妙に関心。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-04</link>
<description>例えばabc(short,short);とプロトタイプ宣言されている関数で、abc(0x1234,0x5678)；と書き、これを逆アセンブルすると以下の様になります。MOV.L #H'56781234:32,ER0JSR @_abc:24H8SXのコンパイラのパラメーター渡しのルールはH8/300Hと同じなのかな、それならばER0、ER1（オプション設定でER2も）に引数をパックしてレジスタ渡しをし、レジスタ渡しできない分に付いてはスタック渡しとなります。引数が共にイミディエイトなので確かにこれで良いわけですが、なーんか新鮮（笑）。C言語でH8マイコンを使いこなす作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2003/10メディア: 単行本H8マイコン+C言語効率アップテクニック作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2004/11メディア: 単行本</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-04T13:38:21+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_03.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_03.png" width="300" height="217" border="0" align="left" alt="h8sx_03.png" /></a>例えばabc(short,short);とプロトタイプ宣言されている関数で、<br />
abc(0x1234,0x5678)；と書き、これを逆アセンブルすると以下の様になります。<br />
<pre>
MOV.L #H'56781234:32,ER0
JSR @_abc:24
</pre><br />
H8SXのコンパイラのパラメーター渡しのルールはH8/300Hと同じなのかな、それならばER0、ER1（オプション設定でER2も）に引数をパックしてレジスタ渡しをし、レジスタ渡しできない分に付いてはスタック渡しとなります。<br />
<br />
引数が共にイミディエイトなので確かにこれで良いわけですが、なーんか新鮮（笑）。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51633RHJ62L._SL160_.jpg" class="sonet-asin-image" alt="C言語でH8マイコンを使いこなす" title="C言語でH8マイコンを使いこなす"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank">C言語でH8マイコンを使いこなす</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2003/10</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51Y22FCM9QL._SL160_.jpg" class="sonet-asin-image" alt="H8マイコン+C言語効率アップテクニック" title="H8マイコン+C言語効率アップテクニック"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank">H8マイコン+C言語効率アップテクニック</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2004/11</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-03">
<title>H8-SX基板 120pinは多いようで、少ないようで、、、</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-03</link>
<description>まあ正直不満が無いでもない。SH系の周辺ポートはそんな事無かったように思うのだけれど、H8/300Hでは、外部バスを使う為に拡張モードにすると、とたんにポートの使い方に制限が発生する。つまりアドレスバスでA0～A15に予約されているポートは、出力設定すれば必ずアドレスとなってしまい、それ以外では入力ポートとしてしか使えなくなる。この使い勝手の悪いところがH8-SXにも遺伝してしまったようで、やはりA0～A15はがっかりとなる。制御線も同様に使わない制御線も出力設定できない。あとポート５はこれまた入力専用で、これも悪い継承をしている。そんな理由なのか公式https://www.marutsu.co.jp/user/shohin.php?p=70431ではSC1602互換キャラクタLCDはCPUバスに接続して使う事となっている。このH8-SXはバスクロックを最大でCPUクロックと同一周波数、このボードなら48MHzまで持って行けるので、正直SC1602の様な遅いデバイスをCPUバスに接続するのはイマイチなんですよね。ボトルネックになるから。ふう、、、。今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-03T18:48:58+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1795.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1795.jpg" width="300" height="225" border="0" align="left" alt="Img_1795.jpg" /></a>まあ正直不満が無いでもない。<br />
<br />
SH系の周辺ポートはそんな事無かったように思うのだけれど、H8/300Hでは、外部バスを使う為に拡張モードにすると、とたんにポートの使い方に制限が発生する。<br />
つまりアドレスバスでA0～A15に予約されているポートは、出力設定すれば必ずアドレスとなってしまい、それ以外では入力ポートとしてしか使えなくなる。<br />
<br />
この使い勝手の悪いところがH8-SXにも遺伝してしまったようで、やはりA0～A15はがっかりとなる。制御線も同様に使わない制御線も出力設定できない。<br />
<br />
あとポート５はこれまた入力専用で、これも悪い継承をしている。<br />
<br />
そんな理由なのか公式<br />
<a href="https://www.marutsu.co.jp/user/shohin.php?p=70431" target="_blank">https://www.marutsu.co.jp/user/shohin.php?p=70431</a><br />
ではSC1602互換キャラクタLCDはCPUバスに接続して使う事となっている。<br />
<br />
このH8-SXはバスクロックを最大でCPUクロックと同一周波数、このボードなら48MHzまで持って行けるので、正直SC1602の様な遅いデバイスをCPUバスに接続するのはイマイチなんですよね。ボトルネックになるから。<br />
<br />
ふう、、、。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-02-1">
<title>H8-SX基板 LCDであのメッセージを表示してみまた。今回は動画付き</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-02-1</link>
<description>※LCDをポートを叩いて動かす場合、もしかしたら必要無いかもしれないけれど、一応H8/300Hの流儀でアドレス兼用PINを使う為にシングルチップモードにしています。MD0をVCCに接続します。詳しくは配線図を見て。勿論HEW＋デバックモニタで開発しています。細かいタイミング調整も、ソース修正、ビルド、実行、シンクロで確認、またソース修正って流れが非常に快適に行えます。是非みなさんも使ってみてくださいね。下は基板とLCD間のなんとなくな配線図です。粗末な物ですが宜しければ/***********************************************************************//*                                                                     *//*  FILE        :sc1602.c                                              *//*  DATE        :Tue, Mar 02, 2010                                     *//*  DESCRIPTION :Main Program                                          *//*  CPU TYPE    :H8SX/1658                                             *//*                                                                     *//*  This file is generated by Renesas Project Generator (Ver.4.16).    *//*                                                                     *//***********************************************************************/#include  &amp;lt;string.h&amp;gt;#include &quot;iodefine.h&quot;/*********..</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-02T22:20:33+09:00</dc:date>
<content:encoded><![CDATA[
※LCDをポートを叩いて動かす場合、もしかしたら必要無いかもしれないけれど、一応H8/300Hの流儀でアドレス兼用PINを使う為にシングルチップモードにしています。MD0をVCCに接続します。詳しくは配線図を見て。<br />
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/IMG_1796.JPG" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_IMG_1796.JPG" width="300" height="225" border="0" align="left" alt="IMG_1796.JPG" /></a>勿論HEW＋デバックモニタで開発しています。<br />
細かいタイミング調整も、<br />
ソース修正、ビルド、実行、シンクロで確認、またソース修正<br />
って流れが非常に快適に行えます。<br />
是非みなさんも使ってみてくださいね。<br />
<br clear="all"><br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ll7KA270058&hl=ja&fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/ll7KA270058&hl=ja&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br clear="all"><br />
下は基板とLCD間のなんとなくな配線図です。<br />
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_with_sc1602_01.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_with_sc1602_01.png" width="300" height="217" border="0" align="left" alt="h8sx_with_sc1602_01.png" /></a><br />
<br clear="all"><br />
粗末な物ですが宜しければ<br />
<pre>
/***********************************************************************/
/*                                                                     */
/*  FILE        :sc1602.c                                              */
/*  DATE        :Tue, Mar 02, 2010                                     */
/*  DESCRIPTION :Main Program                                          */
/*  CPU TYPE    :H8SX/1658                                             */
/*                                                                     */
/*  This file is generated by Renesas Project Generator (Ver.4.16).    */
/*                                                                     */
/***********************************************************************/
#include  &lt;string.h&gt;
#include "iodefine.h"

/*************************************************************************/
/* 端子定義                                                              */
/*************************************************************************/
#define  LCD_DATA_DIR_IN      PF.DDR = 0x10
#define  LCD_DATA_DIR_OUT     PF.DDR = 0x1f
#define  LCD_DATA_OUT(data)   do{PF.DR.BYTE &amp;= 0xf0; PF.DR.BYTE |= data &amp; 0x0f;}while(0)

#define  LCD_RW               PE.DR.BIT.B7
#define  LCD_E                PE.DR.BIT.B6
#define  LCD_RS               PF.DR.BIT.B4

#define  LCD_RW_LO            LCD_RW = 0
#define  LCD_RW_HI            LCD_RW = 1
#define  LCD_E_LO             LCD_E = 0
#define  LCD_E_HI             LCD_E = 1
#define  LCD_RS_LO            LCD_RS = 0
#define  LCD_RS_HI            LCD_RS = 1

/*************************************************************************/
/* その他の定義                                                          */
/*************************************************************************/
#define  DATA_MODE           0  /*データを書込みモード*/
#define  CMD_MODE            1  /*コマンドを書込みモード*/
#define  FUNCTIONSET         LcdWrite(CMD_MODE,0x28)  /*ファンクションセットで4bitモードを選択*/
#define  DISPLAYOFF          LcdWrite(CMD_MODE,0x08)  /*表示OFF*/
#define  DISPLAYON           LcdWrite(CMD_MODE,0x0c)  /*表示ON*/
#define  DISPLAYCLEAR        LcdWrite(CMD_MODE,0x01)  /*表示クリア*/
#define  ENTRYMODESET        LcdWrite(CMD_MODE,0x06)  /*インクリメント、表示をシフトしない*/
#define  CURSORHOME          LcdWrite(CMD_MODE,0x02)  /*カーソルホーム*/
#define  LINE1               LcdWrite(CMD_MODE,0x80+0x00)  /*一行目*/
#define  LINE2               LcdWrite(CMD_MODE,0x80+0x40)  /*二行目*/
#define  LINE3               LcdWrite(CMD_MODE,0x80+0x14)  /*三行目*/
#define  LINE4               LcdWrite(CMD_MODE,0x80+0x54)  /*四行目*/
#define  ROWSIZE             16
#define  COLSIZE             2
#define  LCDBUFFERSIZE       (ROWSIZE * COLSIZE)

/*************************************************************************/
/* プロトタイプ宣言                                                      */
/*************************************************************************/
static void LcdWrite( int mode, char c );
static void LcdWrite4( char c );
static char LcdRead4( void );
static void WaitBusyNegate( void );

/*************************************************************************/
/* 大域変数宣言                                                          */
/*************************************************************************/
char       LcdBuf[ LCDBUFFERSIZE ];	/*LCD用の表示バッファ*/
static int c_x;		/*バッファ上のカーソル位置*/
static int c_y;		/*バッファ上のカーソル位置*/

/*************************************************************************/
/*	時間待ち処理                                            */
/*************************************************************************/
static void WaitMs( volatile long tim )
{
  volatile long i;

  for( ; tim &gt; 0; tim-- )
  {
    for( i = 0; i &lt; 4360; i++ ) ;
  }
}

/*************************************************************************/
/*	4bit単位でのLCD書込み処理                                            */
/*	引数cはLCDにコマンドを書込むかデータ、但し上位4bitのみ有効           */
/*************************************************************************/
static void LcdWrite4( char c )
{
  LCD_E_HI;  /*Ebitを立てる*/
  LCD_E_HI;  /*Ebitを立てる*/
  LCD_DATA_OUT(c);  /*データ書込み*/
  LCD_DATA_OUT(c);  /*データ書込み*/
  LCD_E_LO;  /*Ebitを下げると書き込まれる*/
}

/*************************************************************************/
/*	4bit単位でのLCD読み込み処理                                          */
/*************************************************************************/
static char LcdRead4( void )
{
  char temp;

  LCD_DATA_DIR_IN;  /*データバスを入力に変更*/
  LCD_RS_LO;  /*RSを下げる*/
  LCD_RW_HI;  /*RWbitを立てる*/
  LCD_RW_HI;  /*RWbitを立てる*/
  LCD_E_HI;  /*Ebitを立てる*/
  LCD_E_HI;  /*Ebitを立てる*/
  temp = PF.PORT.BYTE &amp; 0x0f;
  LCD_E_LO;  /*Ebitを下げる*/
  LCD_E_LO;  /*Ebitを下げる*/
  LCD_RW_LO;  /*RWbitを下げる*/
  LCD_DATA_DIR_OUT;  /*データバスを出力に変更*/

  return temp;
}

/*************************************************************************/
/*	LCD書込み処理													     */
/*	引数modeはLCDにコマンドを書込むか、データを書込むかを選択		     */
/*************************************************************************/
static void LcdWrite( int mode, char c )
{
  /*データモードとコマンドモードの切り換え*/
  if( mode == DATA_MODE ) LCD_RS_HI;
  else LCD_RS_LO;

  LcdWrite4( c &gt;&gt; 4 );  /*上位4bitを書き込む*/
  LcdWrite4( c );       /*下位4bitを書き込む*/
//  WaitMs( 1 );          /*1ms以上待つ*/
  WaitBusyNegate();
}

/*************************************************************************/
/* SC1602 BUSY確認処理                                                   */
/* BUSY FLAGが落ちるまで待つ                                             */
/*************************************************************************/
static void WaitBusyNegate( void )
{
  volatile char msb,lsb;

  while( 1 )
  {
    msb = LcdRead4();
    lsb = LcdRead4();
    if( !(msb &amp; 0x08) ) break;
  }
}

/*************************************************************************/
/* locate                                                                */
/* 画面表示位置設定処理                                                  */
/*************************************************************************/
void LCD_Locate(int x,int y)
{
  c_x = x;
  c_y = y;
}

/*************************************************************************/
/* refresh                                                               */
/* 画面更新処理                                                          */
/*************************************************************************/
void LCD_Refresh( void )
{
  int i;

/*	DISPLAYCLEAR;	*/
  CURSORHOME;
  LINE1;									/*一行目の入力*/
  for(i = 0; i &lt; LCDBUFFERSIZE; i++)
  {
    switch ( i )
    {
      case ROWSIZE : LINE2; break;		/*二行目*/
      default: break;
    }
    LcdWrite( DATA_MODE, LcdBuf[ i ] );
  }
}

/*************************************************************************/
/* CLS                                                                   */
/*************************************************************************/
void LCD_Cls( void )
{
  c_x = c_y = 0;
  memset( LcdBuf, ' ', sizeof(LcdBuf) );
}

/*************************************************************************/
/* SC1602初期化                                                          */
/*	LCDを4bitバスモードに設定する									     */
/*************************************************************************/
void SC1602_Init( void )
{
  memset( LcdBuf, ' ', sizeof(LcdBuf) );

  /*ポートの初期化が必要*/
  PE.DDR = 0xc0;  /*PEの6,7を出力に変更*/
  PF.DDR = 0x1f;  /*PFの0～4を出力に変更*/

  PE.DR.BYTE &amp;= 0x3f;  /*始めは何でもLO出力*/
  PF.DR.BYTE = 0x00;  /*始めは何でもLO出力*/

  LcdWrite4( 0x03 );  /*3を書くらしい*/
  WaitMs( 5 );        /*4.1ms以上待つ*/

  LcdWrite4( 0x03 );  /*3を書くらしい*/
  WaitMs( 1 );        /*1ms以上待つ*/

  LcdWrite4( 0x03 );  /*3を書くらしい*/
  WaitMs( 1 );        /*1ms以上待つ*/

  LcdWrite4( 0x02 );  /*2を書くらしい*/

  /*初期設定*/
  FUNCTIONSET;
  FUNCTIONSET;
  DISPLAYOFF;
  ENTRYMODESET;
  DISPLAYCLEAR;
  WaitMs( 1 );       /*待ち*/

  CURSORHOME;
  WaitMs( 1 );       /*待ち*/

  DISPLAYON;
}

/*************************************************************************/
/* main                                                                  */
/*************************************************************************/
void main(void);
#ifdef __cplusplus
extern "C" {
void abort(void);
}
#endif

void main(void)
{
  int i;
  const char msg[] = "ﾓｳｽｸﾞDOSｶﾞ ｳｺﾞｷｿｳﾃﾞｽ";
  const char msg2[] = "ｿﾝﾅ ﾜｹ ﾅｲﾃﾞｽﾈ";

  PM.DDR = 0x08;
  PM.DR.BIT.B3 = 0;

  SC1602_Init();
  memcpy( LcdBuf, msg, sizeof(msg) - 1 );
  LCD_Refresh();

  for( ;; )
  {
    WaitMs( 2000 );       /*待ち*/
    LCD_Cls();
    PM.DR.BIT.B3 ^= 1;
    memcpy( LcdBuf, msg, sizeof(msg) - 1 );
    LCD_Refresh();

    WaitMs( 2000 );       /*待ち*/
    LCD_Cls();
    PM.DR.BIT.B3 ^= 1;
    memcpy( LcdBuf, msg2, sizeof(msg2) - 1 );
    LCD_Refresh();
  }
}

#ifdef __cplusplus
void abort(void)
{

}
#endif

/*********************************************************************************/
/* end of file                                                                   */
/*                                         designed by hamayan since 2009/05/21  */
/*********************************************************************************/
</pre><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4885549035/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51XWlvsT1sL._SL160_.jpg" class="sonet-asin-image" alt="SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!" title="SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4885549035/developerspla-22/ref=nosim" target="_blank">SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: 電波新聞社</li><li class="sonet-asin-label">発売日: 2005/12</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51Y22FCM9QL._SL160_.jpg" class="sonet-asin-image" alt="H8マイコン+C言語効率アップテクニック" title="H8マイコン+C言語効率アップテクニック"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank">H8マイコン+C言語効率アップテクニック</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2004/11</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-02">
<title>H8-SX基板 HEWからLEDチカチカをデバック</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-02</link>
<description>※今、キャラクタLCD（SC1602）のデバックやっているんですけれど、物凄く快適なんですが（笑）。デバッカーのマニュアル通りにやれば問題無いかと思いますが、幾つかポイントがあるのも事実なので、その辺をちょっとだけ書いてみます。判り難いのは制約上のROM、RAMの使い方です。デバックモニタを使用せず、FLASH ROMに書き込んで動かす場合は、HEWのウイザードが作成したデフォルトのセクション設定であまり問題無いのですが、このデバックモニタで動かすユーザープログラムはRAM上に展開して動かす必要がありますので、ちょっとだけセクションの設定を変更する必要があります。具体的には全てのセクションをRAMに配置するのですが、これはH8/SX 1655のマップに合わせた内容がマニュアルに掲載されていますので、その通りに配置してください。LEDチカチカくらいの小さなプログラムなら、スタックセクション以外のセクションを全て0xFF2000から配置したって全然問題ありません。以下はその0xFF2000に全部置いた場合の設定ファイルの内容なので、コピペして適当なファイル名で保存します。例えばram.hsiとか。[Hew Section Information]Version=2.0Section overlay=NoEntry=2Address1=0x00FF2000Section1=PResetPRG,PIntPRG,P,C,C$DSEC,C$BSEC,D,B,RAddress2=0x00FFBE00Section2=S使い方は、ビルド→H8S,H8300H Standard Toolchain→最適化リンカTAB→カテゴリ：セクション→インポートでダイアログを開いて先のram.hsiを読み込みます。同様にエクスポートもできますので、デバック用、ROM実行用と設定ファイルを作り分けると便利です。従来のデバックモニタでは、割り込みやリセットベクターは仮想ベクター方式を取っていたので、ベクターテーブル自体もセクションの設定し直しが必要でしたが、このH8/SXでは一部のRAM領域をハードウエア的に0番地にマッピングするRAMエミュレーションを使用していますので、__entry(vect=0) void PowerON_Reset(void)とか、__interrupt(vect=64) void INT_IRQ0(void)のvect..</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-02T01:54:14+09:00</dc:date>
<content:encoded><![CDATA[
※今、キャラクタLCD（SC1602）のデバックやっているんですけれど、物凄く快適なんですが（笑）。<br />
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_03.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_03.png" width="300" height="217" border="0" align="left" alt="h8sx_03.png" /></a>デバッカーのマニュアル通りにやれば問題無いかと思いますが、幾つかポイントがあるのも事実なので、その辺をちょっとだけ書いてみます。<br />
<br />
判り難いのは制約上のROM、RAMの使い方です。<br />
デバックモニタを使用せず、FLASH ROMに書き込んで動かす場合は、HEWのウイザードが作成したデフォルトのセクション設定であまり問題無いのですが、このデバックモニタで動かすユーザープログラムはRAM上に展開して動かす必要がありますので、ちょっとだけセクションの設定を変更する必要があります。<br />
具体的には全てのセクションをRAMに配置するのですが、これはH8/SX 1655のマップに合わせた内容がマニュアルに掲載されていますので、その通りに配置してください。<br />
LEDチカチカくらいの小さなプログラムなら、スタックセクション以外のセクションを全て0xFF2000から配置したって全然問題ありません。<br />
以下はその0xFF2000に全部置いた場合の設定ファイルの内容なので、コピペして適当なファイル名で保存します。例えばram.hsiとか。<br />
<pre>
[Hew Section Information]
Version=2.0
Section overlay=No
Entry=2
Address1=0x00FF2000
Section1=PResetPRG,PIntPRG,P,C,C$DSEC,C$BSEC,D,B,R
Address2=0x00FFBE00
Section2=S
</pre><br />
使い方は、ビルド→H8S,H8300H Standard Toolchain→最適化リンカTAB→カテゴリ：セクション→インポートでダイアログを開いて先のram.hsiを読み込みます。<br />
同様にエクスポートもできますので、デバック用、ROM実行用と設定ファイルを作り分けると便利です。<br />
<br />
従来のデバックモニタでは、割り込みやリセットベクターは仮想ベクター方式を取っていたので、ベクターテーブル自体もセクションの設定し直しが必要でしたが、このH8/SXでは一部のRAM領域をハードウエア的に0番地にマッピングするRAMエミュレーションを使用していますので、<br />
__entry(vect=0) void PowerON_Reset(void)<br />
とか、<br />
__interrupt(vect=64) void INT_IRQ0(void)<br />
のvect=？？を解除する必要はありません。<br />
<br />
あとはプログラムをロード後、適当にブレークを貼ったり、リセット後実行（Shift＋F5）してみたり、ステップ（F10）してみたり、メモリダンプしたり、レジスタを参照したり、変数を確認したりと至って普通のソースレベルデバックが可能です。<br />
<pre>
void main(void)
{
  volatile long i;

  PM.DDR = 0x08;
  while(1)
  {
    for( i = 0; i < 400000L; i++ ) ;
    PM.DR.BIT.B3 ^= 1;	  
  }
}
</pre><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51633RHJ62L._SL160_.jpg" class="sonet-asin-image" alt="C言語でH8マイコンを使いこなす" title="C言語でH8マイコンを使いこなす"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank">C言語でH8マイコンを使いこなす</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2003/10</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51AVM4MoLqL._SL160_.jpg" class="sonet-asin-image" alt="SuperHファミリのCプログラミング" title="SuperHファミリのCプログラミング"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank">SuperHファミリのCプログラミング</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2008/09</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-27">
<title>iida calling集</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-27</link>
<description>「とうにゅうな　べはくさいさん　わりましよ」　♪ http://iida.jp/calling/230490t #iidacalling「さあらたん　つぶやきのさん　わりがめし」　♪ http://iida.jp/calling/230439t #iidacalling「ちょっとまて　そのくるまほん　とうにエコ」　♪ http://iida.jp/calling/230418t #iidacalling「しまがしず　むしずむとかね　をせびり」　♪ http://iida.jp/calling/230411t #iidacalling「シーオーツ　そんなにわるい　やつなのか」　♪ http://iida.jp/calling/230404t #iidacalling「ひこうきに　のってエコをか　たりにいき」　♪ http://iida.jp/calling/230374t #iidacalling「おもいきり　のうきちえんが　はっせいだ」　♪ http://iida.jp/calling/221377t #iidacalling「パグのおが　クルットまいて　あれみえた」　♪ http://iida.jp/calling/221129t #iidacalling「きょくをつく　ってもぴっちに　おくれない」　♪ http://iida.jp/calling/221145t #iidacalling「パグずわり　しゃっきりしたら　どうなんだ」　♪ http://iida.jp/calling/221162t #iidacalling「パグよこで　すごいいびきで　じゅくすい」　♪ http://iida.jp/calling/221178t #iidacalling「どうみても　パグのはなはい　きすえない」　♪ http://iida.jp/calling/221194t #iidacalling「ちょびちゃんしゃ　しんのすがたや　せてるのに」　♪ http://iida.jp/calling/221202t #iidacalling</description>
<dc:subject>脱力編</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-01T20:33:36+09:00</dc:date>
<content:encoded><![CDATA[
「とうにゅうな　べはくさいさん　わりましよ」　♪ <a href="http://iida.jp/calling/230490t" target="_blank">http://iida.jp/calling/230490t</a> #iidacalling<br />
<br />
「さあらたん　つぶやきのさん　わりがめし」　♪ <a href="http://iida.jp/calling/230439t" target="_blank">http://iida.jp/calling/230439t</a> #iidacalling<br />
<br />
「ちょっとまて　そのくるまほん　とうにエコ」　♪ <a href="http://iida.jp/calling/230418t" target="_blank">http://iida.jp/calling/230418t</a> #iidacalling<br />
<br />
「しまがしず　むしずむとかね　をせびり」　♪ <a href="http://iida.jp/calling/230411t" target="_blank">http://iida.jp/calling/230411t</a> #iidacalling<br />
<br />
「シーオーツ　そんなにわるい　やつなのか」　♪ <a href="http://iida.jp/calling/230404t" target="_blank">http://iida.jp/calling/230404t</a> #iidacalling<br />
<br />
「ひこうきに　のってエコをか　たりにいき」　♪ <a href="http://iida.jp/calling/230374t" target="_blank">http://iida.jp/calling/230374t</a> #iidacalling<br />
<br />
「おもいきり　のうきちえんが　はっせいだ」　♪ <a href="http://iida.jp/calling/221377t" target="_blank">http://iida.jp/calling/221377t</a> #iidacalling<br />
<br />
「パグのおが　クルットまいて　あれみえた」　♪ <a href="http://iida.jp/calling/221129t" target="_blank">http://iida.jp/calling/221129t</a> #iidacalling<br />
<br />
「きょくをつく　ってもぴっちに　おくれない」　♪ <a href="http://iida.jp/calling/221145t" target="_blank">http://iida.jp/calling/221145t</a> #iidacalling<br />
<br />
「パグずわり　しゃっきりしたら　どうなんだ」　♪ <a href="http://iida.jp/calling/221162t" target="_blank">http://iida.jp/calling/221162t</a> #iidacalling<br />
<br />
「パグよこで　すごいいびきで　じゅくすい」　♪ <a href="http://iida.jp/calling/221178t" target="_blank">http://iida.jp/calling/221178t</a> #iidacalling<br />
<br />
「どうみても　パグのはなはい　きすえない」　♪ <a href="http://iida.jp/calling/221194t" target="_blank">http://iida.jp/calling/221194t</a> #iidacalling<br />
<br />
「ちょびちゃんしゃ　しんのすがたや　せてるのに」　♪ <a href="http://iida.jp/calling/221202t" target="_blank">http://iida.jp/calling/221202t</a> #iidacalling<br />
<!--
<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221377,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221202,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221194,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221178,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221162,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221145,1);</script>

<script src="http://iida.jp/calling/blogparts/js/blogparts.js"></script><script type="text/javascript">blogparts_calling3(221129,1);</script>
--><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-03-01">
<title>H8-SX基板 ええ勿論HEWからデバック出来ちゃいます。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-03-01</link>
<description>できます。まずは付録CD-ROMの”CQ\H8SX_1655\Renesas\モニタプログラム”の自動解凍プログラムを開いてください。マニュアルのhtmlファイルが開きますので、これを読みながら作業を進めてください。簡単に手順を書けば、１．HEWにDLL（ツールチェイン）の追加２．モニタープログラムをH8-SXへダウンロード３．USBデバイスとしてH8-SXを登録４．HEW上のデバックに関する設定５．HEWとH8-SXとの接続６．IOファイルの読み込み７．使う上での幾つかの制約と言う事になります。旧タイプのデバックモニタをお使いの方なら判ると思いますが、このデバックモニタもRAM上にユーザープログラムを展開する事となります。※一部CPUリソースをこのデバッカーで使用しますので、それに関しての制約が有ります。※原因は不明ですが家のUSB1.1なパソコンでは上手く出来なかったので、まあ少なくともUSBは2.0以上でやってください。※つまりここまでだーたーで開発ができます（笑）。今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌SuperHファミリのCプログラミング作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2008/09メディア: 単行本C言語でH8マイコンを使いこなす作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2003/10メディア: 単行本</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-03-01T17:24:00+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_03.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_03.png" width="300" height="217" border="0" align="left" alt="h8sx_03.png" /></a>できます。まずは付録CD-ROMの”CQ\H8SX_1655\Renesas\モニタプログラム”の自動解凍プログラムを開いてください。<br />
マニュアルのhtmlファイルが開きますので、これを読みながら作業を進めてください。<br />
<br />
簡単に手順を書けば、<br />
１．HEWにDLL（ツールチェイン）の追加<br />
２．モニタープログラムをH8-SXへダウンロード<br />
３．USBデバイスとしてH8-SXを登録<br />
４．HEW上のデバックに関する設定<br />
５．HEWとH8-SXとの接続<br />
６．IOファイルの読み込み<br />
７．使う上での幾つかの制約<br />
と言う事になります。<br />
<br />
旧タイプのデバックモニタをお使いの方なら判ると思いますが、このデバックモニタもRAM上にユーザープログラムを展開する事となります。<br />
<br />
※一部CPUリソースをこのデバッカーで使用しますので、それに関しての制約が有ります。<br />
※原因は不明ですが家のUSB1.1なパソコンでは上手く出来なかったので、まあ少なくともUSBは2.0以上でやってください。<br />
※つまりここまでだーたーで開発ができます（笑）。<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51AVM4MoLqL._SL160_.jpg" class="sonet-asin-image" alt="SuperHファミリのCプログラミング" title="SuperHファミリのCプログラミング"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank">SuperHファミリのCプログラミング</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2008/09</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51633RHJ62L._SL160_.jpg" class="sonet-asin-image" alt="C言語でH8マイコンを使いこなす" title="C言語でH8マイコンを使いこなす"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank">C言語でH8マイコンを使いこなす</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2003/10</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"><!-- --></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-28-2">
<title>H8-SX基板 HEWから操作できるデバックモニタが有るみたい。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-28-2</link>
<description>※図はモニタープログラムをダウンロード後、ドライバーをインストールしてシリアルポートとして認識されたところ。CD ROMのコンテンツの中にモニタープログラムってフォルダーが有って、この中にある自己解凍ファイルを開くとモニタープログラムとUSBドライバー、それにマニュアルのhtmlファイルが解凍されます。どうやらHEWから操作できるデバックモニターの様です。嬉しい。htmlファイルには署名がありませんが、このドキュメントって従来のデバックモニタのドキュメントそっくりな構成で（笑）。Kさん作ってくれていたんですね。多分SH-2Aも同様な方法でHEWからのデバックができると思われます。USB経由のデバックモニターを作って提供したと言っていましたから。※おおぅ！、HEWから接続できちゃったよ。あとは使い方だな。;--------------------------------------------------------;	Renesas Technology Corp;	USB Serial Ports Driver;       for Windows2000 and WindowsXP;       29 September 2003;--------------------------------------------------------今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌C言語でH8マイコンを使いこなす作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2003/10メディア: 単行本H8マイコン+C言語効率アップテクニック作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2004/11メディア: 単行本</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-02-28T15:56:38+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_002.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_002.png" width="300" height="211" border="0" align="left" alt="h8sx_002.png" /></a>※図はモニタープログラムをダウンロード後、ドライバーをインストールしてシリアルポートとして認識されたところ。<br />
<br />
CD ROMのコンテンツの中にモニタープログラムってフォルダーが有って、この中にある自己解凍ファイルを開くとモニタープログラムとUSBドライバー、それにマニュアルのhtmlファイルが解凍されます。<br />
<br />
どうやらHEWから操作できるデバックモニターの様です。嬉しい。<br />
htmlファイルには署名がありませんが、このドキュメントって従来のデバックモニタのドキュメントそっくりな構成で（笑）。Kさん作ってくれていたんですね。<br />
<br />
多分SH-2Aも同様な方法でHEWからのデバックができると思われます。USB経由のデバックモニターを作って提供したと言っていましたから。<br />
<br />
※おおぅ！、HEWから接続できちゃったよ。あとは使い方だな。<br />
<pre>
;--------------------------------------------------------
;	Renesas Technology Corp
;	USB Serial Ports Driver
;       for Windows2000 and WindowsXP
;       29 September 2003
;--------------------------------------------------------
</pre><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51633RHJ62L._SL160_.jpg" class="sonet-asin-image" alt="C言語でH8マイコンを使いこなす" title="C言語でH8マイコンを使いこなす"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/developerspla-22/ref=nosim" target="_blank">C言語でH8マイコンを使いこなす</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2003/10</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51Y22FCM9QL._SL160_.jpg" class="sonet-asin-image" alt="H8マイコン+C言語効率アップテクニック" title="H8マイコン+C言語効率アップテクニック"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274079783/developerspla-22/ref=nosim" target="_blank">H8マイコン+C言語効率アップテクニック</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2004/11</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-28-1">
<title>H8-SX基板</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-28-1</link>
<description>よし、ジャンパーは付けた。FDTver4.03でもUSBドライバーはインストールされた。確認用のLEDチカチカも動いた。次はHOSか？。今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]作者: 出版社/メーカー: CQ出版発売日: 2010/02/25メディア: 雑誌</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-02-28T13:00:53+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/h8sx_001.png" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_h8sx_001.png" width="300" height="211" border="0" align="left" alt="h8sx_001.png" /></a>よし、ジャンパーは付けた。FDTver4.03でもUSBドライバーはインストールされた。<br />
<br />
確認用のLEDチカチカも動いた。<br />
<br />
次はHOSか？。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51SmDnYhtrL._SL160_.jpg" class="sonet-asin-image" alt="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]" title="今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/B00366Q4N2/developerspla-22/ref=nosim" target="_blank">今すぐ使える!H8マイコン基板 2010年 04月号 [雑誌]</a></p><ul><li class="sonet-asin-label">作者: </li><li class="sonet-asin-label">出版社/メーカー: CQ出版</li><li class="sonet-asin-label">発売日: 2010/02/25</li><li class="sonet-asin-label">メディア: 雑誌</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-28">
<title>ディジ インターナショナルさんの第１回技術交流会に行ってきた。</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-28</link>
<description>これね。http://www.digi-intl.co.jp/news/seminar/2010/100227info.htmlレポートは無いです。もうねぇ、現時点では発表できない秘密の事柄が多過ぎて（笑）。その場に居た人のみお得でしたと言う話です。次回フォーラムでは発表となると思いますので、XBeeを含むディジ製品に興味のある方は、こちらに参加してください。http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.htmlhttp://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.htmlゲストとして参加されたディジさんの開発パートナーさんのWEBサイトを書いておきます。ヴィッツさんはInterface誌でモデルロケットにXBeeを搭載してテレメトリーした方ですよね。http://www.witz-inc.co.jp/ナシュア・ソリューションズhttp://www.nassua.co.jp/ディジさん自体はビジネスとしてのスタンスはB2Bであると言っている訳ですが、決してホビーユーザーを無視している訳ではなく、いや今迄もむしろホビーユーザーを優遇していたのですが（小売で買えるようにスイッチサイエンスさんに正式に卸している）、まだ正式な事は何も言えませんが（笑）、ホビーユーザー（XBeeエントリーユーザー）向け企画も計画されています。Zigbee開発ハンドブック (実践入門ネットワーク)作者: 鄭 立出版社/メーカー: リックテレコム発売日: 2006/02メディア: 単行本</description>
<dc:subject>SilentC ＆ XBee</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-02-28T09:23:21+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/IMG_1794.JPG" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_IMG_1794.JPG" width="300" height="225" border="0" align="left" alt="IMG_1794.JPG" /></a>これね。<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/100227info.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/100227info.html</a><br />
<br />
レポートは無いです。<br />
もうねぇ、現時点では発表できない秘密の事柄が多過ぎて（笑）。その場に居た人のみお得でしたと言う話です。<br />
次回フォーラムでは発表となると思いますので、XBeeを含むディジ製品に興味のある方は、こちらに参加してください。<br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/emb0311info.html</a><br />
<a href="http://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.html" target="_blank">http://www.digi-intl.co.jp/news/seminar/2010/m2m0310info.html</a><br />
<br />
ゲストとして参加されたディジさんの開発パートナーさんのWEBサイトを書いておきます。<br />
<br />
ヴィッツさんはInterface誌でモデルロケットにXBeeを搭載してテレメトリーした方ですよね。<br />
<a href="http://www.witz-inc.co.jp/" target="_blank">http://www.witz-inc.co.jp/</a><br />
<br />
ナシュア・ソリューションズ<br />
<a href="http://www.nassua.co.jp/" target="_blank">http://www.nassua.co.jp/</a><br />
<br />
ディジさん自体はビジネスとしてのスタンスはB2Bであると言っている訳ですが、決してホビーユーザーを無視している訳ではなく、いや今迄もむしろホビーユーザーを優遇していたのですが（小売で買えるようにスイッチサイエンスさんに正式に卸している）、まだ正式な事は何も言えませんが（笑）、ホビーユーザー（XBeeエントリーユーザー）向け企画も計画されています。<br />
<br />
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/YwNqg89tqkI&hl=ja_JP&fs=1&"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/YwNqg89tqkI&hl=ja_JP&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4897976464/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/41M95MKDZKL._SL160_.jpg" class="sonet-asin-image" alt="Zigbee開発ハンドブック (実践入門ネットワーク)" title="Zigbee開発ハンドブック (実践入門ネットワーク)"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4897976464/developerspla-22/ref=nosim" target="_blank">Zigbee開発ハンドブック (実践入門ネットワーク)</a></p><ul><li class="sonet-asin-label">作者: 鄭 立</li><li class="sonet-asin-label">出版社/メーカー: リックテレコム</li><li class="sonet-asin-label">発売日: 2006/02</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-26-1">
<title>某誌付録基板に搭載されているマイコン(SH-2A)の型番予想</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-26-1</link>
<description>※基板設計と記事は来栖川さんがやってくれる事を激しく希望。きっとこれでしょうね。http://japan.renesas.com/fmwk.jsp?cnt=sh7262_root.jsp&amp;fp=/products/mpumcu/superh_family/sh7260_series/sh7262_group/予習でもしておきますか。SuperHファミリのCプログラミング作者: 鹿取 祐二出版社/メーカー: オーム社発売日: 2008/09メディア: 単行本SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!作者: 鹿取 祐二出版社/メーカー: 電波新聞社発売日: 2005/12メディア: 単行本</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-02-26T07:49:14+09:00</dc:date>
<content:encoded><![CDATA[
※基板設計と記事は来栖川さんがやってくれる事を激しく希望。<br />
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/K3300018-611f4.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_K3300018-611f4.jpg" width="225" height="300" border="0" align="left" alt="K3300018.jpg" /></a>きっとこれでしょうね。<br />
<a href="http://japan.renesas.com/fmwk.jsp?cnt=sh7262_root.jsp&fp=/products/mpumcu/superh_family/sh7260_series/sh7262_group/" target="_blank">http://japan.renesas.com/fmwk.jsp?cnt=sh7262_root.jsp&fp=/products/mpumcu/superh_family/sh7260_series/sh7262_group/</a><br />
<br />
予習でもしておきますか。<br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51AVM4MoLqL._SL160_.jpg" class="sonet-asin-image" alt="SuperHファミリのCプログラミング" title="SuperHファミリのCプログラミング"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274205940/developerspla-22/ref=nosim" target="_blank">SuperHファミリのCプログラミング</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2008/09</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4885549035/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51XWlvsT1sL._SL160_.jpg" class="sonet-asin-image" alt="SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!" title="SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4885549035/developerspla-22/ref=nosim" target="_blank">SuperHで学ぶμITRON仕様OS―リアルタイムOSの動作原理と実装法がわかる!</a></p><ul><li class="sonet-asin-label">作者: 鹿取 祐二</li><li class="sonet-asin-label">出版社/メーカー: 電波新聞社</li><li class="sonet-asin-label">発売日: 2005/12</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
<item rdf:about="http://hamayan.blog.so-net.ne.jp/2010-02-26">
<title>書籍「今すぐ使える！H8マイコン基板」のH8SXのHOSカーネルライブラリ構築</title>
<link>http://hamayan.blog.so-net.ne.jp/2010-02-26</link>
<description>実はSXはH8/300の上位互換性があるので、HOSの300H用のカーネルをSX用としてコンパイルできないかとやってみたら、一応カーネルのビルドは完了している模様です。とカーネルのビルドを始める前に、hosdenv.hに修正が要ります。このファイルはコンパイル時の暗黙の環境変数を見てhospac.hの在り処を示しているのですが、SXの環境変数の記述は無いので、これを追加する必要が有ります。ですが、#elif defined(__H8SXA__)  /* ルネサス H8SX コンパイラ */#include &quot;h83/hospac.h&quot;と書いちゃっても上手く在り処を指定できないみたいなので困りました。まあ、#include &quot;h83/hospac.h&quot;を意地でも有効にしてしまえば良いだけの話なので、強制的にカーネルビルドを完了させる事は可能です。ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発作者: 濱原 和明出版社/メーカー: オーム社発売日: 2005/04/25メディア: 単行本</description>
<dc:subject>SH&amp;H8</dc:subject>
<dc:creator>hamayan</dc:creator>
<dc:date>2010-02-26T00:39:41+09:00</dc:date>
<content:encoded><![CDATA[
<a href="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/Img_1795.jpg" target="_blank"><img src="http://hamayan.blog.so-net.ne.jp/_images/blog/_800/hamayan/m_Img_1795.jpg" width="300" height="225" border="0" align="left" alt="Img_1795.jpg" /></a>実はSXはH8/300の上位互換性があるので、HOSの300H用のカーネルをSX用としてコンパイルできないかとやってみたら、一応カーネルのビルドは完了している模様です。<br />
<br />
とカーネルのビルドを始める前に、hosdenv.hに修正が要ります。<br />
このファイルはコンパイル時の暗黙の環境変数を見てhospac.hの在り処を示しているのですが、SXの環境変数の記述は無いので、これを追加する必要が有ります。<br />
ですが、<br />
#elif defined(__H8SXA__)  /* ルネサス H8SX コンパイラ */<br />
#include "h83/hospac.h"<br />
と書いちゃっても上手く在り処を指定できないみたいなので困りました。<br />
まあ、<br />
#include "h83/hospac.h"<br />
を意地でも有効にしてしまえば良いだけの話なので、強制的にカーネルビルドを完了させる事は可能です。<!-- amazon --><br />
<div class="sonet-asin-area"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank"><img src="http://ecx.images-amazon.com/images/I/51K6FRKR7BL._SL160_.jpg" class="sonet-asin-image" alt="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発" title="ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発"></a><div class="sonet-asin-info"><p class="sonet-asin-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4274066045/developerspla-22/ref=nosim" target="_blank">ITRONプログラミング入門―H8マイコンとHOSで始める組み込み開発</a></p><ul><li class="sonet-asin-label">作者: 濱原 和明</li><li class="sonet-asin-label">出版社/メーカー: オーム社</li><li class="sonet-asin-label">発売日: 2005/04/25</li><li class="sonet-asin-label">メディア: 単行本</li></ul></div></div><div class="sonet-asin-break"></div><br />
<!--/ amazon --><br />
<a name="more"></a>
]]></content:encoded>
</item>
</rdf:RDF>
