====== e2studio設定メモ ====== いくつかの設定をする必要がある。 ===== 重要な情報 ===== e2studioでC++プロジェクトを最初に作るとマイコン用の内部ヘッダファイル等が生成されないため、一度Cプロジェクトをダミーで 作成すること ===== 設定項目 ===== e2studioのバージョンは5.4.0を想定(6.3.0で試したがうまくいかなかった) * マイコンの型番を設定 R5F571MLCDFP * ツールチェインバージョンの設定 * 最適化レベルの設定 * スタックサイズの変更 * コンパイラオプションの追加 -std=c++11 * インクルードパスの設定 * reset_program.asmファイルの編集 スーパーバイザーモードで常に動作するように変更 * stdを使ったときのエラー抑制 ==== ツールチェインバージョンの設定 ==== ちょっと古いが 4.8.0.201602 が安定して使えている。 どのバージョンか忘れたが、これよりさらに古いバージョンだとマイナス演算の結果が正しく計算できないバグがある。 {{:pasted:20180612-221505.png?600|}} ==== 最適化レベルの設定 ==== 現状結構最適化は利かせて動かしている。 通常、最適化を利かせることで動かなくなることが多いが、今回は最適化を切ってしまうと、 逆に動かなくなるのでちょっと困っている。 {{:pasted:20180612-232506.png?600}} ==== スタックサイズの変更 ==== * .text プログラムの実行コードROM領域 * .data 変数の初期値 ROM領域 * .bss 未初期化のデータを格納する RAM領域 * .rodata 文字列定数やconstがついた変数を格納する * .istack 割り込みスタック * .ustack ユーザースタック 0x100 = 256byte, 0x1000 = 4096byte {{:pasted:20180613-000831.png?600|}} ==== コンパイラオプションの追加 ==== C++の新しい機能が使いたいので、コンパイラオプションに以下を追加。 {{:pasted:20180613-000514.png?600|}} ==== reset_program.asmファイルの編集 ==== 途中のスーパーバイザーモードからユーザーモードへの移行部分をコメントアウトする。 これは、ツールチェインをRenesas GCC for RXに設定した際、多重割込みを許可するために必要な手順。 ちなみに、多重割込み許可のためには次も必要 割り込み関数の先頭で以下を実行 __builtin_rx_setpsw('I'); 参考url https://gcc-renesas.com/rx-download-toolchains/ /* change PSW PM to user-mode */ //変更しているユーザーモードへは以降しない // MVFC PSW,R1 // OR #00100000h,R1 // PUSH.L R1 // MVFC PC,R1 // ADD #10,R1 // PUSH.L R1 // RTE // NOP // NOP #ifdef CPPAPP mov #__rx_init,r7 jsr r7 #endif ==== インクルードパスの設定 ==== 自分で作ったディレクトリのパスを設定する。 {{:pasted:20180613-001739.png}} ==== stdを使ったときのエラー抑制 ==== {{:pasted:20180612-235741.png}} ==== 行番号横の無駄なスペースを消す方法 ==== 行番号あたりで右クリックをして、Source Addressを表示をOffにする。 ==== 適当なスクショ ==== {{:pasted:20180612-235934.png}} {{:pasted:20180613-000116.png}} {{:pasted:20180613-000128.png}} {{:pasted:20180613-000141.png}}