プロジェクトはターゲットファイルを構築するためのCソースファイル、アセンブラソース、リンカスクリプト、makefileを記述するための各種設定、プロジェクト固有のライブラリ、使用するGNUTOOLの設定などを含むディレクトリ全体を意味します。
JDEのメインウィンドウ左のツリー表示はプロジェクトツリーです、プロジェクトツリーは次のような構成となっています
1. CPUタイプインポートで読み込まれる定義ファイルがここにリストアップされます
これらのファイルは標準的な構成としてそのまま使うことが出来ます。
目的に合わせてカスタマイズすることも可能です、
※ファイルをカスタマイズした時はCPUタイプインポートで上書きしないよう注意してください。2. プロジェクトに追加したソースファイルです、
ソースファイルの場所はどのディレクトリにあっても構いません、 プロジェクトパスを起点とした相対パスで表示されるディレクトリ毎に分けて表示されます。
プロジェクト全体を保存したりコピーするために単一ディレクトリの下に全てのソースファイルやライブラリを置いておくことを推奨します。
ソースファイルとして認識されるファイルは.S .c .cpp .asm の拡張子で、プロジェクト>ファイルの追加メニューでプロジェクトに追加します。
拡張子.hのヘッダファイルは「ヘッダファイルの検索」で自動的にプロジェクトツリーに追加され「検索結果の削除」でプロジェクトツリーから除くことができます。3.青色で表示されるディレクトリはインクルードパスです
このパスは構築時GCCのインクルードパスオプションとなります。
プロジェクト>インクルードパスの追加 メニューでプロジェクトに追加します。
4.これらのディレクトリには「ヘッダファイルの検索」で見つかったヘッダファイルが入っています
ソースから参照していれば、GNUTOOL中のヘッダファイルも表示されます。
※プロジェクト外のヘッダファイルを変更すると他のプロジェクトに影響を与えることがあるので注意してください。
1.メニュー > ファイル > 新規プロジェクト をクリックします。
2.プロジェクト用の作業ディレクトリを選んでプロジェクトを保存します。
プロジェクトソースは同じディレクトリに置くのが原則です、各プロジェクト用に独立したディレクトリを用意して下さい。
プロジェクト名を入力して保存ボタンをクリックします、プロジェクト名の拡張子は省略できます。
3.新規プロジェクトが作成されプロジェクトツリーに新しいプロジェクトが表示されます、続いてプロジェクトにソースを追加します。
プロジェクトに項目を追加する
4.プロジェクトツリーの上でマウスを右クリックし、表示されたポップアップメニューでプロジェクトに追加をクリックします。
5.ソースファイルの名前を入力して開くをクリックします。ソースファイルの拡張子は省略できません。
プロジェクトにソースファイルが追加されブランクのエディタウィンドウが開きます。
あとは必要に応じて同じ手順でソースファイルを追加します。
手順
1.エクスプローラを使ってディレクトリを丸ごとコピーし、新規プロジェクトのテンプレートとして用意します。
2.コピーしたディレクトリのプロジェクトを開きます。
3.プロジェクトの名前を変えて同じディレクトリに保存します。
4.必要に応じてプロジェクトにソースファイルの追加と削除をおこないます。
※プロジェクトの基本設定は プロジェクト > 基本設定 の頁でおこないます。

生成されるオブジェクトファイルの名称です、任意の名前に変更することが出来ます。
プロジェクト構築に使うコンパイラ名です、ツールパスについてを参照して下さい
チェックを入れると構築したターゲットファイルをデバッガでトレースすることが出来るようになります、デバッグ情報が含まれるためターゲットファイルのサイズは大きくなります。
ROM化ボタンクリック時に呼び出すFlash書き込みのためのツールを選択します。
JTW32 : JDE付属ターミナルソフトです、モニタを使ってプログラムを書き込むときに使います
コマンドライン : OPENOCDなどの外部のコマンドラインツールを使ってプログラムを書き込みます。
記述例 [openocd-ftd2xx.exe -f myJTAG_Flash.cfg] OPENOCDを呼び出してFlashへプログラムを書き込みます
外部ツール : ルネサスFDTなどのGUIツール起動コマンドを記述します、関連付けファイルを記述することもできます。
記述例 [%PROJECTPATH%config.w4f] FDTに関連づけされたprojectpath\config.w4fを開きます
OOCD-JTAGを使ってinsight(GDB)とCPUボード間で通信しデバッグをおこなうためのOpenOCD起動コマンドを記述します
記述例 [openocd-ftd2xx.exe -f myJTAG_Debug.cfg]
myJTAG_Debug.cfg はプロジェクトディレクトリに置いたconfigファイルです。
プロジェクトパスを表示します、ここでは変更できません。
構築に使うGNUTOOLの場所を指定するツールパスを表示します、ツールパスについてを参照して下さい。
CPUタイプはハードウェアに対応する環境設定ファイル群を選択します、2.ツール名はこの設定に伴い設定されます。
CPUタイプを選択するには8−1CPUタイプインポートボタンをクリックして下さい。
起動方法によるメモリ配置の選択やCPUの使い方による選択をここでおこないます。
(構成の例)
ブート書込みプログラム用の構成です。
CPUの内蔵RAMにプログラム・データの全てを入れる構成です。
ROMモニタなどリセット起動で直接立ち上がるプログラム用の構成です。
プログラムをリセットアドレスから配置し、割り込みベクタもROMに用意します。
モニタでダウンロードし、モニタから呼び出して立ち上がるプログラム用の構成です。
モニタが呼び出せる領域にプログラムを配置し、割り込みベクタなどはROMから引き継いで配置します。
※プロジェクトの拡張設定は プロジェクト > 拡張設定 の頁でおこないます。

実行可能プログラムを作成するには実行可能プログラムイメージを選択しておきます。
アセンブラソース・マクロ展開済みソースはデバッグ等でコンパイラの出力がどうなっているかを詳しく調べる場合に選択します。
実行可能プログラム以外を選択したときは実行できるプログラムは生成されません。
プログラムの最適化レベルを指定します。
同じソースファイルでも最適化のレベルによって動作しない場合もありますので最適化レベルを上げるときは注意して下さい。
この欄にチェックするとコンパイラは出力ファイルにデバッグシンボルを含めます。
ファイルサイズは大きくなりますがgdbやGUI版デバッガinsightでのデバッグが可能となります。
ここに記述したオプションはコンパイラへのコマンドラインオプションに追加されます。
makefile.tp に記述されたマクロ$(CC)、$(CP)のどちらをコンパイラとして使うかの選択です。
※C++コンパイラを使うにはツールとしてg++がインストールされていてmakefile.tp に下記の記述が必要です。
CP = $(TOOL_PREFIX)g++
リンク時にマップファイルを出力するよう指定します。
マップファイル出力の有無は生成したプログラムのサイズには影響しません、また必要なメモリサイズを確認するためにマップファイルの参照が必要になりますのでこの欄にはチェックを入れておくことを推奨します。
ここに記述したオプションはリンカへのコマンドラインオプションに追加されます。
メニュー > ファイル > プロジェクトを開く を選択して既存のプロジェクトを開きます。

ソースファイルリスト、ターゲットプログラム名、CPUタイプ、構成、通信パラメータがプロジェクトに保存されます。
プロジェクトの保存と読み出しで異なるターゲットCPUやハードウェア構成を含む開発を管理できます。

再構築は全てのソースをコンパイルしてリンクしフォーマットを転送用mot形式のファイルに変換します。
メインウィンドウ下にコンパイルメッセージが表示されます、これはmakeが出力するメッセージです。

構築が正常に終わると「コンパイルとリンクが終わりました」と表示されます。
出力されたファイルを確認するには例えば mon_H8S2212A.map をダブルクリックして下さい。エディタウィンドウにファイルを開くことができます。
コンパイルエラーがあると次のようにエラーメッセージが表示され構築が中断します。

エラーのある行をダブルクリックするとエディタでエラーのある行へジャンプしますので、エラーを修正してから再度構築して下さい。
エラーメッセージはgccの出力です、メッセージを注意深く読んで下さいエラーを修正する鍵はここにあります。

ときにはこのようにリンカからエラーが表示されることがあります。
このエラーはブートローダの構成を使ってブートローダ以外のプログラムを構築しようとして発生したものです。
この場合もまずエラーメッセージを注意深く観察して下さい、これは.text1というセクションが使われているのにリンカスクリプトで定義されていないという意味です。
いきなりこのようなわかりにくいエラーの意味を理解しようとする必要はありません、最初はこの類のエラーが出力されたらプロジェクトの基本設定が間違っているのではないかと疑うと覚えて下さい。
H8、SH2のFlash内蔵シリーズCPUはあらかじめ用意されたプロトコルを使ってシリアルポートやUSBポートからFlashへの書込をおこなうブート書込モードを持っています。
ブート書込とはブート書込モードを利用してアプリケーションプログラムを内蔵Flashに書き込むことです。
ブート書込ではまずCPUの内蔵RAMへブートローダを転送し、次にそのブートローダでアプリケーションプログラムの転送と書込をおこないます。
USB経由でブート書込が出来るのはそのモードをサポートしているCPUのみです。
※ JDEVer5.0からはメーカ標準ツールでブート書き込みをおこなうのを標準としました、これはUSBデバイスドライバがメーカ製ツールとJDEのブート書き込みツールで競合するという問題を避けるためとルネサスを含め全てのメーカがフリーのブート書き込みツールをするようになったためです。
各ツールの使い方については次のリンクを参照して下さい
AT91SAMシリーズ用ブート書き込みツールSAM-BAの使い方
STM32F103へのブート書き込み方法
ルネサス製CPU用ブート書き込みツールFDTの使い方
1.内蔵Flashの全てをアプリケーションで使えます。
2.リセットスタートで実行するプログラムを書き込めます。
ブート書き込みのデメリット1.ブートローダ転送とアプリケーションの転送が必要なためシリアルポート経由の書き込みでは転送・書き込み時間が長くなります。
ただしUSB経由のブート書込の場合、転送・書込は高速です。
2.アプリケーションを転送して実行する毎にモード設定のジャンパ抜き差しが必要です。
ブートローダはCPUの内蔵RAMに収まるようなコンパクトサイズのブート書込専用プログラムです。
基本設定の構成でブートローダを選択してプログラムを構築します。
JDEでブート書込を実行するためには、構築済みのブートローダをブート書込ユーティリティ bootwrite.exe と同じディレクトリにおきます。
ブート書込をサポートしているCPUについてはブートローダがあらかじめ用意してあります。
ブート書込は以下の手順で実行します。
1.CPUとPCをシリアルケーブル又はUSBケーブルで接続します。
2.CPUの端子をブート書込モードにしてリセットをかけます。
3.JDEからブート書込プログラムを起動します。
ブート書込の起動にはこのボタンをクリックします。
4.JDEから起動したときはそのまま書き込みをクリックすればOKです。

5.プログラムの転送を終了しましたというメッセージが表示されたらブート書き込み完了です。

※ブート書込プログラムは次の2段階の手順でアプリケーションプログラムを書き込みます。
(1)あらかじめ用意してあるブートローダをCPUの内蔵RAMへ転送する。
(2)RAM上のブート書込プログラムを使ってアプリケーションプログラムを転送しFlashROMへ書き込む。
ROMモニタはアプリケーションプログラムを転送してFlashROMに書込み、実行させるためのコンパクトなプログラムです。
ROMモニタを書き込んだボードをリセットするとまずROMモニタが起動し、ROMモニタを使ってアプリケーションプログラムを書き込んだり実行したりします。
1.ハードウェアの初期化、USBサポートルーチンを書かなくても動作するアプリケーションプログラムを簡単に記述できます。
2.システムコールのサポートでライブラリの printf 関数がそのまま使えます。
3.ブート書込に較べて転送・書込が高速です(特にシリアルポートを使う場合)。
4.起動時にプログラムイメージのCRCチェックをおこなうので、信頼性が向上します。
デメリット1.モニタ用のROM領域とワークエリアが必要でアプリケーション用の領域が少なくなります。
ブート書込は以下の手順で実行します。
1.CPUとPCをシリアルケーブル又はUSBケーブルで接続します。
2.通信プログラムを起動してモニタの動作を確認します。
Enterキーを数回たたくとモニタからプロンプトがかえってきます。
モニタが応答しないときはケーブルの接続、ボードの電源などを確認して下さい。

3.JDEから通信プログラムを呼び出して書込みをおこないます。
既に通信プログラムが起動していればそのプログラムを使って自動的に転送と書込を開始します。
転送とROM化にはこのボタンをクリックします。
4.プログラムの転送と書込が終了したらアプリケーションプログラムが起動します。

5.書込済みのプログラムを起動するには次の2つの方法があります。
A.モニタからRUNコマンドを使って起動する。
B.ボード上のジャンパを切り替えてリセットスタート時に自動的にアプリケーションが立ち上がるようにする。
キーマップを設定するには メニュー > 設定 > エディタ設定 で設定ウィンドウを開きます

ドロップダウンで設定済みのキーマップを選択することができます。

既存のキーマップを編集するには 修正 をクリックします。
キーマップを保存するときに別の名前を指定すれば既存のキーマップを変更して新しいキーマップをつくることもできます。

追加、編集、削除を使ってキーマップを編集します。
リセットはキーマップをクリアしWindows準拠にします。

追加、編集 をクリックすると下のWindowが開きます。
Commandを選択し、対応するKeystrokeを入力してOKをクリックします。
Commandをひとつのキーストローク(例:Ctrl+C)を割り当てるときは上の段だけを指定します。
2つのキーストローク(例:Ctrl+K,Ctrl+B)を割り当てるときは上下の段に入力します。
KeyStrokeを入力するには入力欄をクリックしてから使いたいキーを一度押します、Ctrl+.. などと入力する必要はありません。

組込エディタの代わりに使い慣れた外部エディタを登録して使うことができます。
下の例はサクラエディタの設定例です。

検索ウィンドウでグローバル検索を選択するとプロジェクトに含まれる全てのソースとヘッダを対象に文字列を検索します。

全てのソースをマクロ展開して参照しているヘッダファイルをソースツリーに追加します。そうするとグローバル検索で参照しているヘッダファイルをもれなく検索できるようになります。
![]()