2009/06/04 からのアクセス回数 6702
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; }
この記事は、
皆様のご意見、ご希望をお待ちしております。