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
おかしな点があったり、もう少し詳しく説明が必要な場合は、連絡ください!