週末副業記

土日は副業エンジニアのブログです。副業に関することを投稿します。

MT-RL78 コード生成した結果


初期設定

初期設定は下記の通りです。この設定で、コード生成(G)を押下するとコードが生成されます。

コード生成タブ

 

端子割り当て設定

PIOR00〜PIOR04ビット = 0
PIOR10〜PIOR13ビット = 0

クロック設定

 動作モード設定 : 高速メイン・モード \leq V_{DD} \leq 5.5
 EVDD設定 : 4.0(V) \leq EVDD \leq 5.5(V)
 メインシステムクロック(fMAIN)設定 : 高速オンチップオシレータクロック(fIH)
 高速オンチップオシレータクロック設定 : 周波数 = 64MHz

オンチップデバッグ設定

・オンチップデバッグ動作設定:使用する
・RRM機能設定:使用する
・セキュリティID設定:セキュリティIDを設定する
・セキュリティID認証失敗時の設定:フラッシュメモリのデータを消去する

リセット要因確認

・関数出力設定:リセット要因を確認する関数を出力する

安全機能

・フラッシュ・メモリCRC演算機能設定:使用しない
・不正メモリアクセス検出機能設定:使用しない
・RAMガード機能設定:使用しない
・ポートレジスタのガード機能設定:使用しない
・割り込みレジスタのガード機能設定:使用しない
・チップステートコントロールレジスタのガード機能設定:使用しない
・入出力ポートの出力信号レベル検出機能設定:ポートの出力ラッチ(Pmn)の値をリード

生成されたコードを見てみる

r_main.c

何も書かれていません。

void main(void)
{
  while (1U)
      {
       ;
      }
}

r_systeminit.c

コードを見てみると、PIORの値が書いてあります。これは、端子割り当て設定で設定した値と一致しています。関数に関しては、ヘッダーに定義されているのでしょう。あとで追います。
CRCOCTL

 void R_Systeminit(void)
{
 PIOR0 = 0x00U;
 PIOR1 = 0x00U;
 R_CGC_Get_ResetSource();
 R_CGC_Create();
 R_WDT_Create();
 CRCOCTL = 0x00U;
 IAWCTL = 0x00U;
 PMS = 0x00;
}

void hdwinit(void)
{
 DI();
 R_Systeminit();
 EI();
}

疲れたのでやめます。
2019.03.12