富士通

F²MC-16LXファミリーFAQ目次へ

FAQ

ツールについて

  1. 「RAM領域またはIO領域外への配置です」(INTVECT)のワーニングが出る。
  2. 「外部シンボルが定義されていません」のワーニングが出る。
  3. C言語の記述で//がコメントにならないですが、なぜですか?
  4. Cコンパイル時に、“E4062C:文法エラー「'/'の近辺です。」”といったエラーが発生しますが、原因は何ですか?
  5. ICE使用時はウォッチドッグが無効に設定されているようですが、ウォッチドッグを有効にするにはどうすればいいですか?
  6. リロケータブルファイル.rel とライブラリファイル.lib の違いは何ですか?
  7. リンカはどのように.libファイルと.relモジュールをリンクしますか? また、違いはありますか?
  8. .libモジュールと.absをリンクさせようとすると、以下のエラーが出力されるのは何故か? 【E4369L: Invalid module : conflict compile model】
  9. “メイク/ビルド後の自動ロード”の機能はどこで設定しますか?
  10. I/O領域、RAM領域のモニタリングが出来ないのですが...。
  11. モトローラSフォーマットのデータにてデータの空いている箇所にFFHデータを埋め込みたい。
  12. リンカの自動配置機能を用いて、上詰め(ベクタ領域側)の自動配置を行いたい。
  13. 構造体メンバーの配置において隙間を空けないように配置する方法は?
  14. 任意のRAM領域を最適化の対象外とさせたい時のVolatile型修飾子の記述方法は?
  15. 演算命令「MULU」、「DIVU」実行時、演算データが「0」に設定された場合の結果について教えてください。
  16. セクション配置形式のALIGNの意味は何ですか?
  17. Softuneにて出力可能なHEXデータは、何がありますか?
  18. Cコンパイル結果で出力される._LINEの意味は何ですか。
  19. MAPファイルのConfrol(S)に@-ro ROM=xxxx @-ra RAM=xxxの設定と後半の-ro _ROM_1=xxx -ra _RAM_1=xxxが重複しているが、問題ありませんか?
  20. セクションCODEサイズが64KB超えてしまい、【エラーメッセージ:*** E4363L: Exceeded maximum section size (CODE)エラー】が発生してしまうのですが...。
  21. dirおよびioセクションを使用する際、ソースのオペランドでアドレス規定子を記述せずに、アセンブラに判断させる方法は? 【アドレス規定子の記述例:mov ??S:label,#imm8】
  22. アセンブラソース及びCソースの両方からインクルードされるファイルを作成して使用していますが、このファイル中でアセンブラのマクロ記述を行うとコンパイラでエラーにされてしまいます。Cソース中でアセンブラを使用する方法を教えて下さい。
  23. Cプログラムの一部の関数をRAM上で実行したいのですが、RAM上で実行するコードをROMへ配置するための方法を教えてください。
  24. Cプログラムの一部の関数を、RAM上で実行したいのですが、ROMに配置されたコードをRAMに転送するための方法を教えて下さい。
  25. 変数シンボルを固定アドレスで宣言したいのですが、ソース記述の順番とまったく逆の順番で配置されてしまいます。どうしたらソース記述順に配置されますか?
  26. 擬似時計モード(タイムベースタイマモード)及び時計モードに遷移した場合、ポッド上のLEDはどうなりますか?
  27. ツールでのソフト評価時にメインルーチンにCallされた所でgarded access breakが掛かる。
  28. IOに値がうまく格納されない(特に100番地以降に配置されているIOの場合)。
  29. Softune V3にて“ POPW RW1,RW2”、“PUSHW RW1,RW2”がエラーになる。
  30. FW16.exeを、英語版のWindows XP環境上で実行すると、「Error103 wrong write file」と言う表示が直ぐに出てしまい実行できません。日本語版windows98上では問題ありませんが、英語版のWindowsではうまく動作しないのですか? (対象:FW16.EXE)
  31. 開発ツールをMB2141AからMB2141Bに変更し、RS-232Cケーブルを使用してモニタープログラムをダウンロードしようとしたが出来なかったのですが...。
  32. MB2147-01から追加されたトレースのタイムスタンプの単位は何ですか?
  33. HEXデータの空き領域を特定の値で埋めたい。
  34. インテルHEXデータの空き領域を特定の値で埋めたい。
  35. ソフトウェアシミュレータにて割込み動作の検証を行うと、実機と異なる動作をするのですがなぜですか?
  36. SOFTUNEの各ツールのバージョンの確認方法を教えて欲しい。
  37. 英語版のSOFTUNEが欲しいのですが。
  38. ツールでデバッカを起動する場合、メモリのエラーが出力されるのですが...。(対象:MB90590G他大容量メモリ品)
  39. MB90387S(1系統)を使用する際のPODのジャンパーピンの設定は? (対象:MB90385 series)
  40. ICEの電源投入時ポッド上のLEDのResetとVCCが点灯しResetが解除できません。
  41. デバッガを立ち上げ、リセット実行するとハードウェアエラーが発生する。(対象:MB90V470B)
  42. MB90V470Bにて、デバッガは正常に動作するのですがP2xの出力が動作しません。MB90V470L+変換基板の場合には、全て正常動作するのですが...。(対象:MB90V470B)
  43. MB2145-506を使用していますが、このツールで消費する電流を教えて下さい。

1. 「RAM領域またはIO領域外への配置です」(INTVECT)のワーニングが出る。

fccの#pragma intvectが出力するINTVECT(割込みベクタテーブル)のSectinon typeがDATAの為。ファイル中の#pragma指定(#pragma section INTVECT, attr=CONST)もしくは、オプション指定(-s INTVECT=INTVECT, CONST)でセクション属性を変更して下さい。

2. 「外部シンボルが定義されていません」のワーニングが出る。

I/Oレジスタ変数の定義を行います。Include FilesにC:¥Softune¥lib¥907¥include¥sampleに存在する~.cを、全てメンバーに追加します。

3. C言語の記述で//がコメントにならないのですが、なぜですか?

メニューから【プロジェクトの設定】を選択。その中の【Cコンパイラ】のカテゴリ【言語仕様】を選択し、C言語ソースで//以降をコメントとするのチェックボックスをチェックして下さい。

4. Cコンパイル時に、“E4062C:文法エラー「'/'の近辺です。」”といったエラーが発生しますが、原因は何ですか?

Cコンパイラの言語仕様設定の問題です。Softuneの「プロジェクト」-「プロジェクトの設定」-「Cコンパイラ」=「言語仕様」の「C言語ソースで//以降をコメントする」をチェック願います。

5. ICE使用時はウォッチドッグが無効に設定されているようですが、ウォッチドッグを有効にするにはどうすればいいですか?

デバック時のウォッチドッグの初期設定は無効になっています。ウォッチドッグを有効にするには、デバッカを起動し、メニューの【環境】-【デバック環境の設定】-【デバック環境】を選択し、<チップ>の中のウォッチドックを有効に設定して下さい。

6. リロケータブルファイル.rel とライブラリファイル.lib の違いは何ですか?

リロケータブル.relは、アドレス解決を行わないで複数のオブジェクトモジュールをリンクしたファイルです。リンカへの再入力が可能で、リンク処理で指定する入力ファイル数を少なくすることができます。
ライブラリ.lib は、複数のオブジェクトモジュールをまとめてあるファイルです。リロケータブルと異なり、個々のモジュールは独立して登録されています。他のプログラムでも使用するような汎用的なモジュールを登録したライブラリを作成しておくと、他のプログラムへモジュールの流用が簡単になります。ライブラリはオブジェクト単位で追加登録や削除、置換が可能で、モジュールに変更があった場合はそのモジュールのみを差し換えることができます。
一方、リロケータブル.relは内部のモジュールに変更が生じた場合、モジュールの差し換えは不可能となっています。

7. リンカはどのように.libファイルと.relモジュールをリンクしますか? また、違いはありますか?

リンカは、まずプロジェクトに登録されているオブジェクトファイル.objと.relの情報を取得します。モジュール情報が足りない場合、ライブラリファイルからモジュールを検索し、必要なモジュール情報を取り出します。.libファイルは必要なモジュールのみがリンクされますが、.relファイルはすべてのモジュールがリンクされます。

8. .libモジュールと.absをリンクさせようとすると、以下のエラーが出力されるのは何故か? 【E4369L: Invalid module : conflict compile model】

ライブラリファイル.libを生成したプロジェクトのコンパイルモデルと.absプロジェクトのコンパイルモデルが異なっています。ライブラリファイルのプロジェクトのコンパイルモデルはスモール、.absプロジェクトのコンパイルモデルはミディアムが設定されています。コンパイルモデルの指定をあわせてください。

9. “メイク/ビルド後の自動ロード”の機能はどこで設定しますか?

プロジェクト - 基本設定 - デバッグの項目にあります。

10. I/O領域、RAM領域のモニタリングが出来ないのですが...。

ミラー領域の設定が必要です。【環境」-「メモリマップ」- [ミラー追加]にてモニタリングする領域をミラー追加し、複写するを設定してください。

11. モトローラSフォーマットのデータにてデータの空いている箇所にFFHデータを埋め込みたい。

Sフォーマットアジャスタにより対応可能です。詳細に関しましては Sofutneリンケージキッドマニュアルにてご確認ください。

12. リンカの自動配置機能を用いて、上詰め(ベクタ領域側)の自動配置を行いたい。

自動配置機能では、上詰め(ベクタ領域側)に配置は行なえません。上詰めの配置を行いたい場合には、絶対セクション指定にてスタートアドレスを設定してください。

13. 構造体メンバーの配置において隙間を空けないように配置する方法は?

-packオプションを指定したときは、構造体/共用体のメンバーの配置において隙間を空けません。-Xpackは、-packを取り消します。デフォルトは、-Xpackが適用されます。

14. 任意のRAM領域を最適化の対象外とさせたい時のVolatile型修飾子の記述方法は?

  • ポインタを使用して記述を行っていない場合
    Volatile型修飾子をどの場所に記述しても、問題なし。
    記述例)volatile register unsigned int addrRAM;
  • ポインタを使用して記述を行っている場合
    1. ポインタ自身をvolatileとしたい場合は、ポインタの後ろにVolatile型修飾子を記述
      記述例)register unsigned int * volatile addrRAM
    2. ポインタが参照するメモリをvolatileとしたい場合は、ポインタの前方にVolatile型修飾子を記述
      記述例)volatile register unsigned int * addrRAM;

15. 演算命令「MULU」、「DIVU」実行時、演算データが「0」に設定された場合の結果について教えてください。

  • 「MULU」命令実行時->片方、又は両方の演算データが「0」の場合(2×0)、結果は「0」で問題ありません。
  • 「DIVU」命令実行時->除数が「0」の場合(例:2÷0)、結果は不定になります。被除数が「0」の場合(例:0÷2)、結果は「0」で問題ありません。

16. セクション配置形式のALIGNの意味は何ですか?

SECTIONの先頭アドレスの境界を設定します。ALIGNの設定値は2のべき乗のみとなります。設定例を以下に示します。

  • .SECTION AAA, DATA, ALIGN=4
    AAAはxxxxx00bアドレスを先頭アドレスとして配置
  • .SECTION BBB, DATA, ALIGN=8
    BBBはxxxx000bアドレスを先頭アドレスとして配置

17. Softuneにて出力可能なHEXデータは、何がありますか?

対応している出力ファイル形式は以下の通りです。

  • インテルHEX形式
    0~0xFFFF番地のデータ変換が対象
  • 拡張インテルHEX形式
    0~0xFFFFF番地のデータ変換が対象
  • モトローラSフォーマット形式
    0~0xFFFFFFFF番地のデータ変換が対象

18. Cコンパイル結果で出力される._LINEの意味は何ですか。

._LINE *1、*2はデバッグ情報です。*1:はファイル番号、*2はCソースの行番号を示します。ファイル番号は.lstファイルの._FILEにて確認できます。

19. MAPファイルのConfrol(S)に@-ro ROM=xxxx @-ra RAM=xxxの設定と後半の-ro _ROM_1=xxx -ra _RAM_1=xxxが重複しているが、問題ありませんか?

MAPファイルのConfrol(S)の後半の-ro _ROM_1=xxx -ra _RAM_1=xxxはリンカでCPU情報ファイルを元に自動的に出力しているものです。もし、リンカの設定でメモリマップが設定されなかった場合は、本内容が有効になります。また、その前に@-ro ROM=xxxx @-ra RAM=xxxで設定されている場合は、前に設定した内容が有効になります。なお、後半の-ro _ROM_1=xxx -ra _RAM_1=xxxの出力は、リンカの抑止オプション(-Xset_rora)により抑止できます。

20. セクションCODEサイズが64KB超えてしまい、【エラーメッセージ:*** E4363L: Exceeded maximum section size (CODE)エラー】が発生してしまうのですが...。

セクションCODEのサイズが64KBを超えてしまった場合、CソースファイルのセクションCODEの名前を分ける必要があります。定義領域(セクション)の名前の変更方法

例1 : セクション名を変更する
#pragma section CODE=prog1

例2 : セクション名を変更し、そのセクションの配置も指定する
#pragma section CODE=prog2, locate=0xFF0000

(注意) 定義領域(同一セクション)の名前は、1ファイルで1つです。定義領域(例えばCODE属性)の名前を複数定義する場合は、ファイルを分ける必要があります。

NG記述例:同一Cソースファイル内で、
#pragma section CODE=prog1
               ・
#pragma section CODE=prog2
               ・
と記述してください。

21. dirおよびioセクションを使用する際、ソースのオペランドでアドレス規定子を記述せずに、アセンブラに判断させる方法は? 【アドレス規定子の記述例:mov   S:label,#imm8】

現状のアセンブラではアドレッシング指定子を指定せずにダイレクト領域へアクセスすることはできません。

22. アセンブラソース及びCソースの両方からインクルードされるファイルを作成して使用していますが、このファイル中でアセンブラのマクロ記述を行うとコンパイラでエラーにされてしまいます。Cソース中でアセンブラを使用する方法を教えて下さい。

Cソースからアセンブラのマクロ定義を読み込む場合、下記の手順が必要です。

手順1. Cコンパイラのオプション文字列指定で下記制御コマンドを追加する。
  -Ta, -lc:¥softune (*c:softuneの部分は、port.hのある場所)

手順2. Cソース内のインクルードは、下記のように行う
  pragma asm
#include "PROT.H"
  mFRONT_power_ON
  pragma endasm

23. Cプログラムの一部の関数をRAM上で実行したいのですが、RAM上で実行するコードをROMへ配置するための方法を教えてください。

リンカのオプション指定で-scオプションが用意されております。

例 : まず、RAM上で実行したい関数に名前を付けます。
#pragma section FAR_CODE=new1

次に、リンカの-scオプション指定にて
-sc new1=0x1000、@new1=0xff1000
を指定します。

24. Cプログラムの一部の関数を、RAM上で実行したいのですが、ROMに配置されたコードをRAMに転送するための方法を教えて下さい。

ROM->RAMの転送プログラム

;------------------------------------
; Program ROM -> RAM
;------------------------------------
.global _RAM_new1
.global _ROM_new1

MOVN A, #0
MOV DTB, A
MOV A, #0xFF
MOV ADB, A
MOVW A, #SIZEOF(new1) ;; 転送サイズ
MOVW RW0, A
MOVW A, #_RAM_new1 ;; RAMアドレス
MOVW A, #_ROM_new1 ;; ROMアドレス
MOVS DTB, ADB

25. 変数シンボルを固定アドレスで宣言したいのですが、ソース記述の順番とまったく逆の順番で配置されてしまいます。どうしたらソース記述順に配置されますか?

静的変数のメモリ格納順をソース記述順にする(-verorder)オプションがあります。
設定方法は、【プロジェクトの設定】->【Cコンパイラ】->カテゴリ【言語仕様】で”□静的変数のメモリ格納順をソース記述順にする”という項目がありますので□内をチェックして下さい。

26. 擬似時計モード(タイムベースタイマモード)及び時計モードに遷移した場合、ポッド上のLEDはどうなりますか?

擬似時計モード(タイムベースタイマモード)及び時計モードに遷移した場合は、“STOP LED”が点灯します。擬似時計モードは、メイン、サブクロックの発振がされてますが、時計モードでは、メインクロックの発振は停止します。ストップモードは、メイン、サブ発振が停止しますので、発振状態を確認する必要があります。

27. ツールでのソフト評価時にメインルーチンにCallされた所でgarded access breakが掛かる。

メモリマップが実チップと異なっている事が考えられます。例えば、Mainルーチンコール時ではlink命令が実行され、スタック領域が実マップと異なる場合など考えられます。この場合は、start905*.asmをご使用の場合は、difinition stack area設定を適切な範囲に設定して下さい。

28. IOに値がうまく格納されない(特に100番地以降に配置されているIOの場合)。

100番地以降に配置されるIO領域のセクションの記述方法が異なります。100番地以降に配置されるIOのセクションタイプはDATAもしくはCOMMONに設定して下さい。また、100番地以降に配置されるIO領域のIO直接アドレッシング(例 MOV I:CANCT0,#020H)記述はしないで下さい。

29. Softune V3にて“POPW RW1,RW2”, “PUSHW RW1,RW2”がエラーになる。

SoftuneV1では左記記載で問題ないが、V3では “POPW(RW1,RW2)”、“PUSHW (RW1,RW2)”と括弧がいる。

30. FW16.exeを、英語版のWindows XP環境上で実行すると、「Error103 wrong write file」と言う表示が直ぐに出てしまい実行できません。日本語版windows98上では問題ありませんが、英語版のWindowsではうまく動作しないのですか? (対象:FW16.EXE)

現在、本ソフトの動作環境説明でも記載させて頂いておりますが、Window XPでの評価はしておりません。そのため、既に評価されている下記環境をご使用下さい。

推奨環境:
パソコン: FMV 6450TX2
CPU : pentium 450MHz
OS : Windows 95 OSR2.1以降、Windows 98 SE、Windows Me、Windows NT4.0 SP6以降、Windows 2000各日本語版、および英語版
メモリ: 192Mバイト
なお、English版は、動作確認されていますので、御社使用環境を教えていただければ幸いです。
なお、以前Dellもしくは、ダイナブックなどで動作異常が確認された事があります。

31. 開発ツールをMB2141AからMB2141Bに変更し、RS-232Cケーブルを使用してモニタープログラムをダウンロードしようとしたが出来なかったのですが...。

RS-232Cでの接続の場合、MB2141Aでは9pin-25pinストレートでしたが、MB2141Bでは9pin-9pinクロスに変更になりました。ご注意下さい。

32. MB2147-01から追加されたトレースのタイムスタンプの単位は何ですか?

MB2147-01から追加されたトレースのタイムスタンプの単位はnsになります。分解能は25nsになります。

33. HEXデータの空き領域を特定の値で埋めたい。

  1. メイク/ ビルドの際に、オブジェクトコンバータを起動する設定を行う。
    SoftuneV3の [プロジェクト]-[基本設定]にて“基本設定ウインド”を開く
    タブ“メイク/ビルド”で“必ずリンク”と“ロードモジュールコンバータを起動する”のチェックボックスを入れる。
  2. SoftuneV3の [プロジェクト]-[カスタマイズビルド]にて“カスタマイズビルド”ウインドを開きます。
  3. “カスタマイズビルド”ウインドの左の“ツリービュー”中の Converterの Afterをクリックして“カスタマイズビルド”ウインド右の各欄を設定してください。
    タイトル欄:任意名称
    実行ファイル名:[SoftuneV3インストールディレクトリ]¥bin¥M2ms.exe
    オプション:
    (例) アドレス0xff0000~0xffffffまでの空いているアドレスに0x00をパディングする。生成するファイル名はABSファイル名を継承し、拡張子をAHXにする。
    %xABS¥%A.mhx -ran 0xff0000,0xffffff -p 0x00
    実行時のディレクトリ
    %xABS
    その他
    “カスタマイズビルド”ウインドの...
    ・チェックボックスの“有効”にチェックを入れる。
    ・チェックボックスの“アウトプットウインドを使用する”
    にもチェックを入れる。

34. インテルHEXデータの空き領域を特定の値で埋めたい。

H2HS.exeを追加しました。

35. ソフトウェアシミュレータにて割込み動作の検証を行うと、実機と異なる動作をするのですがなぜですか?

ソフトウェアシミュレータでは、割込み動作の実機デバックはできません。指定した割込みベクタ番号にて、指定したタイミングで割り込みが発生します(リソースの割込み要因発生とはリンクしておりません)。

36. SOFTUNEの各ツールのバージョンの確認方法を教えて欲しい。

Workbenchのみのバージョン確認はHELPのバージョン情報で確認出来ます。
また、各ツールのバージョン情報は“Ctrl+Alt+Shift+A”で確認出来ます。

37. 英語版のSOFTUNEが欲しいのですが。

SOFTUNEは1枚のCDで日英の両方をサポートしています。日本版のWindows OS上にインストールすると日本語のSOFTUNE、英語版のWindows OS上にインストールすると英語版のSOFTUNEが立ち上がります。また、暫定的に日本版のWindows上で英語版のSOFTUNEを起動する事が出来ます。<方法>SOFTUNEのショートカットの【プロパティ】-【ショートカット】タグのリンク先Fs907s.exeの後ろに -@Eを記載し、設定を行ったショートカットから起動します。
例C : ¥Softune¥BIN¥Fs907s.exe -@E
但し、日本版OS上での動作の為、一部日本語の部分が残ってしまいます。

38. ツールでデバッカを起動する場合、メモリのエラーが出力されるのですが...。(対象:MB90590G他大容量メモリ品)

下記の2つの要因が考えられます。(回答者:Ko)

  1. ポッドがMB1245-506を使用している。(MB2145-507を使用願います。)
  2. デバッカのメモリマップの設定が実デバイスと合ってない可能性がある。

39. MB90387S(1系統)を使用する際のPODのジャンパーピンの設定は? (対象:MB90385 series)

<SW1>3と4はOFF,<S1>1と2はA-B設定にしてください。<SW1>のプローブケーブル側は接続されていないが不要な接続を断つ必要があります。

40. ICEの電源投入時ポッド上のLEDのResetとVCCが点灯しResetが解除できません。

エミュレータ初期化状態にて電源投入により発生します。(新規購入後、モニタローダを行わなかった場合)その他 1)エミュレータに"EML905N"をローダし506ポッドを使用した場合も同様の現象が発生 2)エミュレータに"EML905"をローダし507ポッドを使用した場合はVCCとEXEのLEDが点灯しデバッグ゙実行状態になります。

41. デバッガを立ち上げ、リセット実行するとハードウェアエラーが発生する。(対象:MB90V470B)

MB2145-507ポッドで、ツール電源使用時の設定になっていない事が考えられます。MB90V470Bはツール電源を使用して動作するタイプのエバチップですので、MB2145-507ポッド設定を確認してください。詳細はMB2145-507ポッドのハードウェアマニュアルをご参照願います。

42. MB90V470Bにて、デバッガは正常に動作するのですがP2xの出力が動作しません。MB90V470L+変換基板の場合には、全て正常動作するのですが...。(対象:MB90V470B)

MB90V470Bでは、3V単一電源品と2電源(3V-5V)品のチップ共通化を行なっています。Vcc5は、P2x、P3x、P4x、P7xのI/O駆動用電源(5V駆動可)となっておりますので、Vcc5の電源が供給されている事をご確認ください。以前の製品では、MB90V470L(3V単一電源品)、MB90V470H(2電源品)と専用チップを用意していましたので、MB90470Lでは全て電源共通になっています。

43. MB2145-506を使用していますが、このツールで消費する電流を教えて下さい。

通常動作中、約40mA程度の電流が流れます。また、EVAチップをご使用になられると思いますので、そのEVAチップの電流(数十mA)の電流消費も合わせて検討する必要があります(各ポート等で電流消費がある場合は、その電流も考慮が必要です)。