2314207_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2314207_ja-JP

2314207_ja-JP

LPC55S6X(Zephyr OS)のCore 1でUSBを使用する
ネタバレ
LPC55S69(LPCXPRESSOボード)のCPU1にUSBペリフェラル(デバイスコントローラ)を割り当てるには何をする必要があるか調べています。

修正された cdc-acm サンプル プロジェクトを構築しています。メイン コア (CPU0) は、CPU1 を有効にしたビルドでフラッシュされます。CPU1 でコードを実行しても問題はありません。たとえば、ボタンの押下を処理できます。しかし、USB ハードウェアは正しく初期化されません。たとえば、USB_EhciPhyInit 内では、usbPhyBase->CTRL へのすべての書き込みで値が 0 から変更されないことがわかります (ハードウェア レジスタを確認するために Ozone デバッガーを使用しています)。

要約すると、 USBPHY レジスタと USBHSD レジスタの両方がドライバーからの書き込みを無視するようです。


確認したこと:

1. 同じプロジェクトがCPU0でも動作する
2. CPU1を初期化して起動するために使用するCPU0プロジェクトでは、USBコントローラとUSB RAMが無効になっています。
3. CPU1でUSBコントローラとUSB RAMが有効になります

基本的にCPU0のUSB初期化と同じSWパスをたどりましたが、ペリフェラルが死んでしまったようです。クロックが有効になっていないようです。
USBRe: Using USB on Core 1 of LPC55S6X (Zephyr OS)

こんにちは@alexfeinman

LPC55S69 では、2 つの M33 コアが同じペリフェラルを共有しますが、CPU1 には TrustZone がなく、デフォルトでは多くのペリフェラルが Secure‑only として表示されます。

LPCXPRESSO55S69 — Zephyr プロジェクト ドキュメント

Harry_Zhang_0-1770715804895.pngHarry_Zhang_0-1770715804895.png

BR

ハリー

Re: Using USB on Core 1 of LPC55S6X (Zephyr OS)

ありがとう。あなたの返答を正しく理解していれば、私の選択肢は、CPU0 で非セキュア ビルドを使用するか、信頼ゾーンを構成して何らかの方法で CPU1 USB アクセスを許可するかのいずれかになります。Zephyr で後者を実現する方法に関するリソースを教えていただけますか?

Re: Using USB on Core 1 of LPC55S6X (Zephyr OS)

こんにちは@alexfeinman

CPU1 (LPC55S69 の 2 番目の Cortex-M33) は TrustZone をまったくサポートしていません。

Zephyr では、「TrustZone を CPU1 USB アクセスを許可するように構成する」ことはできません。

あなたの目標は何ですか?

CPU1 で実行されている USB デバイスのみですか?
 
BR
ハリー
Re: Using USB on Core 1 of LPC55S6X (Zephyr OS)

返信が遅くなり申し訳ありません。通知メールがなぜか迷惑メールフォルダに入ってしまっていました。

私の目標は、USBインターフェースを処理するコードをコア1で実行し、コア0ではそれとは無関係な処理を実行させることです。基本的には、コア1を専用の通信プロセッサとして使用し、複数のUART-USBブリッジ(合計4つ)を実行させたいと考えています。

タグ(1)
評価なし
バージョン履歴
最終更新日:
‎03-26-2026 02:40 AM
更新者: