問題タブ [nrf51]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
97 参照

c++ - nrf51882a を使い始める

現在、北欧の開発キットから始めようとしています。開発を開始するために必要なすべてのツールをインストールしました。また、次のファイルをいくつか取得します。

  1. ドライバーのコード?& 機能を含むヘッダー ファイル。
  2. これらのドライバーのいくつかを使用したいくつかの例

私が今直面している主な問題は、ドライバーのコードを理解できないか、その機能を使用できないことです。ドライバーを使用した図や段階的な例をどこから入手できるかわかりません。それを見つけるのは難しいですが、これらのドライバーまたは利用可能な外部ドライバーの使用方法、またはこれらのコードの処理方法を知りたいです

0 投票する
1 に答える
781 参照

bluetooth-lowenergy - Nordic nrf51822 と S130 がアプリケーション コードに到達しない

Emblocks と OpenOCD を使用して NRF51822 チップを実行しようとしています。デバッガー インターフェイスは、SWD をサポートする Discovery ボードの ST-Link です。

ブランク デバイスをプログラムすると、すべて正常に動作し、プログラム フローはメイン関数に到達します。ただし、S130 をフラッシュすると、プログラム フローはメイン関数に到達しません (他のアプリケーション コードはありません)。

アセンブリ コードを確認したところ、S130 が (arm asm 着信) WFE および bn 命令でスタックしています。私の知る限り、何かを行う前に割り込み、イベント、またはウェイクアップが発生するのを待っているようです...これは予想される動作ですか、それとも何か間違っていますか?

私が接続した唯一のピンは、SWD ライン (2 ピン) GND と VDD (3 ボルト) です。

0 投票する
2 に答える
498 参照

c - nrf51 タイマー ドライバー コードのバグ

現在、nrf51 開発キットを使用してアプリケーションを作成しようとしています & タイマー ドライバーを使用しようとしていますが、ドライバーの C & H ファイルを甘やかすと、エラーが発生しました:

エラー#1は、「空の初期化子は、境界が指定されていない配列には無効です」と述べています エラー#2は、式が必要であると述べています

これまで、main.c コードでこれらの関数を使用していませんでした。さらに使用するヘッダー ファイルを追加しただけです。

0 投票する
1 に答える
120 参照

arm - Cortex M0 ハードフォールト。BLCハフマン

私のアプリケーションでは、Nordic Semiconductor の nRF51422 IC 内で実行されている Cortex M0 を使用しています。

Basic Compression Libraryを使用しようとすると、LZ と Rice が機能しましたが、Huffman_Compress でハードウェア障害が発生しました。プロセッサがアラインされていないメモリ アドレスにアクセスしていると思われますが、どうすれば確認できますか?

エラーを見つけることができるかどうかを確認するために、コードを簡単に見ていただけますか? 開発者のウェブサイトからのコードは次のとおりです。このコードでは、プロセッサが RTT を使用してハングする前に印刷を試みましたが、処理は終了しました_Huffman_Hist( in, sym, insize );が、関数には入りませんでした_Huffman_MakeTree( sym, &stream );

前もって感謝します!=)

0 投票する
0 に答える
80 参照

c - ファイルで使用されている typedef 構造体配列を他のファイルと共有する

具体的には、1 つのファイルと main.c から、ファイル間で typef 構造体を共有できませんでした。要約すると、私は次のことを持っています:

pagos.h:

pagos.c:

ここではtrama_tpvとarray_trama_tpv[TAMCOLAPAGOS]を使用しています。これは、いくつかの関数を使用してtrama_tpvで配列を埋めるためです。

main.c:

編集済み: pagos.c で Bluetooth フレームを収集するため、配列を埋める方法を説明するのは少し複雑です。これは、nRF51 Bluetooth 開発キット用のファームウェアとしてコンパイルされたコードです。問題は、LCD-TFT ディスプレイに印刷するために独自のライブラリを使用してimporteとusuarioを印刷できるため、pagos.c で情報を取得することです問題は、配列に格納されたデータで配列を印刷するために配列の値を取得する必要があることです。bool posicion_ocupadaを使用します。書き込み可能な配列位置を知るため。問題はコードのターゲットに関するものではありませんが、Java では objetc を作成するときに public を使用するだけで十分ですが、CI では何かが欠けている必要があるため、typedef 配列構造体を共有するにはどうすればよいでしょうか。リンクとコンパイルには Keil を使用していますが、これはうまく機能しているはずです。とにかく、私はXCODEで孤立した例をコーディングしようとしていますが、結果は同じです.bool、int ...を共有できますが、構造体の配列は共有できません:

孤立した例: main.c:

test.c:

test.h:

私が得る出力は次のとおりです。

問題は、同じ配列でなければならないのに、なぜ同じ結果が得られないのかということです。これは可能ですか?init() はすべてのブール値を false に設定する必要がありましたが、このように動作していません。


そして、私はそれを関数で使用しようとします。そのため、 array_trama_tpv[0].posicion_ocupadaがtrueに設定されているいくつかのブレークポイントの設定を確認しましたが、配列に沿って配列のすべての posicion_ocupada 値を出力すると、それらはすべて false になります。興味深いことに、int、bool などの変数を共有できますが、これでは値を共有できません。

前もって感謝します。私はここから多くの投稿をチェックして試してみました。

よろしく、

イヴァン

0 投票する
1 に答える
5121 参照

c++ - GCC と手動の makefile を使用したインクリメンタル ビルド?

私はNRF51822 Bluetoothチップにコーディングしています。EclipseでGCCと自分で管理しているメイクファイルを使用しています。

私の問題は、ビルドを押すたびにすべてがコンパイルされ、かなり時間がかかり始めていることです。私はメイクファイルの作成と保守の経験があまりないので、代わりにインクリメンタルビルドを行うためにどこから始めればよいかわかりませんか?

私のmakefileは次のように構成されています(たくさんあることは知っていますが、これを自分で作成したことはありません-チュートリアルで見つけたので、何が関連していて何が関連していないのかわかりません:-) ):

0 投票する
3 に答える
837 参照

c - MCU-GPIOピンのステータス(値)をEmbedded Cの10個の数字の配列に保存する方法は?

MCUのGPIOピンの状態を読み取り、10個の数字の配列に繰り返し格納したいです。配列がいっぱいになると、値を左にシフトし、新しい値を [9] 番目の添字位置に格納して続行する必要があります。

これを Embedded C のコードとして実装するにはどうすればよいですか?

0 投票する
2 に答える
893 参照

gcc - gcc は keil-arm コンパイラからコンパイルされたオブジェクト ファイルでコンパイルできますか?

プロジェクトチップ:nordic nrf51822 256KB NRF51 SDK バージョン:6.1

ライセンスの問題により、プロジェクトを Windows キールから OSX GNU に変換しています。

以前のプロジェクトで keil-arm コンパイラによって作成された .o ファイルがいくつかあります。私はそれらのcファイルを持っていません。

プロジェクトをコンパイルしようとしましたが、それらの .o ファイルをリンクしようとすると、このようなエラーで終了します。

gcc は keil-arm コンパイラからコンパイルされたオブジェクト ファイルでコンパイルできませんか?

/usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm- none-eabi/bin/ld: Dwarf エラー: Dwarf バージョン '0' が見つかりました。このリーダーはバージョン 2、3、および 4 の情報のみを処理します。....\RedCarrot_ver2(c)\afe4403.c:(.text+0x0): _printf_d への未定義参照' /usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/ gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: Dwarf エラー: Dwarf バージョン '11822' が見つかりました。このリーダーはバージョン 2 のみを処理します、3および4の情報。....\RedCarrot_ver2(c)\afe4403.c:(.text+0x0):_printf_int_dec への未定義参照' /usr/local/gcc-arm-none-eabi-4_9-2015q2/bin/../lib/gcc /arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: Dwarf エラー: Dwarf バージョン '23598' が見つかりました。このリーダーはバージョン 2 のみを処理します。 3と4の情報。afe4403.o: 関数で heartpulse ': ..

0 投票する
3 に答える
1036 参照

bluetooth - NRF51822 BLE UART にはマザーボードが必要ですか?

Arduinoボードとやり取りするiOSアプリに取り組んでいます。Arduino側では、 HM-10 /11ファームウェアに実装された「透過的な」シリアルを使用しています。したがって、HM-10/11 RT/TX ピンを Arduino のピンに配線するだけで、完璧に機能し、特定の特性に書き込んでデータを送信し、特定の特性にサブスクライブ/読み取りして BLE モジュールから読み取ることができます。Arduino スケッチで SDK または BLE ライブラリを使用する必要はなく、ブートローダーを変更する必要もありません。

NRF51822 BLE チップをサポートする必要があります。Nordic はファームウェア ソースに UART シリアルを実装しましたが、私の NRF51822 ボード ( eBay0001で購入) では、サービス00020003特性が表示されないため、デフォルトではチップにアップロードされません。NRF マザーボードを購入し、このファームウェアをコンパイルしてアップロードする必要がありますか? この開発キットを購入しなくてもできますか? USB のみ、または BLE 経由でもアップロードできますか?