CQ-FRK-NXP-ARM (5) printf (2)2009年04月01日 23時06分34秒

sprintf 用にダミーの syscall を作成してみた。
これで使えるか?
   :
   :
   :
応答がない!


暴走しているようだ


必要なところを書き込まないといけないらしい。
これは、泥沼に足を突っ込んでしまったようだ。
また尻切れトンボになりそうな予感...


しかし、sprintf に %d を入れただけでコードサイズは極端に大きくなり
ワークエリアも大量に消費している。
でも、LPC2388 にとってはたいしたことではない。
これが sh2 や h8 であれば大変なことだけど。


それでも、例によって small printf または tiny printf を考えよう。


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

CQ-FRK-NXP-ARM (5) printf (3)2009年04月02日 23時22分01秒

sprintf test
sprintf の続き...
ちょうどいい具合に syscalls.c があった。
(lpc213x_lpc214x_examples_20061205.zip)
これを使わせてもらおう。


やはり、あるものを使う、自分では作らない(自分では作れない)
これが手っ取り早くてバグが少ないはずだ。


さっそく組み込んでみよう
_write と _read はとりあえずダミーにしておく。


おや、なんかおかしい?
文字が途中までしか出ない。


やはり簡単にはいかないのか


参考:WinARM
printf test file 動かないサンプル


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

Raisonance Ride7 & ARM Tools (9)2009年04月03日 19時04分21秒

Raisonance Ride7 & ARM Tools がバージョンアップして
NXP の LPC21xx/23xx/24xx が使えるようになったようだ。
できれば Atmel も Luminary もサポートしてほしい...


使ってみたいが、またスクリプトファイルを変更するとなると気が重い。
こんな使い方をしている私が悪いのか?


参考: Raisonance

CQ-FRK-NXP-ARM (5) printf (4)2009年04月03日 21時42分54秒

sprintf test
sprintf の続き...
文字列出力の間に待ち時間を入れてみる。


正常に出力できる。
バッファの空きを見てないのか?
ためしにバッファを128バイトから5バイトにしてみる。
5文字しか表示しない。


これはもう決まりだ uart.c の中の uartxPutch() を調べてみよう。
みてみるとバッファーフルの時エラーで返している。
どうもここが原因のようだ。
というわけで uartxPutch() を一部変更する。

 

を以下のようにする。

 




さて、もう一度挑戦だ。


結果は... 同じ
途中で止まってしまう。


もう打つ手がない。
volatile でも入れてみよう。


結果は... うまくいった。
でもどこに入れた volatile が効いたのか分からない。
ま、いいことにしよう。


参考:WinARM
printf test file 動くだろうサンプル(動かないサンプルに上書き)


環境: (Ride7 or µVision3) + GNU C + CQ-FRK-NXP-ARM

CQ-FRK-NXP-ARM (5) printf (5)2009年04月04日 21時06分12秒

printf out monitor
sprintf から printf へ
syscalls.c の _write を有効にしてさっそくテストだ。
putchar_serial0 を uart0Putch に置き換えてコメントを外す。
うまく行く予感...


あれ!  またしても...
今度は何がいけないの?


シリアルをモニタしてみる。
予定していないコードが入っている。


putchar で連続出力しても問題ない。
printf で文字だけ出力しても問題ない。
書式指定した時だけおかしくなる。


ワークエリアが不足しているか、かぶっている感じだ
でも、どこを触ってよいのか分からない
この部分は先送りにして
small printf を追加しよう。


参考: WinARM


環境: (Ride7 or µVision3) + GNU C + CQ-FRK-NXP-ARM

CQ-FRK-NXP-ARM (5) printf (6)2009年04月05日 20時27分33秒

rprintf test
small printf を実装する。


printf の実装に挫折したので small printf に変更。
これも使い勝手のよさそうなのがあるので使わせてもらおう。
(lpc213x_lpc214x_examples_20061205.zip)


この中にある rprintf というやつだ。
早速リンクして動かしてみよう。


今回はいけたようだ。 printf の次は scanf か?


ここでちょっと出来上がったバイナリサイズを比較してみよう。
printf   42,004バイト
iprintf   24,804バイト
rprintf    6,020バイト
なし      4,688バイト


う~ん rprintf いいね~


参考: WinARM


rprintf test file 動いたかな?サンプル(動くだろうサンプルに上書き)


環境: (Ride7 or µVision3) + GNU C + CQ-FRK-NXP-ARM

CQ-FRK-NXP-ARM (5) printf (7)2009年04月06日 21時51分48秒

printf & scanf test
もう一度 printf に挑戦してみる。


今まで気にしていなかったが
crt0.S を見ると USR_Stack_Size が 0 になっている。
ここを 0x00001000 にしてみよう。
ついでに _read と Memory Dump も追加する。
これで scanf も使えるはずだ。
ターミナルの設定は以下の二つにチェックを入れる。
行末に改行文字をつける
ローカルエコーする


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


使い方はアドレスとサイズを16進数で入力する。
特に問題はないようだ。
まあ、表面上のことだけかもしれないが...


と思っていたら Ride7 で作成したプロジェクトが動かない。
ソースは同じなのになぜ?


参考: WinARM


rprintf test file scanf も動いたかな?サンプル(動いたかな?サンプルに上書き)


環境: (Ride7 or µVision3) + GNU C + CQ-FRK-NXP-ARM

CQ-FRK-NXP-ARM (6) GCC Developer Lite2009年04月12日 18時49分04秒

LPC2388 with GCC Developer Lite
GCC Developer Lite で LPC2388 をコンパイルしてみる。
CQ-STARM でもやったので今回もやってみよう。
ベースとなるサンプルは何でもいいが WinARM の中の examples\uvision_glue_test にする。


まず、TARGET の作成だ。


1.C:\Program Files\BestTech\GCC Developer Lite\TARGET の中にディレクトリ LPC23XX を作成する。
2.uvision_glue_test の Common を LPC23XX の中にコピーする。
3.Common の中身をライブラリにする。名前は liblpc23xx.a にしよう。(irq.c,swi_handler.S,target.c,timer.c)
4.C:\Program Files\BestTech\GCC Developer Lite\TARGET\LPC23XX の中に LPC23xx.h Startup.o を入れる。
5.LPC23XXFROM.DEF を作成して C:\Program Files\BestTech\GCC Developer Lite\TARGET の中に入れる。


これで完了!


ためしに、コンパイルしてみよう。
examples\uvision_glue_test のファイル
main.c
fio.c fio.h
uart.c uart.h
を適当なディレクトリに入れて main.c に以下のファイルをインクルードする。
#include "fio.c"
#include "uart.c"

後は、main.c をコンパイルすればでき上がるはずだ。





参考:WinARM


TARGET LPC23XX


環境: GCC Developer Lite + CQ-FRK-NXP-ARM

Micro Embeded System2009年04月13日 21時22分41秒

h8 Flush v4.0
Micro Embeded System を見てみると
MES Ver2.5 r1 がリリースされていた。(2009/3/25)


STR710 が追加になって H8 がなくなっている。
あ~これも時代の流れか...


それはそうと h8flush がどうなったのか気になる。
4.0 になって STR710 が追加になっている以外変更はないような気がする。


参考: Micro Embeded System

Hotmail2009年04月14日 19時07分08秒

知り合いからの情報で Hotmail が POP3 SMTP 対応になったことを知った。


Hotmail POP3 SMTP で検索してみると相当数の記事がある。
どうやら私の情報網はうまく機能していないようだ。