Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 1 month ago.
mbedos5を利用した場合のCPUの挙動について
現象
mbedos5を利用してコードを書いた際に,1msecごとに50us程度の割り込み?が発生します. (neopixelを制御するコードを書いていて気づきました). これが仕様(threadの取り回しとか?)なのかそれ以外なのか,知見がなくわかりませんでした.
回避方法があればご教授いただければ幸いです.
再現環境
- mbedos5
- Redbear BLE nano v2
- オンラインコンパイラ(ターゲットをnRF52-DK設定で利用)
再現する最も簡単なコード
simple loop
#include "mbed.h" DigitalOut o(P0_29); int main() { o = 0; while(true) { o = !o; } }
波形
比較実験
- hrm1017+mbed2:発生せず
- bel_nano+mbed2:発生せず
- bel_nano2+mbed2:発生せず
この結果よりmbedos5が関係しているのではと推測しています. nano2以外のnRF52は所持しておりませんので実験できておりません.
正式なやり方ではない(nano2向けをnRF52-DK向けでビルドしている) 事項をフォーラムに書くのは正しくないのかもしれません. その場合は質問の却下等していただいてかまいません.
1 Answer
6 years, 8 months ago.
Nordicが提供しているsoftdeviceがCPU時間を使用しているのではないでしょうか。 STなどのすべてのソースをユーザがコントロールできるマイコンで試してはいかがでしょうか。
mbedを利用しないのであれば、softdeviceの機能を利用しない方法がNordicのwebに出ていたと思います。