nRF51はまり中

一度もまともに動かせぬまま放置していたBVMCN5103-BKを、久しぶりに引っ張り出してサンプルコードを動かそうとしたらやっぱりこけた話。備忘程度に書き記してみる。

nAN29 1.1の通りに環境構築しようとしても、

  • 最新のnRF518 SDKでは、ble_app_hrs\gcc\にEclipseがインポートできる.projectファイルがないから、ble_app_hrs\直下からプロジェクトをインポートする必要がある。
  • そうするとgcc_build\ディレクトリの位置の指定がずれるので、同時にこっちも変更しなければならない。
  • Makefileのファイル名も、ble_app_hrs.Makefileではmakeが読んでくれないので単にMakefileにリネームするか、プロジェクトのPropertiesのC/C++ BuildのBuild commandの設定でmakeに-fオプションを付けなければいけない。
  • Include Pathがなぜか不十分で、device_manager.hとbootloader_dfu.hが読めていない。
  • なぜか初期状態ではarm-none-eabi-gdb.exeにパスが通ってなくてデバッガが走らない。

などなどいろいろあってうまく動かなかった。

上記の問題をクリアするとビルドが通って実機でデバッグできるようになる。 実際にデバッグしてみるとSOFTDEVICE_HANDLER_INIT()の先でSIGTRAPになってしまう。こちらの記事を参考に SOFTDEVICE_HANDLER_INIT(NRF_CLOCK_LFCLKSRC_RC_250_PPM_4000MS_CALIBRATION, false); としても動かないので、そもそもLFCLKが動いていない? 同じブログの別日の記事を読むと、LFCLKは勝手にたちあがるそうなので、これも違う…。 レジスタの中を確認しても、よくわからない…。

どうしたらいいんやろ…。