アットウィキロゴ

TOPPERS(カスタマイズ)

TOPPERSのサンプルプログラムをターゲットに合わせてカスタマイズしてみる。


ターゲットについて

  • マイコンはSH7149を使用。
  • ROM、RAMはマイコン内蔵のものを使用。
  • クロック設定は、I : B : P = 80 : 40 : 40 [MHz]

開発コードネームは「KOKUBUNJI」。
コードネームをつけると、なんだかカッコよいような気がする。
そういえば、昔の拙者の上司は焼肉が大好きで、
コードネームを「ユッケ」や「ハラミ」にしていたなぁ。


まずはコピペする。

jsp/config/sh2ディレクトリにあるapsh2f6a以下をコピーして、
「kokubunji」ディレクトリを作成する。
% cd jsp/config/sh2
% cp -r apsh2f6a kokubunji
あと、「apsh2f6a.h」を「kokubunji.h」にリネームする。
こいつをベースにカスタマイズしていく。


各種ファイルの修正

kokubunjiディレクトリ内の各ファイルをターゲットに合わせて修正。

hw_serial.h

#include "sh7149sci.h"

Makefile.config

まずSH7145になってるところをSH7149に変更。
CDEFS := $(CDEFS) -DSH7149

KERNEL_COBJS := $(KERNEL_COBJS) sys_config.o sh7149sci.o

ROM、RAMのアドレスを変更する。
# ベクタテーブルの後ろ
    TEXT_START_ADDRESS=0x00000400
# RAM領域の先頭アドレス(CS2)
    DATA_START_ADDRESS=0xFFFF9000



SCIのドライバ

標準で添付されているsh7145用のSCIドライバを改造してSH7149用を作る。

ヘッダの修正

sh7145sci.hをコピーしてsh7149sci.hを作る。
SH7149のSCIはSH7145とほとんど同じだが、レジスタのアドレスが異なる。
「コントロールレジスタのアドレスのオフセット」のところを下記のように修正。
#define SCI_SCR    0x4
#define SCI_SSR    0x8
#define SCI_BRR    0x2
#define SCI_SMR    0x0
#define SCI_TDR    0x6
#define SCI_RDR    0xA
#define SCI_SDCR   0xC

あと、周辺クロックがSH7145と違うので、BRRの設定を変更しておく。
#define SMR_CKS    0x0			/*  分周比          */
#define BRR9600    129			/*  9600 ビットレート    */
#define BRR19200   64			/*  19200 ビットレート    */
#define BRR38400   32			/*  38400 ビットレート    */

コードの修正

sh7145sci.cをコピーしてsh7149sci.cを作る。
ここでは、SCIのベースアドレスを修正する。
const SIOPINIB siopinib_table[TNUM_PORT] = {
	{0xffffc000, BRR9600, 0x0, 6}, /* SCI0 */
}



CMTのドライバ

sh7145cmt.hをコピーしてsh7149cmt.hを作る。
クロック周波数を変更。Pφ = 40 [MHz]を8分周するので5,000 [kHz]となる。
#define TIMER_CLOCK     5000

レジスタのアドレスを変更する。
#define CMSTR    (VH *)0xffffce00
#define CMCSR_0  (VH *)0xffffce02
#define CMCNT_0  (VH *)0xffffce04
#define CMCOR_0  (VH *)0xffffce06
最終更新:2008年12月28日 19:19
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。