かけがえの無いメモ書き

 
DSO QUADのメニューへ


pawn selecter

 

スクリプト言語PAWN

  フー、これは手ごわかった。DSO QUADにPAWNインタプリタを移植するのに3カ月かかりました。これでアプリのプログラミングが十分簡単になると思います。

背景

 QUADには必要ないくつかのでっかいアプリケーションがあります。もちろんまずはオシロ昨日出し、ロジックアナライザとかもですね。それから小さいが非常に役立ついくつかのものもあります。たとえばLCRメータとか、充電容量計とかデータロガーとか、サーボテスターとかです。こうした小さいアプリにはC環境ではちょっと不格好だしデバッグが苦痛です。

 もちろんCとかC++には出来の良いたくさんのライブラリーがあるし、アプリケーション作成を楽にしてくれます。しかしながら、限られたアプリケーションスロット数(4つのうち2つは標準アプリで使います)はエコではありませんね。その替わりに私は記述言語を使うことに決めて、PAWNが現在一番小さいものだろうと思、サイズが6kbでインタープリターを載せました。

 QUADのプログラム作成ではいつもサイズが問題になります。ひとつのアプリケーションスロットはROMエリアが32kBなので、samll lib cが必要だし、コードのサイズを一定値にしないといけません。ところが、PAWNプログラムだとメモリーであるフラッシュ領域2MBを使えます。PAWNはコードオーバーレイや動的にフラッシュ領域からスワッピング式にローディングができます。

 PAWNは元々制限のある言語ですが、型とか構造とか動的メモリーの概念がありません。言語文法はCに似ており、シンボリックエラー検出能力とかコンパイル時の誤り検出で堅固設計で知られています。現実的に便利なのは、私がQUADのために特に書いたCライブラリーを補完してくれるところです。ライブラリーには波形の取り込み、ユーザインタフェイスの組み込み、各種信号処理ツールが含まれています。
 ferquency thumb

voltmeter

 

現在の状況

 このプラットホームの能力を示すために以前作った周波数応答アプリPAWNバージョンに移し替えてみました。このプログラムは制限を超えかけていませんので、私はCだと邪魔くさかったいくつかの仕様を追加してみました。たとえばカーソルで数値を読み取るとか、設定時のやり取りとか矩形波測定モードなどです。

 すでにランタイムは安定しており、ほとんどのプログラムで必要とされる機能はあるはずです。さらにもし何か必要でしたら、私に教えてもらうと、バグをはじき出し、必要なAPIを追加したいと思っております。私の望みとしては多くの人にQUADのためのプログラム作りに興味を持ってもらい取り上げてほしいが、だれかタスクの複雑性とか、下位ソフトウェアの不十分な説明を押しのけてもらう必要があります。

今後の開発

 現在誰かが興味を示して何かアプリを書いてくれないかと心待ちにしております。そうでないと私の実験プラットフォームで終わってしまいますし、私の必要と思うアプリをばらばらと作っているだけです。今はバッテリー充電テスターを作成中です。

 もし万が一うまくいって何人かのユーザ層を得られたら、もちろん要求に沿った標準ライブラリーを拡充するつもりです。現在3kBのROM領域が残っていますし、いつも最適化を心がけています。一番ありそうなのはどうやるのかに記述したカスタム化FPGAイメージをローディングするインターフェイスの追加です。これができるとたとえば4チャンネル通信ポートスニファなんかが書けそうです。

 

 

 

 

 

 


ダウンロード



 コード類全部はGitHubにおいてあります。そこには始め方も置いてあります。


2012.6.5 Petteri Aimonen

Email: Petteri Aimonen <jpa_at_hm.mail.kapsi.fi>

抄訳 nobcha@2013
inserted by FC2 system