FreeRTOS
PSoC
PSoC5
PSoCDay 20

続々 PSoC5LP で FreeRTOSv9.0.0 を動かす

PSoC Advent Calendar 2017 20 日目の記事です

13日目の記事の続きです。

実行環境について

  • Windows10 Home or Professional
  • PSoC Creator 4.1
  • CY8CKIT-059 PSoC® 5LP Prototyping Kit

UART テストってなにやってるの?

前回みた UART のテストは何をやっているのでしょうか。

11.PNG

優先度を変えた二つのタスク(COMTx, COMRx)を生成している。
ここでは、COMTx より、COMRx の優先度が高いことを覚えておくといいでしょう。

とりあえず、vComTxTask の中身をみてみます。

12.PNG

これ簡単に、何をしているかを言うと、"A" -> "Z" までの文字を送信して、一文字送信するたびに
LED をチカチカ、その後はランダム時間待つ、という処理をしています。
待つとカーネルのスケジューラが動いて、次のタスクに CPU を割り当てます。

余談ですが、ソースコード表示している横のペインで目的の関数をダブルクリックすると、
それが記述されている場所にジャンプします。こりゃぁ便利〜

次に、vComRxTask の中身をみます。

13.PNG

おおまかに言って、
受信した文字を、一文字ずつ期待するものと合致するかチェックして、合致すれば LED チカチカして、次の一文字の比較をする。合致しない場合は、送信されてくるのを待つ、ということしている。

ここまでの構造を整理すると、

送信タスクは、A->Z まで送って待つ
受信タスクは、A->Zまで受信できたかチェックする

というふうになっている。

どうやら、受信タスクは、送信タスクが送ったものをそのまま受信することを前提としている
みたい。(いわゆるループバックテスト)

また、それぞれのタスクは、それぞれ別の L チカを行なっていますが、今回の Prototyping Kit には
自由に使える LED が一つだけしかありません。

次回は、どこのご家庭にもあるブレッドボードと、LED 二つ、それに、適当な電流制限抵抗を使って、
それぞれのタスクの動きを可視化してみます。