0 Replies Latest reply on May 10, 2019 1:32 AM by MoTa_728816

    TSoC トラ技基板 UART 入出力サンプル

    MoTa_728816

      普通 Unix や Linux を使用しているプログラマーが組込みマイコンに触って最初にとまどうのがターミナルからの入出力だと思います。

       

      ある程度、メモリーとパワーのある MCU の場合には printf() や scanf() が使用できるのですが、メモリーの制約の強い小型 MCU では、これらなじみの関数が使えない場合が多々あります。

       

      そもそも組込みシステムではターミナルがついていないことの方が多いのかも知れませんが・・・

       

      というわけで、先のサンプルではログ出力だけを行っていましたが、今回は簡単なコマンドをターミナルから受け取って、実行する簡易シェル風のサンプルを作成してみました。

      000-TeraTerm-log.JPG

       

      使用可能なコマンドは led, sum, ave, help の4つだけという豪華な仕様です。

       

      プロンプト "> " に

      led on

      と入力すると、TSoC 上の LED が点灯します。

      led off

      と入力すると、TSoC 上の LED が消灯します。

       

      sum 1 2 3

      と入力すると 1+2+3 = 6 で、sum = 6 と表示されます。

       

      ave 1 2 3

      と入力すると (1+2+3)/3 = 2 で、ave = 2 と表示されます。

      ※なお、計算は整数のみでおこなっていますので、端数は切り捨てになっています。

       

      help

      もしくは、上記以外のコマンドを入力すると、簡単な使用方法が表示されます。

       

      各コマンドは

      do_command() という関数で、そのコマンドを知っているか判断して

      知っているコマンドの場合には、そのコマンドに対応する関数を呼ぶ、

      知らないコマンドの場合には、help() 関数を呼ぶという至って簡単な処理をしていますので、

      新しいコマンドを追加するのも容易だと思います。

       

      moto

       

      P.S. 筆者はバックグランドが Unix/Linux のため、改行は '\n' で統一しています。

      Terminal Emulator の改行コードを '\n' に設定するか、

      TeraTerm の場合であればメニューの

      設定 >  端末の設定

      で、改行コード の 受信(R) を AUTO にして使用してください。

      また、入力キーをエコーさせるために、ローカルエコーにもチェックを

      入れておくと良いと思います。

      002-TeraTerm-端末設定.JPG