Sep 18, 2008

変身前のメリー

左が我が家で保護した頃のメリーです、来た時には足の毛がもつれてフェルト状に固まり、色も薄汚れた灰色でした。
何度も何度もシャンプーしてもつれた毛を切った後の写真です。

Sep 15, 2008

お嬢犬メリー

メリーは8ヶ月前に迷子でもらい手がなく「え~い、2匹も3匹も一緒だ。」ということで我が家で預かった犬です。
その後届けていた警察から「飼い主が見つからなかったので正式にお宅で飼ってください。」とのお達しがあり晴れて我が家の一員となりました。
 面白半分で始めたトリミングも虎刈りが目立たない程度に上達して、最近では散歩途中で会った人から「まあ、上品な犬ですねえ。」とほめて貰えることもたまにあります。

大山へドライブ


気候が良くなってきたので犬たちと一緒に大山までドライブに出かけてきました。
 お気に入りエリアの奧大山で水を汲んで犬たちとハイキング。

ルネサス

過去10年以上にわたって組み込みプロジェクトでルネサス製CPUであるSH、H8シリーズをメインターゲットにしてきた、SH、H8シリーズは少量多品種プロジェクトで重宝する内蔵Flash+オンボードプログラミングの先駆けだったしモータ制御向きの豊富なタイマ機能では群を抜いていたからだ、しかし最近の流れを見るとルネサスどうしたの?と首をかしげたくなる。
内蔵Flashの書き込み回数にしてもルネサス製のCPUでは未だに100回がカタログスペックになっている、実用上それで困ったことはないが教育向けに提供しているボードでFlashを書き換えてプログラムの勉強をするためにはもっと書き換え可能回数が多い方が良いしFlashの一部をパラメータ保存領域として使うためにもやはり100回というのは足かせになる。
 当初は他にライバルがいなかったので「そんなものか」と割り切って使っていたが最近使い始めたAtmelやstMicroのFlashが10000回以上の書き換えを保証しているのを見るとハードウェアの古さが気になる。また内蔵RAMの容量にしてもやはり新しいCPUに較べると見劣りがしてしまう。
 スタック解析ツールを備えた純正ツールがあるのはいいんだが内蔵RAMの容量の貧弱さが目立ってくると「そんなツールがないと使いこなせないCPUなのか。」と余計なことを考えてしまう、ルネサスには優秀な人材がたくさんいるはずなんだが、機能てんこ盛り&膨大なシリーズ展開の割に魅力的なCPUが出てこなくなったのは何故だろうか?

Toppers参考書を購入

酔漢氏が提供されているcortex-m3のToppers-jspソースコードをstm32f103-p52上で走らせることを通じてRTOSの勉強とプロジェクトへの適用可能性を検討している。
ただ、Web上で断片的な情報はたくさん得られるもののRTOSについての基礎知識無しでソースを追っていくのはあまりにも効率が悪いと、やっと気がついて書店に参考書を物色に出かけた。
 ARMではなくSuperHがターゲットの本だがパラパラとページをめくってみてまとまりの良さそうな内容だったので購入して帰りじっくり呼んでみたが、この本は久々のヒットだった。
 この類の本では内容を深く理解してない著者による知識の受け売りや表面的な使い方に終始したものをよく目にするが、この著者はRTOSとシステム開発というものがよく分かった上でRTOSを押し売りするのではなくその長所短所を客観的に説明しているところが特に気に入った。

Sep 10, 2008

stm32fの割込関数

stm32f103のサンプルプログラムを見るとReset_Handlerのみ割込関数として宣言してあり他の割込ハンドラー関数は割込関数になってない。
cortex-m3では割込み発生時にハード的にレジスタを待避し、戻るときにレジスタを復帰してくれるので通常の関数として宣言してOKということらしい。
ではReset_Handlerが割込関数として宣言してあるのは何故か?その理由がどうも良く判らない。
ちなみにReset_Handlerを通常の関数として宣言してプログラムを組んでも正常に動作した。

割り込みベクタの定義

stMicroから提供されているstm32f用ライブラリはstm32f10x_vector.cの中で次のように割り込みベクタが定義してあり、
__attribute__ ((section(".isr_vector")))
void (* const g_pfnVectors[])(void) =
{
 &_estack, /* The initial stack pointer*/
 Reset_Handler, /* The reset handler*/
 NMIException,
 HardFaultException,
 MemManageException,
 中略
};

section .isr_vectorはリンカスクリプトでFLASH先頭に配置されるようになっている。
しかしこれだとベクタの数だけ空の割込関数を記述してあるstm32f10x_it.cを必ずリンクしなければならないのと、他の場所に割込関数を書くのが不便だ。
そこで、リンカスクリプト内で割込関数のシンボルを定義し、シンボルが存在しなければデフォルトの割込関数で受ける方式に変更

Sep 6, 2008

JDE TOPPERS対応化プロジェクト Step1


ワークの下にjspを置き、ディレクトリ構造決め打ちでToppersが構築できるようにした。
単にスクリプトを呼び出しているだけなんですけど、ボタンクリックで構築が出来るのとコンパイルメッセージのダブルクリックでファイルを開いて修正できるので、この状態で使っていきながら設定との関連づけを考えていくことにする。
思ったより簡単にとりあえずですが、使えるようにはなったので来週は暇をみてシリアルポートハンドラのインストールにチャレンジかな。

ナイトライダー風LEDチカチカ


stm32f103-p52でのナイトライダー風LEDチカチカです
ちょっといい加減ですがPWMを使って少し本物に近い雰囲気にチャレンジしてみました
stm32f103はタイマ機能が豊富でこのボードで16chのPWM出力が可能です、パルス幅でコントロールするサーボなら16CHを駆動できるということになります。
今までルネサス系CPUの周辺機能でしか見たことのない2相エンコーダ入力のアップダウンカウンタを備えているのも魅力です。

メリー


毎朝突進してくる犬の2匹目
フルネーム Mary Antoinette Zizi
通称メリーです。
写真は熊本県山都町の通潤橋で見つけた怪物にお供えしているところ
道の駅の隅っこにさりげなく置かれていたお祭の山車です、私はとても気に入ってこのように遊んでいましたが他の観光客はあまり興味がないらしく写真を撮ってくれた妻の顔もひきつっていました。

Sep 5, 2008

ハナ

毎朝突進してくる犬の一匹目
名前はHana Gontakurayno Dorosukie 通称ハナです、
泥水のあるところでちょっと目を離すとこんなになります、
いつか佐賀のガタリンピックをやっているところで一緒に泥まみれになって遊んでやろうと目論んでおります。

TOPPERS/JSPの デバッグ


試作したstm32f103-p52とJTAGボードでtoppersプログラムをデバッグ中、
stm32fが採用しているARMコアのcortex-m3はデバッグ用ハードも内蔵していてこのJTAGボードでFlash書き込みとGDBでのデバッグが出来る。
GDBを使ったデバッグでスタートアップルーチンの動作までは確認できたが、全てを通してGDBでデバッグをするのはそろそろ面倒になってきた、JTAGボードの空きピンをシリアルポートに割り当てていてこの状態でシリアル回線も使えるようにしているので、シリアルポートサポートルーチンを先に組み込むべきか、それからエクスプローラ+エディタ+コマンドラインでTOPPERSの構築&デバッグをするのも面倒になってきたので、JDEにTOPPERSプロジェクトを管理する機能を追加するか、等と考え始めたのでTOPPERS本体のデバッグはしばらくストップしそう。
おっと、それより納期の迫ったジョブを先に片付けなければ。
ボードについての情報はこちら

Sep 4, 2008

CPU変更

STM32Fの使いこなしに自信がついてきたこともありH8SX1653を使う予定にしていたプロジェクトのCPUをSTM32F103ZET6に変更した。
SPIFlashへの接続とRTCが必要という筋の通った理由はあったんだが基本的には好き嫌いで決めました。
開発なんていうしんどい仕事は自分の好き嫌いが通らなければ長く続けられません、その代わりちゃんと性能といいコストパーフォーマンスを出さなければならないという責任はついてくるんだけどね。

STM32Fっていうシリーズは高性能なくせにPICのように外付けクリスタル無しでも動いてしまうとか、電源ピンの配置が如何にも信頼性がありそうで感心してしまうとか、ハードオタの心をくすぐってくれます。

stm32f103萌え

stMicro製ARM cortex-m3コアCPU stm32f103に凝っている
ARMのインストラクションはコード効率はいいが難解でとっつきにくいと思っていたが慣れればそんなことは気にならなくなってくるし
何よりハードオタクのツボをついた魅力満載のstm32f系のCPUはソフトを弄っていてもハードの設計をしていてもますます気に入ってしまう。

一昔前はH8系のCPUに関して同じように萌えていたような気もするが
しばらくはこのCPUをメインに使って行こうと思う。