Vivado/Vivado HLS/ peta linux

  • HWロジックの開発環境:Vivado
  • HWロジックの高位合成(HLS:High Level Synthesis)開発環境:Vivado HLS
  • SW開発環境:peta linux

という位置づけらしい。

今日は時間切れだが、今後は下記のサイトを参考にしてツールの使い方を学ぶ。

qiita.com

www.tech-diningyo.info

公式ドキュメントでは、VIvado Design Suite ユーザガイド

https://www.xilinx.com/support/documentation/sw_manuals_j/xilinx2017_4/ug910-vivado-getting-started.pdf

が、見るべきドキュメントらしい。

ESP-IDFの WiFi サンプルが動いた!

WiFiサンプルは、

  • ESP32がアクセスポイントになるもの
  • WiFiのクライアントとしてAPに接続するもの

の2つが用意されていた。どちらも問題なく動いた。(嬉

 

ただし、VSCode からだと example プロジェクトとしてメニューに表示されず、import できなかった。ターミナルからコマンドラインでビルドし、USBシリアルでフラッシュROMに書き込み、動作確認を行った。

 

大きく嵌まることなく、いい感じで進んでいる。

threadripper と ubuntu でのスクリーンショット

プログラムをビルドするとき、結構時間がかかる。そんなとき、 make コマンドに -j4 などといったオプションをつけると、make コマンドは4スレッド起動して並行処理してくれる。

 

開発用マシンとして先日組み立てたPCでは AMD ryzen threadripper 2050 なので、32スレッドをサポートしている。なので、 -j32 とオプションをつけて make してみた。

オプション無しと比べると雲泥の差で早く終わった!

f:id:kzono:20190120021546p:plain

threadripper で make -j32

-j オプションを指定しないとCPUが1つしか使われないが、-j32 を指定すると上記のグラフでわかるように、全部のCPUコアが同時に使われるため爆速となった。(^^)/~

 

Ubuntuスクリーンショットを取るには、Psc(Print Screen)キーを押せばよい。

ウインドウを指定するには、対象ウインドウを選択した後、 Alt + Psc を押す。すると画像ファイルがホームディレクトリ下のピクチャディレクトリに作成される。

esp-idf と freeRTOS

ESP32 のたくさんある機能(特にネットワーク関連)を使うには、フレームワークとして ESP-IDF, そのコンポーネントとして FreeRTOS を使うのが良さそう。

 

もちろん、ツールチェーンとBSP(ペリフェラルのドライバソースコード)だけ用意し、他は自分で書く、といったマイコンチックな開発もできるはずだが、折角 ESP32 を使うならば無線ネットワーク(WiFiBluetooth)で http や websocket などを使いたい。その場合は、RTOSフレームワークといった使えるエコシステムに乗っかったほうが良い。

FreeRTOSはAWSに正式採用されているし、ESP-IDF のサンプルには AWS-IoT 用のものも含まれている。まだ動かせてはいないが、大変楽しみである。

ESP-IDF と platform.io

esp-idf のサンプルは、インストール後すぐにビルドできた。

 

一方、platform.io が ESP32に対応していることを知った。その上、VSCode に platform.io 用の extention があることもわかった。

platformio.org

kunsen.net

発見した記事は esp-idf ではなく arduino-IDE なものだったが、ちゃんと設定さえすれば、VSCode + platform.io extention + esp-idf な環境を作れるはず。

GUI なアプリのネタ

コマンドラインなツールに、GUIの皮を被せる。

  • ファイルの文字コード変換。ディレクトリをしていすると以下のファイル一式を変換する。
  • フォルダを指定すると、容量が大きい順にファイル名を表示する。
  •  Excelシートからレポートを作成するスクリプトGUI

RasPi やESP32 といったデバイスを操作するためのGUI

ESP32 用の公式フレームワーク

本家の Getting Started にしたがって、ESP32用のツールチェーンとライブラリをダウンロードしてインストールしていた。今日はその中の examples をビルドしようとして驚いた。 hello_world なサンプルプロジェクトが、make しようとするとビルドメニューが表示されたのだ。とんでもないくらいの多機能なメニュー項目が並んでいた。

各種ペリフェラルのサンプルプロジェクト、bluetooth, wifi, FreeRTOS, security,などなど。

サンプルの数、設定項目の数が多いので、理解すのには時間がかかりそうだが、これらのサンプルをもとにいろんなアプリケーションを作れそうだ。楽しみ。