DhrystoneでRaspberry Pi Picoのベンチマークを取る

過去数回の投稿記事でいよいよ準備が整ったので本題のRaspberry Pi PicoのベンチマークをDhrystoneでとってみました。

まずはプロジェクトの雛形を作っていきます。前の投稿と同じように「Getting started with Raspberry Pi Pico」”Chapter 8. Creating your own Project”をベースに新規プロジェクトを作っていきます。

                                 

Dhrystoneプロジェクト 準備

まずプロジェクト用のディレクトリを作ります。

私は./pico_exam/dhrystoneとしました。

そのディレクトリーに前にSTマイクロマイコンでのDhrystoneベンチマークをとるときに使ったdhry_1.c、dhry_2.c、dhry.hをコピーします。

同じディレクトリーに”CMakeLists.txt”を作成します。

“pico_sdk_import.cmake”を”pico-sdk”からコピーします。

コード変更

時間測定関係などが動かないので、そこを修正していきます。

修正するのは”dhry_1.c”だけです。

まず先頭にPico関連ライブラリーをインクルードします。

関数定義が重複するので”malloc”のところをコメントアウトします。

“Too_Small_Time”、”Begin_Time”、”End_Time”、”User_Time”をそれぞれ先頭文字を小文字にしてPico向け変数で定義しました。

“main()”関数の先頭に”stdio_init_all();”を挿入します。これを入れるとprintfが動くようになります。

scanfも動きそうですが、うまく動かなかったので早々と諦めて繰り返し回数を決め打ちにしています。繰り返し回数はNucleoのときと同様に1,000,000回です。

時間測定コード Picoに対応

Raspberrypi.orgサイトにある「Raspberry Pi Pico C/C++ SDK」を参考に、時間測定コードを直していきます。

begin_Time、end_Time、user_Timeところを追記して時間測定できるようにしています。

最後にMicroseconds、Dhrystones_Per_Secondを計算していますが元のUser_Timeが秒単位でuser_Timeがμ秒単位なので1,000,000で割っています。

build & flash

buildを行います。

「BOOTSEL」ボタンを押しながらUSBケーブルを接続します(電源投入)。

VNC Viewerを使うなどしてGUIで書き込んでもいいですが、今回はターミナルから書き込んでみます。

Picoがリムーバルディスクになっているのでそれをマウントします。

“dhrystone.uf2″を書き込みます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です