ultra96のarm cortex r5で、free rtosを動かす。
最初に、ZYNQのHW側ですが、ultra96のチュートリアルをそのまま実行して、export Hardwareをして、hdfファイルと、bitstreamを準備しておく。
https://www.element14.com/community/docs/DOC-91053/l/01ultra96vivadointro2018201zip
SW側は、Vitisを使って、Hello Worldを作っていく。
HW Platformは、チュートリアル2と同じ方法になる。
https://www.element14.com/community/docs/DOC-91052/l/02ultra96vivadohelloworld2018201zip
File→New→Project→Xilinx→Hardware PlatformSpecificationを選択して、Next。
Project名は適当に、「hw_platform_0」とする。Target Hardwre Specificationは、チュートリアル1で作ったHWを、「Browse」ボタンで指定して、Finishする。
HWは、xxxx.sdkというフォルダ名の中に、*.hdfがあるはずだ。
なければ、チュートリアル01をもう一度実行しよう。
次に、BSPを作成する。
File→New→Board Support Packageを選択する。
Project Name = デフォルト (OSを指定すると名称が変更される)
Use Default location = チェック
Hardware Platform = デフォルト(↑で作ったのが指定されている)
CPU = psu_cortexr5_0
Board Support Package OS = freertos10_xilinx
で、Finishする。
Setting画面がでてくるので、Overview→freertos10_xilinxで、UARTを変更する。
stdin→ psu_uart_1
stdout→psu_uart_1
そして、OKにする。
次に、Hello Worldのプロジェクトだ
File→New→ Application Projectを選択する。
Project name=適当
Use default location = チェック
OS Platform = freertos10_xilinx
Hardware Platform = デフォルト(↑で作ったのが指定されている)
Processor= psu_cortexr5_0
Language=C
Board Support Packge = Use existing freertos10_xilinx_bsp_0(↑で作ったのが指定されている)
で、Nextする。FreeRTOS Hello Worldを指定されているのを確認して、Finishする。
で、完成です。
動作確認は、ボードの電源を入れて、電源Onボタンを押して、
XSDKのSDK TerminalにCOMポートの出力を設定しておき、
XSDKの↓のボタンをおして、bitstreamをProgramボタンを押して転送します。
転送できたら、HelloWorldのプロジェクトを右クリックして、Run As→Launch on Hardware (System Debuffer)で実行します。
以下、ターミナルの結果です。
———————————-
Hello from Freertos example main
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
Rx task received string from Tx task: Hello World
FreeRTOS Hello World Example PASSED
———————————-
以下がプロジェクトファイルになります。