CQ-FRK-NXP-ARM (2) blink2009年03月26日 22時22分54秒

CQ-FRK-NXP-ARM
CQ-FRK-NXP-ARM (\1980) を手に入れたので記念撮影だ。


さっそく動かしてみよう。


サンプルは WinARM の中にある uvision_glue_test 。
先にコンパイルだけは通っている。


Raisonance Ride7 + ARM Tools で作成した実行ファイルと
Keil uVision3 + GNU C で作成した実行ファイル
バイナリサイズは少々異なる。
おそらくオプションの差だろう。


ターミナルを接続して、リセットする。
LED が点滅し、その後メッセージを表示する。
ターミナルからキー入力すると応答もある。


たぶんうまく動いているのだろう。


次は、USB 関係を動かしたいのだが難しそう...
nxp のサンプルをコンパイルしてみたが、ことごとくはねられる。
特に (__packed) がうまくいかない。
STM のように予めいろいろなコンパイラのプロジェクトが用意してあればいいんだけど...
ここは本意ではないが keil の MDK-ARM のお世話にならざるを得ないか?


参考: WinARM
uvision_glue_test.zip  Ride7 と µVision3 両方のプロジェクト


※ Ride7 のスクリプトファイルはオリジナルから変更あり。(以前の記事参照)

CQ-FRK-NXP-ARM (3) LDO regulator2009年03月28日 08時33分15秒

「ARM マイコン基板特設ページ」によると
USBケーブルを接続した瞬間にスパイク電圧が発生してLDOが壊れてしまうらしい。
せっかく¥1980も出したのだから壊れてしまっては困る。
よく読んでみると...


対策のためダイオードとコンデンサを追加すればよいと書いてある。


しかし、C2は効果があるだろうが、D1にその効果はない。
その対策のためなら、C2だけでよいだろう。

CQ-FRK-NXP-ARM (4) LPC ISP2009年03月28日 19時12分39秒

Flash Programming
ISP はいろいろあるが、できれば早いほうがよい。
そこで書込みスピードのテストをしてみた。

候補は
・ flashmagic   Version 4.50
・ lpc21isp    Version 1.64
・ lpcsp      R0.01

Keil µVision3 から実行する。
登録しておけばワンクリックなので使いやすい。
コマンドとパラメータは以下のようにした。

fm.exe DEVICE($D,$X) ERASE(DEVICE,PROTECTISP) HEXFILE(!H,NOCHECKSUMS,NOFILL,PROTECTISP) COM(1,230400)

lpc21isp.exe -hex !H com1 230400 14746

lpcsp.exe -p1:230400 -f14725 !H
測定条件
 CPU基板 CQ-FRK-NXP-ARM (LPC2388)
 ファイルサイズ ihex file 52.378 byte
 シリアルポート USB uart0 (CP2102)
 時間計測はストップウォッチ


結果は
 flashmagic 3.51 秒
 lpc21isp 4.60 秒
 lpcsp 2.70 秒

この結果から lpcsp を採用することにする。


参考:
flashmagic
lpc21isp
lpcsp


環境: uVision3 + GNU C + CQ-FRK-NXP-ARM

LPC ISP (2)2009年03月29日 23時11分46秒

Use External Tool for Flash Programming
LPC ISP に lpcsp を使うことに決めたが
書き込みが正常にできたかどうかわかりにくい。


主に、ターミナルを接続したままになって、エラーに気づかない時がある。


そこで音で分かるようにした。


音は beep.exe を使う。


方法は簡単だ。 bat ファイルで飛び先を変えるだけ。
バッチファイルの名前は glue-package + glue-ar-isp と共に使うので arm-glue-isp2.bat にする。


 




あ!... 書いてから気がついたが lpcsp はソースが公開されているのだから、これに追加してもよかった。





参考:
WinARM
beep.exe
lpcsp


環境:Keil µVision3 + GNU C + CQ-FRK-NXP-ARM

CQ-FRK-NXP-ARM (5) printf (1)2009年03月31日 22時37分48秒

sprintf  test
CQ-FRK-NXP-ARM の uart0 で printf を使う


いきなり printf だと敷居が高いので、まず sprintf からはじめる。
ベースになるサンプルは WinARM のサンプル lpc2378_uart_irq_20070502.zip にする。


   sprintf(buf,"sprintf test\r\n");
   uart0Puts(buf);


とするとコンパイルも通りコンソールにも出力できる。
次に
   sprintf(buf,"sprintf test %d\r\n",99);
   uart0Puts(buf);
とすると、以下のものが未定義と出てくる。


_sbrk
_write
_close
_fstat
_isatty
_lseek
_read


これじゃいきなり printf と同じことだ。
文字列の出力だけじゃ sprintf は役に立たないし
さて、


syscall を書かなくちゃいけないな


参考:WinARM
環境:Keil µVision3 + GNU C + CQ-FRK-NXP-ARM