CQ-FRK-NXP-ARM (2) blink ― 2009年03月26日 22時22分54秒
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 のスクリプトファイルはオリジナルから変更あり。(以前の記事参照)
さっそく動かしてみよう。
サンプルは 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 regulator ― 2009年03月28日 08時33分15秒
「ARM マイコン基板特設ページ」によると
USBケーブルを接続した瞬間にスパイク電圧が発生してLDOが壊れてしまうらしい。
せっかく¥1980も出したのだから壊れてしまっては困る。
よく読んでみると...
対策のためダイオードとコンデンサを追加すればよいと書いてある。
しかし、C2は効果があるだろうが、D1にその効果はない。
その対策のためなら、C2だけでよいだろう。
USBケーブルを接続した瞬間にスパイク電圧が発生してLDOが壊れてしまうらしい。
せっかく¥1980も出したのだから壊れてしまっては困る。
よく読んでみると...
対策のためダイオードとコンデンサを追加すればよいと書いてある。
しかし、C2は効果があるだろうが、D1にその効果はない。
その対策のためなら、C2だけでよいだろう。
CQ-FRK-NXP-ARM (4) LPC ISP ― 2009年03月28日 19時12分39秒
ISP はいろいろあるが、できれば早いほうがよい。
そこで書込みスピードのテストをしてみた。
候補は
・ flashmagic Version 4.50
・ lpc21isp Version 1.64
・ lpcsp R0.01
Keil µVision3 から実行する。
登録しておけばワンクリックなので使いやすい。
コマンドとパラメータは以下のようにした。
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
そこで書込みスピードのテストをしてみた。
候補は
・ 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秒
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
書き込みが正常にできたかどうかわかりにくい。
主に、ターミナルを接続したままになって、エラーに気づかない時がある。
そこで音で分かるようにした。
音は 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秒
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
いきなり 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
最近のコメント