タイマVのCMFAビットにアクセスしようとするとエラーが出ます。
ユーザーズマニュアル(C言語版)のsample_01がビルドできません。
無償評価版コンパイラでアセンブラのプロジェクトが作成できません。
今まで問題なかったのですが,無償評価版コンパイラでリンクエラーが発生してオブジェクトが作成できなくなりました。
HEWのアセンブラでプログラミングすると割り込みがかからないという現象が生じます。これは,自動生成される‘vecttbl.src’の記述に間違いがあるためです。
本来ベクタテーブルはワードサイズで定義します。しかし,自動生成される‘vecttbl.src’はロングワードサイズで定義されています。そのため,割り込みプログラムがコールされません。
修正方法は,‘vecttbl.src’の‘data.l’を‘data.w’に置き換えるだけです。
追伸:最新版の無償版HEWでは修正された模様です。
HEWのC言語でプログラミングするとタイマB1の割り込み間隔が設定どおりにならないという現象が生じます。これは,自動生成される‘iodefine.h’(周辺レジスタの構造体定義ファイル)に間違いがあるためです。
‘P_INT’の‘IRR1’のビットフィールド‘IRRI0’は本来‘1’ですが‘3’になっています。このため,次にくる‘IRR2’の位置がおかしくなり,割り込み要求フラグ‘IRRTB1’をクリアすることができなくなります。そうすると,ずっと割り込みがかかったままになり,割り込みプログラムからリターンしても,すぐにタイマB1の割り込みがかかってしまいます。
修正方法は,‘iodefine.h’の‘P_INT’の‘IRR1’のビットフィールド‘IRRI0’を‘1’に変更します。
HEWのC言語で,タイマVのタイマコントロール/ステータスレジスタV(TCSRV)のコンペアマッチフラグA(CMFA)にアクセスするとき,次のようにします。
P_TMRV.TCSRV.BIT.CMFA = 0;
しかし,これではエラーが出ます。これは,自動生成される‘iodefine.h’(周辺レジスタの構造体定義ファイル)に間違いがあるためです。
修正方法は,‘iodefine.h’の‘st_tmrv’構造体の‘CFMA’を‘CMFA’に変更します。
E7に付属している無償版のHEWでビルドすると,ユーザーズマニュアルのsample_01がビルドできないという現象が生じます。これは,ルネサステクノロジーのサイトからダウンロードできる無償版HEWのバージョンが‘2’に対して,E7に付属しているHEWのバージョンが‘3’のためです。
HEWのバージョンが‘3’になったとき,プロジェクトを最初に作成するときに自動生成される‘iodefine.h’の内容が変更されました。sample_01ではIOポートを使用しているのですが,HEWのバージョン‘2’では‘P_PORT’と定義されていた部分がバージョン‘3’では‘IO’と定義されています。そのため,ユーザーズマニュアルどおりにソースを入力すると‘P_PORT’が見つからずにエラーになってしまいます。
バージョン‘3’でビルドできるようにしたソースリストは次のとおりです。なお,‘iodefine.h’は大幅に変更されていますので一度確認されることをお勧めいたします。
/***********************************************************************/
/*
*/
/* FILE
:samp_01.c
*/
/* DATE :Wed, Dec 01, 2004
*/
/* DESCRIPTION :Main Program
*/
/* CPU TYPE :H8/3687
*/
/*
*/
/* This file is programed by TOYO-LINX Co.,Ltd / yKikuchi
*/
/*
*/
/***********************************************************************/
/************************************************************************
インクルードファイル
************************************************************************/
#include <machine.h>
#include "iodefine.h"
/************************************************************************
スタティック変数の定義
************************************************************************/
int a = 32;
int b = 53;
int c;
/************************************************************************
メインプログラム
************************************************************************/
void main(void)
{
IO.PCR5 = 0xff;
while(1){
c = a + b;
IO.PDR5.BYTE = c;
}
}
2005年4月現在,無償版コンパイラのダウンロード先がなくなりました。そのかわり無償評価版コンパイラがダウンロードできます。今まではHEW2がベースになっていましたが,無償評価版コンパイラではHEW4がベースになっており,実質的に大幅機能アップになっています。
無償評価版コンパイラは,はじめてコンパイルしたときから60日間は製品版と同等の機能と性能を試用することができます。61日目以降はリンクサイズが64Kバイトまでに制限されます。しかし,TK-3687/TK-3687miniで採用しているH8/3687はもともとアクセスできるメモリサイズが64Kバイトまでなので,この制限は関係ありません。また,無償評価版コンパイラで製品の開発は許可されていないのですが,H8/300H Tinyシリーズでは許可されています。
詳細については下記の資料をご覧下さい。
無償評価版コンパイラ および,アセンブラプロジェクトワークスペース作成について(note_001.pdf/2005-04-14)
無償評価版コンパイラでアセンブラのプロジェクトを作成しようとすると以下のメッセージが表示されアセンブラプロジェクトワークススペースを作成することができません。
メッセージタイトル:hprojgen
メッセージ内容:Internal Error. Project Generator failed to run.
対策はルネサステクノロジが公開しているデバイスアップデータを使用することです。詳細については下記の資料をご覧下さい。
無償評価版コンパイラ および,アセンブラプロジェクトワークスペース作成について(note_001.pdf/2005-04-14)
2005年3月23日から無償評価版コンパイラがダウンロードできるようになったのですが,このバージョンは最初のコンパイルから61日以降になるとリンクエラーが発生してオブジェクトが作成できません。無償評価版の仕様では61日以降はリンクサイズが64KB以下になるという制限が発生するのみでリンクそのものは可能ということでしたから,これは無償評価版コンパイラのバグです。
該当製品:H8SX,H8S,H8ファミリ用 C/C++コンパイラパッケージ無償評価版 V.6.01 Release 00
エラー内容:「L3440(F) Software license not available」
改修した無償評価版コンパイラが2005年6月7日以降公開される予定です。新しい無償評価版コンパイラをダウンロードしてください。今まで古いタイプの無償評価版コンパイラを使用していた方は,Windowsの「アプリケーションの追加と削除」から無償評価版コンパイラを削除したあとで,新しい無償評価版コンパイラをインストールしてください。
Copyright (c) 2000-2024 ToyoLinx Co.,Ltd.