RX64MのEthernet1のみ使用する

RX64MにはEthernetコントローラが2ch搭載されています。ルネサスのTCP/IPライブラリであるT4を使う場合、1chまたは、2chを選択することが可能です。しかし、1chで使用する場合はEthernet0が使用されるため何とかしたいと思います。

使用したバージョン
M3S-T4-Tiny(Ethernet) version 2.09 for RXV1 LITTLE endian.(Jun 18 2019, 18:43:35)

1.コンポーネントから「r_t4_rx」を追加する。
r_ether_rx
r_cmd_rx
r_sys_timer_rx
r_t4_driver
が追加される。

2.r_ether_rxの設定を行う
今回は、ETHERC1を使用する為、下記の通り設定。
3.r_t4_rxの設定を行う
今回は、1chのみ使用する為、下記の通り設定。
4.コード生成を行う。

5.ソースの改造
T4ライブラリでは、1CHで使用する場合は、ETHERC0を使用するのが前提らしい。
なので、まともに動かない。
(ちなみに、1chしか使用しない場合でも、T4を2ch設定にしてしまえば、そのままでも使える。ただし、メモリが多くいる)
改造するためには、スマートコンフィグレータで作成したファイルを編集する必要があるが、
コード生成を行うたびに戻ってしまう恐れがある為、コピーを追加する。
・既存のソースをビルドから除外する。
・コピーしたソースをプロジェクトに追加し、編集する。
単純に、アクセスするチャンネルを0と1をすべて入れ替えました。
修正したファイルはこちらです。(動作未保障)

6.動作確認
以下のコードにて、PCからPINGが通ることを確認。

以前と比べ、T4はかなり進歩してますね。DHCPも標準で対応してる。

RX64MにSDRAMを追加する

今回使用するSDRAMはISSIのIS42S16160。256Mbitです。
接続については、データシート通り。

1.スマートコンフィグレータでバスを追加
名前はそのままで、終了をクリック。
2.バスの一般設定
 外部バス領域のSDCSをチェックする。
3.SDCS設定
アドレスマルチプレクスと、バスタイミングを設定する。
4.ソースに初期化処理を追加する
R_Config_BSC_InitializeSDRAM();
を追加することで、SDRAMが使用出来るようになります。

RX64Mでスマートコンフィグレータを使用したアプリの作成

1.新しいプロジェクトを作成する
2.プロジェクトの作成
・マイクロコントローラ:RX
・使用するコントローラ:R5F564M (使用するマイコンに合わせる)
・プロジェクトの種類:空のアプリケーション(CC-RX)
・プロジェクト名:任意
・作成場所:任意
・プロジェクト名のフォルダを作成する:チェック推奨
以上を設定して「作成」ボタンをクリック

3.スマートコンフィグレータを起動
プロジェクトツリーから、スマートコンフィグレータ(設計ツール)をダブルクリック
初期状態では、コンポーネントにr_bspのみ登録されている。
・ボードの設定はそのまま
・クロックの設定を実際のボードの構成に合わせる

3.コードの生成
コードの生成ボタンをクリックする。
セクション設定画面が表示されるので、「はい」を選択して変更を行う。
プロジェクトツリーのファイルを見ると、Smart Configuratorにソースが追加されている。

4.ビルド
この状態でビルドすると、main関数が無いと言って、エラーが出る。
これは、初めに空のアプリケーションを作った為。
(普通のアプリケーションを作ると、余分なファイルが出来て、スマートコンフィグレータを使用すると消される)
なので、メインのソースファイルを追加する。
・まずは、新しいカテゴリ(フォルダ)「src」を追加する。
・「src」を選択して、新しいファイルを追加する。
(ファイル名は任意、作成場所に、「src\」を追加)
・void main(void){} を追加すれば、ソースファイルの完成。
これで、ビルドが正常に完了する。

5.最低限のソース

なぜか、「R_Pins_Create」は初期化時に実行されないらしい。

今回のバージョンでは、これだけですんなりと動くようになっており、かなり進歩した感じ。

C#でデータベースにAccessのMDBを使用する

C#から、Accessのがインストールされていない環境で、MDBファイルを使用する方法のメモ。
まずは、参照設定でMicrosoft ADO Ext X.X for DDL and Securityを追加します。

 

1.MDBファイルを作成する

※接続文字列は、以降の内容でも共通です。

64Bit環境で使用する場合、”Provider=Microsoft.ACE.OLEDB.12.0;”に変更する必要がある。
ただし、Accessがインストールされていない場合は、
Microsoft Access データベース エンジン 2016 再頒布可能コンポーネント
などの、追加モジュールが必要になるとの事。

ファイルが存在する場合などは、例外が発生するのでTryにて対応しよう。

 

2.テーブルを作成する

テーブルを作成するには、MDBファイルに接続し、テーブルを作成し、列を追加していく。列を追加する際に、細かなオプションを設定する場合と、とりあえず列を追加してしまう2パターン。既に存在するテーブルを作成すると例外が発生する。

もしくは、SQL文でテーブルを作成してまう方法もある。ポイントは、ADOX.Catalogではなく、System.Data.OleDb.OleDbConnectionを使用するのと、SQLと異なり、System.Data.SqlClient.SqlCommandではなく、System.Data.OleDb.OleDbCommand commandを使用する事です。
以降の項目で、説明しますが、SQLコマンドの実行は、SQLサーバに対する方法とほぼ同様です。

 

3.テーブルにデータを追加する

微妙に違う部分として、SqlDbTypeから、System.Data.OleDb.OleDbTypeに変更したり、Parameters.Addは非推奨でAddWithValueを使ったりしました。

 

4.テーブルからデータを取得する

こちらは、System.Data.SqlClient.SqlDataReaderから、System.Data.OleDb.OleDbDataReaderに変更しました。

AccessのMDBを使用する場合でも、SQLサーバーを使用する場合とほぼ同等ですが、一部クラス名や列挙体の指定が異なってしまうことが、残念です。簡単なデータなら、どちらのデータベースを使用するか選択できると、良かったのですが。