マイコンベースの小規模組み込みシステムでお手軽にシェルを実現するNatural Tiny Shell (NT-Shell)ですが、数ヶ月前から更新を予定していました。
というのも、数年前に公開したパッケージは、フラットにソースコードが格納されているのみで、正直言ってどうやって使うのかイメージできるようなものではありません。
当時はおそらく「まぁ、こんな感じでmain関数に組み込んでおけばわかるかな?」くらいにしか考えなかったのですが、今見てみると「これは考えていることが伝わらないよ・・・」という印象。
おまけに、詳しい説明は月刊Interfaceにしか掲載されておらず、そして、そのInterfaceの記事はNatural Tiny Monitor (NT-Monitor)がメインになっているような構成です。
現在、ライブラリのパッケージングを工夫して、コアライブラリファイルと、ユーティリティライブラリファイルを分離する方向で調整を進めています。(調整って言っても、ちょこちょこっとやるだけなんですが・・・)
加えて、幾つかのプラットフォーム向けのサンプルプログラムを同梱することで、具体的な活用イメージをお伝えしようとの考え。例えば、Blackfin向けのDSPのサンプルプログラムは、以下のような呼び出し関係を持ちます。
プラットフォームを初期化してNT-Shellを呼び出せば、もうばっちりシェルインターフェースを持つ立派な組み込みシステム!というパッケージにしようという考え。
やるやると言いながらなかなか公開していないNT-Shellですが、幾つかのバグフィックスも含める予定ですので、今しばらくお待ち頂ければ幸いです。
北京の技術者です。NT-Shellをいつも開発の有力なツールとして使っています。どうもありがとう。今は会社のプロジェクトでNT-ShellをToppers/ASPに組み込んでみたいと思います。更新を期待しています。
返信削除sunさん:NT-Shellを会社のプロジェクトで御利用頂けるなんて本当に嬉しいです。ありがとうございます。
削除NT-Shellですが、新規採用マイコンのデバッグ環境として、
返信削除便利に使わせてもらってます
また、新バージョンも期待して待ってます
1点助言を頂きたいのですが、マイコンをリセットすると
シェルの入力履歴が消えてしまうので、ROMに履歴データを
保存できないか検討してます
コードをきちんと読んでいないので、検討違いかもしれませんが、
ntshell_initの第一引数に指定する、ntshell_t型インスタンスの
historyメンバーをシャットダウン時にROMに保存して、
シェル起動後に、ROMからそのデータを復元すれば、
意図した動作になるのでしょうか?
これは個人的な希望ですが、シェルの入力履歴の操作(削除、保存、復元)の
公開APIがあると、扱いやすいかなと思いました
それでは、これからもがんばってください
esokkaさん:はじめまして。ROMに履歴データを保存するアイデアはとても良いですね。お話の通り、text_historyが履歴を管理するモジュールで、再起動時にtext_history_writeを呼び出せば履歴を作り出す事ができます。この動作はntshell.cでもENTERキーを押した時に行なっているものとも同じです。シェルの入力履歴の操作APIは少し検討します。別の方からは、「入力補完を履歴からだけでなく、システムが定義したコマンドでも行ないたい」という要望もありました。esokkaさんのお話とこの入力補完の話を整理して統合すれば、もっと使いやすい物になりそうです。大変有用なフィードバックに感謝します。ありがとうございます。
削除