FrontPage

2009/05/25 からのアクセス回数 6554

ARMは、CPUコアは同じでも周辺IOの処理が各社まちまちなのが難点でした。

ARMlibは、安価に使えるLPC2000やAT91シリーズのCPUをターゲットに

を提供し、ARMの組み込み開発を容易にします。

armlib

AVRlibを出しているProcyonから、 Procyon ARMlib が出ています。

最初は、LPC2000をベースに開発していたみたいですが、atmelのat91シリーズ、aduc7000も 不完全ながら、サポートしているみたいです。

SAM7S256でarmlibを使う

ARMlibのサンプルでは、SAM7S256用のサンプルがないので、この例題はAT91シリーズの ユーザによい例になると思います。

ARMlibのインストール

Procyon ARMlib のページにアクセスし、

これで、インストール完了です。 詳しくは、 Installing ARMlib Manually を見てください。

makefileの変更

サンプルから、filemakefile をコピーし、以下の項目を変更します。

makefileの設定例を抜粋します。

	TRG	= main
	ARMLIB = $(HOME)/local/arm/armlib
	ARCH = at91
	ARMLIB_ARCH_SRC = processor.c uart.c 
	ARMLIB_SRC = rprintf.c

Armlibを使った最初の、例題は、RS232C経由でターミナルにHello worldを表示するものです。 使用する評価ボードはOlimexの AT91SAM7S256ボード です。

global.hを設定

次に、必要なファイルはfileglobal.hです。

最初はどうやって設定すればよいか分かりませんでした。 AT91SAM7S256のサンプルプログラムのコメントを頼りに、以下のように設定しました。

#ifndef GLOBAL_H
#define GLOBAL_H

// global ARMLIB defines
#include "armlibdefs.h"
// global ARMLIB types definitions
#include "armlibtypes.h"

// project/system dependent defines
// 18.432MHz Ex-Osc.
// PLL = (18.432/OSC_DIV*(PLL_MUL+1) => 95.8464MHz
// F_CPU = PLL/2 =>47.9232MHz
#define F_CPU	47923200
#define	OSC_DIV	5
#define	PLL_MUL	25

#endif

main.c

最後にfilemain.cについて説明します。

#include "global.h"			// include our global project settings
#include "processor.h"		// include processor initialization functions
#include "uart.h"			// include uart library functions
#include "rprintf.h"		// include printf library functions


int main(void)
{
	// initialize processor
	processorInit();
	// initialize uarts
	uart0Init(UART_BAUD(9600), UART_8N1);
	rprintfInit(uart0SendByte);
	
	// run the test
	rprintf("Hello World\n");

	return 0;
}

プログラムの書き込みと実行

arm/LED点灯の作成とデバッグと同様に作成したプログラムをROMに書き込みます。 ROMへの書き込みには、script.ocdとopenocd-rom.cfgを使用します。

ターミナルで、プロジェクトディレクトリに移動した後、

$ make
$ openocd -f openocd-rom.cfg 

書き込みが完了したら、

$ jerm

hello world

と出たら、成功です。

Armlibを使うととても簡単にRS232Cを使って端末ソフトと通信できます。 また、使用するARMのアーキテクチャをLPC等他のCPUに変えても、プログラムの変更は少なくてすみます。

コメント

この記事は、

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

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


(Input image string)

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