<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
	<title>とんずら雑記R</title>
	<link>http://www.ujiya-denshi.com/adiary/adiary.cgi</link>
	<language>ja</language>
	<description></description>
	<copyright>Copyright 2010</copyright>
	<pubDate>Fri, 28 May 2010 19:20:02 GMT</pubDate>
	<lastBuildDate>Thu, 29 Jul 2010 18:30:15 GMT</lastBuildDate>
	<generator>http://adiary.abk.nu/#2.12</generator>
	<docs>http://blogs.law.harvard.edu/tech/rss</docs> 
	<item>
		<title>[IP][Avalon]  I2C master controller wrapper</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#tm1275074402</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master</guid>
		<category>FPGA::IP</category>
		<pubDate>Wed, 19 May 2010 17:58:36 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p1" name="k161p1"><span class="sanchor">■</span></a>はじめに</h3>
<p>自作部分はAvalon SlaveにWISHBONEモジュールをぶら下げるためのBridgeのみなので、ほかのモジュールにも転用できるかと思います。</p>
<p><font color="#FF0000">【注意】本記事は、16ヶ月ほど前のコードと資料を元に作成しており、i2c_masterもversionがあがっております．WISHBONEおよびI2Cインタフェース部分にも修正が入っているようなので、最新版での動作保障はありません．現状、環境がないので確認できません…</font></p>
<p>自製部分のみ、<a href="http://www.ujiya-denshi.com/adiary/public/image/xoxyuxu/201005/_IP_I2C_v000.zip" class="tag file" title="ファイル">_IP_I2C_v000.zip</a>として置いておきます。tclも入れておきますが、FatFSのときのように動作確認をしていませんので、ご了承いただきたく。実際に使ったサンプルコードも置いておきます（<a href="http://www.ujiya-denshi.com/adiary/public/image/xoxyuxu/201005/avalon_i2c.zip" class="tag file" title="ファイル">avalon_i2c.zip</a>）。<br>いまさらですが、writeしか使ってない模様…。WM8731へは書きっぱなしでよかったのかな... 記憶があいまいデスすみません.</p>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p2" name="k161p2"><span class="sanchor">■</span></a>概要</h3>
<p>I2C MasterとなるIPです．<br>本IPは，opencores.orgで開示されている，以下のものをベースとしました．</p>
<pre>
http://www.opencores.org/
  "I2C controller core"
  Category :: Communication controller
  Name: i2c
  Created: 25-Sep-2001 10:15:03
  Updated: 03-Nov-2008 14:55:35

  Category :: Communication controller
  Language :: Verilog
  Language :: VHDL
  Phaze :: ASIC proven
  Phaze :: Design done
  Phaze :: FPGA proven
  Standard :: Wishbone compliant core
  Development status :: Production/Stable



Rev. 0.9  Release data: 03/07/03
i2c_specs.pdf
</pre>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p3" name="k161p3"><span class="sanchor">■</span></a>収録ファイルと個々の概要説明</h3>
<ul>
	<li> avalonif_i2c.txt</li>
</ul>
<p>   このファイル．IPの簡単な説明等を記載する</p>
<ul>
	<li> avalonif_i2c_hw.tcl</li>
</ul>
<p>   SOPC builderが食うファイル．   Avalon-MM I/Fの仕様や追加すべきファイル，パラメータ初期値などの情報が入っている．</p>
<ul>
	<li> avalonif_i2c.v</li>
</ul>
<p>   Avalon I/Fを含む本モジュールのtopレベルモジュールを記述したファイル．   "i2c_master_top.v"と同等の機能を有す．（moduleとSystem BUSの仲介だけ）</p>
<p>以下、i2cオリジナルに含まれるものです。</p>
<ul>
	<li> timescale.v</li>
	<li> i2c_master_defines.v</li>
	<li> i2c_master_byte_ctrl.v</li>
	<li> i2c_master_bit_ctrl.v</li>
	<li> i2c_master_top.v</li>
</ul>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p4" name="k161p4"><span class="sanchor">■</span></a>実装時の注意事項</h3>
<p>I2Cバスの信号である，SDA/SCKは外部Pull Upになり，master/slaveはopen drainで駆動します．本IPも，各信号をLowに落とすときだけ，Padのenable信号を出すように作られています．tope level moduleには，以下の信号が出ています．</p>
<pre>
  sda_padoen_o
  sda_pad_o
  sda_pad_i
  scl_padoen_o
  scl_pad_o
  scl_pad_i
</pre>
<p>PADの出力値は，sda_pad_o(scl_pad_o)に出てきます．ただし常にLowでGND接続になります．<br>PADからの入力は，sda_pad_i(scl_pad_i)を通して行います．<br>最後に，PADの出力制御は，sda_padoen_o(scl_padoen_o)を用い，active lowです．<br>highのときは，PADはドライブせず，Hi-Z状態としてください．<br>※詳細はオリジナルのドキュメントを参照していただきたく．</p>
<p>Verilog-HDLでの記述例を示します．<br>NEEKなど，シングルマスタを想定してプルアップしていない回路では，コメントアウトしたほうを用いてください．ただしデータに関しては双方向と成るため，Pull Upは必須と成ります．<br># I2Cとした時点で，CLK/DAT双方ともPullUpすべきだと思うのですが...</p>
<pre>
module xxx (
  inout HC_I2C_SDAT,
  HC_I2C_SCLK,
  ...
 ) ;


assign sda_pad_i = HC_I2C_SDAT ;
assign HC_I2C_SDAT = (sda_padoen_o==1'b0 ? sda_pad_o : 1'bz) ;
assign scl_pad_i = HC_I2C_SCLK ;
assign HC_I2C_SCLK = (scl_padoen_o==1'b0 ? scl_pad_o : 1'bz) ;
// assign HC_I2C_SCLK = scl_padoen_o ; // if Single Master and No-Pull Up(for NEEK)


slave address = 7'b0011010 @ CSB = Low at NEEK
</pre>
<br>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p5" name="k161p5"><span class="sanchor">■</span></a>ハードウェア仕様</h3>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/OC_I2C_master#k161p5.1" name="k161p5.1"><span class="sanchor">▲</span></a>モジュールのアドレス空間</h4>
<table>
<tbody>
	<tr class="odd"><th> offset</th><th> symbol</th><th> description</th></tr>
	<tr class="even"><td>0</td><td>Status / RxData</td></tr>
	<tr class="odd"><td>1</td><td>Command Register</td></tr>
	<tr class="even"><td>2</td><td>Control / TxData</td></tr>
	<tr class="odd"><td>3</td><td>pre</td><td>I2C clock prescaler</td></tr>
</tbody></table>
<p>"Command"</p>
<table>
<tbody>
	<tr class="odd"><td>7</td><td>STA</td><td>START condition</td></tr>
	<tr class="even"><td>6</td><td>STO</td><td>STOP condition</td></tr>
	<tr class="odd"><td>5</td><td>RD</td><td>Read Data</td></tr>
	<tr class="even"><td>4</td><td>WR</td><td>Write Data</td></tr>
	<tr class="odd"><td>3</td><td>ACK</td><td>when receiver(1:ACK/0:NACK)</td></tr>
	<tr class="even"><td>2</td><td>-</td></tr>
	<tr class="odd"><td>1</td><td>-</td></tr>
	<tr class="even"><td>0</td><td>IACK</td><td>1書き込みで要因クリア</td></tr>
</tbody></table>
<p>"Control / TxData"</p>
<table>
<tbody>
	<tr class="odd"><td>31</td><td>EN</td><td>Enable I2C core</td></tr>
	<tr class="even"><td>30</td><td>IEN</td><td>interrupt enable</td></tr>
	<tr class="odd"><td>29-24</td><td>-</td><td>reserved</td></tr>
	<tr class="even"><td>23-8</td><td>-</td><td>reserved</td></tr>
	<tr class="odd"><td>7-0</td><td>txdata</td><td>Transmit data. slaveアドレス送信時はLSBがdirection(1:R/0:W)を示す</td></tr>
</tbody></table>
<p>"Status"</p>
<table>
<tbody>
	<tr class="odd"><td>31-16</td><td>-</td><td>reserved</td></tr>
	<tr class="even"><td>15</td><td>RxACK</td><td>スレーブからのACK受領ステータス．0で受信，1で未受信</td></tr>
	<tr class="odd"><td>14</td><td>Busy</td><td>1:STArt detected, 0:STOp detected</td></tr>
	<tr class="even"><td>13</td><td>AL</td><td>Arbitration Lost</td></tr>
	<tr class="odd"><td>12-10</td><td>reserved</td></tr>
	<tr class="even"><td>9</td><td>TIP</td><td>1: 転送中, 0:転送完了</td></tr>
	<tr class="odd"><td>8</td><td>IF</td><td>割込みフラグ．転送完了もしくはArbitration Lostでたつ</td></tr>
	<tr class="even"><td>7-0</td><td>rxdata</td></tr>
</tbody></table>
<p>プリスケーラの値は，下記の算出式により得ることができます．</p>
<pre>
（document 3.2.1参照）
IPの動作クロックを f_clk[Hz]，SCLKの周波数を f_sclk[Hz]とします
  value of pre-scaler = f_clk / (5 * f_sclk) - 1

ex.)
  f_clk  = 18.432MHz
  f_sclk = 500kHz

  value of pre-scaler = 18432 / (5 * 500) - 1  = 6.3728 =&gt; 7 
</pre>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/OC_I2C_master#c">■コメント（3件）</a></h4>
<div style="margin-left: 1em;">
itakawa『さっそく、tclまで公開いただけたので、いきなり動作確認できそうな勢いですね。 FatFs/SPIの時のように繋いで終わり級の予...』(2010/05/20 23:43)</span><br>
itakawa『いちお、動作確認できました。 24LC02Bというデバイスなんですが8Bitデバイスなので、avalon_i2c_write_2...』(2010/05/27 23:48)</span><br>
ぉゅぅ『ご報告ありがとうございます。 当方もようやく9.2sp1を入れて、cycloneIII基板環境を立ち上げ中です。 MMCのmod...』(2010/05/28 28:20)</span><br>
</div>
<h4><a href="/adiary/adiary.cgi/OC_I2C_master#tb">■トラックバック（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
]]></description>
	</item>
	<item>
		<title>HDL-IP</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/IP#tm1274292252</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/IP</guid>
		<category>FPGA::IP</category>
		<pubDate>Wed, 19 May 2010 17:35:44 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/IP#k160p1" name="k160p1"><span class="sanchor">■</span></a>IP紹介所</h3>
<p>本サイトで公開、紹介しているIP類へのジャンプ先をここにまとめたいと思います。</p>
<p>まぁ、ぼちぼちと。。。</p>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/IP#c">■コメント（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
<h4><a href="/adiary/adiary.cgi/IP#tb">■トラックバック（1件）</a></h4>
<div style="margin-left: 1em;">
<a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0161" rel="nofollow">「IP][Avalon]  I2C master controller wrapper</a> （とんずら雑記R） by ぉゅぅ<br>
</div>
]]></description>
	</item>
	<item>
		<title>シリコンハウス共立移転予定</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/0159#tm1271858564</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/0159</guid>
		<category>雑談</category>
		<pubDate>Wed, 21 Apr 2010 14:02:44 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0159#k159p1" name="k159p1"><span class="sanchor">■</span></a>店舗移転</h3>
<p>７月上旬頃を予定されているとのこと。twitterで得られたので便利というかなんというか。</p>
<p>デジットは独自の進化(?)を遂げるべきですねッ。得体の知れないジャンクにｗｋｔｋする日々・・・。液晶とかなんとかをごっそりと拾ってきていただけるとうれしげですね～。</p>
<br>
<br>
<p>情報ソース</p>
<ul>
	<li><a href="http://keic.jp/renew/">シリコンハウスWEB</a>にて正式発表。</li>	<li><a href="http://shop.nippon-bashi.biz/news/20100421_kyohritsu.html">http://shop.nippon-bashi.biz/news/20100421_kyohritsu.html</a></li>	<li>twitter公式アカウント: http://twitter.com/kyohritsu</li>
</ul>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/0159#c">■コメント（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
<h4><a href="/adiary/adiary.cgi/0159#tb">■トラックバック（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
]]></description>
	</item>
	<item>
		<title>[gcc][AVR] attributeによるバイト数装飾</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#tm1268324965</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/0158</guid>
		<category>開発環境::gcc</category>
		<pubDate>Thu, 11 Mar 2010 16:28:18 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p1" name="k158p1"><span class="sanchor">■</span></a>変数のビットサイズ～gcc方言の巻</h3>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p1.1" name="k158p1.1"><span class="sanchor">▲</span></a>avr-gccのstdint.hを見る</h4>
<p>VMにWinXP32bitを放り込んで、WinAVR 20100110をインスコ。uint32_tが8bitになっとる、という話をmixiのコミュで見かけたので検証してみました。とりあえずコードレベルで追いかけるとして、ヘッダファイルを探索。</p>
<pre>
typedef unsigned int uint32_t __attribute__ ((__mode__ (__SI__))); 
</pre>
<p><span class="x-large"><font color="#FF0000"><strong>・・・・なんぞこれ。</strong></font></span></p>
<p><strong>__attribute__</strong>ってあたりは、まぁ、なんぞローカル定義の装飾しているなぁとは思うわけですが、<strong>__SI__</strong>ってなによ...</p>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p2" name="k158p2"><span class="sanchor">■</span></a>変数サイズ指定</h3>
<p><a href="http://gcc.gnu.org/ml/gcc/2005-11/msg01038.html">Anton-sanがいいこといった！</a><strong>S</strong>ingle <strong>I</strong>ntegerだそうだ。</p>
<p>・・・ナニソレ？</p>
<br>
<pre>
* Title: Gcc help pages about __mode__ keyword
* From: Anton Soppelsa &lt;soppelsa at igi dot cnr dot it&gt;
* To: gcc at gnu dot org
* Date: Tue, 22 Nov 2005 15:48:45 +0100
* Subject: Gcc help pages about __mode__ keyword

Dear GCC help pages maintainers,
I recently encountered a statement like this one


__attribute__((__mode__(__DI__)))

in a micro kernel source file.

As I'm not so skilled with this kind of C/C++ syntax I tried to read the manual about the keywords involved in that expression.
Despite I found information about "__attribute__" and "__mode__"
I wasn't able to find information about "__DI__" (on the gcc manual pages).
Of course I found in Internet partial explanation of the meaning of "__DI__" keyword and also found out that there are many of the same type like "__SI__", "__HI__", and "__QI__".
 By the way, do they mean Double-, Single-, Half-, Quarter-, -Integer?

The point is that it seem to me those identifiers are actually keywords of the compiler.
So they really have be mentioned (at least) in the compiler manual. Better would be if they are explained.
I guess that part of the manual is not so well maintained because I found only reference to the keywords "__byte__" or "__word__" or "__pointer__".


This message is just to inform u about something if u have the time to work about has to be done (in my opinion) .
Best regards,
</pre>
<p>※本文にメールアドレスがありましたが、削除しています。改行も入れました..</p>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p3" name="k158p3"><span class="sanchor">■</span></a>__SI__の謎</h3>
<p><a href="http://hal.cs.berkeley.edu/cil/cil016.html">George-sanないす</a>だ！<a href="http://sourceforge.net/projects/cil/">CIL (C Intermediate Language)</a>ということで、Ｃコンパイル時の中間言語の領域に到達した。やはりこのあたりから学ばないと、コンパイラの理解は終わらないようだな…。</p>
<br>
<pre>
GCC allows you to use the __mode__ attribute to specify the size of the integer instead of the standard char, short and so on:

int __attribute__ ((__mode__ (  __QI__ ))) i8;
int __attribute__ ((__mode__ (  __HI__ ))) i16;
int __attribute__ ((__mode__ (  __SI__ ))) i32;
int __attribute__ ((__mode__ (  __DI__ ))) i64;
</pre>
<br>
<p>ちょっとわかりづらい。CLI特有というわけでもないぽいなぁ...</p>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p4" name="k158p4"><span class="sanchor">■</span></a>答えは身近に―</h3>
<p><a href="http://www.picfun.com/c30/c3004.html">後閑師</a>のところで、C30の説明があり、ここで紹介されてました。ナンテコッタイｗ</p>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p4.1" name="k158p4.1"><span class="sanchor">▲</span></a>以下、引用</h4>
<pre>
typedef int __attribute__((__mode__(SI))) int32 ; // int32を32ビット幅の整数型と定義
</pre>
<p>modeで指定したビット幅の型を定義する<br>byteは１バイト整数型、wordは１ワード整数、pointerはポインタ型を定義する<br>modeには下記記号が使用できる<br>QI ： 8ビット(char)<br>HI ： 16ビット(int)<br>SI ： 32ビット(long)<br>DI ： 64ビット(long long)<br>SF ： 32ビット(float)<br>DF ： 64ビット(long double)<br>ちょっぴり、アンダースコアの量が違いますが、まぁ、もともとも思想は同じと思って良いでしょう。処理系依存が多いでしょうし、迷ったときはアセンブラコードをはかせてみる。sizeof()でバイト数をチェックする、といった習慣をつけたほうが良いですね。特にマイコン屋さんは。仕事でも趣味でも。ね。。</p>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0158#k158p5" name="k158p5"><span class="sanchor">■</span></a>注意</h3>
<p>斜め読みどころか、英語弱いのにかじりながら見た部分が多いですので、鵜呑みにせずリンク先の情報を消化して納得してください。<br>WEBの情報がすべて正しいとは限りませんし、何事も本家までさかのぼるよう習慣付けましょう…。<span class="xx-small">頼むよほんと(ぉ</span></p>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/0158#c">■コメント（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
<h4><a href="/adiary/adiary.cgi/0158#tb">■トラックバック（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
]]></description>
	</item>
	<item>
		<title>[perl] forkで子供がたくさん</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/0157#tm1266424534</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/0157</guid>
		<category>Perl</category>
		<pubDate>Wed, 17 Feb 2010 16:35:34 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0157#k157p1" name="k157p1"><span class="sanchor">■</span></a>子プロセスを作って並列処理</h3>
<p>表題のとおり。自動計測系の構築などで、監視する側と実行する側とに分離したいとき、forkを使うのが易いようです。</p>
<p>Windowsなら、Active Perlのperlforkを見ると、いろいろと例が載っています。</p>
<p>TrackBack先の<a href="http://www.magicvox.net/archive/2010/02161550/">Magic Vox</a>で見かけたので、記事を書いてみます。</p>
<p>自分で確認した記録でもありますが...なお、Windows7 Ultimatex64 + Active Perl v5.10.0で試しました.</p>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0157#k157p1.1" name="k157p1.1"><span class="sanchor">▲</span></a>コーディング例</h4>
<pre>
use POSIX ":sys_wait_h";

$| = 1;
my ($pid, $n) ;
	$n = 4 ;

	do {
		$pid = fork ;
		if (!defined $pid) {
			die "fork fairule...\n" ;
		}
		elsif ($pid==0) {	# child
			print "I'm a child $n/pid=$pid \n";
			sleep 10 - $n ;
			exit $n ;
		} else {
			print "create process $pid\n";
		}
		--$n;
	} while ($n&gt;0) ;

my $killid ;
	sleep 1;
	do {
#		$killid = wait();
		$killid = waitpid(-1, WNOHANG);

		print "child $killid  is dead and said $?\n" unless $killid==0;
	} while ($killid!=-1) ;
	print "Terminate test PGM.\n" ;
exit ;
</pre>
<p>親としては、子が消えるまで待ったり、よそからの要求で殺したりするわけですね。とりあえずは、forkで分岐するところをテンプレート的にお試ししました、というだけで。</p>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0157#k157p1.2" name="k157p1.2"><span class="sanchor">▲</span></a>実行例</h4>
<pre>
&gt;perl tst_fork01.pl
create process -4900
I'm a child 4/pid=0
create process -888
I'm a child 3/pid=0
create process -2364
I'm a child 2/pid=0
create process -2004
I'm a child 1/pid=0
child -4900  is dead and said 1024
child -888  is dead and said 768
child -2364  is dead and said 512
child -2004  is dead and said 256
child -1  is dead and said -1
Terminate test PGM.
</pre>
<p>ただし、<a href="http://labs.cybozu.co.jp/blog/kazuho/archives/2007/10/perl_mp.php">Perl で複数個のワーカープロセスを動かして処理を行う場合のコード</a>として例が挙がっているように、まじめにやる場合はこちらを参照したほうがよさそうです。SIGトラップして云々・・・。まだまだ勉強不足のようで('A`</p>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/0157#c">■コメント（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
<h4><a href="/adiary/adiary.cgi/0157#tb">■トラックバック（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
]]></description>
	</item>
	<item>
		<title>[Perl] 快適デバッグ環境</title>
		<link>http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#tm1265734194</link>
		<guid>http://www.ujiya-denshi.com/adiary/adiary.cgi/0156</guid>
		<category>Perl</category>
		<pubDate>Tue, 09 Feb 2010 16:48:58 GMT</pubDate>
		<author>ぉゅぅ</author>
		<description><![CDATA[<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156p1" name="k156p1"><span class="sanchor">■</span></a>Perl環境</h3>
<p><a href="http://www.activestate.com/">Active State</a>から、Active Perlを拾ってきてインストール。</p>
<p>後のEclipseでデバッグする際に必要となるので、<a href="http://www.google.co.jp/search?lr=lang_ja&amp;ie=utf-8&amp;oe=utf-8&amp;q=PadWalker" class="tag google" title="Google検索">PadWalker</a>を拾ってくる。コマンドラインからppmでインスコできるので便利ね。</p>
<p><em>実行例：</em></p>
<pre>
C:\&gt;ppm install PadWalker
Downloading PadWalker-1.9...done
Unpacking PadWalker-1.9...done
Generating HTML for PadWalker-1.9...done
Updating files in site area...done
   6 files installed
</pre>
<br>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156p2" name="k156p2"><span class="sanchor">■</span></a>Eclipse</h3>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156p3" name="k156p3"><span class="sanchor">■</span></a>本体</h3>
<p><a href="http://www.eclipse.org/">Eclipse.org</a>から、パッケージを拾ってくる。現在GALILEOが新しい模様。いろんなぱケージがあるけれど、java開発しないならCDTでも十分。足りなくなったらパッケージを入れていけばいいでしょう。<span class="footnote"><a title="個人的にjava触らないので、CDT,EPICあればシアワセ" href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#fk156n1" name="k156n1">*1</a></span></p>
<p>インストーラが嫌いな人はzip版がいい感じ。eclipseディレクトリを作って、その下に展開して言ってくれるので、どこかのルートにでも展開するといいでしょう。</p>
<h4><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156p3.1" name="k156p3.1"><span class="sanchor">▲</span></a>プラグイン</h4>
<p>Eclipseのメジャーなプラグインは、多くはUpdate Siteを持っているようで、Eclipse側でUpdate siteを登録して拾ってこさせることができます。また、更新チェックもしてくれるので便利です。基本的にサイト側で親切に書かれているので、そちらを参照ください・・・。ここではポインタを示すだけで、あまり細かいところまでは記載しないようにしておきます。<span class="footnote"><a title="Version upで操作が変わったりもしますからねぇ..." href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#fk156n2" name="k156n2">*2</a></span></p>
<br>
<h5>EPIC</h5>
<p><a href="http://www.epic-ide.org/">EPICのサイト</a>から、Perl開発用のプラグインを拾ってくる。参考サイトの@ITが詳しいので、ここでの説明は省略する。余力があれば自前でSnapShotをとっておくかネ。</p>
<h5>BABEL</h5>
<p><a href="http://babel.eclipse.org/babel/">Babel Project</a>のページにインストール方法が記載されています。やっぱり日本語のほうがサクサクと判断が進みます。</p>
<p>Babel projectの方々に感謝を。</p>
<br>
</div>
<div class="footnote">
	<p class="footnote"><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156n1" name="fk156n1">*1</a> : 個人的にjava触らないので、CDT,EPICあればシアワセ</p>
	<p class="footnote"><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156n2" name="fk156n2">*2</a> : Version upで操作が変わったりもしますからねぇ...</p>
</div>

<div class="section">
<h3><a href="http://www.ujiya-denshi.com/adiary/adiary.cgi/0156#k156p4" name="k156p4"><span class="sanchor">■</span></a>参考</h3>
<p><a href="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_1.html">スクリプト言語をサポートするEclipseプラグイン</a></p>
<p><div id="kwout_md5uqs2u" class="kwout" style="text-align: center;"><img src="http://kwout.com/cutout/m/d5/uq/s2u_bor_rou_sha.jpg" alt="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_1.html" title="スクリプト言語をサポートするEclipseプラグイン - @IT" width="395" height="262" style="border: none;" usemap="#map_md5uqs2u" /><map id="map_md5uqs2u" name="map_md5uqs2u"><area alt coords="235,161,313,172" href="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_2.html" shape="rect" /><area alt coords="235,147,314,158" href="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_1.html" shape="rect" /><area alt coords="235,176,322,186" href="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_3.html" shape="rect" /></map><p style="margin-top: 10px; text-align: center;"><a href="http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn10/eclipseplgn10_1.html">スクリプト言語をサポートするEclipseプラグイン - @IT</a> via <a href="http://itmedia.kwout.com/quote/md5uqs2u">kwout</a></p></div><script language="javascript" type="text/javascript" src="http://kwout.com/cutout/m/d5/uq/s2u_bor_rou_sha.js"></script></p>

</div>

<hr>
<h4><a href="/adiary/adiary.cgi/0156#c">■コメント（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
<h4><a href="/adiary/adiary.cgi/0156#tb">■トラックバック（0件）</a></h4>
<div style="margin-left: 1em;">
</div>
]]></description>
	</item>
</channel>
</rss>
