RL78のサンプルプログラム等を再開します。

チョコです。

一月程度,忙しい日が続いたのも何とか終わったので,RL78のサンプルプログラム等を再開しようと思います。

その第1弾として,ソフトウェアによるI2Cバスのスレーブ機能を考えています。

10pinのRL78/G10にはIICA0が搭載されていないので,I2Cバスのスレーブとして使用できませんでした。

そこで,R5F10Y16(ROM:2KB,RAM:256B)でどこまでできるかにチャレンジしてみることにします。

(R5F10Y17(ROM:4KB,RAM:512B)の方が楽なのですが,入手性の問題から秋月で入手できるR5F10Y16を

ターゲットにしてみました。)

 

さすがに,400kbpsのファースト・モードには対応できないので,100kbpsの標準モードをターゲットにします。

まずは,ターゲット仕様を決めます。

メモリが少ないので,どこまで実現できるか楽しみです。

 

RL78でのソフトウェアによるI2Cバスのスレーブ機能の実現.pdf

Parents
  • チョコです。
    やはり,2kバイト(実際には最初の200バイト程度は使えないので1.8kバイト程度ですが)ではプログラムが入らなくなり,
    ターゲットをR5F10Y17(4kバイト)に変更してプログラミング中です。
    完成したら,どこまでシュリンクできるか検討する方向で進めていきます。
    (I2C以外の機能で頑張り過ぎました。)
  • > 実際には最初の200バイト程度は使えない

    cstart.asm を小変更すると CALLT テーブル領域にスタートアップのコードの大半を収めることができ、使われない領域を減らせます。japan.renesasrulz.com/.../22161 に添付のファイルでそれを行っているので宜しかったら見てみて下さい。

  • チョコです。
    fujitaさん,コメントありがとうございます。そこも使う予定です。本当は,ベクタ領域の未使用分も使おうとしました。CA78K0Rでは使うことができましたが,CC-RLになって使えなくなってしまいました(アセンブラ記述だけなら,ベクタの記述を.DB2にしてしまえば,使えるのですが,C言語部分があるとダメでした)。
  • > 本当は,ベクタ領域の未使用分も使おうとしました。

    『RL78/G10 ユーザーズマニュアル ハードウェア編』によると RL78/G10 のベクタ・テーブル領域は 10ピンの製品は 0001AH~0007DH の 100バイト、16ピンの製品では 0002AH~0007DH の 84バイトの連続した領域が何の用途も割り当てられてないですね。これを使わないのは勿体ない!

  • > アセンブラ記述だけなら,ベクタの記述を.DB2にしてしまえば,使えるのですが,C言語部分があるとダメでした

    一旦 C でコンパイルした機械語を .DB で書けばベクタ・テーブル領域にコードを置くことも不可能ではなさそうですが、そういう無駄な労力をなしに ROM を無駄なく使えると良いですね。
Reply
  • > アセンブラ記述だけなら,ベクタの記述を.DB2にしてしまえば,使えるのですが,C言語部分があるとダメでした

    一旦 C でコンパイルした機械語を .DB で書けばベクタ・テーブル領域にコードを置くことも不可能ではなさそうですが、そういう無駄な労力をなしに ROM を無駄なく使えると良いですね。
Children
No Data