H8プログラミングメモ

by K.I
date 2006/02/14

Index


概要


[top]

開発環境

HEW

GCC Developer Lite

Eclipse(CDT)

http://hp.vector.co.jp/authors/VA022386/

その他


[top]

H8のモジュールの動作

実行ステート

リセット

動作モード

スリープ

IRQ割込み(I/O端子割込み)

ITU割込み(タイマ割込み)

A/D


1乗除演算が一番時間が掛かるようだ。
2ほぼ同等と思われ

[top]

H8コンパイラに関するメモ

byte 値の範囲
char 1 -128〜127
signed char 1 -128〜127
unsigned char 1 0〜255
short 2 -32768〜32767
unsigned short 2 0〜65535
int 2 -32768〜32767
unsigned int 2 0〜65535
long 4 -2147483648〜2147483647
unsigned long 4 0〜4294967295

セクション

セクション名 内容 メモリ種別 備考
P プログラム(Program) ROM
C 定数(Const) ROM
D,R 初期値を持つデータ(Data) ROM,RAM 初期値をROM(D)に格納、初期化でRAM(R)に転送
B 初期値を持たないデータ RAM
C$DSEC Dsectionのアドレス ROM Dstart,Dend,Rstartのアドレス
C$BSEC Bsectionのアドレス ROM Bstart,Bendのアドレス
S スタック RAM

セクションの構成を変更

アドレス セクションのカテゴリ
0x00000400 PResetPRG
PIntPRG
0x00000800 P
C
C$DSEC
C$BSEC
D
0x000FEF10 B
R
0x000FFD00 S

メモリマップ

種別 用途
ROM 割込みベクタ
プログラム領域(P)
定数領域(C)
Dsecのアドレス(C$DSEC)
Bsecのアドレス(C$BSEC)
初期化データ領域(D)
RAM 未初期化データ領域(B)
初期化データ領域(R)
スタック領域(S)
フラッシュROM: 00000〜1FFFF(割込みベクタ:00000〜000FF) 内蔵RAM: FEF10〜FFF0F I/Oポート: FFF1C〜FFFFF
[top]

動作モード

モード設定 MD2 MD1 MD0 内蔵ROM 動作
モード1 0 0 1 無効 ポート1,2,5がアドレスバス(最大1Mbyte)、8bitバス
モード2 0 0 1 無効 ポート1,2,5がアドレスバス(最大1Mbyte)、16bitバス
モード3 0 0 1 無効 ポート1,2,5,Aがアドレスバス(最大16Mbyte)、8bitバス
モード4 0 0 1 無効 ポート1,2,5,Aがアドレスバス(最大16Mbyte)、16bitバス
モード5 0 0 1 有効 ポート1,2,5がアドレスバス(最大1Mbyte)、8bitバス
モード6 0 0 1 有効 ポート1,2,5,Aがアドレスバス(最大16Mbyte)、8bitバス
モード7 0 0 1 有効 内蔵メモリのみ使用(最大1Mbyte)、全てのポート使用可

オンボードプログラミングモード

メモリ割付の指定方法

データ領域の初期化方法

組込み関数

組込み関数 機能 パラメータ
set_imask_ccr ccrの割込みマスクの設定 0: 割込み可とする
1: 割込み不可とする
sleep sleep状態に移行 なし

volatile宣言について

割込み許可


[top]

#pragma

エントリ関数

割込み記述

スタックの設定

構造体の境界設定


[top]

資料

Cコンパイラ関連

参考リンク



comments powered by Disqus