料理 (2) マーボ豆腐2011年06月01日 21時34分33秒

マーボ豆腐
今回はよく作るメニューのひとつマーボ豆腐だ。
うちのマーボ豆腐にはもれなくキャベツがついてくる。サクサク、シャリシャリとマーボ豆腐に合うような気がする。
材料 (3人分)

●豆腐		1丁
 キャベツ	3枚(葉)

○豚挽肉		100g
○たまねぎ	小1個(100g)
○しいたけ	15g
○にんじん	40g

■にんにく	大1
■しょうが	大1
■一味唐辛子	少々
■豆板醤		大1

●水		200cc
●しょうゆ	大2
●みりん		大1
●味噌		大1
●砂糖		小1
●ラー油		小1/2

 片栗粉		大1
 ねぎ		2、3本
豆腐
豚挽肉
にんじん・玉ねぎ・しいたけ
豆板醤・にんにく・一味唐辛子・生姜
水・醤油・みりん・砂糖・味噌
片栗粉



それでは始めよう。
1.にんにく、しょうが、しいたけ、ねぎをみじん切りにする。
2.キャベツを千切りにする。
3.たまねぎを5mm角ぐらいに切る。
4.豆腐を10mmサイズに切る。
5.サラダ油を入れて○の材料を炒める。最初に豚挽肉、後は適当に。(玉ねぎが透き通るぐらいまで)
6.挽肉に火が通ったら■の材料を入れて混ぜる。
7.●の材料を入れて煮込む。沸騰したら大さじ1の片栗粉を大さじ2の水で溶いて入れる。
8.中火で3分間混ぜてトロリとしてきたら火を止る。
9.器にキャベツとマーボ豆腐を盛り付けて最後にねぎをぱらぱらと振りかければ出来上がり。


マーボ豆腐できあがり

DSO Quad - 4 Channel Digital Storage Oscilloscope2011年06月04日 16時26分50秒

DSO Quad - 4 Channel Digital Storage Oscilloscope [TES101D2P]
これ欲しい。


プローブのほうがかさばりそうな大きさだ。


参照:DSO Quad - 4 Channel Digital Storage Oscilloscope

料理 (3) ホットケーキ2011年06月05日 23時33分25秒

ホットケーキのできあがり
これも時々作るが、うまくできたためしが無い。
表面はサクッとした感じだが中はもっちりとなってしまう。つまり、ふくらみが少ないのだ。
もちろん小豆粒ぐらいの小麦粉の固まりもできる。
何がいけないのかよくわからない。現在改良思案中。
ああ!ふっくらホットケーキ食べたい!!
材料 (2人分/5枚位)

●小麦粉			200g
●ベーキングパウダー	小3
●砂糖			30g
◆卵			1個
◆牛乳			180cc
◆バニラエッセンス	適量

卵と牛乳
小麦粉・ベーキングパウダー・砂糖
1.●印の材料をボールに入れてよく混ぜる。
2.◆印の材料をボールに入れてよく混ぜる。
3.2の中に1を入れて軽く混ぜる。(混ぜすぎると膨らまないと書いてあった)
4.お玉杓子1杯分をすくってフライパンに入れる。
5.2分焼いてひっくり返す。
6.ふたをしてさらに2分焼いて出来上がり。


厚さ15mm位、もう少し膨らみが欲しいところだ。
まだ改良の余地がありそうだ。

Raisonance Ride7 & ARM Tools (15) LPC1114FHN33/301 を追加2011年06月06日 22時58分23秒

LPC1114-301
Raisonance の Ride7 & RKit-ARM に LPC1114-301 を追加してみよう。
しばらくは現在のバージョンでがんばってみることにする。


さて、まずは CMSIS のヘッダーファイルをコピー
core_cm0.h
core_cmInstr.h
core_cmFunc.h
system_LPC11xx.h
LPC11xx.h
ついでだから LPC122x LPC13xx LPC17xx LPC18xx Cortex-M4 などもコピーしておこう。
どこにコピーするかというと、ここだ。
Raisonance\Ride\lib\ARM\include
そのつど用意してもよいがここに入れておくとパスの指定をしなくてよいもので...


次に、新規作成するもの
●crt0_LPC11x.s
 これは crt0_LPC17x.s をベースにして作成する。
 アセンブラの部分 str を strb にして Vectors Table を書き換えるだけ、簡単にできるがつまづくのはいつもここ。
●LPC1114-301.reg
 レジストリデータ、書き終えたら実行する。
 もちろんレジストリエディタを使って直接入力してもよい。

 

●LPC1114-301.sim
 Simulator data、必要な項目のみ記述する。

 



最後は修正及び追加だ
●ARM.config に LPC11 を追加
 else if(processor.substr(0,4) == "LPC2")のあとに追加する。

 

●HFARM.XML に LPC1114-301 を追加
 SubFamily を追加し、そこに LPC1114-301 を登録する。

 

●GNUtools.js に LPC11 を追加
 handle start of flash の部分を修正

 

 split the Flash in two parts and add a CRP word の部分を修正

 



これで新規プロジェクトを作成すれば、いきなり main でよいはずだ。
余力があれば LPC12、LPC13、LPC18 あたりも追加したいところだ。
私の持っている ARM は LPC2388、STM32F103VB LPC1114/301 だけなので当面この環境で問題ない。


さて、環境が整ったところでひとつ TRZ1104A を使って LED 点滅をやってみる。
問題ないようだ。


割り込みを使ってみる。
....
動かない。
今日のところはこんなものか?


環境:Ride7 version 7.30.10.0169
    RKit-ARM version 1.30.10.0356

FRK-RX62N (9) Renesas Peripheral Driver Library (1)2011年06月15日 21時32分28秒

久しぶりに Renesas のページを覗いてみると Renesas Peripheral Driver Library があった。今まで見過ごしてきたのだろうか?
ARM のライブラリのような感じだ。このようにまとめてあった方が使いやすい。しかし、どうやって使うのだろう?
見たところソースとヘッダーしかない。自分でライブラリを作るなり、ソースをプロジェクトに加えるなり、「自由にしてね」という事なのだろうか?
かなり ARM を意識した感じだ。 sh も h8 も r8c もぜひこのようにしてほしい。


あ、よく見るとライブラリの形にもしてあった。
ドキュメントを読んでみよう。


参照:Renesas Application Notes

FRK-RX62N (10) Renesas Peripheral Driver Library (2)2011年06月16日 21時57分30秒

Renesas Peripheral Driver Library
RPDL (RENESAS Peripheral Driver Library) は PDG (Peripheral Driver Generator) から使用するのが本来の使い方のようだ。
図を見ると SH も RPDL 経由で使えるようになっている。探してみよう。


さて、まずは RX62N.zip を解凍する。
さらに、次の二つを解凍する
RPDL_RX62N.exe
RPDL_RX62N_CS-5_source.zip


RPDL_RX62N\Copy_RPDL_RX62N.bat を起動して
下図のように
3 [enter]
..\RPDL_RX62N_CS-5_source [enter] とキー入力する。
Copy_RPDL_RX62N.bat



これでライブラリの用意はできたはずだ。
まともに動くかどうか確認してみよう。
7月号掲載PDGサンプル・プログラム がちょうどいいだろう。
サンプルのプロジェクトはパスが固定になっているらしくエラーになるのでプロジェクトのソースファイルを入れなおし、include ディレクトリを設定しなおし、ライブラリを再設定する。これでパス関係はOKのはずだがまだエラーが出る。
ライブラリをリンクしているはずなのに「ライブラリが無い」というエラーを吐き出し、また標準関数がダブっていると大量の warning が出てくる。 いったいどうなっているの?
L1320 (W) Duplicate symbol "_malloc" in "C:\WorkSpace\rx62n\PDG\RPDL\RPDL\RX62N_library.lib(malloc)"



参照:Renesas Application Notes RX62N Group, RX621 Group Peripheral Driver Library
環境:
    High-performance Embedded Workshop Upgrade 4.09.00
    C/C++ compiler package for RX family V.1.00 Release 02
    RX62N Group, RX621 Group Peripheral Driver Library APR.08.11 Rev.1.04
    Interface 7月号掲載PDGサンプル・プログラム

FRK-RX62N (11) Renesas Peripheral Driver Library (3)2011年06月17日 20時32分02秒

RPDL_RX62N.exe
ライブラリがおかしいようなので解凍したディレクトリのファイルを見てみる。
ライブラリは RPDL_RX62N\Device-specific の中に入っている。
RX62N_library_LFBGA_176.lib	385,100
RX62N_library_LQFP_100.lib	366,897
RX62N_library_LQFP_144.lib	154,717
RX62N_library_TFLGA_145.lib	384,081
RX62N_library_TFLGA_85.lib	355,774
おや???
RX62N_library_LQFP_144.lib だけサイズが小さい。
Renesas H Series Librarian Interface で中身をのぞいてみる。
memchr、memcmp、memcpy、memmove....
と標準関数が続いている。
つまり RX62N_library_LQFP_144.lib だけ標準ライブラリが添付されていたのだ


これではエラーになって当たり前。
しかし、ライブラリを作成するためのプロジェクトは用意されて無いので必要なファイルをプロジェクトに詰め込んでいくことにする。
ADC_10\globals_ADC_10.c
ADC_10\utilities_ADC_10.c
CGC\R_CGC_ControlAll.c
CGC\R_CGC_SetAll.c
CGC\globals_CGC.c
INTC\globals_INTC.c
MTU2\R_MTU2_ControlChannelAll.c
MTU2\R_MTU2_CreateAll.c
MTU2\R_MTU2_DestroyAll.c
MTU2\R_MTU2_ReadChannelAll.c
MTU2\globals_MTU2.c
MTU2\utilities_MTU2.c
RPDL\Interrupt_INTC.c
RPDL\Interrupt_MTU2.c
結構たくさんあった。
問題なくコンパイルリンクできる。
FDT で書き込んでみると LED が点滅している。


サンプルを動かすためにここまで苦労するとは...


参照:Renesas Application Notes RX62N Group, RX621 Group Peripheral Driver Library
環境:
    High-performance Embedded Workshop Upgrade 4.09.00
    C/C++ compiler package for RX family V.1.00 Release 02
    RX62N Group, RX621 Group Peripheral Driver Library APR.08.11 Rev.1.04
    Interface 7月号掲載PDGサンプル・プログラム

FRK-RX62N (12) printf (1) Renesas RXC Simulator2011年06月19日 09時02分52秒

RX62N SimDebug printf
Renesas Peripheral Driver Library はもうやめにすることにする。
もともと Peripheral Driver Generator は使うつもりがなかった上にコード効率が悪く、使い勝手も悪いことが分かってきたからだ。という訳で他に何かよい題材が無いかと探していると xxxxJTAG日記に「printf等のライブラリを使うことができるようになった」と書いてある。
しかし、[当社お客様向け限定ダウンロードサービス]ということで私はダウンロードできない。
それならば私が作って公開しよう!
ということにする。


とは言ったものの何かサンプルが無いか探してみる。
あるではないですか RX600 Series Adding Printf and Scanf Support
中をのぞいてみると SCI と Simulator Window と E1 E20 Debugger で printf が使えるらしい。
これははじめて知った。 Simulator Window に表示できるなんて!
早速 Simulator で使ってみる。
表示は遅いけど...うんうん表示できる。


しかし、このサンプル日本語のページには無いんだよね?
以前からそうなんだけど Renesas は日本向けのページに載せないことが多い。


参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
環境:High-performance Embedded Workshop Upgrade 4.09.00
    Renesas C/C++ compiler package for RX family V.1.00 Release 02

FRK-RX62N (13) printf (2) Renesas RXC SCI2011年06月21日 20時56分51秒

FRK-RX62N + RS232C変換基板
printf をシリアルに出力するのはいいけどハードウェアの整備をしなくてはならない。
SCI は6チャンネルあるので半田付けが一番少なくなるようなチャンネルを考えよう。
調べてみると JTAG 用のコネクタに SCI1 が出ている。ピン数も少ないし最適だ。これで進めよう。脱着も容易にできるようにする。


必要な部品をまとめると
1.14P ヘッダー
2.ケーブル 1Pタイプ(Ainex LED-30EXB or Valuewave FW-BP) 切断して使う
3.トランジスタ技術 2008年1月号付属 RS232C変換基板


2のケーブルだけは購入することにする。後は手持ちの部品だ。


FRK-RX62N のコネクタピン用途は
CN4-8	+3.3V
CN4-11	RxD1
CN4-5	TxD1
CN4-14	GND


半田付けしてケーブルを接続すると写真のようになる。
それにしてもCQ出版の基板には Reset SW が付いてないのが不便だ。写真で分かるように、私の場合大きくて邪魔になる。TRZ1104A には SW が付いていたが水晶が付いてなかった。


さて、 さっそくプログラムを書き込んで試してみたいところだが、その前に若干修正が必要だ。 Renesas のサンプルは SCI2 を使っているので SCI1 に変更する必要がある。


まず、hardware_setup.c

 

次に、serial_printf.c

 



さあ、動かしてみよう。
どきどき
...
Printf も Scanf も動いている。
おそらく問題ないのだろう。たぶん?


参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
環境:High-performance Embedded Workshop Upgrade 4.09.00
    Renesas C/C++ compiler package for RX family V.1.00 Release 02

FRK-RX62N (14) printf (3) KPIT GNURX SCI2011年06月22日 20時49分53秒

FDT SCI Download
今回 FRK-RX62N のSCI1 に接続することができたので SCI から flash write を試してみる。
JPP1 open (MD0)
JPP2 short (MD1)
JPP4 open (NMI)


ComPort は4になる。
FDT の設定は USB と同じで
入力クロック: 12MHz
メインクロックの逓倍比: 8
周辺クロックの逓倍比: 4
これで書き込み開始。USB に比べると遅いが問題なく書き込みできる。 できれば FDT 以外でも書き込みできればいいのだが今のところ見つからない。


さて、本題は 「KPIT GNURX で printf を使う」 だ。
副題として、[SYSLAB blog 読者 限定公開 第一弾 GNURX printf の使い方 Optimized 編]
しかし、中身は無いに等しい。ほとんど Renesas のサンプルをコピーするだけだ。


それでは始めよう。
1.KPIT GNURX で新規プロジェクトを作成する。
2.前回作成した hardware_setup.c を新規プロジェクトの中にコピーする。
3.main を新規プロジェクトの中にコピーする。
4.ソースの中の stdint.h をローカルから読み込むようにする。
  #include "stdint.h"
  もちろん stdint.h はプロジェクトディレクトリにコピーしておく。そうでなければ stdint.h をinclude しないようにして uint32_t などを unsigned int と書き直せばよい。
5.serial_printf.c をプロジェクトにコピーする。

 



6.KPIT GNURX [ELF] Toolchain の Library Generator は
  Library type が Pre-Built
  Select library が Optimized
  (次回は Newlib でもやってみよう)
7.後はコンパイルして書き込むだけ。


しかし、問題が無いわけではない。FDT で書き込む時 mot file exceeds the flash ROM size of RX600 Series device という警告が出てくる。
exceeds the flash ROM size
FDTがうまく動かない場合は S-record file の2行目を削除してしまおう。
S30900001000xxxxxxxxxx となっている部分。
でも、本来このデータは ROM に入っていなければならないはずだが...
そのうち何とかすることにしよう。おそらく次の GNURX では直っていると思う。
表示は Renesas のサンプルそのまま。
GNURX printf



欲を言えば、送受信割り込み+リングバッファ対応としたいところだ。


参照:Renesas Application Notes RX600 Series Adding Printf and Scanf Support (R01AN0509EU0100)
環境:High-performance Embedded Workshop Upgrade 4.09.00
    KPIT GNURX v11.01 Windows Tool Chain (ELF)