Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
S32K3のeTPUクランク、カム、インジェクション、イグニッション こんにちは、 クランクとカムの信号に合わせてインジェクションと点火を作動させるドライバを実装する必要があります。 このドライバを実装するための最適なソリューションを理解する必要があります。 私の疑問は次のとおりです: 1) AN4907SW.zip で提供される API は、S32K3xx に存在する eTPU と互換性がありますか? 2)いいえの場合、この API を S32K3xx に適合させるのは良い解決策ですか、それとも ConfigTool を使用するのが最善の解決策でしょうか? このアプリケーションについて S32K3xx の例はありますか? よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@francescovico ビッグ エンディアンからリトルエンディアンにデータを変換するには、データ型のサイズに応じてビット シフトとマスクを調整してバイト順序を逆にする必要があります。 GCC は、このプロセスを簡素化する組み込み関数を提供します。例: uint32_t __builtin_bswap32 (uint32_t x)。詳細については、GCC ドキュメントの7.2.3 バイトスワッピング組み込みを参照してください。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@VaneB 、 私が正しく理解していれば、オートモーティブ機能 (CRANK、SPARK...) はビッグエンディアンマイクロコントローラ用に作られています。 S32K364 (リトルエンディアン) 上のオートモーティブ機能で eTPU を使用するには、次を選択して関数セットをダウンロードする必要があります。 そして関数を変更します: uint32_t *fs_memcpy32(uint32_t *dest、uint32_t *source、uint32_t size); void fs_memset32(uint32_t *開始、uint32_t 値、int32_t サイズ); 各 32 ビット値を交換して、リトルエンディアン コードとパラメータを読み書きするというのは本当ですか? よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@francescovico 電動化アプリケーション向け S32K39/37/36 マイクロコントローラにはeTPU が含まれています。ただし、現在、これらのデバイス向けに利用できる MPC5634 の AN4907 に類似した専用のドキュメントやデモはありません。 ただし、AN4907 ドキュメント、デモ、マイクロコードは S32K39/37/36 ファミリに適していますが、これらのデバイスはリトルエンディアン アーキテクチャを使用していることに注意してください。したがって、メモリ アクセス API を変更する必要があります。 リトルエンディアン に更新された CodeWarrior eTPU 関数セレクタ でモータ制御関連のモジュールを参照できます。 BR、ヴェインB Re: eTPU crank, cam, injections and Ignitions on S32K3 指摘していただきありがとうございます! エンディアン変換の問題が発生しました。その結果、欠落した歯のマスクが正しく構成されず、1 回転あたり 350 度、または 1 サイクルあたり 700 度とカウントされました。 現在、元の投稿のデモ アプリは修正されています。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@MilanBrejlさん、 現在、Fuel Cyl 1 etpu ドライバを使用しようとしています。 ドライバは s24AngleNormalEnd を「開始角度」として使用し、s24AngleStop で噴射を停止するようです。 u24InjectionTime の持続時間は決して尊重されません。 それは可能ですか? .rarが添付されていますインジェクターパラメータが以下の「燃料シリンダー 1」のピコスコープ取得を含むファイル: Etpu_Fuel_Ip_ConfigType fuel_1_config = { .s24角度法線終了= DEG2TCR2(-180)、 .s24アングルストップ= DEG2TCR2(-360)、 .s24角度オフセット再計算= DEG2TCR2(-30)、 .u24注入時間= USEC2TCR1(1200)、 .u24補償時間= USEC2TCR1(0)、 .u24注入時間最小値= USEC2TCR1(0)、 .u24オフタイム最小値= USEC2TCR1(0)、 .eGenerationDisable= ETPU_FUEL_GENERATION_ALLOWED }; ピコスコープ取得では、正確に 180° で注入が開始され、360° で注入が停止し、注入持続時間が 30 ms (1.2 ms であるべき) であることが確認できます。 よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@MilanBrejlさん、 現在、Fuel Cyl 1 etpu ドライバを使用しようとしています。 ドライバはs24AngleNormalEnd を「開始角度」として使用し、s24AngleStop ですべての噴射を停止するようです。 u24InjectionTime の持続時間は決して尊重されません。 それは可能ですか? .rarが添付されていますインジェクターパラメータが以下の「燃料シリンダー 1」のピコスコープ取得を含むファイル: Etpu_Fuel_Ip_ConfigType fuel_1_config = { .s24角度法線終了= DEG2TCR2(-180)、 .s24アングルストップ= DEG2TCR2(-360)、 .s24角度オフセット再計算= DEG2TCR2(-30)、 .u24注入時間= USEC2TCR1(1200)、 .u24補償時間= USEC2TCR1(0)、 .u24注入時間最小値= USEC2TCR1(0)、 .u24オフタイム最小値= USEC2TCR1(0)、 .eGenerationDisable= ETPU_FUEL_GENERATION_ALLOWED }; ピコスコープ取得では、正確に 180° で注入が開始され、360° で注入が停止し、注入持続時間が 30 ms (1.2 ms であるべき) であることが確認できます。 よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@MilanBrejlさん、 おっしゃる通り、 s24AngleOffsetRecalc は正の数である必要がありますが、次のように記述します。 s24角度オフセット再計算 = DEG2TCR2(30) 結果は同じです(。 私は 16 チャネルの 2 つの ETPU (A と B) を備えた S32K364 を使用しています。 ETPUA で燃料ドライバーを使用するとドライバーは正常に動作しますが、ETPUB チャネル 0 を使用する必要があります。 私の必要性は、STAC レジスタを使用して、ETPUA から ETPUB に TCR1 と TCR2 を共有することです。 STAC レジスタが正しく初期化されていない可能性があります。 よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@francescovicoさん、 これは、eTPU1 から eTPU2 に TCR1 と TCR2 を共有するように STAC_ENG1 および STAC_ENG2 レジスタを設定する方法です。 役に立つかどうか教えてください。 よろしくお願いいたします。 ミラノ Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@MilanBrejlさん、 私のレジスターはあなたの提案と全く同じです: しかし、問題はまだ存在しています。 添付のピコスコープ取得では、ETPU A で生成されたスパークが青色で、ETPU B で生成されたスパークが赤色で確認できます。 両方のスパークの終了角度は 180 度、滞在時間は 8000 マイクロ秒です。 よろしく、フランチェスコ。   Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@francescovicoさん、 私のサイトでもあなたの問題を再現し、根本的な原因を見つけました。両方の eTPU エンジン間で TCR1/TCR2 時間/角度バスを共有するだけでは不十分です。スパークおよび燃料機能は、実際のエンジン速度に基づいて時間を角度に変換します。TRR(ティック レート レジスタ)を使用します。このレジスタは、Angle Clock ロジックの一部であり、eTPU A で実行される Crank eTPU 機能によって管理されます。したがって、TRR の正しい値は eTPU A でのみ保持されます。次に、eTPU B TRR を使用した eTPU B の時間から角度への変換で間違った結果が返されます。 これはかなり基本的な問題で、おそらく両方の eTPU エンジンでエンジン制御を実行している人に会ったことがないので、これは解決されていません。特に、新しい S32K3 デバイスは 16+16 チャネルに制限されているため、これは重要になります。このユースケースを提起していただき、またお待ちいただきありがとうございます。 添付のデモ アプリケーションは、(このスレッド内の) 以前のものに基づいており、次の変更が追加されています。 Spark 2 チャネルは eTPU エンジン A から eTPU エンジン B に移動されます。 チャネルマスクはそれに応じて更新されます チャネルリンクは両方のエンジンの使用をサポートする必要があります(マクロ ETPU_IP_CHANNEL_TO_LINK を使用) ピン構成が更新され、割り込み構成が更新されました Crank eTPU FW の新機能: eTPU FW イメージが更新されました。Crank 関数は両方のエンジンで実行でき、他の eTPU エンジンの TRR 値も更新できます。 この新機能では、クランク構成に1つの新しいパラメータを設定する必要があります。 どこ これが役に立つことを願います。 よろしくお願いいたします。 ミラノ Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは@MilanBrejlさん、 今では完璧に動作しています。 サポートしていただき本当にありがとうございます! よろしく、フランチェスコ。 Re: eTPU crank, cam, injections and Ignitions on S32K3 こんにちは。私もK396基板について調べており、クランクシャフト、カムシャフト、オイルインジェクターにETPUを使用したいと考えています。この件についてもう少し詳しくお話しいただけますでしょうか?
記事全体を表示
Imx93 evk ONOFFボタンはスタンバイ機能にCAN使用できます。 こんにちは、imx93 evk の ONOFF ボタンは、短押しスタンバイと短押しウェイクアップ機能を再び CAN 実行しますか?どうやってそれを達成するのでしょうか? Re: Imx93 evk ONOFF button can be used for standby function. ああ、残念ですが、すでにお気づきですね。私の返答は無視してください。 Re: Imx93 evk ONOFF button can be used for standby function. @xiang_1001はい、ON/OFF ボタンは GPIO ラインにルーティングされ、さらに PMIC 入力に送られ、ウェイクアップ ソースとして機能するように構成CANます。 デフォルトの BSP の一部として、ONOFF ボタンを短く押すことで、システムを CAN サスペンド状態から復帰させることができます。「 echo mem > /sys/power/state 」を実行してサスペンド状態にしてから、オン/オフ ボタンを 1 回だけ押して復帰させてみることCANます。 または、オン/オフボタンをシステムの「サスペンド」に設定する場合は、次の手順を実行する必要があります。 1. conf ファイルを編集します - /etc/systemd/logind.conf HandlePowerKey変数を「suspend」に設定する 2. systemd-logindを再起動します。 systemctl で systemd-logind を再起動します。 この後、ONOFFボタンを短く押すことでimx93をサスペンド状態にすることができます。 回复: Imx93 evk ONOFF button can be used for standby function. この機能は、/etc /etc/systemd/logind.conf ファイルを変更することで実現されます。
記事全体を表示
S32G399A 运行 SRAM 演示错误 亲爱的工程师们 在自定义板和 VNP-RDB3 参考板的比较测试中使用 S32G399A 时,我遇到了以下问题: 串行输出问题:使用 S32DS FlashTools 刻录"S32G_TestTransmission_921600_0x34080000_SRAM.bin 之后"以两个板为例,VNP-RDB3 可以正确输出数据,但是我的板没有输出任何数据。 1.QSPI 闪存算法错误:在我的板上使用 S32DS FlashTools 烧录 QSPI FLASH 算法会导致错误(QSPI FLASH 与 VNP-RDB3 的型号相同)。 2. 工作演示:使用 S32DS + S32Debug Probe 烧录的 M7 UART 演示和 M7 GMAC 演示版可在我的板上正常运行。 3. 附加信息:我的主板上的时钟源是 1.8V CMOS 有源晶振,它与 VNP-RDB3 的时钟配置不同。 晶体波和 S32DS 闪存工具错误 Re: S32G399A Run SRAM Demo ERROR 您好, 抱歉回复晚了。 您能提供更多信息吗? 你能用 Flash T ool 把 " S32G_TestTransmission_921600_0x34080000_SRAM.bin " 刷到你的客户板上 或非 Flash 吗?您是否在客户板上使用过 Flash 算法?图像的功能是什么? BR 乔伊 Re: S32G399A Run SRAM Demo ERROR 该问题发生在闪存算法编程之后,编程之后 QSPI 时钟没有波形。 Re: S32G399A Run SRAM Demo ERROR hi,liuchi 感谢您提供的信息和提出的问题。 在将图像加载到或非闪存之前,您应该烧录下载算法。在你关于 “在我的板上使用 S32DS FlashTools 烧录 QSPI FLASH 算法会导致错误 "” 的信息中,我认为你应该检查一下客户板上的硬件问题。确保算法加载成功。 BR 乔伊 Re: S32G399A Run SRAM Demo ERROR 大家好 我可以在文件夹下提问吗? C:\NXP\S32FlashTool_2.3.3\examples\S32G\SRAM\ 有 2 个 bin 文件 - S32G_TestTransmission_921600_8E1_0x34080000_SRAM.bin - S32G_TestTransmission_921600_8E1_0x34080000_SRAM_SINGLE.bin 我试着把它们放到评估板 (EVB3) 上,通过 UART 刷机 - S32G_TestTransmission_921600_8E1_0x34080000_SRAM.bin -> worked - S32G_TestTransmission_921600_8E1_0x34080000_SRAM_SINGLE.bin -> 不显示任何控制台 它们之间有什么不同? 谢谢!
記事全体を表示
iMX8MPlus + 88W8987 + PDnピン iMX8MPlusのPDnピンを使用してAndroid 10で8987モジュールを再起動しようとしています     # モジュールをアンロードする $ rmmod -f moal $ rmmod -f mlan     [ 987.206583]wlan: MWLAN ドライバをアンロードしています [ 987.211780]wlan: ドライバがアンロードされました     #MMCコントローラのバインドを解除 $ echo "30b50000.mmc"> /sys/bus/プラットフォーム/ドライバ/sdhci-esdhc-imx/unbind   [ 988.124586]mmc1: カード0001が取り外されました   # PDnをLOWに設定   $ echo "30b50000.mmc"> /sys/bus/プラットフォーム/ドライバ/sdhci-esdhc-imx/bind   [ 998.119429]mmc1: 30b50000.mmc 上の SDHCI コントローラ [30b50000.mmc]ADMAを使用する       # PDnをHIGHに設定   [ 1010.224255] mmc1: アドレス0001の新しい超高速SDR104 SDIOカード     # モジュールをロードする $ insmod /vendor/lib/modules/mlan.ko $ insmod /vendor/lib/modules/moal.ko mod_para=wifi_mod_para.conf       [ 1027.098443] wlan: MWLANドライバを読み込んでいます [ 1027.103256] wlan: バス ドライバに登録... [ 1027.120295] ベンダー=0x02DF デバイス=0x9149 クラス=0 機能=1 [ 1027.126578]マウントハンドルオペレーション、カードインターフェースタイプ: 0x105 [ 1027.133282]SD8987: usr cfg からの init モジュール パラメータ [ 1027.138829] カードタイプ: SD8987、構成ブロック: 0 [ 1027.143989] cfg80211_wext=0xf [ 1027.147669] sta_name=wlan [ 1027.151001] uap_name=wlan [ 1027.154341] wfd_name=p2p [ 1027.157589] max_vir_bss=1 [ 1027.160926] cal_data_cfg=なし [ 1027.164611] ps_mode = 2 [ 1027.167844] auto_ds = 2 [ 1027.171028] host_mlme=有効 [ 1027.174629] fw_name=sdiouart8987_combo_v0.bin [ 1027.179833]SDIO: max_segs=128 max_seg_size=65472 [ 1027.185353] rx_work=1 cpu_num=4 [ 1027.189296]MLAN アダプタ操作の接続。card_type は 0x105 です。 [ 1027.204869] wlan: TX SGモードを有効にする [ 1027.209100] wlan: RX SGモードを有効にする [ 1027.216328]ファームウェアのリクエスト: sdiouart8987_combo_v0.bin [ 1028.066187]Wlan: FW のダウンロードが終了しました。firmwarelen=603832 がダウンロードされました (603832) [ 1030.080214]ファームウェアステータスのポーリングに失敗しました: firmwarestat=0xf005 [ 1030.086693]FWが時間内にアクティブ化できませんでした。 [ 1030.091600] wlan_dnld_fw 失敗 ret=0xffffffff [ 1030.096656]WLAN: nowwait: 0 で FW のダウンロードに失敗しました [ 1030.102459]SDIO 機能0 (0x0-0x9): 43 03 02 02 03 00 00 02 03 00 [ 1030.109401]SDIO 機能 1 (0x10-0x17): 00 00 00 00 00 00 00 00 [ 1030.116157]SDIO 機能1: (0x8) 00 (0x58) 00 (0x5c) 0d (0x5d) 00 (0x60) 01 (0x61) 00 (0x62) 00 (0x64) 10 (0x65) 01 (0x66) 00 (0x68) 00 (0x69) 00 (0x6a) 00 [ 1030.130949]SDIO 機能1 (0xe8-0xf2): 05 f0 00 00 00 00 00 00 24 14 70 [ 1030.241168]SDIO 機能1 (0xe8-0xf2): 05 f0 00 00 00 00 00 00 24 14 70 [ 1030.248445] woal_request_fw が失敗しました [ 1030.252557]ファームウェアの初期化に失敗しました [ 1030.260510]フリーモジュールパラメータ [ 1030.264292] woal_add_card が失敗しました [ 1030.268383] wlan_sdio: mmc1:0001:1 のプローブがエラー -1 で失敗しました [ 1030.275567] wlan: バスドライバへの登録が完了しました [ 1030.280673] wlan: ドライバが正常にロードされました       # cat /sys/kernel/debug/mmc1/ios クロック: 208000000 Hz vdd: 21 (3.3 ~ 3.4 V) バスモード: 2 (プッシュプル) チップセレクト: 0 (無視) 電源モード: 2 (オン) バス幅: 2 (4 ビット) タイミング仕様: 6 (SD uhs SDR104) 信号電圧: 1 (1.80 V) ドライバタイプ: 0 (ドライバタイプ B)   wifi 8987 + imx8m プラス   &usdhc2 { 割り当てられたクロック = <&clk IMX8MP_CLK_USDHC2>; 割り当てられたクロックレート = <400000000>; pinctrl-names = "default", "state_100mhz", "state_200mhz"; ピンctrl-0 = <&pinctrl_usdhc2>; pinctrl-1 = <&pinctrl_usdhc2_100mhz>; pinctrl-2 = <&pinctrl_usdhc2_200mhz>; バス幅 = <4>; pm-無視-通知; 電源を停止したままにする; fsl、sdio 非同期割り込みが有効; ステータス = "正常"; }; Re: iMX8MPlus + 88W8987 + PDn pin こんにちは、 以下のハードウェア条件により、ログにエラー コードが記録されますので、それぞれのポイントを確認してください。 1. SDIO通信が異常です 2. Wi-Fiチップの32.768Kクロックは使用されない 3. Wi-Fi チップの電源電流が足りません (FW をダウンロードするとき、ピーク電流要件が比較的大きく、3.3V の合計電源電流は 1.5A より大きくなければなりません)。 よろしくお願いいたします。
記事全体を表示
i.MX8MQ の Jailhouse ハイパーバイザーの Inmate セル作成に関する問題 拝啓、 NXP i.MX 8MQ EVK ボードの Jailhouse 経由でカスタム (E-call) Inmate Linux デモ セルを作成しようとしています。 実行したすべての手順は、添付の「NXP_Jailhouse_Ticket.txt」に追加されています。ファイル。 直面している問題:- コンパイルに問題が発生しています。 linux-inmate-demo.c をコンパイルする方法ファイルと.oを生成するおよび.cellファイル? 適切な.bbを作成する方法linux-inmate-demo.c をコンパイルするためのファイルファイルと.oを生成するおよび.cellファイルをコピーして最終画像に追加しますか? カスタム刑務所の囚人セルを作成するためのアプリケーションノートをご提供ください または 同じ解決策が記載されている以前の NXP コミュニティ チケットへのリンクはありますか? また、上記の手順について訂正し、解決策を提供してください。 i.MX8ULP Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ 受刑者がインターネットにアクセスできるようにネットワークを設定する方法については、以下を参照してください。セットで USB ネットまたは eth ネットを使用するように更新する必要があります。 ネットワークを使用して2台目のLinuxのネットワークを設定する方法 Linuxが最初に起動した後 sysctl -w net.ipv4.ip_forward=1 sysctl -p /etc/sysctl.conf ルートセルが有効になった後 iptables -A 転送 -i eth1 -j 受け入れる iptables -A FORWARD -o eth1 -j ACCEPT iptables -t nat -A ポストルーティング -o eth0 -j マスカレード 2回目のLinux起動後 ifconfig eth1または2 192.168.1.4最初のLinuxルートセル ifconfig eth0 192.168.1.52番目のLinux囚人セル 「ip route 192.168.1.4 経由でデフォルトを追加2番目のLinux用の「dev eth0」 「ipルート 10.193.100.0/24 を追加192.168.1.4経由2番目のLinux用の「dev eth0」 これで、「mount -t nfs 10.193.108.xx:/ホーム/xxx/nfs」と実行できるようになります。/分" 手順3と4で、ネットワークに応じて10.193.xx.xxを自分のものに更新します。 よろしくお願いします。 彭。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、ペンさん。 サポートありがとうございます。ルート セルから受刑者セルに 'scp' をコピーできるようになりました。 基本的に、私たちは Inmate セル側で MQTT を使用して E-call アプリケーションを維持したいと考えています。 ルートから受刑者セルまで読み取り/書き込み共有メモリを共有できます。また、お客様のご提案どおりに、ルート/受刑者セルに静的 IP を付与することもできます。 ここで、ルート セルから受信したデータをクラウドに送信するために、受刑者セルにインターネット接続が必要になります。 Quectel EC25 モジュールを USB ポート経由で NXP i.MX8MQ ボードにコネクテッドしました。 ルートセルデータのIFCONFIG: 」 ifconfig eth0: flags=-28669 mtu 1500 イーサ 00:04:9f:05:a5:9c txqueuelen 1000 (イーサネット) RXパケット 0 バイト 0 (0.0 B) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 送信パケット 0 バイト 0 (0.0 B) 送信エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 eth1: flags=-28605 mtu 16384 inet 192.168.0.3 ネットマスク 255.255.255.0ブロードキャスト 192.168.0.255 inet6 fe80::88f0:a7ff:fe40:2407 プレフィックス長 64 スコープID 0x20 ether 8a:f0:a7:40:24:07 txqueuelen 1000 (イーサネット) RXパケット 41 バイト 7030 (6.8 KiB) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 送信パケット 71 バイト 18812 (18.3 KiB) 送信エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 lo: flags=73 mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 inet6 ::1 プレフィックス長 128 スコープID 0x10 loop txqueuelen 1000 (ローカルループバック) RXパケット 103 バイト 9268 (9.0 KiB) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 送信パケット 103 バイト 9268 (9.0 KiB) 送信エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 usb0: flags=-28605 mtu 1500 inet 192.168.225.39ネットマスク 255.255.255.0ブロードキャスト 192.168.225.255 inet6 2401:4900:4bb5:e7a7:609f:c3ff:fe2c:903b プレフィックス長 64 スコープID 0x0 inet6 fe80::609f:c3ff:fe2c:903b プレフィックス長 64 スコープID 0x20 ether 62:9f:c3:2c:90:3b txqueuelen 1000 (イーサネット) RXパケット 84バイト 7614 (7.4 KiB) RXエラー 0 ドロップ 0 オーバーラン 0 フレーム 0 送信パケット 117 バイト 13860 (13.5 KiB) 送信エラー 0 ドロップ 0 オーバーラン 0 キャリア 0 衝突 0 「 ご覧のとおり、ROOT セル側でインターネット接続が確立されています。 以下はPINGコマンドの出力です 」 root@imx8mqevk:/ホーム ping 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) バイトのデータ。 8.8.8.8 からの 64 バイト: icmp_seq=1 ttl=114 time=193 ms 8.8.8.8 からの 64 バイト: icmp_seq=2 ttl=114 time=68.9MS 8.8.8.8 からの 64 バイト: icmp_seq=3 ttl=114 time=62.8MS 8.8.8.8 からの 64 バイト: icmp_seq=4 ttl=114 time=68.5 ms 8.8.8.8 からの 64 バイト: icmp_seq=5 ttl=114 time=66.5 ms 8.8.8.8 からの 64 バイト: icmp_seq=6 ttl=114 time=78.6 ms 8.8.8.8 からの 64 バイト: icmp_seq=7 ttl=114 time=71.0MS 」 現在、私は Inmate セルでインターネットの問題に直面しています。IFCONFIG ログは以下のとおりです。 」 root@imx8mqevk:~ ifconfig eth0 リンクカプセル化:イーサネット HWaddr 6E:58:98:59:01:A0 inetアドレス:192.168.0.4放送:192.168.0.255マスク:255.255.255.0 inet6 アドレス: fe80::6c58:98ff:fe59:1a0/64 スコープ:リンク アップブロードキャスト 実行中 マルチキャスト MTU:16384 メトリック:1 RXパケット:184 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0 送信パケット:65 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0 衝突:0 トランザクション数:1000 RX バイト:78814 (76.9 KiB) TX バイト:14002 (13.6 KiB) lo リンクカプセル化:ローカルループバック inetアドレス:127.0.0.1マスク:255.0.0.0 inet6 アドレス: ::1/128 スコープ:ホスト アップループバック実行中 MTU:65536 メトリック:1 RXパケット:22 エラー:0 ドロップ:0 オーバーラン:0 フレーム:0 送信パケット:22 エラー:0 ドロップ:0 オーバーラン:0 キャリア:0 衝突:0 トランザクション数:1000 RX バイト:3897 (3.8 KiB) TX バイト:3897 (3.8 KiB) 」 また、ルートセル側での IP 転送も試しました。 受刑者の独房に外部ネットワークへのアクセスを許可するには: 根細胞内 エコー 1 > /proc/sys/net/ipv4/ip_forward iptables -A FORWARD -i eth1 -o usb0 -j ACCEPT iptables -A FORWARD -i usb0 -o eth1 -j ACCEPT iptables -t nat -A ポストルーティング -o usb0 -j マスカレード 」 上記のコマンドを実行すると、以下のログが出力されます。 」 root@imx8mqevk:/ホーム iptables -t nat -A POSTROUTING -o usb0 -j MASQUERADE [ 1869.738194] 監査: タイプ=1325 監査(1755848821.593:11):テーブル=nat ファミリ=2 エントリ=7 op=xt_replace pid=713 comm="iptables" root@imx8mqevk:/ホーム [ 1869.749806] 監査: タイプ=1300 監査(1755848821.593:11):アーチ = c00000b7 syscall = 208 成功 = はい exit = 0 a0 = 4 a1 = 0 a2 = 40 a3 = aaaafd66a400 items = 0 ppid = 607 pid = 713 auid = 4294967295 uid = 0 gid = 0 euid = 0 suid = 0 fsuid = 0 egid = 0 sgid = 0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 1869.779649] 監査: タイプ=1327 監査(1755848821.593:11):proctitle=69707461626C6573002D74006E6174002D4100504F5354524F5554494E47002D6F0075736230002D6A004D415351554552414445" 」 ルートセルからDmesgログも出力します 」 [ 71.141601]刑務所セル「ecall-linux-inmate-demo」を作成しました [ 77.822386]IPv6: ADDRCONF(NETDEV_CHANGE): eth1: リンクが準備完了になりました [ 206.451703]監査: タイプ=1325 監査(1755847158.198:4):テーブル=nat ファミリ=2 エントリ=0 op=xt_register pid=651 comm="iptables" [ 206.463131]監査: タイプ=1300 監査(1755847158.198:4):Arch=c00000b7 syscall=209 success=yes exit=0 a0=4 a1=0 a2=40 a3=ffffe78d01c0 items=0 ppid=607 pid=651 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 206.493176]監査: タイプ=1327 監査(1755847158.198:4):proctitle=69707461626C6573002D74006E6174002D4100504F5354524F5554494E47002D6F0065746830002D6A004D415351554552414445 [ 206.508268]監査: タイプ=1325 監査(1755847158.202:5):テーブル=nat ファミリ=2 エントリ=5 op=xt_replace pid=651 comm="iptables" [ 206.519201]監査: タイプ=1300 監査(1755847158.202:5):arch=c00000b7 syscall=208 成功=はい 終了=0 a0=4 a1=0 a2=40 a3=aaaabb51c230 項目=0 ppid=607 pid=651 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" キー=(null) [ 206.547353]監査: タイプ=1327 監査(1755847158.202:5):proctitle=69707461626C6573002D74006E6174002D4100504F5354524F5554494E47002D6F0065746830002D6A004D415351554552414445 [ 217.506636]監査: タイプ=1325 監査(1755847169.257:6):テーブル=nat ファミリ=2 エントリ=6 op=xt_replace pid=657 comm="iptables" [ 217.517791]監査: タイプ=1300 監査(1755847169.257:6):arch=c00000b7 syscall=208 成功=はい 終了=0 a0=4 a1=0 a2=40 a3=aaaaec783230 項目=0 ppid=607 pid=657 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" キー=(null) [ 217.547639]監査: タイプ=1327 監査(1755847169.257:6):proctitle=69707461626C6573002D74006E6174002D4100504F5354524F5554494E47002D6F0075736230002D6A004D415351554552414445 [ 294.389911]監査: タイプ=1325 監査(1755847246.146:7):テーブル=フィルター ファミリ=2 エントリ=0 op=xt_register pid=659 comm="iptables" [ 294.401564]監査: タイプ=1300 監査(1755847246.146:7):arch=c00000b7 syscall=209 success=yes exit=0 a0=4 a1=0 a2=40 a3=fffff5707410 items=0 ppid=607 pid=659 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 294.431369]監査: タイプ=1327 監査(1755847246.146:7):proctitle=69707461626C6573002D4100464F5257415244002D690065746831002D6F0075736230002D6A00414343455054 [ 294.445250]監査: タイプ=1325 監査(1755847246.150:8):テーブル=フィルター ファミリ=2 エントリ=4 op=xt_replace pid=659 comm="iptables" [ 294.456430]監査: タイプ=1300 監査(1755847246.150:8):Arch=c00000b7 syscall=208 success=yes exit=0 a0=4 a1=0 a2=40 a3=aaaaeb8d3950 items=0 ppid=607 pid=659 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 294.484541]監査: タイプ=1327 監査(1755847246.150:8):proctitle=69707461626C6573002D4100464F5257415244002D690065746831002D6F0075736230002D6A00414343455054 [ 314.598783]監査: タイプ=1325 監査(1755847266.267:9):テーブル=フィルター ファミリ=2 エントリ=5 op=xt_replace pid=662 comm="iptables" [ 314.610726]監査: タイプ=1300 監査(1755847266.267:9):Arch=c00000b7 syscall=208 success=yes exit=0 a0=4 a1=0 a2=40 a3=aaaac05eaac0 items=0 ppid=607 pid=662 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 314.640305]監査: タイプ=1327 監査(1755847266.267:9):proctitle=69707461626C6573002D4100464F5257415244002D690075736230002D6F0065746831002D6A00414343455054 [ 849.488680]監査: タイプ=1006 監査(1755847801.267:10):pid=671 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=3 res=1 [ 849.501588]監査: タイプ=1300 監査(1755847801.267:10):アーチ = c00000b7 syscall = 64 success = はい exit = 1 a0 = 3 a1 = ffffc0aa76a0 a2 = 1 a3 = ffff83653020 items = 0 ppid = 238 pid = 671 auid = 0 uid = 0 gid = 0 euid = 0 suid = 0 fsuid = 0 egid = 0 sgid = 0 fsgid = 0 tty=(なし) ses=3 comm="crond" exe="/usr/sbin/crond" key=(null) [ 849.527425]監査: タイプ=1327 監査(1755847801.267:10):proctitle=2F7573722F7362696E2F63726F6E64002D6E [ 1869.738194] 監査: タイプ=1325 監査(1755848821.593:11):テーブル=nat ファミリ=2 エントリ=7 op=xt_replace pid=713 comm="iptables" [ 1869.749806] 監査: タイプ=1300 監査(1755848821.593:11):アーチ = c00000b7 syscall = 208 成功 = はい exit = 0 a0 = 4 a1 = 0 a2 = 40 a3 = aaaafd66a400 items = 0 ppid = 607 pid = 713 auid = 4294967295 uid = 0 gid = 0 euid = 0 suid = 0 fsuid = 0 egid = 0 sgid = 0 fsgid=0 tty=ttymxc0 ses=4294967295 comm="iptables" exe="/usr/sbin/xtables-legacy-multi" key=(null) [ 1869.779649] 監査: タイプ=1327 監査(1755848821.593:11):proctitle=69707461626C6573002D74006E6174002D4100504F5354524F5554494E47002D6F0075736230002D6A004D415351554552414445 「 CAN 受刑者の独房における上記のインターネット問題の解決にご協力いただけますか? Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ Linux で「root」または「inmate」を実行すると、セグメント エラーが発生します。 2 つの Linux 間で ivshmem をテストするには、次のようにします。 ルートセル内: ivshmem-demo -d /dev/uio0 -t 2 囚人セル内: ivshmem-demo -d /dev/uio0 -t 0 すると、2 つのセル間の通信が表示されます。 ivshmem-demo のソースコードは imx-jailhouse/tools/demos/ivshmem-demo.c にあります。 受刑者セルにファイルをコピーする方法については、受刑者Linuxが起動した後、 囚人房内: ifconfig eth0 192.168.0.4 ルートセル内: ifconfig eth0 192.168.0.3 次に、scp を使用して、ルートから inmate にファイルをコピーできます。 または、ルート セルで ip forward を構成して、受刑者が外部ネットワークにアクセスできるようにすることもできます。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、ペンさん。 ご返信ありがとうございます。cell.c をコンパイルできるようになりました。コードと生成された.cellファイル。 「 カスタム ecall-inmate-linux-demo セルが正常に作成され、ecall-inmate-linux-demo ゲストが起動して実行されています。 Linuxホスト root imx8mqevk:~監獄セルリスト ID 名前 状態 割り当てられたCPU 故障したCPU 0 imx8mq 実行中 0-1 1 ecall-inmate-linux-demo が 2-3 で実行中 ecall-inmate-linux-demo ゲスト 「 通信には /dev/uio0 デバイス ノードを使用しています。 いくつかの Python コードを試したところ、ルート セルでの書き込み/送信は成功しました。同時に、Linux デモの囚人セルには何も受信できません。 その後、Cプログラミングコードに移行し、「ivshmem_common.h」を添付しました。'ivshmem_inmate.c','ivshmem_root.c' および Makefile。 バイナリを生成するために以下のコマンドを使用します ソース /opt/fsl-imx-wayland/5.15-kirkstone/environment-setup-armv8a-poky-Linux エクスポート CROSS_COMPILE=aarch64-poky-Linux- KDIR=/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work-shared/imx8mqevk/kernel-build-artifacts CC="aarch64-poky-Linux-gcc --sysroot=$SDKTARGETSYSROOT" ARCH=arm64 CROSS_COMPILE=aarch64-poky-Linux- を作成します。 aarch64-poky-Linux-gcc --sysroot=/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/armv8a-poky-Linux -Wall -O2 -o root ivshmem_root.c デスクトップ側では、上記のコマンドを使用して、imx8mq ツール チェーンを使用してコンパイルしました。 生成されたバイナリを Linux inmate デモ セルにコピーします。 ルート セル側へのコピーは成功しましたが、Inmate Linux デモ セルでコピーまたはコンパイルする手順がわかりません。 CAN あなたは私に同じことをする方法を教えていただけますか? NXP ドキュメント「UG10163」、名前「iMX_Linux_user_guide_LF6.12.20_2.0.0」を参照しています。 この Linux デモ インメイト セルを使用するための実用的なサンプル コードとユーザーガイドが必要です。SO、ルート セルからデータ (JSON や文字列/バイナリなどのバンドル データ) を送信し、その逆に Linux インメイト デモ セルからデータを受信します。 ありがとう、 スミット Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ SO私の理解では、コンパイルの問題があるということです。 NXP にはリポジトリがあります: https://github.com/nxp-imx/imx-jailhouse なぜセル ファイルを自分で構築しようとしているのか理解できません。make を使用するだけで jailhouse とすべてのセル ファイルを構築するのは非常に簡単です。Simense リポジトリを使用している場合でも、ドキュメントには次のように記載されています。 make [KDIR=/path/to/kernel/objects] そして、すべてを構築するという私の命令: . /opt/fsl-imx-internal-xwayland/6.12-styhead/environment-setup-armv8a-poky-linux エクスポート CROSS_COMPILE=aarch64-poky-linux- CFLAGSの設定を解除する LDFLAGSを解除します KDIR=$HOME/linux/linux-lts-nxp を CC="aarch64-poky-linux-gcc --sysroot=$SDKTARGETSYSROOT" に設定し、ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ 親愛なるPENG様 ご提案ありがとうございます。 まだ問題が続いています。詳細は以下の通りです。 .cell を作成するためのフローファイル (Jailhouse Inmate バイナリ)、SDKs コンパイル コマンド: ツールチェーン環境のセットアップ: ソース /opt/fsl-imx-wayland/5.15-kirkstone/environment-setup-armv8a-poky-linux パス bash: /opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/usr/bin:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/usr/sbin:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/bin:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/sbin:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/usr/bin/../x86 _64-pokysdk-Linux/bin:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/usr/bin/aarch64-poky-Linux:/opt/fsl-imx-wayland/5.15-kirkstone/sysroots/x86_64-pokysdk-Linux/usr/bin/aarch64-poky-Linux-musl:/ホーム/オートモーティブ/.local/bin:/ホーム/オートモーティブ/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin: そのようなファイルまたはディレクトリはありません aarch64-poky-Linux-gcc -c -I/ホーム/オートモーティブ/jailhouse/hypervisor/include -I/ホーム/オートモーティブ/jailhouse/hypervisor/arch/arm64/include -I/ホーム/オートモーティブ/jailhouse/include -nostdlib -nostartfiles -ffreestanding ecall-inmate-Linux-demo.c -o ecall-inmate-Linux-demo.o 注意: Jailhouse ヘッダー ファイルはツール チェーンの一部ではないSO、Seimens (github バージョン) から Jailhouse フォルダーに別途ダウンロードしました。コンパイルにはヘッダー ファイル inmate-linux-demo.cell を使用しました。.cには変更を加えていないファイル。 テスト目的でデフォルトのものを使用しました。 ステップ1: .oをリンクしてフラットなELFファイルを作成する aarch64-poky-linux-ld \ -Tテキスト=0x0 \ -nostdlib \ -o ecall-inmate-linux-demo.elf \ ecall-inmate-linux-demo.o -Ttext=0x0 は .text を配置しますフラットバイナリレイアウトのアドレス 0x0 のセクション。 -nostdlib は標準 C ライブラリのリンクを防止します (囚人には必要ありません)。 ステップ2: ELFを生のバイナリ.cellに変換する aarch64-poky-linux-objcopy \ -O バイナリ \ ecall-inmate-linux-demo.elf \ ecall-inmate-linux-demo.cell 結果を確認します。 ファイル ecall-inmate-linux-demo.cell 印刷されたメッセージ: ecall-inmate-linux-demo.cell: データ デフォルトの imx8mq.cell と imx8mq-linux-demo.cell を削除しました 'imx8mq.cell と imx8mq-linux-demo.cell' を生成しましたファイルはターゲットフォルダにプッシュされます: '/usr/share/jailhouse/cells' その後、生成されたimx8mq.cellでJailhouseを有効にすると、以下のエラーが発生します。 / jailhouse で /usr/share/jailhouse/cells/imx8mq.cell を有効にする [ 2533.385877] jailhouse: システム構成ではありません JAILHOUSE_ENABLE: 無効な引数 問題を解決するためのガイダンスと、可能であればユーザーガイド/アプリケーションノートまたは Makefile/適切な GCC コマンドを提供してください。 makefile を添付します (上記のすべてのコマンドが含まれています) コンピレーション、 作る aarch64-poky-Linux-gcc -nostdlib -nostartfiles -ffreestanding -I/ホーム/オートモーティブ/jailhouse/hypervisor/include -I/ホーム/オートモーティブ/jailhouse/hypervisor/arch/arm64/include -I/ホーム/オートモーティブ/jailhouse/include -c imx8mq.c-o imx8mq.o aarch64-poky-linux-ld -Ttext=0x0 -nostdlib -o imx8mq.elf imx8mq.o aarch64-poky-Linux-ld:警告: エントリシンボル _start が見つかりません。デフォルトは 00000000000000000 です aarch64-poky-Linux-objcopy -O バイナリ imx8mq.elf imx8mq.cell .elfを生成しました、.cell、.o。 次のコマンドでファイル形式を検証しました: ファイル imx8mq.elf imx8mq.elf:ELF 64 ビット LSB 実行ファイル、ARM aarch64、バージョン 1 (SYSV)、静的リンク、ストリップなし ファイル imx8mq.o imx8mq.o:ELF 64 ビット LSB 再配置可能、ARM aarch64、バージョン 1 (SYSV)、ストリップなし ファイル imx8mq.cell imx8mq.セル:データ サポートありがとうございます。 スミット Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ ところで: これは間違っている 「バッシュ PYTHONPATH=/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-Linux/jailhouse-native/0.12-r0/image/usr/share/jailhouse/tools をエクスポートします。 エクスポート C_INCLUDE_PATH=/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-linux/jailhouse-native/0.12-r0/image/usr/include/jailhouse      /ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-Linux/jailhouse-native/0.12-r0/image/usr/bin/jailhouse-cell-Linux \      /ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/armv8a-poky-Linux/jailhouse-ecall/1.0-r0/ecall-inmate-Linux-demo.c\ -o ecall-inmate-linux-demo.cell セルは jailhouse-cell-linux ではなく GCC によってコンパイルされます。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ 私はYoctoについてあまり知識がありません。私のビルド コマンドを共有します: . /opt/fsl-imx-internal-xwayland/6.12-styhead/environment-setup-armv8a-poky-linux KDIR=$HOME/linux/linux-lts-nxp CC="aarch64-poky-linux-gcc --sysroot=$SDKTARGETSYSROOT" ARCH=arm64 CROSS_COMPILE=aarch64-poky-linux- V=1 を作成します。 次にセルが構築されます。 5.10も同様のはずです。 コンパイルしたセル ファイルも共有してください。jailhouse-cell-linux がセルでエラーを報告する理由を調べさせてください。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ 彭凡様 状態テーブル、RW セクション、および入出力セクションに関するご回答で提供された、i.MX 8MQ 上の Jailhouse の IVSHMEM メモリ領域に関する貴重なご指導に感謝いたします。皆様のご提案をセル構成に取り入れましたが、i.MX 8MQ EVK ボード上で Yocto 5.15 Kirkstone (Linux 5.15.71-2.2.0) を使用してカスタム E-Call 受刑者セルを作成しようとすると、依然としてコンパイル エラーが発生します。以下に、問題の詳細な概要、解決に向けた取り組み、および現在の状況を示します。この問題の解決に役立つ具体的な参考資料、アプリケーションノート、その他のガイダンスなどをご提供いただければ幸いです。 問題の概要 私たちは、カスタムE-Call受刑者セル構成(最初は `imx8mq-linux-demo.c` に基づいて、`jailhouse-cell-linux` ツールを使用して、簡略化された `ecall-inmate-linux-demo.c` を使用します。`jailhouse-ecall.bb` の `do_compile` タスク中にコンパイルが失敗します。次のエラーのあるレシピ: 「 エラー: jailhouse-ecall-1.0-r0do_compile: 実行エラー('/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/armv8a-poky-Linux/jailhouse-ecall/1.0-r0/temp/run.do_compile.225085', 1, なし, なし) ログデータは次のとおりです: デバッグ: シェル関数 do_compile を実行しています セル構成ではありません: /ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/armv8a-poky-Linux/jailhouse-ecall/1.0-r0/imx8mq-Linux-demo.c 警告: シェル コマンドから終了コード 1 が返されました。 エラー: タスク (/ホーム/オートモーティブ/yocto_imx_linux/sources/meta-ecall/recipes-jailhouse/jailhouse-cells/jailhouse-ecall.bb:do_compile) が終了コード '1' で失敗しました 「 このエラーは、`jailhouse-cell-linux` がセル構成ファイルを有効なものとして認識していないことを示します。解決するために何度も試みましたが、問題は解決しません。 解決に向けた取り組みの詳細 コミュニティからのフィードバックと試行錯誤に基づいて、Yocto レシピ、セル構成、環境にいくつかの更新を加えました。主な取り組みの概要は次のとおりです。 1. 初期設定とエラー: - `jailhouse-ecall.bb` から始めました`imx8mq-linux-demo.c` を使用するそして `jailhouse-native.bb`Siemens Jailhouse フォーク (`git://github.com/siemens/jailhouse.git;branch=master;SRCREV=e57d1eff`) に基づいています。 - `pyjailhouse` モジュールが見つからないことと、`jailhouse-cell-linux` コマンド構文が正しくないこと (例: `-I` を `CELLCONFIG` と誤って解釈する) に関連するエラーが発生しました。 2. レシピの更新: - jailhouse-native.bb: - 当初はヘッダーのインストールが不足していた(`jailhouse/types.h`、`jailhouse/cell-config.h` を参照してください。更新内容: 「ビットベイク インストール -d ${D} ${includedir} /jailhouse cp -r ${S} /include/jailhouse/*.h ${D} ${includedir} /jailhouse/ 「 - i.MX 8MQ の互換性のために `jailhouse_0.12.bb` と整合させるために、NXP Jailhouse フォーク (`git://source.codeaurora.org/external/imx/imx-jailhouse.git;branch=imx_5.4.47_2.2.0;SRCREV=8bbe203`) に切り替えました。 - `pyjailhouse` のインストールと `python3-native` の依存関係を確保しました。 - jailhouse-ecall.bb: - 無効な '/dev/null' 引数を削除し、適切な構文を使用することで 'jailhouse-cell-Linux' コマンドを修正しました。 「ビットベイク ${STAGING_BINDIR_NATIVE} /jailhouse-cell-Linux \ ${S} /ecall-inmate-Linux-demo.c\ -o ${S} /ecall-inmate-linux-demo.cell 「 - E-Call ユースケースに重点を置くために、`imx8mq-linux-demo.c` ではなく `ecall-inmate-linux-demo.c` を使用するように 'SRC_URI' を更新しました。 - ヘッダーと Python モジュールが確実に見つかるよう、「export C_INCLUDE_PATH」と「PYTHONPATH」を追加しました。 3. セル構成の更新: - 'imx8mq-linux-demo.c' をベースに簡略化した 'ecall-inmate-linux-demo.c'そしてIVSHMEMのガイダンス: - 状態テーブル: `0xbfdf0000`、4 KB、読み取り専用。 - RW セクション: `0xbfdf1000`、64 KB、読み取り/書き込み。 - ルート出力: `0xbfdfa000`、8 KB、読み取り/書き込み。 - ルート入力: `0xbfdfc000`、8 KB、読み取り専用。 - UART1 (`0x30860000`)、RAM (`0xc0000000`、256 MB)、通信領域 (`0x80000000`) が含まれています。 - 解析の問題を回避するために、複雑なマクロ (例: `JAILHOUSE_SHMEM_NET_REGIONS`) を削除しました。 - 構成スニペットの例: 「.c」 .mem_regions= { /* IVSHMEM 状態テーブル */ { .phys_start= 0xbfdf0000, .virt_start= 0xbfdf0000, 。サイズ= 0x1000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED、 }, /* IVSHMEM RWセクション */ { .phys_start= 0xbfdf1000, .virt_start= 0xbfdf1000, 。サイズ= 0x10000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_ROOTSHARED、 }, /* IVSHMEM ルート出力 */ { .phys_start= 0xbfdfa000, .virt_start= 0xbfdfa000, 。サイズ= 0x2000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE | JAILHOUSE_MEM_ROOTSHARED、 }, /* IVSHMEM ルート入力 */ { .phys_start= 0xbfdfc000, .virt_start= 0xbfdfc000, 。サイズ= 0x2000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_ROOTSHARED、 }, ... } 「 4. 依存関係とレイヤー構成: - `bblayers.conf` に `meta-ecall` と `meta-freescale` を追加しました。 - `local.conf` を更新しました: 「会議 IMAGE_INSTALL:append = " jailhouse jailhouse-ecall python3" DISTRO_FEATURES:append = " jailhouse 仮想化" 「 - `jailhouse_0.12.bb` がターゲット展開に NXP フォークを使用していることを確認しました。 - `python3-native`、`pyjailhouse`、およびヘッダーがネイティブ sysroot (` ${STAGING_DIR_NATIVE} /usr/share/jailhouse/tools/pyjailhouse/`、` ${STAGING_DIR_NATIVE} /usr/include/jailhouse/`) にインストールされていることを確認しました。 5. 手動テスト: - 手動でテストされた `jailhouse-cell-Linux`: 「バッシュ export PYTHONPATH=/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-Linux/jailhouse-native/0.12-r0/image/usr/share/jailhouse/tools export C_INCLUDE_PATH=/ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-Linux/jailhouse-native/0.12-r0/image/usr/include/jailhouse /ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/x86_64-Linux/jailhouse-native/0.12-r0/image/usr/bin/jailhouse-cell-Linux \ /ホーム/オートモーティブ/yocto_imx_Linux/build/tmp/work/armv8a-poky-Linux/jailhouse-ecall/1.0-r0/ecall-inmate-Linux-demo.c\ -o ecall-inmate-linux-demo.cell 「 - 同じエラー: 「セル構成ではありません」。 - 検証済みの sysroot コンテンツ: `pyjailhouse` モジュール、ヘッダー、および `jailhouse-cell-linux` が存在します。 現在の状況 - 次の場合も「セル構成ではありません」というエラーが続く: - `jailhouse-cell-linux` 構文を修正しました。 - セル構成の簡素化。 - `jailhouse-native.bb` を NXP フォークに合わせます。 - ヘッダーと `pyjailhouse` がインストールされていることを確認します。 - 他のレシピ (`jailhouse-native`、`jailhouse`) は正常にコンパイルされ、問題は `jailhouse-ecall.bb` とセル構成の解析に固有のものであることが示されています。 ご質問とガイダンスのリクエスト 1. このエラーは、NXP Jailhouse フォーク (`imx_5.4.47_2.2.0`) とセル構成のバージョンの不一致が原因である可能性がありますか?このフォークの `jailhouse-cell-linux` には特定の要件がありますか? 2. Yocto 5.15 Kirkstone を使用して i.MX 8MQ でカスタム Jailhouse 受刑者セルを作成するためのアプリケーション ノートまたはユーザー ガイドはありますか?このプラットフォームの詳細なドキュメントは見つかりませんでした。 3. `jailhouse-cell-linux` が複雑な構成 (IVSHMEM 領域など) を解析する際に既知の問題はありますか?構成をさらに簡素化する必要がありますか? 4. `jailhouse-ecall.bb` の参照を提供できますか?i.MX 8MQ 用の `.cell` ファイルをコンパイルするためのレシピまたは例はありますか? 5. i.MX 8MQ 上の Jailhouse に必要な特定の U-Boot またはカーネル構成が不足している可能性はありますか? 6. カスタム レシピ/BB レイヤーの Jailhouse 依存関係の問題を解決するにはどうすればよいですか? 添付ファイル(参考) - `jailhouse-ecall.bb`:E-Callセルのレシピを更新しました。 - `jailhouse-native.bb`:ヘッダー付きの NXP フォークに更新されました。 - `ecall-inmate-linux-demo.c`: IVSHMEM 領域を使用した簡素化された構成。 - `imx8mq-linux-demo.c`:オリジナル構成(参考) - 詳細なコンパイル ログ (必要な場合は、共有方法を確認してください)。 私たちは、E-Call 受刑者セルの展開と共有メモリ通信のテストを進めるために、この問題を解決したいと考えています。私たちのアプローチに関するご意見、参考資料、修正などがあれば、ぜひお知らせください。 サポートありがとうございます! よろしくお願いします、 スミット 注: 応答の改善や詳細ログの生成についてサポートが必要な場合はお知らせください。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、Bio_TICFSLさん あなたの github リンクで、5.15 Kirkstone へのリンクがいくつか見つかりました: https://github.com/NXP/meta-nxp-harpoon/blob/imx-linux-kirkstone/recipes-extended/jailhouse/jailhouse_%25.bbappend https://github.com/NXP/meta-nxp-harpoon/tree/imx-linux-kirkstone NXP i.MX8MQ ボードに役立ちますか? ありがとう、 スミット Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ いくつかヒントを挙げてみましょう: 1. ドキュメント/inter-cell-communication.md では、メモリの配置方法について説明します。 各セルには、ivshmem 用の次の領域が必要です。 - 状態テーブルを保持するための読み取り専用領域(通常は1ページの大きさ) - すべてのピアが読み取り/書き込み可能な1つの領域 - ピアごとに1つの出力領域があり、そのうちの1つに対してのみ読み取り/書き込み可能 2. i.MX8MQへ /* IVHSMEM 共有メモリ領域 00:00.0*/ { .phys_start= 0xbfdf0000, .virt_start= 0xbfdf0000, 。サイズ= 0x1000, .フラグ= JAILHOUSE_MEM_READ、===> これは状態テーブルです。 }, { .phys_start= 0xbfdf1000, .virt_start= 0xbfdf1000, 。サイズ= 0x9000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE 、 ===> これは RW セクションです。これをコミュニケーションにCANます。あるいはこれを拡大します。 }, { .phys_start= 0xbfdfa000, .virt_start= 0xbfdfa000, 。サイズ= 0x2000, .フラグ= JAILHOUSE_MEM_READ | JAILHOUSE_MEM_WRITE 、 ==> これはルート入出力です }, { .phys_start= 0xbfdfc000, .virt_start= 0xbfdfc000, 。サイズ= 0x2000, .フラグ= JAILHOUSE_MEM_READ, ==> これはルート入力です }, { .phys_start= 0xbfdfe000、 .virt_start= 0xbfdfe000、 。サイズ= 0x2000, .フラグ= JAILHOUSE_MEM_READ, ==> これはルート入力です これは、imx8mq-inmate-linux.c のレイアウトと同様です。 RW と INPUT/OUTPUT SECTION を設定できますが、State セクションには触れないでください。 INPUT/OUTPUT の場合、複数の領域を定義すると、各領域のサイズは同じである必要があります。 よろしくお願いします。 彭。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、 MX8MQには監獄はありませんが、MX8Mと同じファミリなので、githubをベースとするか、6.6.36を使用することができます。BSP。 よろしくお願いします。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、Bio_TICFSL 早速のご返信ありがとうございます。 i.MX NXP 8MQ EVKボード「i.MX 8MQuad」を使用しているため、 部品番号「TDA6637」。 SO、現在、Linux Yocto 5.15 Kirkstone ' 5.15.71-2.2.0 ' をフラッシュしました。 しかし、「 NXP Harpoon Jailhouse 統合」に対する返信では、「 i.MX Linux Yocto Project BSP 6.6.36-2.1.0 Harpoon v3 リリース」が必要です。 i.MX 8MQボードでは5.15 Kirkstone Imageまでサポートされており、Harpoonユーザーガイド「UG10170」に記載されています。 Github リンク ' https://github.com/NXP/meta-nxp-harpoon/tree/imx-linux-scarthgap' このリリースでは次のボードがテストされました。 NXP i.MX 8MMini LPDDR4 EVK (imx8mm-lpddr4-evk) NXP i.MX 8MNano LPDDR4 EVK (imx8mn-lpddr4-evk) NXP i.MX 8MPlus LPDDR4 EVK (imx8mp-lpddr4-evk) i.MX 8MQ については触れられていませんが、当社のボードに特定の刑務所ソリューションを提供できますか、または囚人用の独房を作成するための他の可能性を提案できますか? サポートありがとうございます。 ありがとう、 スミット Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ こんにちは、 bbappend レシピを通じて、NXP Harpoon Jailhouse 統合と同様のアプローチに従うことCAN。 例を参照してください: meta-nxp-harpoon/recipes-extended/jailhouse/jailhouse-imx_%.bbappend at imx-linux-scarthgap · NXP/me... ユーザーガイド: https://www.nxp.com/docs/en/user-guide/Harpoon_USERS_GUIDE.pdf よろしくお願いします。 Re: Issue with Jailhouse hypervisor Inmate cell Creation for i.MX8MQ @ペン [email protected] 上記のチケットで説明されているように、私たちが直面しているカスタム Jailhouse セルの作成問題に対する解決策を提案していただけますか? サポートありがとうございます。 さらに詳しい情報が必要な場合はお知らせください。
記事全体を表示
S32K144 RAM 测试在启动阶段失败 当我在启动阶段进行下面的内存测试时,它总是在 step3 中RESET,我找不到原因, 请帮帮我/(ㄒoㄒ)/~~ -----------------------↓----------------↓----------------------------------- ;;RAM 测试 (__RAM_START=0x1FFF9000 /__RAM_END=0x20006FFF) ;;STEP 1 - 写入背景 00,地址递增 LDR R1, =__RAM_START LDR R2, =__RAM_END subs r2, r2, r1 subs r2, #1 ble .ts1_2 movs r0, #0 movs r3, #4 .ts1_1: ;测试步骤 1.1 str r0, [r1] add r1, r1, r3 subs r2, #4 bge .ts1_1 .ts1_2: ;测试步骤 1.1 ;;第 2 步 - 验证背景并写入反相背景 0xFF,地址递增 LDR R1, =__RAM_START LDR R2, =__RAM_END subs r2, r2, r1 subs r2, #1 ble .ts2_2 LDR R3, =0xFFFFFFFF .TS2_1: ;测试步骤 2.1 LDR R0, [R1] CMP R0, #0 BNE Fst_RAMTSTFAIL str r3, [r1] adds r1, r1, #4 subs r2, #4 bge .ts2_1 .ts2_2: ;测试步骤 2.2 ;;第 3 步 - 验证反相背景 0xFF,并写入背景 0x00,地址为 增加 ldr r1, =__ram_start ldr r2, =__ram_end 子系统 R2、R2、R1 SUBS R2, #1 BLE .TS3_2 MOVS R4, #0 .ts3_1: ;测试步骤 3.1 LDR R0, [R1] LDR R3, =0xFFFFFFFF CMP R0, R3 BNE Fst_RAMTSTFAIL STR R4、[R1] 追加 R1、R1、#4 SUBS R2, #4 BGE .TS3_1 .TS3_2: ;测试步骤 3.2 ;;第 4 步 - 验证背景 0x00,并写入反转背景 0xFF,地址为 .... 第 5 步 - 核实反转背景并写入背景,地址递减 .... Re: S32K144 RAM test failed in startup phase 你好@丹尼尔-马蒂内克 我在禁用 wdog 之前做了 ram 测试,所以它会 RESET! 在 s32k118(内存大小为 23k)上没有出现这种情况,因为要测试的内存小于 32k144(内存大小为 64k)。 我在内存测试前禁用了监控程序,结果运行正常😁 谢谢 Re: S32K144 RAM test failed in startup phase 你好,@李杰都、 在 RESET 状态下,WDOG 默认处于启用状态: 它在启动过程中被禁用: 此致, 丹尼尔 Re: S32K144 RAM test failed in startup phase 我找到了 RESET 原因,但仍然对此感到困惑,我甚至没有配置 wdog。 Re: S32K144 RAM test failed in startup phase 你好@丹尼尔-马蒂内克 很难找到 RESET 原因!这就是我在这里寻求帮助的原因😭 执行 RESET 处理程序(RESET 向量表)时,MCU 为空,然后它初始化寄存器 R1-R12 并启动 RAM 测试。其他什么都没做。 Re: S32K144 RAM test failed in startup phase 你好,@李杰都、 你还能识别 RESET 源吗? Re: S32K144 RAM test failed in startup phase 你好@丹尼尔-马蒂内克 感谢您的回答,我已经执行了 HardFault 处理程序,但它没有运行。 这个代码用在 s32k118 上,我在 s32k144 上重复使用它,区别在于 RAM_START 和 RAM_END 的定义。 是代码出了问题,还是我忽略了 s32k144 的其他功能? Re: S32K144 RAM test failed in startup phase 你好,@李杰都、 你知道 MCU RESET 的地址吗? 如果 MCU 意外 RESET,则可能是内核锁定造成的,这会设置 RCM_SRS [LOCKUP] 标志。这种情况通常发生在故障(如 HardFault)发生时,而项目中没有执行有效的 HardFault_Handler。 为了改进调试并更有效地捕获这些异常,我建议实施自定义 HardFault_Handler。 此致, 丹尼尔
記事全体を表示
Zephyr:Dts:如何在 mimxrt1160_evk 中设置我想要的时钟?(区域培训中心、培训管理组织等) 你好 我正在MIMXRT1160-EVK上测试 nxp_zephyr_4_1_0 代码库。 1.https://www.nxp.com/design/design-center/software/embedded-software/mcuxpresso-for-visual-studio-code:MCUXPRESSO-VSC 2.我想知道如何将内部时钟(包括 PLL)输出到 mco(主时钟输出)引脚。如果有相关的例子,请提供。 3.mimxrt1160-evk 有一个 32.768kHz 的外部时钟,我想知道如何启用这个 RTC 时钟。* 例如,我不需要像&rtc 这样的 dts 设置吗? 4.mimxrt1160-evk 的 flax-ram 时钟为 166MHz。我想知道如何将其改为 200MHz。 5.我想知道如何根据自己的喜好调整 lpspi 时钟。 例如,我想知道 0x6c 和 2 在以下 lpspi2 时钟设置中的确切含义。我想把 lpspi2 的时钟频率设置为 100MHz,但不知道如何操作。 &lpspi2 { status = "okay"; clocks = <&ccm IMX_CCM_LPSPI2_CLK 0x6c 2>; //< What exactly do 0x6c and 2 mean? dmas = <&edma0 2 38>, <&edma0 3 39>; dma-names = "rx", "tx"; }; 请详细告诉我如何在 zephyr 中设置上述时钟。谢谢。 Re: Zephyr: Dts: How can I set the clock I want in mimxrt1160_evk? (RTC, MCO, etc) 您好, 对于 RT1160-EVK,只有一块板。 关于您的问题,我的意见如下: 1.请在RT1160-EVK设计资源中找到 EVK SCH,并确保您已理解它。在你想通过软件端快速修改时钟频率之前,你需要自己分析硬件,以确保可以在这个板上修改 " lpspi2 "、" rtc " 和 " 同步动态随机存取存储器(SDRAM) "。具体方法请参考下面的 FlexSPI 示例。 2。FlexSPI 示例:NXP-ZSDK v4.1 仓库由恩智浦维护和开发,但依赖的 Zephyr 由 Zephyr 社区(第三部分开放社区)维护。您可以直接查看正在咨询的DTS配置的 Zephy。例如, FlexSPI1 (EVK 板上默认使用 FlexSPI1 用于 qspi 闪存,PIN 设置 p inmux_flexspi1 取决于硬件连接)显示它可以在 104MHz 上运行 。 硬件连接和开发板相同,但是在恩智浦 软件开发工具包 v25.06中,FlexSPI1的配置为133MHz,而且运行良好。 3.我假设你能理解 EVK 原理图和软件 DTS 配置,然后你就知道了 EVK 板上没有 LPSPI2。仅支持 LPSPI,默认情况下该模块为 DNP(已启用) 4。因此,需要了解这些第三方元器件和EVK软件/硬件的数据表,才能将其修改为合理的值,而不仅仅是假设将其更改为1GHz或200MHz(实际上,如果我们熟悉或非 Flash及其工作模式,FlexSpi1仅在某些条件下支持166Mhz)。 5.关于支持范围,我们支持恩智浦官方软件和硬件。由于不确定因素,对某些定制产品的支持有限。 Re: Zephyr: Dts: How can I set the clock I want in mimxrt1160_evk? (RTC, MCO, etc) 你好 首先,你搞错了。我问的是MIMXRT1160-EVK,而不是MIMXRT1060-EVK。 据我所知,只有一个 MIMXRT1160-EVK,对吗? -https://www.nxp.com/design/design-center/development-boards-and-designs/i-mx-evaluation-and-development-boards/i-mx-rt1160-evaluation-kit:MIMXRT1160-EVK 接下来,zephyr 的版本是4.1.0。既然我说我使用的是nxp_zephyr_4_1_0版本库,我想你应该知道 zephyr 的版本是 4.1.0。 现在,我已经提供了必要的信息,请回顾一下我的问题。 🙂 Re: Zephyr: Dts: How can I set the clock I want in mimxrt1160_evk? (RTC, MCO, etc) 您好, 根据你提供的信息,我无法理解你的观点。在提出这些问题之前,您能提供更多详细信息吗?比如 EVK 板(EVKB 还是 EVKC?),带有专用的 Zephyr 版本等,以供理解。 我试着从 Zephyr 搜索MIMXRT1060-EVK的 DTS,但只能确认它与MCUXPresso SDK(恩智浦官方 SDK v24.12)不同、EVKB),但我找不到您在下面提到的代码 " &lpspi2 "。 https://github.com/zephyrproject-rtos/zephyr/blob/v4.2-branch/boards/nxp/mimxrt1060_evk/mimxrt1060_evk_mimxrt1062_qspi.dts
記事全体を表示
如何更改 Android 10 hdmi 端口的显示方向 您好, 我正在开发一款搭载安卓 10_2.3.0 的 i.MX8MP 定制板。我试图将 Android 图像的显示方向从横向改为纵向,因此在 .mk 中添加了以下更改文件 diff --git a/imx8m/BoardConfigCommon.mk b/imx8m/BoardConfigCommon.mk index 92197b61..2b105592 100644 --- a/imx8m/BoardConfigCommon.mk +++ b/imx8m/BoardConfigCommon.mk @ -10,7 +10,10 @@ have_fsl_imx_ipu \\ prebuilt_fsl_imx_gpu \ board_soc_type (板卡类型 product_manufacturer (产品制造商 -板载 VPU +board_vpu_only +sf_primary_display_orientation (主要显示方向 + +soong_config_imxplugin_sf_primary_display_orientation = 270 SOONG_CONFIG_IMXPLUGIN_BOARD_PLATFORM = imx8 soong_config_imxplugin_num_framebuffer_surface_buffers = 3 diff --git a/imx8m/evk_8mm/BoardConfig.mk b/imx8m/evk_8mm/BoardConfig.mk 索引 ed30f771..cd8f4c89 100644 --- a/imx8m/evk_8mm/BoardConfig.mk +++ b/imx8m/evk_8mm/BoardConfig.mk @@ -117,6 +117,8 @@ target_uses_mke2FS: = true # 定义 帧缓冲区数 num_framebuffer_surface_buffer_surface_buffer_buffer_surface_buffer_bu ffer_surface_buffer_buffer_buffer_surface_buffer_buffer_buffer_buffer_sur 当我设置 SF_PRIMARY_DISPLAY_ORIENTION: = 270 时,输出显示在 当我设置 SF_PRIMARY_DISPLAY_ORIENTATION := 180 时,输出结果显示为 但方向不对。W当我在安卓 15 中通过 $ settings put system user_rotation 3 命令时,我看到了正确的肖像视图。 不过,该命令在 Android 11 上不起作用。 我将附上一张图片,显示我期望在 Android 10 中看到的方向 谢谢&Regards Subash.P   Android 图形与显示 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to change the display Orientation in Android 10 hdmi port 你好@刘志明 使用您的补丁后,我可以在屏幕上看到一些变化,但分辨率不高。此外,当我连接鼠标时,它只能横向导航,而不能纵向导航。 此外,导航栏也不可见。 敬上, Subash P.   Re: How to change the display Orientation in Android 10 hdmi port 您好,在 Android10 中, surfaceflinger 旋转信息不会传递到 HWC,请尝试 HAL 中的附件,并使用 "settings put system accelerometer_rotation 0/1 "进行测试。 diff --git a/display/display/Composer.cpp b/display/display/Composer.cpp old mode 100644 new mode 100755 index 8dba110..282c4f8 --- a/display/display/Composer.cpp +++ b/display/display/Composer.cpp @@ -350,11 +350,40 @@ int Composer::clearWormHole(LayerVector& layers) int Composer::composeLayer(Layer* layer, bool bypass) { + int transform; if (layer == NULL || mTarget == NULL) { ALOGE("composeLayer: invalid layer or target"); return -EINVAL; } + + /* + 0 => 4 + 4 => 3 + 3 => 7 + 7 => 0 + */ + ALOGI("liutest1 composeLayer transform:0x%x\n",layer->transform); + + switch (layer->transform) + { + case 0: + transform = 4; + break; + case 4: + transform = 3; + break; + case 3: + transform = 7; + break; + case 7: + transform = 0; + break; + + default: + ALOGI("liutest1 invalid transform:0x%x\n",layer->transform); + } + if (bypass && layer->isSolidColor()) { ALOGV("composeLayer dim layer bypassed"); return 0; @@ -392,7 +421,7 @@ int Composer::composeLayer(Layer* layer, bool bypass) continue; } - setClipping(srect, drect, clip, layer->transform); + setClipping(srect, drect, clip, /*layer->transform*/transform); ALOGV("index:%d, i:%d sourceCrop(l:%d,t:%d,r:%d,b:%d), " "visible(l:%d,t:%d,r:%d,b:%d), " "display(l:%d,t:%d,r:%d,b:%d)", layer->index, (int)i, @@ -403,8 +432,9 @@ int Composer::composeLayer(Layer* layer, bool bypass) ALOGV("zorder:0x%x, layer phys:0x%" PRIx64, layer->zorder, layer->handle->phys); } - ALOGV("transform:0x%x, blend:0x%x, alpha:0x%x", - layer->transform, layer->blendMode, layer->planeAlpha); + /*ALOGV*/ALOGI("liutest1 transform:0x%x:0x%x, blend:0x%x, alpha:0x%x", + layer->transform,transform, layer->blendMode, layer->planeAlpha); + setG2dSurface(dSurfaceX, mTarget, drect); @@ -422,7 +452,7 @@ int Composer::composeLayer(Layer* layer, bool bypass) return -EINVAL; } - convertRotation(layer->transform, sSurface, dSurface); + convertRotation(/*layer->transform*/transform, sSurface, dSurface); if (!bypass) { convertBlending(layer->blendMode, sSurface, dSurface); } 致敬, Zhiming
記事全体を表示
S32K344 停机 你好,团队、 我们正在使用 S32K344 构建定制的 MCU 板。在开发部分,我们使用 freeRTOS 作为操作系统。我们在初期运行中没有遇到任何问题。但当我们长时间运行时,比如超过 15 分钟,它就会挂起。请告诉我可能出了什么问题。 谢谢! 维奈 Re: S32K344 Halts 你好,@vinaykl、 您需要提供更多详细信息,以缩小问题范围。 你说的 "挂起 "到底是什么意思? 系统是陷入了循环,还是出现了故障异常? 是否有任务仍在运行,还是一切都冻结了? 这种行为可能是由堆栈溢出、堆耗尽、中断行为不当或任务饥饿等内存相关问题引起的。 S32DS IDE 包含有助于分析 FreeRTOS 应用程序的工具,如堆使用视图、任务列表视图等。 此致, 丹尼尔
記事全体を表示
MCU 无法从 VLPS 模式唤醒 您好 ,我们正在为恩智浦的 MCU SW - S32K146 开发电源管理器。电源管理器使用以下三种状态。 运行模式 VPLR 模式 VPLS 模式 此外,还使用了以下时钟源选项。 FIRC SIRC 在启动期间,我们的时钟源为FIRC,电源模式为运行模式。之后,我们将配置 SPLL。在此期间,MCU 电源模式仍为运行模式。在运行模式之后,当 MCU 需要进入 VLPR -> VLPS 模式时,我们要执行以下步骤: 取消初始化: 看门狗 CAN(在这一步中,我们实现了一个封装函数,用于安全地注销 CAN 通道。该函数首先检查所请求的 CAN 实例是否在有效范围内,以及是否已在配置中启用。如果有效,它会调用恩智浦的 Flexcan_DRV_deinit () API 来正确关闭 CAN 硬件并版本资源。) GPIO 引脚(在实施的这一阶段,我们使用 PINS_DRV_Init()函数和睡眠配置数组对所有 MCU 引脚进行了低功耗配置。这可确保将未使用的引脚设置为安全状态(输入具有上拉/下拉功能)以最大限度地减少漏电流,同时具有唤醒功能的引脚保持活动状态,用于基于中断从 VLPR/VLPS 模式中唤醒。) CAN_STD 和 CAN_EN 引脚设置为低电平。 安装并启用两个中断处理程序。(PORTE(PTE4 引脚)和 PORTA)。此外,两个 uint8_t 标志被设置为 true(默认设置为 0)(当我们进入 VPLS 模式时,一个 LMPTR 定时器也会启用,因此基本上有三个中断工作)。 然后,我们将MCU电源模式设置为VLPR,然后立即设置为VLPS模式。 正常运行: 在 VLPS 模式下,PORTE 上接收到监测引脚的中断,标志值为 true,首先禁用 IRQ,然后对 MCU 进行软复位,RESET MCU,操作从启动开始恢复正常。 我们遇到了以下问题,因此希望得到您的支持,以了解我们是否做错了什么。 问题:有时,MCU 会随机陷入一种状态,只有通过关闭电源和机才能 RESET。 我们的假设在 MCU 卡死的上述状态中,我们假设可能会发生以下情况。 中断处理程序回调函数中使用的标志是非易失性的。虽然在安装中断处理程序时将标志设置为 true,但我们怀疑没有正确读取当前标志值(易失、非易失问题)。 如果 MCU 在从 RUN 进入 VLPR->VLPS 模式期间收到中断信号,则 MCU 可能会进入停止状态。 Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 目前,MCU 已不再处于这种状态。但是,如果这个问题再次发生,那么当MCU运行发行版本时,我应该如何获取寄存器值转储。 如果碰巧再次进入这种状态,可以尝试通过调试器中的"Attach to running target" 配置连接 MCU。例如,使用 S32DS"Registers" 查看和导出。或使用 TRACE32 将值导出为 CSV:调试 - 如何从 TRACE32 导出变量值 - Stack Overflow。 由于我们没有使用 "退出时休眠 "功能,我们是否需要"在进入 VLPS" 之前,我们是否需要使用 DSB + ISB 指令来确保适当的同步? 如果需要,那么以这种方式调用函数是否正确? 这只是两个建议,因为以前也出现过类似的问题,客户使用的是退出时休眠功能。我想确认配置是否相同。 DSB + ISB 在您的实施中看起来很好。这主要是为了确保在继续进行 VLPS 之前完成任何正在进行的数据处理。 调用INT_SYS_ClearPending()看起来也不错,这将在进入低功耗前检查是否有挂起的中断。 这是一个非常奇怪的问题,因为它很难重现。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好@Julián_AragónM, 感谢您一直以来的支持。请在下面找到您问题的答案。 至于处于停机状态的设备... 你能测量电流消耗吗? 遗憾的是,在问题发生之前,我们没有连接电流表,而且由于问题很少发生,使用电流表需要中断蓄电池连接,从而导致 POR。 设备在 VLPS 上还是永远不会进入低功耗? 目前我们还不能确定。目的是让设备进入VLPS。不过,它也有可能陷入某种未知状态。 您能分享这个州的登记转储情况吗? 目前,MCU 已不再处于这种状态。但是,如果这个问题再次发生,那么当MCU运行发行版本时,我应该如何获取寄存器值转储。 此外,您是否配置了退出时休眠功能? 没有,目前我们没有使用退出时休眠功能。 /* ISR 退出时不重新进入(深度)睡眠状态 */ S32_SCB->SCR&= ~(S32_SCB_SCR_SLEEPONEXIT_MASK); 关于您的建议,我有几个问题。 由于我们没有使用 Sleep on Exit 功能,我们是否需要"使用 DSB + ISB 指令,以确保在进入 VLPS" 之前适当同步? /* Cpu 将进入深度睡眠状态 */ asm( ISB ); STANDBY(); // where STADBY() - #define STANDBY() __asm volatile ( wfi ) __asm("DSB"); __"" >"" 我们正在研究应用层。那么,在将电源模式切换到 VLPS 之前,我需要调用以下函数吗? void int_sys_clearPending (irqn_Type IRQNumber);//<-在切换到 VLPS 之前调用这个函数? power_sys_setMode(POWER_MANAGER_VLPS、POWER_MANAGER_POLICY_FORCIBLE);谢谢,最诚挚的问候, Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 是的,进入 VLPS 时,会请求非 CPU 总线主站进入停止模式: 您必须注意 VLPS 模式的 DMA 配置。这与 ERR011063 有关: 但是,如果禁用 DMA 时仍出现此问题,那么问题可能与此没有直接关系。 如果在 VLPS 中或之后不需要 DMA,则 EDMA_DRV_Deinit() 函数是正确的方法。 至于处于停机状态的设备... 你能测量电流消耗吗?设备在 VLPS 上还是永远不会进入低功耗?您能分享这个州的登记转储情况吗? 此外,您是否配置了退出时休眠功能?曾经报告过这样一个问题:当 MCU 尝试处理 ISR 并通过退出时休眠返回 VLPS 时,会卡死在停止状态。解决方法是设置数据同步障碍,以确保在继续之前完成任何数据操作。 我的建议是在进入 VLPS 之前确保没有待处理的中断(我认为一个简单的如果 ((NVIC->ISPR[0]& NVIC->ISER[0]) == 0) 检查就足够了),并使用 DSB + ISB 指令确保在再次进入 VLPS 之前正确同步。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode @Julián_AragónM 我们目前使用 3 个 DMA 通道:0、1 和 3。 0 映射到 Flex I/O UART。 1 映射到 LPUART 0 RX 3 映射到 LPUART 1 RX 当我们进入 VLPS 时,发现只有 DMA 0 启用。我们使用 for (int ch = 0; ch< 16; ch++) { // S32K146 有 16 个通道 if (DMA->ERQ& (1<< ch)) { printf("DMA 通道%d is ENABLED\r\n", ch); } } 此 for 循环仅用于调试版本,不用于发行版。我们没有明确禁用 DMA 1 和 3,但观察到它们可能仍被驱动程序函数static void LPUART_DRV_StopRxDma(uint32_t instance) 禁用。 我们尝试在进入 VLPS 之前使用 status_t EDMA_DRV_Deinit(void)明确禁用 DMA 通道。 我们的目的是确保在进入 VLPS 状态之前停止 DMA 传输。我们的方法是否正确? 但这一声明与我们目前面临的 MCU 停机问题无关。我们观察到,无论是否采取上述步骤,我们都得到了停止状态。我只想问,在进入 VLPS 之前,是否需要明确调用 status_t EDMA_DRV_Deinit(void)。 Re: MCU not wakeup up from VLPS mode 你好@Julián_AragónM 今天测试时,我们再次卡在 MCU 停止状态。过去三周以来,一切运行正常。我们完全绕过了 VLPR 状态。现在我们直接从 Run 到 VLPS(中间没有 VLPR)。我们还从时钟频率证实了这一点,总线时钟为4Mhz,系统时钟为8Mhz。我们还确认,在使用 VLPS 之前,时钟源是 SIRC,所有其他时钟源都已禁用。 在 MCU 停止状态下,我们连接了 JTag,并能使用 RTT 查看器进行连接。以下是 RTT 查看器在 MCU 停止状态下的截图。   没有什么能让 MCU 活起来。我们唯一能确定的办法就是断电。我们的 MCU 目前处于这种状态,如果您希望我们在这种状态下进行尝试,我们将等待您的回复。这是因为这个问题很难重现,而且我们也不知道什么时候会再次发生。等待您的回复。 Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 是的,如果不用作唤醒中断,则应禁用 LPTRM IRQ 和时钟源。 这样可以减少不必要的电流,避免在离开 VLPS 时发生不必要的 ISR。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, ,感谢您的支持。你说得对。在我们的项目中,我们并不需要过渡到 VLPR,因此绕过了它。根据您的意见,我们想进一步询问是否有必要同时对 LPTMR IRQ 进行去初始化。LPTMR 中断每 1 毫秒触发一次,基本上是在运行整个 MCU 代码。当 MCU 转换到 VLPS 状态时,我们将不再使用该 LPTMR 中断。相反,我们使用 GPIO 引脚作为唤醒源。因此,在 VLPS 模式下,我们实际上并不需要 LPTMR IRQ。 那么,由于 LPTMR IRQ 是使用时钟源的外设,我们是否也应该对其进行去初始化? Re: MCU not wakeup up from VLPS mode 嗨,@Sami2098、 除非您在 MCU 停止运行后尝试连接,否则我真的无法找出这个问题的根本原因。 项目是否需要 VLPR? 它可以从 RUN 直接转到 VLPS。这也会降低ERR011063 的风险。 有关模式过渡的信息,请参阅 AN5425 中的第 5.6 章:S32K1xx 的电源管理单元。但你的程序似乎是正确的;首先禁用使用时钟源的外设,将系统时钟切换到 SIRC,然后禁用所有其他时钟源。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, 不确定,但我也遇到了同样的问题。 我希望你是在唤醒 ISR 中禁用了 VLPS? ,如果是这样,你可以在退出时禁用低功耗/休眠/唤醒之前,尝试挂起任何未使用的中断或你想唤醒的 ISR 中的相同中断。 Re: MCU not wakeup up from VLPS mode 同时,我们还使用 NXP API 检查了时钟频率: uint32_t sysClk = 0; uint32_t busClk = 0; /* 获取系统时钟频率 */ CLOCK_SYS_GetFreq(CORE_CLOCK,&sysClk); /* 获取总线时钟频率 */ cloc k_sys_getFreq (BUS_CLOCK,& busCLK); 我们在运行模式下收到了以下值:内 核/系统时钟:8 MHz 总线时钟:4 MHz 我们在 VLPR 模式下收到了以下值:内 核/系统时钟:4 MHz 总线时钟:4 MHz 这些值是在调用恩智浦 API 从运行模式转为 VLPR 模式后收到的: POWER_SYS_SetMode(POWER_MANAGER_VLPR,POWER_MANAGER_POLICY_FORCIBLE); Re: MCU not wakeup up from VLPS mode 这种情况很少发生。这发生在两周前,但当时我们只做了 POR。从那以后,我们再也无法重现这个问题。 我目前正在使用恩智浦SDK API进行电源模式切换,在这些API中,正在设置SIRC时钟。那么,我是否需要在切换前手动检查时钟频率?我认为应用程序接口已经在处理这个问题了。 我使用的应用程序接口是 status_t POWER_SYS_SetMode(uint8_t powerModeIndex、 power_manager_policy_t policy); 我是这样说的: POWER_SYS_SetMode(POWER_MANAGER_VLPR, POWER_MANAGER_POLICY_FORCIBLE); POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE); 问题 我们能找到问题的根源吗? 目前,我们会在进入 VLPR 之前去初始化看门狗。是否可以在 VLPR 之后但在进入 VLPS 模式之前对其进行去初始化? 是否有任何演示应用程序可用于手动配置 VCCR? Re: MCU not wakeup up from VLPS mode 你好@Sami2098 RUN->VLPR->VLPS 的步骤似乎是正确的。板进入 "halt" 状态后你能连接到它吗?(通过使用"Attach to target" 选项)。 这个问题可能是由时钟配置引起的。ERR011063(摘自S32K146_0N73V😞😞 这只适用于 从 VLPR 模式 进入 VLPS 模式 的例程 ,而您的情况正是如此。请尝试更改 VCCR 配置。 致以最诚挚的问候, Julián Re: MCU not wakeup up from VLPS mode 您好, 在 VLPS 模式下,我们将按以下方式初始化用于中断的 GPIO 引脚。 1.[PINS_DRV_ClearPortIntFlagCmd(PORTE); INT_SYS_InstallHandler(PORTE_IRQn, IF_PORTE_IRQHandler, NULL); INT_SYS_EnableIRQ(PORTE_IRQn);   那么我们只需调用下面的接口函数即可跳转到 VLPS 模式。 POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE);]。   这种做法正确吗?还是应该遵循以下程序? 2.[PINS_DRV_ClearPortIntFlagCmd(PORTE); INT_SYS_InstallHandler(PORTE_IRQn, IF_PORTE_IRQHandler, NULL); INT_SYS_EnableIRQ(PORTE_IRQn); 然后清除 INT_SYS_ClearPending(PORTE_IRQn); ->??? 那么我们只需调用下面的接口函数即可跳转到 VLPS 模式。 POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE);]。   还是下面这些? 3.[ // 准备期间禁用中断 INT_SYS_DisableIRQ(PORTE_IRQn); // 清除硬件标志 PORTE->ISFR = 0xFFFFFFFF; // 清除 NVIC 挂起 INT_SYS_ClearPending(PORTE_IRQn); // 现在启用中断 INT_SYS_EnableIRQ(PORTE_IRQn); // 再次清除,以避免任何运行时事件 PORTE->ISFR = 0xFFFFFFFF; INT_SYS_ClearPending(PORTE_IRQn); // 进入 VLPS POWER_SYS_SetMode(POWER_MANAGER_VLPS, POWER_MANAGER_POLICY_FORCIBLE); ]   哪种方法最合理?   MCU 还能因为第二种方法而进入某种停止状态吗?有风险吗?   非常感谢你们一直以来的支持。   此致,
記事全体を表示
关于通过 MU 接口安装 HSE 的几个问题 你好,恩智浦 我正在尝试通过 MU 接口在我的 S32K344 开发板中安装 HSE。 在阅读了大量文档和文件后,我仍有一些问题。 1.我想在 Sram 中加入粉红色图像。我尝试使用 ld 文件直接将图像放入 sram,但似乎失败了。(使用 ld 文件将图像放入闪存即可) HSE_FLASH : ORIGIN = 0x00502000, LENGTH = 0x00030000 HSE_SRAM :ORIGIN = 0x20410000,LENGTH = 0x00030000 作为替代解决方案,现在我禁用 MPU,并使用 memcpy 将图像从闪存复制到 ram,这样就能正常工作了。 2。我使用 " power_IP_PerformReset (& power_IP_HwipsConfigpB); " 来调用功能 RESET。 当触发 " power_IP_performReset " 时,sram 中的内容会丢失,转到主函数的第一行。这似乎与文档不符、 我的用法正确吗?这是功能RESET的正常行为吗?   3.如何 通过应用程序写入和读取 DCMRWP1 和 MU Rx/tx 寄存器。我尝试在调试中使用 jlink,但读写失败。 非常感谢。 Re: Few questions about HSE installation via MU interface 必须初始化 RAM 内存: 在 POR RESET 之后以及当 RAM 内容无效时进行破坏性 RESET 后,需要进行此初始化。RAM 内容会在功能 RESET 后保留,因此在这种情况下不需要 RAM 初始化。 调试器中的"????????" 表示调试器无法读取数据。如果是内存,则是由于内存未初始化时出现了 ECC 错误。 回答你的问题 1。功能 RESET 将使 "App 核心" 回到 main.c 的第一行,但安装需要 2 次功能 RESET。我能保持 PC 指针不被 RESET 吗? -功能RESET将强制程序计数器移至入口点,而不是 main.c 的第一行。如果调试器停在 main 函数的第一行,则是由断点引起的。不可能让 PC 持续 RESET。正如我上面提到的,RAM 内容会在功能 RESET 期间保留。RAM 初始化可以是有条件的-您的启动代码在功能 RESET 后无需初始化 RAM。 2.我不知道如何通过应用程序写入和读取这些寄存器,你能教教我吗? - 这些是正常的内存映射寄存器。您可以像读写其他外设寄存器一样读写这些寄存器。HSE FW RM 中描述的 MU 安装方法甚至包含这些寄存器的地址。 问候, Lukas Re: Few questions about HSE installation via MU interface 非常感谢你的答复。 我的公司生产程序员。我们的一位客户选择使用 MU 安装,并将图像放入 SRAM。所以我正在研究,试图找到 自主开发程序员的实施计划。 Sram 中的内容被删除的原因已经找到: 在.ld文件,有一个配置 " __RAM_INIT = 0;" 这会导致每次 RESET 都会初始化 sra m。 我没有 trace32,所以用 Jlink。我试图通过调试器直接修改,但失败了。 警告:读取地址为 0x402AC2C0 的内存失败 警告:读取地址为 0x402AC2C0 的内存失败 警告:读取地址为 0x402AC66F 的内存失败   因此,我正在寻找新的方法,我的想法是通过应用程序控制 MU。 目前,我的主要困惑在于以下几点: 1。功能 RESET 将使 "App 核心" 回到 main.c 的第一行,但安装需要 2 次功能 RESET。我能保持 PC 指针不被 RESET 吗? 2.我不知道如何通过应用程序写入和读取这些寄存器,你能教教我吗? 我是第一次接触这种安装方法和集成开发环境,所以我的理解可能有一些不准确的地方。如果有任何错误,希望您能谅解和指正。 通过应用程序控制 MU 安装是否可行?   Re: Few questions about HSE installation via MU interface 你好@边浩鹏 首先,通过 MU 接口进行安装有什么特殊原因吗?这通常用于恢复目的。通过 IVT 安装是更常见的方法。 粉色图像可以留在闪存中。没必要把它移到内存中。RESET后,RAM 由启动代码初始化,变量也会被清除/初始化。这可能就是内存中不再有图像的原因。 此外,调试器在捕获 RESET 事件时通常会遇到问题,RESET 后的行为有时是不可预测的。最好在没有调试器的情况下测试此类操作。 使用劳特巴赫公司的 Trace32 调试器时,通过 MU 接口安装固件没有问题。超时时间足够长,在调试器中手动执行序列应该没有问题。 如何写入 DCMRWP1 寄存器?只能写入 24:31 位。我只需读出寄存器的内容,相应屏蔽 24:31 位,然后将该值写回。这在我这边起了作用。 此致, Lukas
記事全体を表示
ADC 压摆测试 项目概述 我正在研究一种通过 emiOS → BCTU → ADC 链触发信号 ADC 采样的设计。BCTU 从 配置在 OPWMT 模式下 的 emiOS PWM 通道 接收触发信号, 以便在触发事件之间创建精确的时间偏移。 当前设置 ADC0 处理两组信号: 由 em ios_0_ch@@ 1 触发的第 1 组 (两个 ADC 通道) 由 em ios_0_ch@@ 2 触发的第 2 组 (两个 ADC 通道) 每个信号采样大约需要 1.3 µs,因此每组信号大约需要 2.6 µs。 第二组(由 CH2 触发信号)偏移 3.6 µs(+1 µs 边距),以避免与第一组重叠。 时间顺序: Time (µs): 0 1.3 2.6 3.6 4.9 6.2 7.2 |----------|----------|----------|----------|----------|----------|----------| eMIOS_0_CH1 ---> adc_ch1 (start at 0 µs) ---> adc_ch2 (after 1.3 µs) eMIOS_0_CH2 (offset by 3.6 µs) ---> adc_ch1 (start at 3.6 µs) ---> adc_ch2 (after 1.3 µs → ~4.9 µs) eMIOS_0_CH4 (offset by 7.2 µs) ---> software trigger for ADC0 self-test 两个组都完成后,我添加了 emios_0_ch4 作为 软件触发器 (通过回调)在 ADC0 上启动 ADC 自检。使用 adc_sar_IP_SelfTest API CH4 偏移 7.2 µs ,以确保在自检开始前完成所有采样。 观察 当我在 CH4 回调中切换 GPIO 时,它如期触发。不过,为单个 ADC 实例运行 ADC 自检 需要约 13 µs (通过软件测量)。   问题 S32K3xx ADC(算法 S + C)的自检持续时间(约 13 µs)是预期的吗? 我的计算结果 采样相位时间 (ST) = 23 每个比特的评估时间 = 4 数据处理时间 (DP) = 2 在不影响 25 µs 采集周期的情况下安排自检的最佳方法是什么?考虑到每个实例可能包含多个ADC通道组,是否有其他或更有效的方法可以触发信号ADC的自检?我目前使用的是 RTD 中的 Adc_Sar_Ip_SelfTest API,我想知道在初始化时执行自检更合适,还是在运行时执行自检更合适,还是两者都执行自检更合适。在时间、可靠性和整体系统性能方面,处理 ADC 自测试的最佳做法是什么? 在自测期间仅屏蔽 ADC0 触发信号(而不是冻结所有 BCTU 触发信号)是否是保持 ADC1 和 ADC2 运行的正确方法? 目标: 确保对 ADC0 进行定期自检,同时不干扰其他 ADC 的实时采样。 我附上了我的项目,你可以看一看。 s32k344 RTD_6.0.0 Re: ADC slef Test 感谢您关注我们的产品并为我们的社区做出贡献。 根据60.3.17.2 自检部分:在 80 MHz ADC 时钟频率下,单个步骤耗时可达 1 µs。 请参见所附示例。实际上,我无法让每个实例的运行时间少于 14us。 对于功能安全应用,必须定期验证操作是否正确。但也要考虑到,ADC 自检函数应在驱动程序初始化后的任何时间调用,并且没有正在进行的转换。 当您暂停调试会话时,在 “表达式” 税务摊销收益中可以观察结果:g_FIFO1Resul t,它对应于 BCTU 列表测量值,同时 g _FIFO1Volts 对应的是以伏特为单位的转换。 希望这能解决您的问题。 如有更多问题,请帮助我创建一个新职位。
記事全体を表示
S32K312 RTT 打印问题 大家好,我目前正在学习如何使用 S32K312 芯片,以及如何用 JLINK 配置 SWD 1000KHz 调试。这样,调试就很正常了。但是,在尝试使用 SEGDER 的 RTT 工具打印数据时,每次使用上位机 RTT 查看器连接时,都会显示连接成功,芯片却跑掉了(无论是否处于调试模式)。我的芯片有一个一秒周期的 Leb 灯任务,如果它在运行时持续打开或关闭,那么 RST 就不应该持续降低它的亮度。JLINK 8.6.0 版本也支持 S32K312。请问为什么?谢谢 S32K312EVB-Q172 Re: S32K312 RTT PRINT Issues 嗨,@zhaobasui、 您是否已将 _SEGGER_RTT 变量从地图文件配置到工具?另一个社区帖子中也提到了这一点:已解决:如何在 S32 平台 3.5 的 S32DS 中使用 RTT - NXP 社区。 请尝试联系 SEGGER,因为该产品不是 NXP 生产的。 致以最诚挚的问候, Julián 回复: S32K312 RTT PRINT Issues 相同的设备、相同的上位计算机和相同的 RTT 代码都可以打印在 S32K144 上。
記事全体を表示
MIMXRT1166およびW9812G6KB SDRAMエラー MIMXRT1166 と W9812G6KB SDRAM を 166 MHz で使用するカスタム ボードがあります。SDRAMCRx 設定を SDRAM データシートで要求されている特定の値に合わせるように DCD を構成しました。DQS ピンはボード上で配線されていません。 私のアプリケーションは Zephyr を使用しており、SDRAM はデータとアプリケーションのヒープ/スタックに利用されています。数分間実行すると、アプリケーションがクラッシュし、さまざまなエラー メッセージが表示されます。 [00:08:10.517,000] os: ***** USAGE FAULT ***** [00:08:10.525,000] os: Illegal use of the EPSR [00:18:33.709,000] os: ***** USAGE FAULT ***** [00:18:33.717,000] os: Attempt to execute undefined instruction [00:01:58.470,000] os: ***** USAGE FAULT ***** [00:01:58.478,000] os: Unaligned memory access パターンを書き込んでそれをチェックするベアメタル アプリケーションを実行して SDRAM をテストしたところ、問題なく何時間も実行できました。 SEMC パラメータの調整に多くの時間を費やしましたが、成功しませんでした。私の知る限りでは、間違った値がスタックからポップされていますが、クラッシュは毎回異なる場所で発生し、そのパターンを見つけることができません。 私はこの問題の追跡に多くの時間を費やしてきましたので、どんな指摘でも本当に感謝します。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 それはわかってよかったです!ご質問がございましたらお気軽にお問い合わせください。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Liさん ファームウェアが原因であるという手がかりがあります。これまでは Zephyr v3.7.1 LTS を使用していましたが、昨日 Zephyr v4.2.99 に切り替え、2 つのボードを一晩稼働させたままにしましたが、問題なく稼働しました。 ご協力ありがとうございます。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 添付のパッチは SDRAM ストレス テスト用のコードです。任意のフォルダーでこのパッチを使用して「git apply」コマンドを使用すると、ソース ファイルをプロジェクトに含めることができます。 お役に立てれば幸いです。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Liさん SDRAM を使用しないアプリケーションを実行している場合、エラーは表示されません。データに OCRAM を使用して、パターンを SDRAM に書き込み/読み取りするテストを行いましたが、問題なく動作したSO、問題は SDRAM に関連していると結論付けることができると思います。 SDRAM を別のチップ (ISSI) に変更しましたが、問題は解決しません。読み取りテストと書き込みテストは合格しているので、これがハードウェア/ルーティングの問題であるとはまだ 100% CAN確信できません。問題をさらに切り分けるためにどのようなテストを実行すればよいかについて、何かアイデアはありますか? Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 情報ありがとうございます!データとヒープ/スタックを SRAM などの別の場所に置くことは可能ですか? 問題が解決しない場合は、根本的な原因が SDRAM ではなくアプリケーション側にあることを意味します。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Liさん DCD ファイルを更新しても変化はなく、クラッシュは引き続き発生します。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 情報ありがとうございます!DCD ファイルは専門家によって確認され、更新されました。添付ファイルから入手してください。 お役に立てれば幸いです。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Li 、回路図を見ていただきありがとうございます。 DCD は SEMC の初期化にのみ使用し、アプリケーションからは SEMC には触れません。添付の dcd.c ファイルを参照してください。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 シェアしていただきありがとうございます!SDRAM 回路図は私と専門家によって二重チェックされましたが、問題は見つかりませんでした。DCD ファイルも共有していただくことは可能でしょうか?アプリケーション コードでも SEMC を初期化しましたか?宜しくお願い致します。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Liさん 以下は SDRAM の回路図です。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 ご説明ありがとうございます!レビューのために回路図の一部を共有していただくことは可能でしょうか?特に RT と SDRAM 間の接続に関して。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 --------------------------------------------------------------------------------- Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@Kan_Liさん コードは EPSR の読み取りまたは書き込みを試行せず、アプリケーションは XIP モードで実行されます。EVK にはアクセスできませんが、別の SDRAM チップを使用する以前のボード リビジョンがあり、アプリケーションは問題なく実行されます。これは、SDRAM の構成ミスまたはハードウェアの問題を示しています。 例外はほとんどの場合異なり、異なる場所で発生します。次に例を示します。 [00:26:09.898,000] os: ***** MPU FAULT ***** [00:26:09.906,000] os: Instruction Access Violation [00:26:09.914,000] os: r0/a1: 0x00000001 r1/a2: 0x80101c60 r2/a3: 0x80101c60 [00:26:09.925,000] os: r3/a4: 0x80101c60 r12/ip: 0x8012b4bc r14/lr: 0x300335ad [00:26:09.936,000] os: xpsr: 0x20000246 [00:26:09.943,000] os: s[ 0]: 0x80101c60 s[ 1]: 0x800026c4 s[ 2]: 0x00000000 s[ 3]: 0x3005c74c [00:26:09.955,000] os: s[ 4]: 0x3005c730 s[ 5]: 0x30031fef s[ 6]: 0x80082460 s[ 7]: 0x00072300 [00:26:09.968,000] os: s[ 8]: 0x00000038 s[ 9]: 0x3000debb s[10]: 0x8012b4c8 s[11]: 0x3000a52f [00:26:09.981,000] os: s[12]: 0x00000000 s[13]: 0xfffffffd s[14]: 0xaaaaaaab s[15]: 0xaaaaaaab [00:26:09.993,000] os: fpscr: 0xaabaaaaa [00:26:10.000,000] os: Faulting instruction address (r15/pc): 0x80101c60 [00:26:10.010,000] os: >>> ZEPHYR FATAL ERROR 20: Unknown error on CPU 0 [00:26:10.020,000] os: Fault during interrupt handling [00:26:10.029,000] os: Current thread: 0x80101c60 (lvgl_handler_tid) [00:26:10.039,000] os: Halting system PC は SDRAM を指していますが、アプリケーションは SDRAM から機能を実行することは想定されていないため、これは奇妙です。一部のレジスタには 0xaaaaaaab という疑わしい値が含まれていますが、これは Zephyr がスタックを 0xaaaaaaaa パターンで埋めるため、スタック汚染を意味している可能性があります。 DCD ファイル内の SDRAM タイミング パラメータを変更すると、エラーの頻度が増加する傾向があります。この場合も、SDRAM に問題があると考えられますが、正確な理由を特定CANません。 SDRAM 速度を下げてみましたが、クラッシュはまだ発生します。私が気づいたもう 1 つの点は、SEMC_INTR の AXIBUSERR が設定されていることです。これは、ベア メタル アプリケーションの実行時には発生しません。 Re: MIMXRT1166 and W9812G6KB SDRAM errors こんにちは@tbonkers 、 アプリ コードから EPSR レジスタの読み取り/書き込みを試行していますか?特にこのレジスタのTビットは重要です。Tビットが0のときに命令を実行しようとすると、エラーまたはロックアップが発生します。未定義命令の問題もこれが原因で、非整列メモリアクセスの問題もこれが原因であるのではないかと考えます。 カスタム ボードを使用しており、プロジェクトは XIP モードで実行されていると想定していますか?RT1160EVK もお持ちかどうかはわかりませんが、お持ちの場合は、EVK でアプリケーション コードを試して、結果が同じかどうかを確認してください。そうすることで、根本的な原因がハードウェアかソフトウェアかを特定するのに役立ちます。 すてきな一日を、 カン --------------------------------------------------------------------------------- 注記: - この投稿があなたの質問への回答である場合は、「正解としてマーク」ボタンをクリックしてください。ありがとう! - Threadは最後の投稿から7週間フォローされます。それ以降の返信は無視されます。 後ほど関連する質問がある場合は、新しいThreadを開いて、閉じたThreadを参照してください。 ---------------------------------------------------------------------------------
記事全体を表示
数字输入/ADC/PWM 输入完整性检查 我正在使用 MPC5746C 微控制器进行功能安全关键型 ECU 设计,我需要确保我的 ASILB ECU 的功能安全相关输入(数字输入、ADC、PWM)的完整性。 根据 MPC5746C 功能安全手册(修订版 2),第 5.2.31 节 (SIUL2) 和假设 [SM_232]、[SM_233] 和 [SM_237],建议使用冗余 I/O 模块或复制传感器来实现所需的功能安全完整性。 不过,由于当前系统的硬件限制,我只能使用单个硬件输入,没有冗余引脚或重复的传感器。因此,我无法实现硬件级冗余。 我想请您就以下方面提供指导 推荐或支持哪些软件或 MCU 级别的机制(例如诊断、自检或可信性检查)来确保此类非冗余配置中输入数据完整性? 在 SIUL2、ADC 或其他模块中,是否有寄存器、内部交叉检查或外设功能可用于在运行时检测故障(卡住、VDD/GND 短路等)? 恩智浦是否为单通道输入完整性监控提供任何参考实现或示例,以替代硬件冗余? Re: Inputs integrity check for Digital Input/ ADC/PWM 你好 在内部将单个 ADC 输入连接到不同的 ADC 通道并验证两个通道的输出如何?- 这种说法是否成立? 这样就可以排除内部 ADC 模块的故障。但也可以通过每隔一段时间进行 ADC 测试测量来消除这种情况,以确保 ADC 正确转换引脚信号。 有些 UC 还为此进行了 ADC 硬件自检。但这次不是。 如果引脚上存在电磁兼容干扰(感应),那么这种电磁兼容干扰也会从引脚传播到所有路由 ADC 通道。 换句话说,如果您在引脚上测量到不正确的电压(由于感应),您只能通过两个不相邻的输入引脚进行双重感应来消除这种情况。 我在这里看不到任何解决方法。 也许如果你知道要测量的预期电压范围,那么你可以编写一个比较+测试算法,使其至少在预期范围内,如果不是,你将进入安全状态(RESET/重新测量等...)。但这并不能捕捉边角情况。 请说明如何对数字输入和PWM 输入实施类似的完整性检查或故障检测机制? 以下是一些一般提示: 1.数字输入 - 完整性监测技术 卡死故障检测 上拉/下拉电阻器切换: 将输入引脚配置为内部上拉,然后切换为下拉。 如果输入值没有相应变化,则可能是卡住或短路。 输入激励(如有可能) 如果输入端连接到可控外部信号(如通过 MCU 输出或测试模式),则切换信号并验证输入响应。 可信度检查 时间行为:确保输入在预期时间间隔内切换。 与系统状态交叉检查:例如,如果预期某个开关在某个操作过程中处于关闭状态,则标记意外接通状态。 2.PWM 输入 - 完整性监测技术 捕获和测量占空比 在输入捕获模式下使用 emiOS 可以: 测量频率、占空比和脉冲宽度。 与预期范围或模式进行比较。 可信度检查 范围检查:确保占空比和频率在有效范围内。 变化率:检测突然跳变或冻结的信号。 超时检测:如果在时间窗口内未检测到边沿,则标记为故障。 与 ADC 或系统状态交叉检查 如果 PWM 输入控制物理致动器(例如风扇),则将测得的 PWM 与 ADC 反馈(例如 RPM 传感器)进行比较。 据我了解,在每次破坏性RESET期间,STCU 已经验证了外设的完整性,而 ADC的输入完整性只能通过冗余输入通道得到充分保证。请确认这一解释是否正确。 是,如果选择并启用了 ADC 的 STCU BIST。除了冗余测量之外,我看不到其他确保测量信号正确的方法。由于电磁兼容性通常不会影响所有引脚。这只是邻居针脚的感应。 顺祝商祺! Peter Re: Inputs integrity check for Digital Input/ ADC/PWM 正如您所提到的,在同一 ADC 通道上执行多次读取(突发采样)可以提高诊断覆盖率,但无法检测到所有类型的故障。因此,这种方法并不能完全有效地确保电磁兼容性条件下的输入完整性。 在内部将单个 ADC 输入连接到不同的 ADC 通道并验证两个通道的输出如何?- 这种说法是否成立? 请说明如何对数字输入和PWM 输入实施类似的完整性检查或故障检测机制? 据我了解,在每次破坏性RESET期间,STCU 已经验证了外设的完整性,而 ADC的输入完整性只能通过冗余输入通道得到充分保证。请确认这一解释是否正确。 Re: Inputs integrity check for Digital Input/ ADC/PWM 你好 推荐或支持哪些软件或 MCU 级别的机制(例如诊断、自检或可信性检查)来确保此类非冗余配置中输入数据完整性? 好吧,你很难用软件对策取代硬件层面的冗余读取。我不清楚 ASIL-B 标准中关于 ADC 读冗余的具体要求,但您可以在同一通道上进行多次读取(如突发),然后查看所有数据是否都在所需的阈值范围内。 但是,如果输入受到电磁兼容性的干扰,这就没有什么用了。 因此,需要对引脚分布的 2 个通道进行物理读取。 在 SIUL2、ADC 或其他模块中,是否有寄存器、内部交叉检查或外设功能可用于在运行时检测故障(卡住、VDD/GND 短路等)? 我不用担心外设的完整性,因为它在每次破坏性 RESET 时都会由 STCU2 逻辑 BIST 进行测试。该设备没有像 ASIL-D 设备那样的版本 ADC 自检功能。 恩智浦是否为单通道输入完整性监控提供任何参考实现或示例,以替代硬件冗余? 不,我们通过多种渠道为 HW 提供支持。而且我看不出任何软件示例将如何帮助消除模拟引脚上的电磁干扰。 我认为 ASIL-B 要求的目的是消除 EMC 导致的通道错误读取,因此您需要对遍布 uC 的引脚进行冗余读取。 顺祝商祺! Peter
記事全体を表示
Bluetoothレンジングアクセス車載イネーブルメント・システム Blue Ravens (Bluetooth Ranging Access Vehicle Enablement System) は、NXP 製品を使用して、お客様が独自の BLE ベースの車載アクセスソリューションを設計できるように支援するために NXP が開発したシステムソリューションです。モジュラーアプローチを通じて、さまざまな車載アクセスユースケースをサポートするように設計されています。主な目的(ただしこれに限定されません)は、自動車のユースケースにおける チャネル・サウンディング 技術とNXP BLEハンドオーバーのすべての機能と利点を紹介することです。 チャネルサウンディング は、新しいBluetooth Low Energy (BLE) 規格 (BLE 6.0) の一部であり、高精度の距離測定ソリューションとして、NXP KW47チップで利用可能です。 BLEハンドオーバー は、NXPが独自に開発した機能で、帯域外のチャネル(例:CAN)を使用して、切断することなく、あるデバイスから別のデバイスにBLE接続をシームレスに転送します。この転送はピアデバイスに影響を与えないため、相互運用性が保証されます。この機能は、BLE接続のRSSIスニッフィングを有効にして、RSSIに基づくシステムのセキュリティを強化するためにも使用できます。(KW45 & KW47) そのモジュール性により、このシステムはシンプルなBLE接続システムから完全なBLEチャネル・サウンディングポジショニングシステムまで、複数のユースケースに対応できます。チャネル・サウンディングはKW47チップでのみサポートされていることにご注意ください。KW45は単純なBLEシステムにのみCAN使用可能です。デフォルトでは、KW47のシステムは、1つのリモートデバイス(デジタルキー)と複数の異なる固定デバイス(カーアンカー)間の距離を測定するためのチャネル・サウンディングの基本的な使用をカバーしています。各時点で、デジタルキーに接続されているアンカーは1つだけです。他のアンカー(接続されていない)は、接続RSSIスニッフィングモード(ハンドオーバーに基づく)に設定できます。このモードでは、アドバタイジングパケットの代わりに接続のRSSI値にアクセスすることで、システムのセキュリティが向上します。これらのRSSI値は、ラウンドロビンで使用するアンカーを推定したり、車両の周囲で最適なBLEリンクを維持したりするためにCAN。     システムは複数の KW4xボードで構成され、それぞれが特定の役割を担っています。ボードはデジタル・キーとして使用され、ユーザーが携帯し、もう一方は車のサブシステムを表します。このカーサブシステムでは、すべてのボードがCANバスを使って相互に接続されています。CANバスは、すべてのボードに12Vを供給し、ボード間の通信を可能にする役割を果たします。 制御ユニット (KW4x EVKボード) 車用アンカー(KW4x LOCボード) デジタルキー(KW4x LOCボード) 役割: 中央意思決定ノード 機能: ・BLEアンカーを調整します。 - 受信したデータに基づいてアクションをトリガーします   役割: CANバスを介してコントロールユニットに接続されたBLEデバイス 機能: - BLEの存在をアドバタイズします。 - デジタルキーの接続を待ちます。 - セッション中にCSのイニシエーターとして機能します。 役割: リモートのBLEデバイスとして機能します 機能: - BLEアンカーをスキャンします。 - カーアンカーとの接続を開始します。 - 接続されると、CS反射器として振る舞います。     デスクトップアプリケーションは、システムの状態とシステムが実行する測定を監視するために使用されます: 各アンカーでの連続測定を使用することで、車のサブシステムはデジタルキーのポジショニングを推定できます(免責事項:このソリューションは動的環境では正確とはみなされません)   特長   BLE接続 現時点では1つの接続のみをサポートしています(複数ピアプラン) BLEチャネルサウンディング(KW47のみ) はい RSSIスニッフィング はい – すべての接続されていないアンカー サブオプティマルアンカーの自動排除 はい CSコンテキストでのBLEハンドオーバー(CSリピートなし) はい 三辺測量アルゴリズム はい 測定フィルタリング(リアルタイム) はい 検出領域がアクションをトリガーする場合(例:ウェルカムゾーン) はい カーアンカーCAN同期(ラジオコア同期) なし(次回リリース予定) チャネル・サウンディング・スニッフィング いいえ(実現可能性調査が進行中)   KPI   アンカーの数 2から8まで デジタルキーの数 1 BLE接続間隔 7.5ms~4s(デフォルト=30ms) BLEハンドオーバー接続転送時間(+CSコンテキスト転送) <60 ms (CI=30 ms) <50ms(CI=10ms) CS開始遅延 (2+7)*CI CSの測定とデータ転送(リアルタイム) <70ms(CI=30ms) CSアルゴ <30ミリ秒 フルサイクルタイム(CS +ハンドオーバー) [ハンドオーバー完了後、アルゴリズムはアンカー上で非同期的に実行されます] 390ms(CI=30ms) 190 ms(CI=10 ms) 見通しCS測定範囲 最大100m(10dBm時) バックポケットのCS測定範囲 10m(10dB)   このソリューションは開発中であり、FUTUREのリリースで改善が追加される予定です。 このシステムは、ウルトラワイドバンドのサポートで強化することもできます。 ビデオ このビデオは現在処理中です。数分後にもう一度お試しください。 (マイビデオで視聴) アクセスについては、[email protected] にお問い合わせください
記事全体を表示
基于OpenIL Baremetal框架的核间通信应用开发 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文档介绍了使用 NXP Layerscape 平台的 OpenIL Baremetal 框架架构,描述了如何运行示例裸机项目以及基于 OpenIL Baremetal 框架的核间通信应用程序开发。核间通信(ICC)应用程序在 Linux 核(主)和 Baremetal 核(从)上运行,通过 SGI 核间中断和共享内存块提供核之间的数据传输。 QorIQ Layerscape 平台的 Baremetal Framework 架构。 运行裸机二进制文件 基于裸机框架的核间通信(ICC)应用开发 运行 ICC 演示应用程序
記事全体を表示
電動化—高電圧バッテリ管理システム用MC3377xバッテリセルコントローラ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> HV BMS用MC33771x ICの製品トレーニング1-短いBMS市場紹介(含む。主要なプレーヤー、要件、競合他社);2- NXP BMSロードマップと主要製品(BCC14、BCC6、TPL)の紹介差別化と価値提案を含む3つの主要なBMSアプリケーション(14V、48V、HVデイジーチェーン、HV CAN、ワイヤレス)。4-市場、アプリケーション、リファレンスデザイン、および製品の見通し。5- 機能安全の側面 - システム安全の目標と機能安全の実装方法。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> HV BMS用MC33771x ICの製品トレーニング1-短いBMS市場紹介(含む。主要なプレーヤー、要件、競合他社);2- NXP BMSロードマップと主要製品(BCC14、BCC6、TPL)の紹介差別化と価値提案を含む3つの主要なBMSアプリケーション(14V、48V、HVデイジーチェーン、HV CAN、ワイヤレス)。4-市場、アプリケーション、リファレンスデザイン、および製品の見通し。5- 機能安全の側面 - システム安全の目標と機能安全の実装方法。
記事全体を表示
下一代 NFC_Tech Days Lyon & Strasbourg_May 2016-02.pdf <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
記事全体を表示
示例 MPC5748G SMPU 初始化 + 进程 ID 测试 GHS614 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ******************************************************************************** * 详细说明: *此示例初始化 SMPU_0 和 SMPU_1 以覆盖所有内存资源 * 所有大师。 * 本例进行简单测试:初始化后,SMPU_1 * 配置已更改为禁用对最后 4kB RAM 的写入访问 * 进程 ID 1。允许进程 ID 0 进行写访问。 * 如果在进程 ID 为 1 的情况下 CPU 写入该区域,则将引发异常 * 由于访问冲突而发生。 * ---------------------------------------------------------------------------------------------- * 测试硬件:MPC574XG-324DS Rev.A + MPC574XG-MB Rev.C * 微控制器: PPC5748GMMN6A 1N81M * 系统频率:160 MHz PLL * 调试器:Lauterbach Trace32 * 目标:internal_FLASH * ******************************************************************************** 概述
記事全体を表示