問題タブ [nxp-microcontroller]
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.
c - C 構造から選択
マイクロコントローラーに多言語メニューを実装したいのですが、方法がわかりません。
より多くのサブ構造を持つ構造言語 (英語、スロベニア語、ドイツ語など) のいくつかのアイデアを考えました。サブ構造には次のものがあります。
しかし、メインクラスには言語を設定する関数があるため、構造体にアクセスする方法がわかりません。
例:
構造体から値を呼び出す
c - LPC1769 マイクロコントローラでのバルク転送を備えた USB ベンダー固有クラス
LPC1769 マイクロコントローラーでバルク転送を使用して USB ベンダー固有のクラスを達成しようとしています。USB生体認証モジュールを入手し、デバイス情報を抽出しました。したがって、次の記述子を構成しました。
現在、私の USB 生体認証デバイスと LPC1769 デバイスは、同様のタイプのデバイス情報を持っています (このコマンド「lsusb -v」を使用して Ubuntu PC から確認しました)。シンボル リスト) をデバイス マネージャーに表示します。USB 生体認証デバイスは、「ユニバーサル シリアル バス コントローラー」の下に表示されます。
ドキュメント、フローチャートが見つかりません。ベンダー固有のクラスで通信を確立する方法を教えてください。
USB 生体認証デバイス情報
私の LPC1769 USB デバイス情報
よろしくお願いします。
c - タイプ uint8_t A[8] = uint8_t B の 2 つの変数の内容を比較します
2 つの値を比較したい 両方ともタイプ uint8_t A[8] = uint8_t B 両方に同じデータが含まれていますが、1 つの変数は continat であり、もう 1 つは 1 つのブロックであり、もう 1 つは配列です。
android - Nexus 5X および Nexus 6P の UICC への NFC オフホスト ルーティング
OffHostApduService で宣言する AID の NFC オフホスト ルートとして UICC を使用するように、Nexus 5X (ブルヘッド) または Nexus 6P (Angler) で NFC チップセットを構成しようとしています。
編集 2016 年 1 月 17 日: この質問を更新し、Nexus 6P もテストする機会があり、5X とまったく同じように動作するため、Nexus 6P も含めました。そのため、5X で得られたこれまでの調査結果はすべて 6P にも当てはまるようです。
ここでのこの質問に対するMichael Rolandの回答とNexus 6(shamu)のおかげで、Nexus 5(ハンマーヘッド)でこれを行うことができました( GithubリポジトリのNexus 6 bcm2079x構成を参照)。
ただし、Nexus 5X (および 6P) は異なるようです。
- ifixit の分解によると、Nexus 4、5、6 のような Broadcom bcm2079x ではなく、NXP (PN548) の新しいチップセットが含まれています。
- デバイスが Mifare Classic タグを読み取ることができ (Broadcom チップセットは Mifare Classic をサポートしていないため、NXP チップセットが含まれているという仮定を強化します)、デバイス ファイル
/dev/pn548
が存在することを確認できます。 - しかし、奇妙なことに、下に
libnfc-brcm.conf
と構成libnfc-nxp.conf
ファイルの両方が含まれています/system/etc/
(これらは、私の Github リポジトリにもあります)。
出発点として、両方の構成ファイルのトレース/ログ設定を変更しました
- brcm
APPL_TRACE_LEVEL
に設定0x05
- nxp を に
NXPLOG_*_LOGLEVEL
設定します0x03
不思議に思ったのは、BrcmNfcJni
Nexus 5 および 6 で見たものと同様に、起動時に logcat に多くのメッセージが表示されることでした (これは、NXP チップセットを搭載したデバイスでは予期していなかったものです)。
編集 1: ソースから、これらの「BrcmNfc ..」ログ メッセージがlibnfc-nciライブラリのコードから出力されることを知りました。以前のデバイスでは、NCI ( N FCコントローラー インターフェイスの略) は Broadcom チップセットでのみ使用されていました (これが、コードがログに " Brcm " というプレフィックスを使用する理由だと思います)。しかし、どうやら新しい NXP チップセットもこの標準化されたインターフェイスを使用するようになり (これは良いことです)、NXP チップセットでも「Brcm...」ログ メッセージも表示されるようになりました。
編集 3: 両方の電話 (Nexus 5X と 6P) には、ファームウェア バージョン 10.01.19 (少なくとも Android 6.0.1 リリース) を実行するNXP PN548/C2 NFC チップセットが含まれているようです。
もちろん、NXP pn54x halimpl からの出力もあります。
そのため、最初の開始としてlibnfc-nxp.conf
、コメントがUICCまたはSWPへの関係を示しているパラメーターから始めて、ファイルを変更してみました。
A0EC
また、タグを次のNXP_CORE_CONF_EXTN
ように設定します0x01
(コメントは、このタグが SWP1 コネクタを担当していることを示しているため):
残念ながら、これは機能せず、ホスト システムのオフホスト サービスをターゲットとする APDU をまだ受信しています (この logcat メッセージで示されているように: E/HostEmulationManager( 3434): AID that was meant to go off-host was routed to host.
)。
後の試行で、libnfc-brcm.conf
(上記の質問で Michael Roland によって説明されているように) のパラメーターをいじってみましたが、それでも成功しませんでした。
質問:
- UICCに行くNexus 5Xまたは6PでNFCオフホストルーティングを設定できた人はいますか?
- または、さらなる洞察を探すことができるヒントがいくつかありますか?
- また、PN548 チップセットのデータシートも非常に役立ちます。
編集 2:有効
な解決策はまだ見つかりませんでしたが、今まで試したことをdev1ブランチの下の github リポジトリにプッシュしました。また、各テストの結果の logcat 出力もプッシュしました。ストック Android 6.0.1 でルート化されていない新しい Nexus 5X をテストしています。(編集: その間、テスト用に Nexus 6P も入手しましたが、同じように動作します。) システム パーティションの構成ファイルを変更するために、サイドロードされた回復イメージを一時的に起動します: ( fastboot boot twrp-2.8.7.2-bullhead.img
)。
現時点では、常にこのエラーが発生します(オフホストルーティングターゲットを使用して、オフホストルーティングターゲットとしても試しまし0xf2
た0xf4
):
cortex-m3 - Cortex M3 マイクロコントローラでは、いつフラッシュの .data セクションの変数が SRAM にコピーされますか?
Cortex M3 マイクロ コントローラで、フラッシュの .data セクションの変数が SRAM にコピーされるのはいつですか?リセットおよび初期 SP ポインタのフェッチの前ですか? Keil4 と LPC 1778 を使用しています。
c - LPC1769 の GPIO 割り込みの書き込み
lpc1769のタイマーを使ってパルス(pwm)を生成するアプリケーションを開発しました。パルスの周期は10ミリ秒で、必要に応じてパルス幅を変えることができます。パルス幅は、10ミリ秒の方形波(オン期間7.2ms、オフ期間2.8ms)である基準信号に応じて生成されます。この信号の立ち上がりエッジがあるときはいつでも、PWM パルスが開始する必要があります。これで問題なく動作しています。立ち上がりエッジを検出するために、外部割り込みでGPIO割り込みを使用しました3 ISRは次のとおりです。
1) GPIO ピンの立ち上がりエッジの場合 (P2.11)
2) 端子の立ち上がりエッジ状態をクリアします。
3)次に、タイマーを数ミリ秒に設定します
およびタイマー ISR で 1) 保留中のタイマー IRQ をクリアする 2) PWM パルスを生成する GPIO ピンを高くする (P2.6) 3) タイマーを数ミリ秒設定してから、ピンをクリアする (P2.6) (同じタイマー)は両方の ISR で使用されます) 4) タイマーを無効にし、GPIO ピン (P2.11) の立ち上がりエッジ割り込みを再度有効にすると、参照信号の立ち上がりエッジで外部割り込み 3 の ISR が再び機能し、上記のように継続します。
今、私はアプリケーションを開発する際のコードで問題を抱えています。
1) 立ち上がりエッジが割り込みを無効にし、タイマーを 8 ミリ秒の遅延に設定する場合。
2) タイマー ISR で、この後 10 pwm サイクルを生成し、外部割り込みを再度有効にします。(両方の ISR で同じタイマーが使用されます)。
3)したがって、私の出力は、基準信号の立ち上がりエッジに対して8ミリ秒の遅延、次に10 pwmサイクル(すべて10ミリ秒の期間があります)、基準信号の立ち上がりエッジおよび10 pwmサイクルに対して再び8ミリ秒の遅延になるはずです。
ただし、参照信号の立ち上がりエッジに関係なく、10 サイクル後に外部割り込みを有効にすると、8ms の遅延が追加されます。最後の 10 番目のサイクルが完了するたびに、割り込みを再度有効にするので、この時点から 8ms の遅延を追加するだけです。私の質問は、基準信号の立ち上がりエッジに対して割り込みが有効になっている場合、立ち上がりエッジに対してのみ ISR を提供する必要があるということです。しかし、これはこの場合には起こりません。私はこの行動を理解していません。/////////////////////////////////////////////// /////////////////////////////////////////////// / これは私のコードです。これは外部割り込みの ISR です 3
Timer1 ISR は
関数 start_timer1 を使用して、timer1 を初期化し、timer1 を指定されたティック数に設定し、一致時に割り込みます。set_timer1 : 指定されたティックと割り込みに対して timer1 を設定します。stop_timer1 : timer1 を無効にし、外部割り込み 3 を有効にします。
c - Diab コンパイラの解析エラー
NXP の MPC5748G で LZMA (C バージョン) (7-zip.org/sdk.html) を実行しようとしています。単純なコードをコンパイルしてストリームをエンコード/デコードしますが、いくつかのエラーが発生します...ただし、ファイルはラップトップで正常にコンパイルされ、LZMA アプリケーションを実行できました
DCC が表示するエラーは次のとおりです。
このエラーはdiabコンパイラに固有のものであり、ドキュメントで見つけたものは次のとおりです。
私はターゲットのソースコードも C の LZMA SDK の作成者でもありません。LZMA エンコーダーはエンコーダーに少なくとも 1Mb の RAM を割り当て、MPC5748 は 768Kb の RAM しか提供しないことを理解しています。
だから私は質問にLZMAとdiabコンパイラ(タグが見つかりません)にタグを付けました。両方で働いた人だけが私を助けることができました
更新:
dld: warning: Undefined symbol 'LzmaEncProps_Init' in file 'lib/lzma/LzmaLib.o' の問題を削除しました。対応するソース ファイルを makefile に含めますが、HEAP の問題は解決しません。問題は消えましたが、アプリは実行されません trace32 デバッガーを使用して、このエラーの原因を診断することができました:
この行は空の p->probs を返すため、alloc は必要なサイズをすべて割り当てることができなかったようです
ありがとう