スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

データフラッシュ入門


お久しぶりです。
前回の記事から1年以上が経過してしまいました。
言い訳をさせてもらえれば、就活と修論、引っ越しといった面倒事がたくさんあったからです。
しかし、それ以上にマウスの進捗が芳しくなく、ブログを書く気が起きなかったのが理由です。

今年から社会人として愛知県で働き始め、先月ようやく配属先も決まり、引っ越しラッシュも収まり、
新入社員として安定しはじめてきたので、ブログを再開してみます。
(すぐに更新が滞るかもしれないので、定期的に煽ってください)

言い訳タイムはここまでにして、今回の記事はデータフラッシュの導入について書こうと思います。
後輩たちがデータフラッシュを導入できずに困ってるらしく、自分も備忘録としてここに残しておきます。
もしかしたら間違っているかもしれないので、お気づきの点がございましたら、ご指摘いただけると幸いです。


まず、データフラッシュとは
マイコンに内蔵された自由に書き換え可能なROMです。
端的に言えばパソコンのハードディスクだと思ってください。
パソコンは電源を落としても、HDDに保存されたデータがなくなったりしないのと同様に、
マイコンでもROMにデータを保存しておけば、データが消えることがありません。

データフラッシュの用途としては、
探索して記憶した迷路情報をデータフラッシュに保存しておけば、マウスの電源を落としても最短走行ができたり、
パラメータを保存しておけば、プログラムの書き換えを行わずにパラメータの調整ができたり、
データロガーとして、マウスの速度やセンサ値を保存しておくこともできます。

最後に導入方法です。
データシートのフラッシュメモリの章を読みましょう。
おそらく意味のわからないルネサス語が踊っていると思います。
少なくとも自分には解読できませんでしたので、ここでは自分でも導入できた2種類の方法について紹介します。

1つ目は、Renesas HPにあるRX周辺クイックラーニングに紹介されているサンプルコードを改造することです。
https://www.renesas.com/ja-jp/support/training/seminar/web-quick-learning/rx62n-syuhen.html
RX周辺クイックラーニングはデータフラッシュ以外にも様々な機能が紹介されているので、一読をオススメします。
改造方法は、3倍速で走る彗星のブログに詳しく紹介されています。
http://hidejrlab.blog104.fc2.com/blog-entry-1123.html

2つ目は、Renesas HPのサンプルコードにあるRX600 & RX200シリーズ RX用シンプルフラッシュAPIです。
https://www.renesas.com/ja-jp/software/D3012621.html
https://www.renesas.com/ja-jp/doc/products/mpumcu/apn/rx/001/r01an0544ju0240_rx.pdf
導入方法は、上記のマニュアルに記載されている2.10 プロジェクトにミドルウェアを加えるにはをお読みください。
おそらく難解なルネサス語に辟易し、膨大なコンパイルエラーに悩まされることでしょう。
ここでは、私が一日がかりで解読したルネサス語を日本語に翻訳したものを紹介します。
冒頭でも書きましたが、間違っている部分がございましたらご指摘いただけると幸いです。
(例としてRX631での導入について書いてあります)

まず、上記のマニュアルにさらっと書いてありますが、r_bspなるものをプロジェクトに加えます。
1.サンプルコードのフォルダにあるan_r01an0544ju0240_rx_flash\Workspace\Flash_API_RX\r_bspを
  自身のプログラムのプロジェクトのディレクトリにコピーしてください。
2.r_bspがあったフォルダから自身のマイコンのr_configをプロジェクトのディレクトリにコピーしてください。
  (ex.)an_r01an0544ju0240_rx_flash\Workspace\Flash_API_RX\Flash_API_RSKRX630\r_config
3. r_bspとr_configディレクトリをプロジェクトのインクルードパスに含めます。
  CS+だったらビルドツールのプロパティから追加のインクルードパスにいけると思います。
4.r_bspフォルダに入っているplatform.hを、自身が使うマイコンのコメントアウトを解除し、
  それ以外をコメントアウトして書き換えてください。
5.r_bsp\mcuにあるマイコン名のフォルダ(rx630)からlocking.cとmcu_lock.cをプロジェクトに追加してください。
  プロジェクトツリーから右クリックで既存ファイルを追加で上記の2つを追加するだけです。
6.r_bsp\board\にあるマイコン名のフォルダ(rskrx630)からr_bsp_config_reference.hをコピーし、
  名前をr_bsp_config.hに変えて、r_configフォルダ内に上書き保存して、中身を自身の設定に書き換えてください。
  元からあるr_bsp_config.hは削除して大丈夫です。
  書き換える内容は、自分はBSP_CFG_XTAL_HZを12MHzに書き換えるだけだったと思います。
これでマニュアルに書かれていないr_bspの導入ができたと思います。
注意点としては、r_bsp\mcu\rx630\register_accessにあるiodefine.hのバージョンが古くて
コンパイルできないことがあったので、新しいもので上書き保存するか削除してみてください。

後は、マニュアルの2.10 プロジェクトにミドルウェアを加えるにはの通りに設定していくだけです。
7.an_r01an0544ju0240_rx_flash\Workspace\Flash_API_RX\r_flash_api_rxフォルダを
  プロジェクトのディレクトリにコピーします。
8.上記のフォルダ内にあるsrc¥r_flash_api_rx.cファイルをプロジェクトに追加します。
  プロジェクトツリーから右クリックで既存ファイルを追加で追加するだけです。
9.r_flash_api_rxとr_flash_api_rx¥srcディレクトリをインクルードパスに含めます。
10.上記のフォルダ内にあるrefフォルダからr_flash_api_rx_config_reference.hをプロジェクトのディレクトリに
  コピーし、ファイル名をr_flash_api_rx_config.hとし、中身を自身の設定に書き換えてください。
  データフラッシュのみの使用であれば、#define FLASH_API_RX_CFG_ENABLE_ROM_PROGRAMMINGを
 コメントアウトします。
11.フラッシュAPIを使用する各ソースファイルにr_flash_api_rx_if.hの#includeを追加します。

おそらくこれで大丈夫だと思いますが、正直覚えてないのでエラーが消えないときは気合で頑張ってください。
それぞれの関数の使い方はマニュアルを読んで下さい。ここまで書くのに疲れました。
注意点としては、R_FlashDataAreaAccess(0xFFFF, 0xFFFF);を書かないと関数が使えないってことくらいです。

文章しかないので読みにくいと思いますが、スクショをとるほど自分のマウスに余裕がないので許してください。
新作のハーフはまだよちよち歩きもできないほどなので、ここまでで筆を置かさせてもらいます。
次は大会結果でも書きたいですね。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

コヒロ

Author:コヒロ
某自動車会社の子会社に就職した新入社員。某五年制大学のサークルでマイクロマウスを製作していました。現在も製作中。パソコン、自転車、読書などなど多趣味で中途半端な人間です。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。