問題タブ [zephyr-rtos]

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 投票する
0 に答える
933 参照

c++ - Zephyr OS で BLE メッシュの長距離を有効にする方法

私は Bluetooth メッシュ ネットワーク ソリューションに取り組んでおり、範囲を広げる必要があります。

nrf52840 DK と nrf52840 ドングル、nrf5SDKforMeshv310 を使用しています。Nordic Devzone で、メッシュ用の NRF SDK で BLE 長距離モードを有効にするソリューションを見つけました。

ノート!ソリューションが Bluetooth Mesh 標準に準拠していないことは承知しています。

次の変更が nrf5 SDK for Mesh v310 に適用されました。

  1. Advertise.c では、set_default_broadcast_configuration() が radio_mode を変更して、RADIO_MODE_BLE_1MBIT の代わりに RADIO_MODE_NRF_62K5BIT を使用するようにしました。
  2. scanner.c で、scanner_config_reset() は、RADIO_MODE_BLE_1MBIT の代わりに RADIO_MODE_NRF_62K5BIT を使用するように scanner_config_radio_mode_set() を変更しました。
  3. radio_config.c では、radio_config_config() が最後に次のコードを追加しました。 /li>
  4. Broadcast.c では、time_required_to_send_us() が追加されました。

    同じファイルで RADIO_PREAMBLE_LENGTH_LR_EXTRA_BYTES = 9 を定義

    radio_mode_to_us_per_byte[] の 5 番目の要素を 128 から 64 に変更しました。

    ノート。長距離モードのラベルが間違っていること。ヘッダー ファイルでは RADIO_MODE_NRF_62K5BIT と呼ばれていますが、代わりに 125kbps BLE ロング レンジ モードに対応しています。

残念ながら、リレーに関しては、Zephyr を使用してフレンド機能をサポートするように求められており、NRF SDK に変更を適用した後、Zephyr はメッセージをリレーしていません。Zephyr 側で簡単な調査を行ったところ、上記の NRF SDK 用の BLE 長距離用のコード ビットが配置されており、次の Kconfig 設定を使用して有効にできることがわかりました。

しかし、Zephyr 側でメッセージが中継されていることはまだわかりません (J-Link RTT Viewer を使用)。また、Bluetooth とメッシュのログ レベルを DEBUG に上げようとしましたが、メッセージが不正な形式または拒否された兆候は見られません。

Zephyr側でどの方向に掘り下げる必要があるか、誰かがアイデアを持っているかもしれませんか?

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

gcc - リンカー スクリプトは常に変数をゼロとして解釈しますか?

以下に多くのログやその他のものがあるので、パンチラインにスキップします。リンカー スクリプトがあり、その中で変数を設定しており、これらの変数を使用してメモリ セクションを設定しています。しかし、スクリプトで何を設定しても、これらの変数は常に 0 に設定されているようです。

リンカー スクリプトを作成して、組み込みシステム アプリケーションの出力 elf に 2 つの新しいメモリ セクションを追加しようとしています。既存の RAM メモリ セクションの最初のビットを切り取って、それに応じて RAM のサイズを変更し、そこに新しいセクションを配置しようとしています。

以前は、nrf52840 開発ボードとこのライブラリを使用して、サンプル アプリケーションの 1 つのリンカー スクリプトを次のように変更できました。

そして、これは完全に機能します。最近、Zephyr RTOS を使用して nrf9160 に移植する必要があったため、このリンクで Zephyr の上に構築された NordicPlayground nrf ライブラリを使用し始め、そこにあるサンプル アプリの 1 つを変更しました。これと同様の手法を使用して、そのボードと環境用にプログラムを書き直そうとする際に、以前と同じように変更して、Zephyr リンカー スクリプトで同様のことを行いました。ビルド プロセスは、私が行ったことをどうにかして取得build/spm/zephyr/linker.cmdし、ビルド出力フォルダーにファイルを生成します。

ただし、これら 2 つのスクリプトは同じように動作するはずだと思っていましたが、Zephyr RTOS で nrf9160 バージョンをコンパイルおよびリンクしようとすると、次のエラーがスローされます。

これは私にとって本当に奇妙です。なぜなら、この ouptut は長さが 0 で、両方とも address から始まるようNEWSECTION1に見えるからです。これをさらに混乱させるために、またはそのようなものに置き換えると、メモリセクションが長くなります。つまり、このリンカースクリプトで変数を使用していることが無視されるか、0 に設定されているというエラーのように見えますか? どんな助けでも大歓迎です。NEWSECTION20x0__NewSection1Length0x5000x500B

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

dts - ゼファーでのyamlファイルの使用は何ですか

ゼファーを理解し始めた

を調べるsamples/basic/blinkyと、ファイルがありますsample.yaml

ドキュメントから:

バインディングは YAML 形式のファイルです。.dts ファイルは、利用可能なハードウェア デバイスを記述しますが、どの情報が役立つか、またはどのような構成出力 (#define) を生成する必要があるかをシステムに通知しません。バインディングが提供する

重要性を理解するために、sample.yaml をホーム フォルダーに移動してビルドし、led 点滅アプリケーションをフラッシュすると、点滅します。

アプリケーション ディレクトリに yaml ファイルを配置する必要はありますか? また、必要な場合はいつですか?

この情報

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

cbor - Zephyr を使用した tinycbor モジュールのビルド

Zephyr 2.1.0 の zephyr hello_world アプリケーション サンプルで tinycbor の使用をテストしようとしています。以下のフラグを prj.conf に追加すると、make が成功します。ただし、tinycbor のソースを引き込んでいるようには見えず、参照も認識されません。

私のインストールには west があり、tinycbor ソース ファイルは "$ZEPHYR_BASE/../modules/lib/tinycbor" にあります。make システムで tinycbor を見つけてビルドするにはどうすればよいですか?

prj.conf: