2009/06/04 からのアクセス回数 6760
Armlibが異なるCPUアーキテクチャーで使えて、便利なことを示す例として、オプティマイズの EZ-ARM7 を使ってみます。*1
EZ-ARMの特徴をあげると、
今回は、EZ-ARM7付属のライターとGDBスタブを使うため、VM-Wareと併用することにしました。
もちろん、テストプログラムはLEDの点滅です。 ただ、今回はforループによる遅延ではなく、タイマー割り込みを使って、Armlibが便利なところを 示すことにします。
arm/armlibを使ってみると同様に、armlibのサンプルにある
makefileをコピーし、以下の項目をセットします。
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は、サンプルのglobal.hをそのまま使います。
メインのファイルは、
blink.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;
}
この記事は、
皆様のご意見、ご希望をお待ちしております。