FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://sites.google.com/site/fpgadevelopindex/

FreeRTOSをZedBoardで動作させる(1. チュートリアルを実行する)

以前、FreeRTOSを調査したときは、RISC-Vのターゲットとして調査したものだった。ところが、調査を進めると普通にFreeRTOSはZynqチップにも移植されており、Cortex-A9でも動作させることが出来るらしい。

msyksphinz.hatenablog.com

今回はRTOSの勉強の最初のステップとして、ZedBoardのメインCPUであるARM Cortex-A9上でFreeRTOSを動作させるステップについて調査する。

1. FreeRTOS ソースコードのダウンロード

FreeRTOSのソースコードは、以下の公式ウェブサイトからダウンロードできる。

www.freertos.org

上記のページから、ダウンロードサイトをクリックし、"Click to download the latest official release from SourceForge"をクリックするとSourceForgeのサイトに接続されるのでそれでダウンロードできる。

www.freertos.org

ダウンロードしたらzipファイルを回答する。自己解答形式で圧縮されている。

2. ZC702用のディレクトリをXilinx SDKで開く

提供されているデモディレクトリはZC702用のものだが、ZedBoard向けにも動作させることが出来る。

FreeRTOSv9.0.0\FreeRTOS\Demo\CORTEX_A9_Zynq_ZC702\がそのディレクトリだ。

XilinxSDKを開いて、当該ディレクトリをインポートする。今回は、Xilinx SDK 2016.3を利用した。

f:id:msyksphinz:20170117020107p:plain

Import Projectで、上記のZC702用のディレクトリを指定する。自動的にプロジェクトが認識され、取り込まれる。

f:id:msyksphinz:20170117020029p:plain

Finishをクリックすると、プロジェクトが取り込まれた作業画面になる。

3. ZedBoardにFreeRTOSをダウンロードし、動作させる

まず、TeraTermか何かでシリアルコンソールを用意しておく。ZedBoardに接続されているポートで、転送速度は115200を選択しておく。

f:id:msyksphinz:20170117020610p:plain

Xilinx SDKに戻り、Project ExplorerからRTOSDemoを右クリックし、Debug AsDebug Configurationを選択する。

f:id:msyksphinz:20170117020221p:plain

そのままDebugボタンでデバッグが開始される。いったんmain()の中でブレークポイントにより停止するのだが、それを確認してからResumeを実行する。

f:id:msyksphinz:20170117020436p:plain

TeraTermを確認すると、FreeRTOSが立ち上がったのが確認できた。

f:id:msyksphinz:20170117020813p:plain

ためしにtask-statsなどと入力すると、タスク一覧らしきものが出てきた。これはps aux的なものだろうか?

f:id:msyksphinz:20170117020916p:plain