Builderで目的の評価ボードのSDKをダウンロードして、SDKからサンプルのコードをインポートすると自動的にCMSISが付いてきます。CMSISファイル今回は、SysTickタイマーを使用しますが、core_cm0plus.hにSysTick_Config()と言うインライン関数が定義されています。この関数は、コアクロックで動作しているシステムタイマーで、このカウントレジスタを設定しSysTickタイマーをスタートします。使い方は、SysTick_Config()の引数にカウント値を入力するだけです。コアクロックでカウント値をカウントダウンしていき、0になると、SysTick_IRQnに割り込みが入ります。今回は、サイクル数を計測するだけなので、このカウント値は適当な値を入力するだけでOKです。計測する時間以上のティック数を入力する必要があります。しないと、計測する時間未満でSysTick割り込みが発生してしまいます。割込みを利用することで、OSのコンテキストスイッチなどにも利用可能です。参考Cortex-M0+/M3/M4コアは、24bitシステムタイマーなので、0xFFFFFF(16777215d)以上の値を入れると、エラーが返ってくるので、要注意です。使い方は、以下のようになっています。エラーサイクルの計測では、早速サイクルの計測をやってみます。Worldのサンプルプログラムをインポートします。今回は、SDKのインポートなどの詳しい方法は、割愛します。他の記事を参考にしてください。サイクルの測定には、簡単な次のようなコードを用意してみました。Worldのmain()内を以下に書き換えて実行してみてください。実行すると、for文のループ回数に掛かるサイクル数が計測されます。forループ回数を多くすれば、サイクル数も比例して大きくなります。SysTick_Config()で、システムタイマーの設定とスタートを同時に行っています。タイマーのストップは行なっていませんが、SYsTick.CTRLレジスタのENABLEビットをクリアするとストップします。SysTick割り込みSysTick_Configに設定するティック数で、SysTick割り込みが発生するので、こちらの使い方もみて見ましょう。サンプルコードがCMSISのドキュメントに記載されています。while(1);}まとめいかがでしたでしょうか。CMSISを使って、簡単にサイクル数を計測できます。〜に、こう言ったサイクル数を計測したい時があるので、参考にして見てください。count値のCPUレジスタがあるので、デバッガ上で確認できるのですが、Cortex-M0/M0+では、デバッガでは確認できないので、SysTickを使うと便利です。siteプロフィールマイコン大好き、マイコンで何でも出来るをモットーにどんどん記事をアップしていきたいと思っています。マイコンは特に、NXPマイコンが好きです。KinetisやLPCマイコンを中心に幅広く投稿していきます。横浜のNXPファンお問い合わせは、こちらから。(7)ブログをメールで購読メールアドレスを記入して購読すれば、更新をメールで受信できます。