FrontPage

2009/06/04 からのアクセス回数 6403

ターゲットボード

Armlibが異なるCPUアーキテクチャーで使えて、便利なことを示す例として、オプティマイズの EZ-ARM7 を使ってみます。*1

DSCN03011.jpg

EZ-ARMの特徴をあげると、

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

テストプログラム

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

makefileの設定

arm/armlibを使ってみると同様に、armlibのサンプルにあるfilemakefileをコピーし、以下の項目をセットします。

	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

fileglobal.hは、サンプルのglobal.hをそのまま使います。

blink.c

メインのファイルは、fileblink.cです、これはオプティマイズの例題から引用したので、ファイル名を 同じにしました。

#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;
}

コメント

この記事は、

選択肢 投票
おもしろかった 0  
そうでもない 0  
わかりずらい 0  

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


(Input image string)

*1 本当は、Interface 2009/6月号の付録を使いたかったのですが、割り込みベクターのサイズがことなり、簡単にArmlibに対応できなかったので、今回は見送りました

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