酔漢電子工作手帳

2006-02-18

テスト

| テスト - 酔漢電子工作手帳 を含むブックマーク はてなブックマーク - テスト - 酔漢電子工作手帳

開発環境

昨日紹介したOlimexのサイトにあるARM Cross Development with Eclipse Version 3を読んで、cygwinの上に開発環境を構築しました。

以前作ったWiggler互換ICEは、ピンをARM 14pin配列にしていたため、まだターゲットと接続できていません。一方、上記文書によると、OCDemonに関してはいくらか動きがあった模様。

OlimexMacraigorが無償公開しているOCDemonを使って、やはりMacraigorWiggler互換品でいい商売をしています。それ自身はどうこう言いませんが、その立場でMacraigorを悪く言う神経はどうですかね。少しは言葉を選べばいいのに。

一方、OCDemonの置き換えを狙ったOpenOCDプロジェクトも進んでいます。

手元のICEの改造をこの週末に完了できるかはきわどいと思っています。いや、遊びですから。十分飛ばしすぎてます。面白いですけどね。

こけら落とし

上記の環境でDesign Wave Magazineの付録プログラムをビルドし、ARMWSDで書きこみました。LEDチカチカが無事動作することを確認。めでたい。

次にSPI経由でMAX7221をテストモードに投入するプログラムを作成。これも動作を確認しました。

f:id:suikan:20060218235359j:image

まだGDBを使っていませんが、Eclipseの感触は上々。これ、面白いソフトです。Cygwin上で動かしていますが、SuSEの上でもそのうちやってみたいです。

// Copyright (c) Suikan
// コンパイラの機能テストを兼ねた、SPIの制御テスト
#include "cdef7026.h"

int main(){
	int i;
	
	*pGP1CON = 0x22220000;	/* SPICSL, SPIMISO, SPIMOSI, SPISCL を選択 */
	*pGP2CON = 0x00000000;	/* 全ピンGPIO */
	*pGP4CON = 0x00000000;	/* 全ピンGPIO */
	
	*pGP2DAT = 0x01010000;	/* SPI selection(MAX7221) disable */
	
	*pSPIDIV = 0xBF;	/* 100KHz SPI clock */
	*pSPICON = 0x1043;  	/* continuous, Tx driven, clk L idle, active edge sample, master, spi enable*/

	*pGP2CLR = 0x00010000;	/* SPI selection(MAX7221) enable */
	for ( i=0; i<10; i++ )
		;	/* wait around 1uS */
	*pSPITX = 0x0F;		/* 7221 address of display test */
	for ( i=0; i<10; i++ )
		;	/* wait around 1uS */
	*pSPITX = 0x01;		/* 7221, display test on */
	
	*pGP4DAT = 0x80000000;	/* LED ON */
	
  	while(1)
  		;
}

タイミングループを入れたのは、内蔵ペリフェラルMMRへの書きこみに時間がかかる場合、十分な余裕を確保できない可能性があるからです。特にSPITXに連続で書き込んでいるところは危ないと感じました。まだテストコードですからいい加減なタイミングとりをしていますが、RTOSを使えるようになったら当然こんな汚いやり方はしません。

harrieharrie2006/02/18 10:51はじめまして。DWMを買って悪戦苦闘しているharrieと申します。お聞きしたいことがありました。実は、窓Meでさんざんな目にあった私は、今使っているOSはTurbolinux 10F...とVINE3.2だけなのですが、ADuC7026を酔漢様と同様KDEで開発したいと思っております。DWMに付属していたGNUツールをソースからビルドしてコンパイルやinsightの動作まで確認したのですが、DWM基板へのダウンロードなどの仕方がいまいち分かりません。
DWMを見ると通信用のファームをARMWSDでダウンロードしないといけないようですが…そうしますとWindowsが必要ですよね( ̄- ̄;)
どうか力を貸してくださいませ。。。

suikansuikan2006/02/18 16:09こんにちは。実は私は普段はWindowsを使っていますので、ARMWSDを使えます。ですが、Windowsを使えない環境にいらっしゃるなら、gdbでJTAG経由で書き込むプログラムを以前作ったのでそちらをお使いになってはいかがでしょうか。
http://ecrafts.g.hatena.ne.jp/suikan/20040912
あと、書きこみプロトコルは公開されていますので、自分でLinux上で書きこみプログラムを書くという方法もあります。

harrieharrie2006/02/18 23:40ありがとうございます。やっぱりJTAGはこれから必要不可欠な開発アイテムですよね…。これを機に勉強してみます。JTAGの回路は、FPGAなどのJTAGとハードウェア的には違うのでしょうか?

suikansuikan2006/02/19 00:02どのようなハードのJTAGが使えるかは、私もまだ手探りです。定番としては昨日のエントリーのリンク先にある、OCDemon + Wiggler互換だとおもいます。また、OptimizeのminiEZ-USBを使ったデバッグについても期待しています。Wigglerについては何度か触れていますので、ページ上の検索ボックスを使って過去のエントリーを読んでみてください。

suikansuikan2006/02/19 00:28ついでながら、手元ではシリアル経由でのgdb/insightはうまく動作しませんでした。理由は不明です。

トラックバック - http://ecrafts.g.hatena.ne.jp/suikan/20060218