2020/08/22

ultra96 add command line interface on freeRTOS

FPGA   

FPGAの確認する時に、毎回Vitisでプログラムを作っていた。以下の点で良くなかった。

・FPGAのロジックを作るたびに、プログラムを変更する必要がある。

・プログラムの実行するタイミングを変更するのが大変。

そのため、standaloneは、やめることにして、FreeRTOSを導入して、コンソール(CLI)を導入してみた。

FreeRTOSのコンソールは、以下を参考にした。

https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/FreeRTOS_Plus_Command_Line_Interface.html

ソースコードは、こちらを参考にした。

https://github.com/freertos/freertos

コードを調べていくと、ZynqのZC702のDemoプログラムがあったので参考にした。他には、CORTEX_A53_64bit_UltraScale_MPSoCと良さげなディレクトリもあったが、CLIのデモは含まれてなかった。

そして、必要そうなソースコードを自分のhelloWorldのテンプレに追加していって、ビルドしていったらうまく行った!1点UARTのアドレスの定義は、ZC702と、Ultra96では異なるのでxparameters.hを見て変更する必要がある。

追加したファイルは、

・FreeRTOS_CLI.c

・FreeRTOS_CLI.h

・Sample-CLI-commands.c

・serial.c

・serial.h

・UARTCommnadConsole.c

さらに、自分が必要なライトコマンドとリードコマンドをSample-CLI-command.cに追加した。

4byteライトするコマンド

w32 address value

4byteリードするコマンド

r32 address

なぜか起動時にゴミが入っているようで、最初の一行目がおかしいらしい。。。

Vitisで作ったworkspaceは以下においてある。

https://github.com/y38y38/fpga/tree/master/axi-test3/workspace2

おかしな点があったり、もう少し詳しく説明が必要な場合は、連絡ください!

« »