TY51822R3でのsoftdeviceをs130 v2を利用する件ですが、アプリのバイナリのobj-dumpをしたところ、
SWI2_IRQHandlerがデフォルトのままでしたので、BLEスタックのイベントはSWI2_IRQのコールバックで処理されますので、
haltしたようになっていたようです。
mbedのオフラインで提供される、startup_NRF51822.oおよび、そのソースのstartup_NRF51822.Sでは、
.long WDT_IRQHandler_v /*WDT */
.long RTC1_IRQHandler_v /*RTC1 */
.long QDEC_IRQHandler_v /*QDEC */
.long LPCOMP_IRQHandler_v /*LPCOMP */
.long SWI0_IRQHandler_v /*SWI0 */
.long SWI1_IRQHandler_v /*SWI1 */
.long SWI2_IRQHandler_v /*SWI2 */
.long SWI3_IRQHandler_v /*SWI3 */
となっておりました。
しかし、nordicのSDKや、従来のmbedオフラインコンパイラ環境では、
DCD WDT_IRQHandler ;WDT
DCD RTC1_IRQHandler ;RTC1
DCD QDEC_IRQHandler ;QDEC
DCD LPCOMP_IRQHandler ;LPCOMP
DCD SWI0_IRQHandler ;SWI0
DCD SWI1_IRQHandler ;SWI1
DCD SWI2_IRQHandler ;SWI2
DCD SWI3_IRQHandler ;SWI3
DCD SWI4_IRQHandler ;SWI4
DCD SWI5_IRQHandler ;SWI5
となっております。
そこで、今までのソースを利用して、ビルドしましたところ、s130 v2でもBLE接続イベントコールバックまで実行するようになりました。お騒がせしてしまいすみませんでした。
お世話になっております。
TY51822R3で、表題のとおり、S130 v2を利用で、問題が発生しておりますので、なにか対応があればお教えいだきたく、ご質問させていだきます。
オンラインコンパイラで、TY51822R3のプラットフォームのプロジェクトを作成し、ライブラリを最新のもの (mbed:130, BLE_API:1208, nRF51822:638)にしますと、softdeviceは、S130 v2になります。 これで、ビルドし、実行しますと、BLEのアドバタイズはできて、iPhoneなどに認識されるのですが、 接続を試みると、TY51822R3は、接続処理で、動作停止してしまいます。(タイマー割り込みなどが停止してしまう)
S130 v1を利用するリビジョンへ、各ライブラリを戻して、ビルドした場合は、問題がなく、iPhoneとのBLE接続ができます。
そこで、mbedをmbed-devにして、オフライン(GCC)でビルドして、デバッグしているのですが、BLE接続時に、sdの関数コール(どの関数か不明)でリターンしないようです。(DEBUGマクロを定義し、DEVICE_STDIO_MESSAGES=1としています。) シリアルコンソールでエラーメッセージは出力されていません。 さらに、調査するには、どのような事をしたらよいでしょうか?あるいは、そもそも、TY51822R3は、S130 v2に未対応なのでしょうか?