[[FrontPage]]

2009/06/04 からのアクセス回数 &counter;

#contents

** [#b4181c9d]
** ターゲットボード [#b4181c9d]
Armlibが異なるCPUアーキテクチャーで使えて、便利なことを示す例として、オプティマイズの
[[EZ-ARM7>http://optimize.ath.cx/ARM7/index.html]]
を使った例を示します。((本当は、Interface 2009/6月号の付録を使いたかったのですが、割り込みベクターのサイズがことなり、簡単にArmlibに対応できなかったので、今回は見送りました))

&ref(DSCN03011.jpg);

EZ-ARMの特徴をあげると、
- CPU	LPC2214
- フラッシュROM	256Kバイト
- SRAM	16Kバイト
- 汎用I/O(5V耐圧) 最大112本
- 外部バス	8/16/32bitアクセス
- A/Dコンバータ	8ch 10bit
- D/Aコンバータ	無し
- リアルタイムクロック(RTC)	バックアップ不可
- タイマー	2ch 32bit(4キャプチャ、4コンペア)
- PWM	6出力
- UART	2ch
- I2C	1ch(400Kbit/s)
- SPI	2ch

今回は、EZ-ARM7付属のライターとGDBスタブを使うため、VM-Wareと併用することにしました。

** テストプログラム [#vda609a6]
もちろん、テストプログラムはLEDの点滅です。
ただ、今回はforループによる遅延ではなく、タイマー割り込みを使って、Armlibが便利なところを
示すことにします。

*** makefileの設定 [#wd86127d]
[[arm/armlibを使ってみる]]と同様に、armlibのサンプルにある&ref(makefile);をコピーし、以下の項目をセットします。

#pre{{
	TRG	= blink
	ARMLIB = $(HOME)/local/arm/armlib
	ARCH = lpc2000
	ARMLIB_ARCH_SRC = processor.c timer.c
	ARMLIB_SRC = 
	LDFLAGS = -T$(ARMLIB)/arch/$(ARCH)/boot/lpc2214-rom.ld -lm -nostartfiles -Wl,-Map=$(TRG).map,--cref,-nostdlib
}}

*** global.h [#v26c0413]
&ref(global.h);は、サンプルのglobal.hをそのまま使います。

*** blink.c [#b41f28c8]
メインのファイルは、&ref(blink.c);です、これはオプティマイズの例題から引用したので、ファイル名を
同じにしました。

- ヘッダファイルは、global.h, lpc2000.h, processor.hの他に、使用するライブラリtimer.hをインクルードします。
- main関数
-- processorInit : 使用するCPUの初期設定を行う
-- timerInit : タイマーの初期化を行う
-- ledInit : LEDのIOの設定を行う
-- ledOn, ledOff : LEDのオン、オフ切り替え
-- timerPause : タイマー割り込みを使ったウェイト処理、ここでは500ミリ秒待ちます

#pre{{
#include "global.h"
#include "lpc2000.h"
#include "processor.h"		// include processor initialization functions
#include "timer.h"

static void ledInit(){
 	PINSEL1 = 0;
	IO0DIR |= 0x40000000;
	IO0SET = 0x40000000;
}

static void ledOn(int led){
	IO0CLR = led;
}

static void ledOff(int led){
	IO0SET = led;
}

int main(void){
	int i;
	// initialize processor
	processorInit();
	// initialize timers
	timerInit();

	ledInit();

	while (1){
		ledOn(0x40000000);
		timerPause(500);	// wait 500 msec
		ledOff(0x40000000);
		timerPause(500);	// wait 500 msec
	}
	return 0;
}
}}


** コメント [#bdac6092]
この記事は、

#vote(おもしろかった,そうでもない,わかりずらい)

皆様のご意見、ご希望をお待ちしております。

#comment_kcaptcha


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
SmartDoc