Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
i.MX8QXPはLinux 6.12でADV7280-Mからのビデオをストリーミングできません こんにちは、 当社には、アナログ カメラ入力に ADV7280-M デコーダーを使用する i.MX8QXP SoC をベースにしたカスタム ボードがあります。Linux 6.6 linux-imx カーネルからバージョン 6.12 にアップグレードしようとしていますが、新しいカーネルでは ADV7280-M からのストリーミングがまったく機能しません。 6.6 以降、この SoC のプレスリリース、製品ニュース パイプラインに大幅な変更が加えられ、パイプラインを手動で構成して、すべてのフォーマットが一致していることを確認する必要があることは承知しています。カーネル内での多数のデバッグ プリントを通じて、ストリーミングが正常に開始されたように見えるが、フレームが実際に通過する状態に到達することができました。 プレスリリース パイプラインは次のとおりです。 - adv720m 1-0021 パッド 0 フォーマット:UYVY8_2X8 @ 720x576 25fps フィールド:なし - imx8mq-mipi-csi2 パッド 0 フォーマット:UYVY8_2X8 -> パッド 1 フォーマット:UYVY8_2X8 @ 720x576 フィールド:なし - クロスバー パッド 2 fmt:UYVY8_2X8 -> パッド 6 fmt:UYVY8_2X8 @ 720x576 // 注: これにより、パッド 6 ~ 11 が 'mxc.isi.0-5':0 にルーティングされます - mxc_isi.0 パッド0 フォーマット:UYVY8_2X8 -> パッド1 @ 720x576 フィールド:なし - mxc_isi.0.capture パッド 0 (fmt またはフィールドが設定されていません) mxc_isi.0.captureは/dev/video4/ として公開されます。 「media-ctl -p -d1」の出力を添付しました。 これでパイプラインの検証は成功し、すべての.enable_streamsが.streamon、.start_streaming、.s_ストリーム関数は実行され、コード 0 で終了しているように見えますが、実際にはフレームは通過しません。 次のコマンドでストリーミングを試みました: - gst-launch-1.0 v4l2src デバイス=/dev/video4 ! video/x-raw、幅=720、高さ=576、フレームレート=25/1 ! autovideosink - v4l2-ctl -d /dev/video4 --stream-mmap --stream-count=5 しかし、実際に何かを捉えたものはありません。 With debug prints on and the kernel log level = 7, I see the following output: root@imx8qxp-d7:~# v4l2-ctl -d /dev/video4 --stream-mmap --stream-count=5 [ 334.960386] adv7180_set_pad_format:813 enter adv7180 set_fmt field: 0x000000 [ 691.055405] mxc_isi_video_streamon:1302 entering [ 691.062698] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":6 -> "mxc_isi.0":0 [ 691.077772] mxc-isi 58100000.isi: Link 'crossbar':6 -> 'mxc_isi.0':0 is valid [ 691.085186] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "imx8mq-mipi-csi2 58227000.csi":1 -> "crossbar":2 [ 691.097362] mxc-isi 58100000.isi: Link 'imx8mq-mipi-csi2 58227000.csi':1 -> 'crossbar':2 is valid [ 691.106310] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "adv7180 1-0021":0 -> "imx8mq-mipi-csi2 58227000.csi":0 [ 691.119110] mxc-isi 58100000.isi: Link 'adv7180 1-0021':0 -> 'imx8mq-mipi-csi2 58227000.csi':0 is valid [ 691.128591] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":7 -> "mxc_isi.1":0 [ 691.139021] mxc-isi 58100000.isi: Link 'crossbar':7 -> 'mxc_isi.1':0 is valid [ 691.146221] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":8 -> "mxc_isi.2":0 [ 691.156649] mxc-isi 58100000.isi: Link 'crossbar':8 -> 'mxc_isi.2':0 is valid [ 691.163838] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":9 -> "mxc_isi.3":0 [ 691.174269] mxc-isi 58100000.isi: Link 'crossbar':9 -> 'mxc_isi.3':0 is valid [ 691.181465] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":10 -> "mxc_isi.4":0 [ 691.191975] mxc-isi 58100000.isi: Link 'crossbar':10 -> 'mxc_isi.4':0 is valid [ 691.199254] mxc-isi 58100000.isi: v4l2_subdev_link_validate_default: validating link "crossbar":11 -> "mxc_isi.5":0 [ 691.209763] mxc-isi 58100000.isi: Link 'crossbar':11 -> 'mxc_isi.5':0 is valid [ 691.217033] getting state for subdev mxc_isi.0 [ 691.222447] mxc_isi_video_streamon:1348 about to call vb2_streamon [ 691.228677] mxc_isi_vb2_buffer_queue:1057 buffer 0 queued [ 691.234117] mxc_isi_vb2_buffer_queue:1057 buffer 1 queued [ 691.239548] mxc_isi_vb2_buffer_queue:1057 buffer 2 queued [ 691.245072] mxc_isi_vb2_buffer_queue:1057 buffer 3 queued [ 691.250505] mxc_isi_vb2_start_streaming:1086 starting stream [ 691.261239] mxc_isi_pipe_enable:331 entering [ 691.261250] mxc_isi_pipe_enable:362 sink_info idx=1 src_info idx=3 [ 691.265552] mxc_isi_pipe_enable:363 sink_fmt: width=720 height=576 code=0x002006 encoding=2 [ 691.272020] mxc_isi_pipe_enable:365 src_fmt: width=720 height=576 code=0x002025 encoding=2 [ 691.280498] mxc_isi_channel_config:383 entering [ 691.293464] mxc_isi_channel_set_csc:239 entering [ 691.293477] mxc-isi 58100000.isi: CSC: YUV -> YUV [ 691.302890] mxc_isi_channel_set_csc:276 exiting val & CHNL_IMG_CTRL_CSC_BYPASS = 1 [ 691.302905] mxc_isi_channel_config:408 exiting. csc_bypass = 1 scaler_bypass = 1 [ 691.310561] mxc_isi_crossbar_enable_streams:493 enter [ 691.323167] mxc_isi_crossbar_enable_streams:503 for device imx8mq-mipi-csi2 58227000.csi [ 691.331407] mxc_isi_crossbar_enable_streams:532 about to enable stream for imx8mq-mipi-csi2 58227000.csi [ 691.341396] adv7180_s_stream:939 starting to stream [ 691.341403] adv7180_s_stream:955 streaming [ 691.346392] mxc_isi_crossbar_enable_streams:545 exit ret = 0 [ 691.356268] mxc_isi_video_streamon:1356 exit ret = 0 # and here it hangs until I exit with Ctrl-C デバイス ツリーの関連セクションも添付しました。 これまでのSOの変更点 - adv7180.c内ドライバでは、プローブ内のフィールドを V4L2_FIELD_NONE に強制するため、デバイスはプログレッシブ形式で出力するはずです。 - imx8mq-mipi-cs2.cでは、そのフォーマットを設定できるように、`imx8mq_mipi_csi_formats` 配列に `MEDIA_BUS_FMT_UYVY8_2X8` を追加しました。 - imx8-isi-video.c の `mxc_isi_video_validate_format` 関数で、同じメディア バス形式のチェックを削除しました。 また、メインライン カーネルから imx8mq-mipi-csi2 ドライバをバックポートすることも試みました。このドライバの iMX8QXP のサポートは、後のコミットで追加されたようです: https://github.com/torvalds/linux/commit/642b70d526ab8daa8f256dfc1eb6bf27c3290cc6。 結果は同じで、実際にはパイプラインを通過するフレームはありませんでした。 ストリーミングを機能させるために何をすべきかについてのアドバイスがあれば幸いです。 よろしくお願いいたします! Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 こんにちは@dominic-vtさん、 hs_settle タイミングは、センサのデータ レートに応じて設定する必要があります。一般的に言えば、センサドライバで link_freq パラメーターを設定する必要があり、mipi-csi ドライバはそれに応じて hs_settle タイミングを計算します。詳細については、drivers/media/platform/nxp/imx8mq-mipi-csi2.c をご覧ください。 そして、link_freq = sensor_data_rate_per_lane / 2 です。 よろしくお願いいたします。 ゾーイ Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 「mxc_isi.0':1 -> 'mxc_isi.0.capture':0」が抜けているようです。media-ctlを使って設定し、もう一度確認してください。 Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 こんにちは@zoey_liさん 返信ありがとうございます!adv7180.cでリンク周波数を設定しましたドライバ。データシートには、ADV がプログレッシブ モードの場合、432Mbps と記載されています。 root@imx8qxp-d7:~# v4l2-ctl -d /dev/v4l-subdev8 --get-ctrl link_frequency link_frequency: 0 (216000000 0xcdfe600) この設定でもまだ出力はありません。 これは ISI でフォーマット変換を行おうとしたことと関係があるのでしょうか? - entity 14: mxc_isi.0 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 pad0: SINK [stream:0 fmt:UYVY8_2X8/720x576 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range compose.bounds:(0,0)/720x576 compose:(0,0)/720x576] <- "crossbar":6 [ENABLED,IMMUTABLE] pad1: SOURCE [stream:0 fmt:YUV8_1X24/720x576 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/720x576 crop:(0,0)/720x576] -> "mxc_isi.0.capture":0 [ENABLED,IMMUTABLE] (パッド0はUYVY8_2X8、パッド1はYUV8_1X24です) よろしくお願いいたします。 ドミニク Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 これまでに行った作業のパッチを以下に示します。デバイス ツリーは含まれません。 パッチはかなり大きいですが、ほとんどがデバッグ プリントです。 起動からストリーミングを試みるまでの完全な dmesg 出力を添付しました。imx8-isi ドライバのデバッグ プリントを有効にした後に実行したコマンドは、次の順序です。 - media-ctl -d /dev/media1 -V '"imx8mq-mipi-csi2 58227000.csi":0[fmt:UYVY8_2X8/720x576]' - media-ctl -d /dev/media1 -V '"mxc_isi.0":1[fmt:RGB888_1X24/720x576 フィールド:なし]' - gst-launch-1.0 v4l2src デバイス=/dev/video4 !ビデオ/x-raw、幅=720、高さ=576、フレームレート=25/1 !オートビデオシンク そして約10秒後にストリーミングが停止しました。 ご回答をお待ちしています。 Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 .link_validateに0を返す空の実装を持つmedia_entity_operationsを追加しました。および.link_setupそして、`media-ctl -d /dev/media1 -l '"mxc_isi.0":1 を実行しました。-> "mxc_isi.0.capture":0 [1]'`. それでも結果は同じで、実際にはフレームは通過しません。 CSC を有効にするために、mxc_isi.0 のパッド 1 を RGB888_1X24 に設定してみましたが、それでも何も起こりませんでした。 編集: media_entity_operations が、 mxc_isi_video_register()の mxc_isi.0.capture デバイスのvdev -> entityに追加されました。 Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 はい、見つかりました。ただし、デバッグ プリント ログを参照してください。このリンクは見つかりませんでした。もう一度確認してください。以前 imx8qm でテストしましたが、media-ctl -p コマンドを使用してこのリンクを追加する必要があることを思い出しました。試してみるとよいかもしれません。 Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 投稿内のパイプラインの概要で見逃したかもしれません。申し訳ありません。しかし、リンクは media-ctl 出力にあります: ... - entity 14: mxc_isi.0 (2 pads, 2 links, 0 routes) type V4L2 subdev subtype Unknown flags 0 device node name /dev/v4l-subdev1 ... pad1: SOURCE [stream:0 fmt:YUV8_1X24/720x576 field:none colorspace:jpeg xfer:srgb ycbcr:601 quantization:full-range crop.bounds:(0,0)/720x576 crop:(0,0)/720x576] -> "mxc_isi.0.capture":0 [ENABLED,IMMUTABLE] - entity 17: mxc_isi.0.capture (1 pad, 1 link) type Node subtype V4L flags 0 device node name /dev/video4 pad0: SINK <- "mxc_isi.0":1 [ENABLED,IMMUTABLE] Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 ボードの起動時の完全なログを提供していただけますか? また、変更に対するパッチはありますか? Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 こんにちは@dominic-vtさん、 mxc_isi.xの場合サブデバイス、 - パッド0は入力フォーマットを示し、センサ/mipi-csi/クロスバーと同じフォーマットである必要があります - パッド 1 は出力形式のカラー スペースを示します。 ISI メディア パイプライン全体の最終的な出力形式は、ビデオ デバイス (mxc_isi.x.capture) の set_fmt ioctl を呼び出すユーザー空間アプリケーションによって制御されます。 印刷されたメディア トポロジに明らかなエラーは見当たりません。また、ISI の再フォーマットや CSC によってキャプチャがハングすることもないはずです。MIPI-CSI ステータス レジスタを (キャプチャ中に数回) チェックして、エラーが報告されているかどうかを確認してください。 それでも見つからない場合は、問題を絞り込むために、8QXP mipi-csi および isi ドライバーに対して行ったすべての変更を元に戻し、media-ctl を使用してメディア パイプラインを手動で構成することをお勧めします。 ちなみに、dts でデータ レーン番号を 1 に設定しましたが、センサの設定と一致していることを確認してください。 よろしくお願いいたします。 ゾーイ Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 問題が分かりました: 新しい MIPI CSI2 ドライバは以前のドライバとは異なり、s_power() コールバックを呼び出さないため、ADV チップは実際には電源がオンになっていませんでした。 解決策は、adv7180.c のランタイム PM を実装することであった。ドライバ。動作する実装を含むパッチを添付しました。 これはカーネルドキュメントに記載されているベストプラクティスです: https://docs.kernel.org/5.17/driver-api/media/camera-sensor.html#power-management パッチはアップストリームのadv7180.cには完全には適用されません私たちのファイルには無関係な変更がいくつか含まれているため、このファイルを使用しますが、他のユーザーが変更を必要とする場合は、簡単にコピーして貼り付けることができるはずです。 ご提案ありがとうございます! Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 こんにちは@zoey_liさん レジスターを確認するという提案、ありがとうございます!その結果、ADV チップはストリーミング用に実際には電源がオンになっていなかったことがわかりました。 修正を含むパッチをいくつか投稿し、他の誰かがこの問題に遭遇した際に備えて、それを解決策としてマークしました。 よろしくお願いいたします ドミニク Re: i.MX8QXP cannot stream video from ADV7280-M on Linux 6.12 それを聞いて嬉しく思います。また、他の人の参考のためにパッチを共有していただきありがとうございます。
查看全文
SPL_MULTI_DTB_FIT を有効にした後のフラッシュエラー こんにちは、テクノロジーオタクの皆さん 私は imx93frdm ボードに取り組んできました。最近、SPL でマルチ dtb をサポートするために、SPL_MULTI_DTB_FIT を有効にしようとしています。これを有効にすると、uuu ツールでフラッシュするときに LIBUSB エラーが発生します。 根本的な原因は何なのか教えてください。 FRDMトレーニング Yocto Project Re: Flashing error after enabling SPL_MULTI_DTB_FIT こんにちは、 SFDC で続行します。 よろしくお願いします、 志明
查看全文
CRC Evaluation using direct memory addressing Hello all. I'm working with S32K358 MCU, MBD Toolbox v1.6.0 and Matlab R2024a. I know that Crc module isn't supported by the toolbox, so I configured the .mex file of the project in order to generate the RTD configuration suitable for my application, including Crc module, and then I wrote a Matlab function in order to manually call, as custom code, the "Crc_SetChannelCalculate" function. This works fine and I can evaluate correctlty the CRC over a data streaming like an array. Now what I would like to do is to evaluate the CRC on an area of memory, using directly the memory address as data input. If I write the code "manually" using S32DS IDE (outside Matlab), the code looks like this: //--- code start uint32 CrcResult; uint8 *data; data = (uint8 *)0x40A1F0; //arbitrary address chosen for starting calculation CrcResult = Crc_SetChannelCalculate(CRC_LOGIC_CHANNEL_2, data, 16, 0, TRUE); //in this way I calculate the CRC of 16 byte, with starting value = 0, read directly in flash starting from address 0x40A1F0 //--- Of course, before this, I initialized the logic channel CRC_LOGIC_CHANNEL_2 with the properties suitable for my application. This code works fine but I'm not able to "translate" it on Matlab, because I didn't find a suitable way for make a direct memory addressing (and, if I'm not wrong, Matlab doesn't support this possibility). I would please ask you if someone has an idea on how to face this matter. Thansk in advance for your help and support. Daniel
查看全文
Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Source Hi team, We are starting a new ISO 26262 (ASIL-B) project using the FS32K144HAT0MMHT MCU and want to understand how the Safety Peripheral Drivers (SPD) work. Where can we download the SPD package, and do we need a specific package name like SW32K1-SPD-D in the NXP Software License & Support portal? Is SPD free or included with standard RTD/SDK downloads, or does it require a separate license? Are there any example or free sources available to study SPD drivers for early development? Any guidance on locating SPD or related resources would be appreciated. Thank you! Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc Hi @KAVINKUMAR7, The S32K1 – Safety Peripheral Drivers (SPD) includes only the following driver: Extended MCEM Driver for S32K1, Version 1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*M.... The driver is included in the S32K1xx Standard Software package, which is available free of charge. It is compatible with the S32K1/S32M24x Real-Time Drivers, ASR R21-11, Version 2.0.0 P04. However, no functional example is provided for this driver. Regards, Daniel Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc Hi, This SPD supports production. Could you please confirm whether it is suitable for use in a production environment? Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc Hi @KAVINKUMAR7, Yes, it does. Please refer to the release notes. This version is at RTM (Ready to Manufacture) level. danielmartynek_0-1766921833541.png Regards, Daniel Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc Hi, Thank you for the response. I have installed the latest S32 Design Studio IDE and used the RTM (Ready to Manufacture) RTD SDK as mentioned in the release notes. The CAN sample project was generated directly using the provided SDK and configuration tools. However, even with this setup, I am still facing the following build error: fatal error: Port_Ci_Port_Ip_Types.h: No such file or directory Error occurs at:  board/Port_Ci_Port_Ip_Cfg.c:56 #include "Port_Ci_Port_Ip_Types.h" Re: Inquiry about Safety Peripheral Drivers (SPD) for FS32K144HAT0MMHT – Availability and Free Sourc Hi @KAVINKUMAR7, It appears that this is a compatibility issue. In the correct S32DS IDE version, only the compatible RTD and the SPD specified in the SPD release notes should be installed. No additional RTD versions should be present. If you require multiple RTD versions, we recommend installing separate IDE instances. Since your follow-up question is no longer related to the SPD, please create a new thread if you need further assistance. Regards, Daniel
查看全文
DEVKIT-MPC5748G:PEMICRO GDB 启动失败 当我使用 DEVKIT-MPC5748G 时,CAN0 模块被设置为禁用模式。有错误。无论开机还是关机,它都不工作。 服务上市顺序错误 peMicro GDB 上市失败:GDB 服务器无法与目标处理器建立连接。请检查连接和电源。验证调试配置中的用上市设置是否准确。 如何解决? 谢谢!
查看全文
MIMXRT1175 lpuart7使用DMA进行数据收发 我使用IDE中的SDK生成了lpuart1进行MDA数据收发。代码如下: /* * Copyright (c) 2015, Freescale Semiconductor, Inc. * Copyright 2016-2017 NXP * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include "pin_mux.h" #include "clock_config.h" #include "board.h" #include "fsl_lpuart_edma.h" #if defined(FSL_FEATURE_SOC_DMAMUX_COUNT) && FSL_FEATURE_SOC_DMAMUX_COUNT #include "fsl_dmamux.h" #endif /******************************************************************************* * Definitions ******************************************************************************/ #define DEMO_LPUART LPUART1 #define DEMO_LPUART_CLK_FREQ BOARD_DebugConsoleSrcFreq() #define LPUART_TX_DMA_CHANNEL 0U #define LPUART_RX_DMA_CHANNEL 1U #define LPUART_TX_DMA_REQUEST 8U #define LPUART_RX_DMA_REQUEST 9U #define EXAMPLE_LPUART_DMAMUX_BASEADDR DMAMUX0 #define EXAMPLE_LPUART_DMA_BASEADDR DMA0 #define ECHO_BUFFER_LENGTH 8 /******************************************************************************* * Prototypes ******************************************************************************/ /* LPUART user callback */ void LPUART_UserCallback(LPUART_Type *base, lpuart_edma_handle_t *handle, status_t status, void *userData); /******************************************************************************* * Variables ******************************************************************************/ lpuart_edma_handle_t g_lpuartEdmaHandle; edma_handle_t g_lpuartTxEdmaHandle; edma_handle_t g_lpuartRxEdmaHandle; AT_NONCACHEABLE_SECTION_INIT(uint8_t g_tipString[]) = "LPUART EDMA example\r\nSend back received data\r\nEcho every 8 characters\r\n"; AT_NONCACHEABLE_SECTION_INIT(uint8_t g_txBuffer[ECHO_BUFFER_LENGTH]) = {0}; AT_NONCACHEABLE_SECTION_INIT(uint8_t g_rxBuffer[ECHO_BUFFER_LENGTH]) = {0}; volatile bool rxBufferEmpty = true; volatile bool txBufferFull = false; volatile bool txOnGoing = false; volatile bool rxOnGoing = false; /******************************************************************************* * Code ******************************************************************************/ /* LPUART user callback */ void LPUART_UserCallback(LPUART_Type *base, lpuart_edma_handle_t *handle, status_t status, void *userData) { userData = userData; if (kStatus_LPUART_TxIdle == status) { txBufferFull = false; txOnGoing = false; } if (kStatus_LPUART_RxIdle == status) { rxBufferEmpty = false; rxOnGoing = false; } } /*! * @brief Main function */ int main(void) { lpuart_config_t lpuartConfig; lpuart_transfer_t xfer; lpuart_transfer_t sendXfer; lpuart_transfer_t receiveXfer; edma_config_t userConfig = {0}; BOARD_ConfigMPU(); BOARD_InitPins(); BOARD_BootClockRUN(); /* Initialize the LPUART. */ /* * lpuartConfig.baudRate_Bps = 115200U; * lpuartConfig.parityMode = kLPUART_ParityDisabled; * lpuartConfig.stopBitCount = kLPUART_OneStopBit; * lpuartConfig.txFifoWatermark = 0; * lpuartConfig.rxFifoWatermark = 0; * lpuartConfig.enableTx = false; * lpuartConfig.enableRx = false; */ LPUART_GetDefaultConfig(&lpuartConfig); lpuartConfig.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE; lpuartConfig.enableTx = true; lpuartConfig.enableRx = true; LPUART_Init(DEMO_LPUART, &lpuartConfig, DEMO_LPUART_CLK_FREQ); #if defined(FSL_FEATURE_SOC_DMAMUX_COUNT) && FSL_FEATURE_SOC_DMAMUX_COUNT /* Init DMAMUX */ DMAMUX_Init(EXAMPLE_LPUART_DMAMUX_BASEADDR); /* Set channel for LPUART */ DMAMUX_SetSource(EXAMPLE_LPUART_DMAMUX_BASEADDR, LPUART_TX_DMA_CHANNEL, LPUART_TX_DMA_REQUEST); DMAMUX_SetSource(EXAMPLE_LPUART_DMAMUX_BASEADDR, LPUART_RX_DMA_CHANNEL, LPUART_RX_DMA_REQUEST); DMAMUX_EnableChannel(EXAMPLE_LPUART_DMAMUX_BASEADDR, LPUART_TX_DMA_CHANNEL); DMAMUX_EnableChannel(EXAMPLE_LPUART_DMAMUX_BASEADDR, LPUART_RX_DMA_CHANNEL); #endif /* Init the EDMA module */ EDMA_GetDefaultConfig(&userConfig); #if defined(BOARD_GetEDMAConfig) BOARD_GetEDMAConfig(userConfig); #endif EDMA_Init(EXAMPLE_LPUART_DMA_BASEADDR, &userConfig); EDMA_CreateHandle(&g_lpuartTxEdmaHandle, EXAMPLE_LPUART_DMA_BASEADDR, LPUART_TX_DMA_CHANNEL); EDMA_CreateHandle(&g_lpuartRxEdmaHandle, EXAMPLE_LPUART_DMA_BASEADDR, LPUART_RX_DMA_CHANNEL); #if defined(FSL_FEATURE_EDMA_HAS_CHANNEL_MUX) && FSL_FEATURE_EDMA_HAS_CHANNEL_MUX EDMA_SetChannelMux(EXAMPLE_LPUART_DMA_BASEADDR, LPUART_TX_DMA_CHANNEL, DEMO_LPUART_TX_EDMA_CHANNEL); EDMA_SetChannelMux(EXAMPLE_LPUART_DMA_BASEADDR, LPUART_RX_DMA_CHANNEL, DEMO_LPUART_RX_EDMA_CHANNEL); #endif /* Create LPUART DMA handle. */ LPUART_TransferCreateHandleEDMA(DEMO_LPUART, &g_lpuartEdmaHandle, LPUART_UserCallback, NULL, &g_lpuartTxEdmaHandle, &g_lpuartRxEdmaHandle); /* Send g_tipString out. */ xfer.data = g_tipString; xfer.dataSize = sizeof(g_tipString) - 1; txOnGoing = true; LPUART_SendEDMA(DEMO_LPUART, &g_lpuartEdmaHandle, &xfer); /* Wait send finished */ while (txOnGoing) { } /* Start to echo. */ sendXfer.data = g_txBuffer; sendXfer.dataSize = ECHO_BUFFER_LENGTH; receiveXfer.data = g_rxBuffer; receiveXfer.dataSize = ECHO_BUFFER_LENGTH; while (1) { /* If RX is idle and g_rxBuffer is empty, start to read data to g_rxBuffer. */ if ((!rxOnGoing) && rxBufferEmpty) { rxOnGoing = true; LPUART_ReceiveEDMA(DEMO_LPUART, &g_lpuartEdmaHandle, &receiveXfer); } /* If TX is idle and g_txBuffer is full, start to send data. */ if ((!txOnGoing) && txBufferFull) { txOnGoing = true; LPUART_SendEDMA(DEMO_LPUART, &g_lpuartEdmaHandle, &sendXfer); } /* If g_txBuffer is empty and g_rxBuffer is full, copy g_rxBuffer to g_txBuffer. */ if ((!rxBufferEmpty) && (!txBufferFull)) { memcpy(g_txBuffer, g_rxBuffer, ECHO_BUFFER_LENGTH); rxBufferEmpty = true; txBufferFull = true; } } } 我有以下几个疑问: 1、为什么不能在回调函数中直接调用LPUART_ReceiveEDMA()和LPUART_SendEDMA()函数。 2、rxBufferEmpty和txBufferFull在整个例程中起到什么作用,按照我以前开发STM32的例程的理解来说, 我只要将接收数据缓存映射到DMA的收数据地址上,数据就会自动接收,并产生接收完成中断。此芯片的DMA收发机制是怎么样的? Re: MIMXRT1175 lpuart7使用DMA进行数据收发 Hi @JerrmyLi , 感谢您关注恩智浦RT系列产品以及使用我们Community,很高兴为您服务。 1、为什么不能在回调函数中直接调用LPUART_ReceiveEDMA()和LPUART_SendEDMA()函数。 回复:回调函数也是在UART中断中调用的,在中断中代码应该是简洁的,不做过多耗时操作和逻辑处理等。通常做法是设置标志位,在主程序中处理。 2、rxBufferEmpty和txBufferFull在整个例程中起到什么作用,按照我以前开发STM32的例程的理解来说, 我只要将接收数据缓存映射到DMA的收数据地址上,数据就会自动接收,并产生接收完成中断。此芯片的DMA收发机制是怎么样的? 回复: txBufferFull状态true时表示发送buffer被使用,为false表示数据发送完成。 rxBufferEmpt状态为false时,表示接收Buffer数据已满,为true表示数据已经复制到TX Buffer, Rx Buffer可以再次接收数据。  此芯片的DMA收发机制是怎么样的? 建议您查看LPUART_SendEDMA函数具体实现。 mayliu1_0-1766042005967.png 希望以上对您有帮助。 Best Regards MayLiu
查看全文
S32K312、VKMS、Csm_KeyElementGetの出力パラメータを指定する こんにちは、CRT チーム: 元のチケットは次のとおりです: VKMS-HSE-Specify-the-output-parameters-of-Csm-KeyElementGet お客様: 延峰 プロジェクト: VWプロジェクト 弊社のお客様である Yanfeng は、プロジェクトで VKMS HSE FW + S32K312 を使用しています。 VW 車載での VKMS 機能テスト中に、テスト結果の 1 つが理論値と一致しませんでした。現地チームとお客様による初期評価によると、この問題は出力パラメータに関連しているようです。  Csm_KeyElementGet() 。   下の図に示すように、RTD 400P21 内の VKMS デモでも同様の現象が発生しました。         お客様の現在の質問は次のとおりです。   実行後にVkms_u32ResponseLengthの戻り値が3になるのはなぜですか? トレーニングカウンターを取得するには Csm_KeyElementGet(CsmConf_CsmKey_CsmKey_0xF0010002, 0xF0010002U, Vkms_au8Response, &Vkms_u32ResponseLength ); ?   お客様の説明によると、理論的にはこの戻り値は次のようになります。 1つのキーのメタデータが必要な場合: 5 すべてのキーのメタデータが必要な場合: 1+ * 6 確認を手伝っていただけますか? よろしくお願いいたします。 ジェン LIN ボード: S32K312 コンポーネント: HSE FW コンポーネント: セキュリティ暗号 優先度: 中 SWバリアント: カスタム タイプ: 問題 Re: S32K312, VKMS, Specify the output parameters of Csm_KeyElementGet こんにちは、クオンさん。 以下の情報をご覧ください: - S32K3 RTDバージョン: RTD 4.0.0 P21 - プラットフォーム: S32K312 - HSE FW バージョン: 9.2.26.0 - 暗号設定ファイル:チケットに記載されているように、RTDのVKMSデモプロジェクトでテストしてください。 - CsmKey_0xF0010002 には何が保存されており、理論上の期待値はどれくらいですか?チケットに記載されている通り、RTD の VKMS デモプロジェクトでテストを実施しており、CTM は RTD デモの結果を明確にしたいと考えています。 よろしくお願いいたします。 ジェン LIN Re: S32K312, VKMS, Specify the output parameters of Csm_KeyElementGet こんにちは@ZhengLin お客様環境に関する詳細情報を教えていただけますか? - S32K3 RTDバージョン - HSE FWバージョン - 暗号設定ファイル - CsmKey_0xF0010002 には何が格納されていますか? また、予想される理論値はどれくらいですか? Re: S32K312, VKMS, Specify the output parameters of Csm_KeyElementGet こんにちは、クオンさん。 このCASEについて何か最新情報はありますか? よろしくお願いいたします。 ジェン LIN Re: S32K312, VKMS, Specify the output parameters of Csm_KeyElementGet こんにちは、クオンさん。 お客様は、 Audiから提供された文書から以下の理論的な情報を入手しました。この情報は当社と共有できませんが、必要に応じてお客様とのオンライン会議を設定することはできます。 よろしくお願いいたします。 ジェン LIN
查看全文
需要免费的带设计 stdio 的 RTOS - FS32K144HAT0MMHT 我的汽车固件需要 FreeRTOS 和用于 FS32K144HAT0MMHT 的 S32 Design Studio。 Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT 请创建新的主题或新的支持票据,这与 FreeRTOS 无关。 谢谢! BR,丹尼尔 Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT 你能否解释一下如何从固件的角度满足 ASIL-B 要求,并具体说明需要为 FS32K144HAT0MMHT 实现的固件元器件或功能? Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT S32K144 硬件及其功能安全旨在支持最高达到 ASIL B 的 ISO 26262 合规性。但是,这并不意味着 MCU 本身已获得 ASIL B 认证,它是一个可用于 ASIL B 系统的元器件,整个系统只能通过认证。 BR,丹尼尔 Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT FS32K144HAT0MMHT 数据表中提到的 ASIL B 已准备就绪...附图......我怎样才能获得 ASIL B 认证? ASIL_B.JPG Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT 没有符合 ASIL-B 标准的图书馆。 汽车软件包 S32K1 — 功能安全外设驱动器 (SPD) 仅包含以下驱动程序: 适用于 S32K1 的 扩展 MCEM 驱动程序 ,版本 1.0.1 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-SPD-D&_gl=1*ao7djc*_ga*MTQ0OTI3OTU5MS4xNzY1ODc1NTYx*_ga_WM5LE0KMSH*czE3NjU4NzU1NjAkbzEkZEkdDE3NjU4NzY2MDMkajIxJGwwJGg5MjM4OTU2MDE. 该驱动程序兼容 S 32K1_S32M24x 实时驱动程序 ASR R21-11,版本 2.0.0 P04。 此致, 丹尼尔 Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT 能否请您指导我如何将ASIL B 评估库导入我的 S32K144 Free RTOS 项目? Re: Need Free RTOS with Design stdio - FS32K144HAT0MMHT 你好,@ARIVALAGAN、 S32K1 FreeRTOS 10.5.1 版本 2.0.0 是 S32K1xx 参考软件的一部分:https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-REFSW-D 该版本与SW32K1_S32M24x_RTD_4.4_R21-11_2.0.0_D2308兼容。 https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catid=SW32K1-RTD44-D 首先将此 RTD 版本安装到S32 Design Studio S32DS 3.5 Update 4 。 此致, 丹尼尔
查看全文
在 i.MX8MP 上使用 TP2860 进行去隔行扫描(已启用 ISI 编织) 你好 我目前正在使用连接到 i.MX8MP 板的 TP2860 解码器。我的输入源是一台 NTSC(720x480i)摄像机。 为了处理隔行扫描信号,我在驱动程序中应用了 ISI 编织补丁。在运行 GStreamer 流水线时,虽然视频输出在大多数情况下看起来正常,但我偶尔会遇到严重的视觉伪影(如附图所示)。 [当前设置& 观察结果] 硬件:i.MX8MP 定制板 + TP2860 输入:NTSC (720x480i) 软件: ISI 编织补丁用于去隔行扫描。 问题:输出间歇性地显示错位线或"combing" 伪影,看起来像是字段同步问题。 假设:我怀疑输入框字段顺序(顶部字段优先/底部字段优先)没有被正确固定,或者在运行期间在 EVEN/ODD 和 ODD/EVEN 之间随机切换。 附图 sjjin89_0-1765869049756.png [问题] 在 i.MX8MP 上使用 ISI 编织方法时,是否有人遇到过类似的字段交换问题? TP2860 中是否有特定的寄存器设置或 ISI 驱动程序中的配置来严格执行字段顺序? 是否建议使用其他补丁或调试步骤来验证 CSI-2 接口上的字段 ID 是否被错误切换? 如果能就如何解决这个间歇性同步问题提出任何见解或建议,我将不胜感激。 顺祝商祺! sjjin Linux 多媒体 Yocto Project Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 建议您根据以下链接尝试混合去隔行扫描 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/ISL79987-and-adv7180-de-interlace-driver-for-iMX8QXP-boards/ta-p/1124075 并尝试使用 v4l2-ctl 在没有显示器的情况下捕获视频,以检查问题是否已消失 Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 你好,joanxie、 感谢您的反馈, 使用 v4l2-ctl 执行帧捕获时,输出为 29.97 fps。 我使用的命令如下: v4l2-ctl -d3 --set-fmt-video=width=720,height=480,pixelformat=YUYV --stream-mmap 此外,您建议改用混合方法,但您提到的补丁似乎是针对 imx8qxp 的。 在 i.MX8MP 上应用此补丁时,是否有任何具体的注意事项或预防措施? 致以最诚挚的问候, sjjin Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 嗨 ,@ joanxie 和 @sjjin89 、 我还使用 iMX8MP + TP2860 视频解码器在内核 6.6 上对 PAL/NTSC 隔行扫描摄像机进行流式处理。不过,我也遇到了同样的问题,即串流有时运行正常,但有时会出现奇数/偶数线路抖动或"梳理" 效果不一致的情况。   我试着应用下面链接中的补丁,但它适用于内核版本较旧的 iMX8QXP,与最新内核的摄像头 ISI 驱动程序不匹配: ISL79987 和 adv7180 去隔行驱动程序适用于 iMX8QXP 板   能否就使用最新内核的 iMX8MP 的去隔行扫描和混合方法提供指导? 顺祝商祺! Prashanth K Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 你可以使用 v4l2-ctl 捕获视频并将其保存为文件,然后检查文件视频是否稳定,因为我提到的补丁适用于 imx8qxp,但它们使用相同的 ISI IP,你可以参考一下,因为我没有 TVIN 设备可以测试,所以无法在我这边重现这个问题,让我看看我能不能找到或者如何重现这个,任何进一步的信息,我会再和你分享 Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 你好@joanxie、 我已使用" L5.4.70_2.3.0_ISL7998x_Patch.7z" 补丁来应用 P2860 视频解码器输出的去隔行扫描 PAL 摄像头的混合方法。但出现"半屏绿色" 问题,如附件所示。 v4l2 日志如下。 ~# v4l2-ctl --device=/dev/video3 --all 驱动程序信息: 驱动程序名称:mxc-isi-cap_v1 卡类型:mxc-isi-cap_v1 总线信息:platform:32e02000.isi:cap_devic 驱动程序版本:6.6.36 功能:0x84201000 视频捕获多平面 流 扩展 Pix 格式 设备容量设备上限:0x04201000 视频捕获多平面流扩展 Pix 格式 优先级:2 格式 视频捕获多平面: 宽度/高度:720/576 像素格式:'YUYV'(YUYV 4:2:2 ) 字段:隔行平面数量:1 标志:色彩空间:sRGB 传输功能 :默认 ycBB CR/HSV 编码:ITU-R 601 量化 :全 范围平面 0:每行字节数: 1440 尺寸图片:829440 裁剪能力视频输出: 边界:左 0,顶部 0,宽度 720,高度 576 默认值:左 0,顶部 0,宽度 720,高度 576 像素长宽度:1/1 选择视频输出:撰写,左 0,顶部 0,顶部 0,高度 576,标记:选择视频输出:compose_default,左 0,宽度 720,高度 576,标志: 精选视频输出:compose_bounds,左 0,顶部 0,宽度 720,高度 576,标记: 用户控制 horizontal_flip 0x00980914 (bool) : default=0 value=0 vertical_flip 0x00980915 (bool) : default=0 value=0 alpha_component 0x00980929 (int) : min=0 max=255 step=1 default=0 value=0 根据补丁中的建议,DTS ISI 条目如下、 &isi_0 { status ="okay"; deinterlace_mode =<4>; ntsc_top =<0> ; cap_device { status ="okay"; }; m2m_device { status ="okay"; }; }; &isi_1 { status ="okay"; deinterlace_blending; ntsc_top =<0> ; cap_device { status ="okay"; }; m2m_device { status ="okay"; }; }; 目前我在 imx8MP 自定义板上使用 6.6 内核。我是否遗漏了与去隔行扫描混合相关的内容? 顺祝商祺! Prashanth K Re: de-Interlacing with TP2860 on i.MX8MP (ISI Weaving Enabled) 很抱歉我的回复晚了,因为正值假期,大部分工程师都在休假,我已将此问题上报给内部团队,请等待回复。
查看全文
如何运行 core-image-tiny-initramfs.cpio.gz(或 ramfs / ramdisk.gz)?从 SD 卡 你好 使用 8Mplus 评估板,我们需要运行 core-image-tiny-initramfs 或 SD 卡中的 ramfs。我可以版本镜像,但找不到正确的uboot命令来使用它。我在其他文章中看到了 core-image-tiny-initramfs.cpio.gz 的参考,但是这些帖子没有列出 uboot 命令。 我试过这些命令: setenv loadramdisk " load mmc 2:2 0x80000000 /启动/ramdisk.gz " setenv ramargs " setenv bootargs ${mmcargs} root=/dev/ram0 rw rootfstype=ext4 ramdisk_size=0x20000000 " setenv ramboot " echo 从 ramdisk 启动...;运行 ramargs;bootz ${loadaddr} 0x80000000 ${fdt_addr_r} " setenv bootcmd " run loadfdt loadramdisk ramboot " 我总是得到错误信息"zimage:Bad magic!" 我怀疑问题出在地址上。根据 imx8mp-evk.dtb 的来源,内存地址应该是有效的,但没有来自 uboot 的信息。 谢谢, Scott i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 嗨,@goodspeed,@ScottSJ,@kimease、 目前正在开发 i.MX8M Plus EVK 板,并想使用 initramfs (ramfs.img / ramfs.cpio.gz) 启动文件系统作为根文件系统,直接从仅具有启动分区的 SD 卡加载 (FAT32)。 SD 卡不包含单独的根文件系统分区。 当前设置 SD 卡仅包含一个 FAT32 启动分区 FAT32 分区上的文件: 镜像(u-boot+内核) 设备树 Blob (.dtb) initramfs 映像(cpio.gz) 以下是确切的 U-Boot 命令和行为。 使用的 U-Boot 命令 u-boot= > setenv bootargs console=ttymxc1,115200 root=/dev/ram rw u-boot= > fatload mmc 1:1 Image_copy.gz 在${loadaddr} 282 毫秒内读取 13450466 字节 (45.5 MiB/s) u-boot= > fatload mmc 1:1 imx8mp-evk.dtb 在${fdt_addr} 4 毫秒内读取 82784 字节 (19.7 MiB/s) u-boot= > fatload mmc 1:1 core-image-minimal-initramfs-imx8mp-ddr4-evk.cpio.gz 在${ramdisk_addr_r} 264 毫秒内读取 12602736 字节 (45.5 MiB/s) u-boot= >${loadaddr}${ramdisk_addr_r} 启动:${filesize}${fdt_addr}   执行 booti 命令后,内核开始启动,但它不会挂载或使用 initramfs (cpio.gz) 作为根文件系统。 我附上了完整的内核启动日志以供参考。 问题 内核不加载 initramfs (cpio.gz)的可能原因是什么?尽管 U-Boot 已将其正确加载到内存中? 是否有任何支持 initramfs 所需的强制内核配置选项需要我验证? 在 i.MX8M Plus 上使用 initramfs 启动时的 bootargs 配置是否正确,还是需要其他参数? Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 我注意到你说过 " 我确实有在 SD 卡上使用常规 rootfs 启动的步骤,但我们需要两个环境 "。 建议您阅读 SWUpdate OTA i.MX8MM EVK_rev3.pdf 第 35 页。 swUpdate OTA i.mx8mm EVK/i.mx8QXP MEK-恩智浦社区 也许这就是你想要的。 1.png Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 也许这个演示能帮到你。 它只是一个 u-boot booti 命令。您可以根据内核映像格式(Image、zImage 等)将 booti 改为 bootz。 booti${loadaddr} ${initrd_addr} ${fdt_addr} initrd_addr 是 uramdisk_boot.rootfs.aarch64.img ramdisk 的位置/地址。 在你的情况下,应该是core-image-tiny-initramfs.cpio.gz。 |-- 0001-all-in-spi-demo-lf-5.10.72-2.2.0.patch --- 此演示的补丁文件|-- demo_binary| |-- flash.b0.bin --- b0 引导加载程序| |-- flash.bin --- c0 引导加载程序| |-- Image-imx8qxpc0mek.bin --- Linux 内核| |-- imx8qxp-mek.dtb --- 设备树| |-- uramdisk_boot.rootfs.aarch64.img --- RAM 磁盘| |-- uuu.qspi.all.b0.uuu --- b0 的 uuu 脚本| `-- uuu.qspi.all.uuu --- c0 的 uuu 脚本`-- readme.txt --- 此文件 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/all-bootloader-device-tree-Linux-kernel-rootfs-in-spi-nor-demo/ta-p/1663994 Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 如果您不知道在哪里可以找到文件,也没关系。如果这是"基本知识" ,应该有相关文档,但我在网上搜索了很多次都没有找到。 我很清楚各种 " 启动 " 命令,也曾在其他平台上使用过它们。我已经查看了源代码和其他启动配置。我在查找 nxp 平台所需的具体数值和参数。这应该在 " core-image-tiny-initramfs " 版本中可用,但我找不到使用该图像的步骤。(我确实有在 SD 卡上使用常规 rootfs 启动的步骤,但我们需要这两个环境。) Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 我已经告诉过你! 而且它来自 u-boot 文档。这是一份文件 如果你查看 u-boot 帮助,你可以很容易地找到如何使用 ramdisk。 u-boot=> 帮助 booti booti - 从内存中启动 Linux 内核 “镜像” 格式 用法: booti [addr [initrd [: size]] [fdt]] -启动 Linux “映像” 存储在 “addr” 处自变量 “initrd” 是可选的,用于指定内存中初始化的地址。 可选的参数 ':size' 允许 指定 RAW 初始化文件的大小。 由于启动 Linux 内核需要平面设备树,因此需要 第三个参数来提供设备树 blob 的地址。 要使用设备树 blob 但 没有 initrd 映像启动内核,请使用 '-' 作为 initrd 参数。 如果你查看二进制版本 tar ball 中的 uuu 脚本 “example_kernel_emmc.uuu”,你就会发现如何使用虚拟磁盘。 FB:ucmd setenv fastboot_buffer ${loadaddr} FB:下载 -f _Image FB:ucmd setenv fastboot_buffer ${fdt_addr} FB:下载 -f _板.dtb FB: ucmd setenv fastboot_buffer${initrd_addr} FB: download -f _initramfs.cpio.gz.uboot #FB: ucmd setenv bootargs console=${console},${baudrate} earlycon=${earlycon},${baudrate} FB: acmd${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr} FB:acmd ${kboot} ${loadaddr} ${initrd_addr} ${fdt_addr} u-boot= > 帮助 booti booti - 从内存中启动 Linux 内核“镜像”格式 使用方法: booti [addr [initrd[:size]]] [fdt]].[fdt]] kboot 这里是 booti loadaddr 这里是 addr initrd_addr 这里是 initrd,是 ramdisk,可能是 core-image-tiny-initramfs.cpio.gz 这里的 fdt 是 fdt_addr 还是那句话,我已经把一切都告诉你了!!!.....! "如果没有 initrd 映像,请在 initrd 参数中使用"-"。" 这就是为什么你经常在带有 linux 内核和设备树 dts 的启动命令行中看到 “-” 的原因。 因为大多数情况下不需要 ramdisk。 这只是 u-boot 的基础知识。非常基本。 Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 你好 是否有任何文档或信息如何使用所提供的 ramfs 配方? 谢谢, Scott Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 如果你查看 u-boot 帮助,你可以很容易地找到如何使用 ramdisk。 u-boot=> 帮助 booti booti - 从内存中启动 Linux 内核 “镜像” 格式 用法: booti [addr [initrd [: size]] [fdt]] -启动 Linux “映像” 存储在 “addr” 处自变量 “initrd” 是可选的,用于指定内存中初始化的地址。 可选的参数 ':size' 允许 指定 RAW 初始化文件的大小。 由于启动 Linux 内核需要平面设备树,因此需要 第三个参数来提供设备树 blob 的地址。 要使用设备树 blob 但 没有 initrd 映像启动内核,请使用 '-' 作为 initrd 参数。 Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 你好 谁有答案?是否有使用提供的 core-image-tiny-initramfs 的文档? 谢谢, Scott Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 你好 我们需要从单个 uboot 启动多个内核和/或 ramfs。目标可以在 uboot 代码中确定,它可以设置适当的环境变量。我们已经在其他系统上做到了这一点,所以在这里也应该可以做到。 我们已经有了检测和使用不同内核的代码。我们需要采取步骤来启动 ramfs。 谢谢, Scott Re: How to run core-image-tiny-initramfs.cpio.gz (or ramfs / ramdisk.gz) from an SD card 你好 如果你只想版本 uboot,为什么不使用独立的 uboot?有关更多详细信息,请参阅第 3 章 移植 U-启动。 https://www.nxp.com/docs/en/user-guide/IMX_PORTING_GUIDE.pdf 此致
查看全文
S32K388: FCCU実装でeMcem initが失敗する こんにちは、チームの皆さん お客様は、RTD 5.0.0を搭載した SAF パッケージSW32K3_SAF_1.0.6_CD02_D2508を使用しており、現在、MCU0 (S32K324) および MCU1 (S32K388) 用の FCCU モジュールの構成に取り組んでいます。 S32K324: Tresos で eMcem モジュールを構成しました。 Tresos で Safebase モジュールを構成しました。 アプリケーション ソフトウェアの起動シーケンスの一部として eMcem_Init() を呼び出しました。 FCCU ペリフェラルは、Tresos 構成に従って設定されます。インジェクト機能を使用してテストし、ALARM ISR を正常にトリガーしました。 S32K388: Tresos で eMcem モジュールを構成しました。 Tresos で Safebase モジュールを構成しました。 アプリケーション ソフトウェアの起動シーケンスの一部として eMcem_Init() を呼び出しました。 問題: eMcem の初期化に失敗します。OPR 要求 (障害のクリア、状態の構成など) はいずれも機能していません。 BareMetal コードを使用して FCCU ペリフェラルを構成することをテストし、期待どおりに動作した場合、FCCU は正常に構成されました。S32K388 に関してエラッタや特別な考慮は必要ですか? 詳細は下記をご覧ください。追加情報が必要な場合はお知らせください。 ベアメタル構成: アラームハンドラーISRは偽の注入によってトリガーされます SAF パッケージのeMCEM モジュールを使用する場合、ステップ実行せずにコードを実行すると、コア リセットが発生します (このプロセス中にブート マネージャーに到達しないため、完全なマイクロコントローラ リセットではありません)。 ただし、eMcem_Init 関数を実行すると、 CONFIG状態への移行時に失敗します。このCASE、コア リセットは発生せず、システムはRUNNING状態に移行しますが、FCCUは未構成のままになります。 Tresos 構成: (前述のとおり、同じ構成が S32K324 でも動作します) ここでのどんな助けも大歓迎です。 優先度: 中 RTD SAFETY_SW 出典: 直接お客様 Re: S32K388 : eMcem init fails in FCCU implementation こんにちは@vamsilankaさん、 SAF 1.0.6 CD02 は RTD 6.0.0 でのみテストしたと思いますが、いずれにしても RTD バージョンはここでは問題にならないと思います。 以下を試していただけますか: - Config タイムアウトが検出されて、appl_Fccu_Cfg_TimeoutCallback() に到達できるか試していただけますか?いいえの場合は、ISR 190 が有効になっていることを確認してください。 これは、FCCU によってタイムアウト イベント情報が検出されたかどうかを確認するためのものです。 - 構成されたロック タイプを SOFT_LOCK から NO_LOCK に変更し、それが機能するかどうかをもう一度試してください。 これは、内部関数 378,5: eMcem_Fccu_UnlockTrans() が期待どおりに動作するかどうかをテストするためのものです。 - FCCU_MAX_LOOP_COUNT_U8 を 20 から 200 に変更してみます。 お客様の時計設定に関してタイムアウトが十分かどうかをテストします。 これら 3 つの回避策を個別に試して、どれが機能するか教えてください。 敬具、 ラドスラフ Re: S32K388 : eMcem init fails in FCCU implementation こんにちは@RadoslavB 、 お客様がデバッグ モードを有効にし、すべての構成が FCCU ペリフェラルに適用された状態でシステムが正常に CONFIG 状態になります。ただし、CONFIG 状態から NORMAL 状態には遷移しません。eMcem_Fccu_ExecuteOperationAndConfigureCtrlReg() 関数を複数回実行しましたが、結果は同じままでした。 さらに、デバッグ モードを有効にすると、fccu_configure までのコードをステップ実行しないと、システムが継続的にリセットされ、デバッグ ポートが失敗します。デバッグ ポートの障害のため、MC_RGM レジスタにアクセスしてリセットの原因を特定することができません。Trace32 に再接続するにはデバッガーで手動でリセットする必要があり、その結果、外部リセットが記録されます。 Re: S32K388 : eMcem init fails in FCCU implementation こんにちは@vamsilankaさん、 「デバッグ モードの有効化」を有効にしてみることもできます。RM ではあまり説明されていませんが、デバッグ中にタイムアウトがフリーズされる可能性があります。このオプションを有効にすると何らかの変化があるかどうかお知らせください。 私の側で試してみたところ、 eMcem_Fccu_ExecuteOperationAndConfigureCtrlReg() によるデバッグではオペレーションモードの変更が機能しないことが確認されました。そのため、FCCU オペレーションモードを適切に変更するには、この関数全体をステップオーバーする必要があります。RM には、この理由を説明する以下のヒントがあります。 ステップオーバーした eMcem_Fccu_ExecuteOperationAndConfigureCtrlReg() の呼び出しを除くすべての eMcem_Init コードをステップごとにデバッグでき、最終的に eMcem_Init() は BusFaults なしで OK を通過します。 リセットが発生した場合は、リセットステータスレジスタを確認し、根本原因を特定してください。FOSUリセットフラグの場合、何らかの障害が発生したものの、想定されたタイムアウト時間内に応答が実行されなかったことを意味します。この場合、どのFCCU/DCMROD障害が発生したかを特定してください。 Busfault についてですが、BusFault 発生時の StackFrame とすべてのシステム制御レジスタを表示できますか?FCCU init の実行で Bus Fault が発生するのは一般的ではありません。 また、OS はどの時点でも eMcem_Init の実行を中断してはなりません。OS スケジューラは他のタスクに切り替えていないと思いますか? 敬具、 ラドスラフ Re: S32K388 : eMcem init fails in FCCU implementation こんにちは@RadoslavB 、 以下の電子メールに記載されている 3 つの提案をすべてテストしたところ、一貫した動作が確認されました。437 行目で NORMAL 状態に入る前に、 fccu_configure関数のどの行にもブレークポイントを設定しないと、システムで破壊的なリセットが発生し、デバッガーにデバッグ ポートの失敗が表示されます。これは、FOSU が破壊的なリセットをトリガーする CAN が原因である可能性がありますか? fccu_configure関数にブレークポイントを設定すると、コードが停止し、FCCU ペリフェラルで構成タイムアウトが表示されます (デバッガー経由で停止したためかどうかは不明)。また、割り込み優先度が原因で、TIMEOUT_ISR ではなく OS_BusFault エラーが発生します。NVIC レジスタを確認すると、ISR 190 がアクティブと非アクティブの間で切り替わっていることがわかります。       Re: S32K388 : eMcem init fails in FCCU implementation こんにちは@vamsilankaさん、 私の側ではこのシナリオを再現できません。 デバッグ モードを有効にし、ソフト ロックを適用しましたが、すべて期待どおりに動作します。 デバッグセッションを作成しましょう。 HW へのアクセスをブロックする設定がある場合は、MPU と XRDC を無効にしてみることができます。 OS がプロセスを中断していないか、常にスーパーバイザー モードになっているかを確認します。 関連するクロック FIRC、AIPS_PLAT_CLK を確認できます。 そして、実際の FCCU 障害がないかどうかを確認できます。 敬具、 ラドスラフ
查看全文
受 NFC 保护的 NTAG 问题 你好 我使用的是恩智浦标签 NTP5332,使用定制的移动应用程序通过 NFC 发送命令时,我实际上遇到了问题。在 NFC 方面,我在写入受密码保护的存储区域时遇到了问题。要读取受保护的内存区域,我按照上述命令顺序进行操作,只将密码标识符改为 0x01,并将操作改为读取;在这种情况下,读取操作是成功的。如果取消了防止读写的密码保护,则读取和写入命令可以正常运行。 有人能帮我解决这些问题吗?我是不是发错命令了? 谢谢您的帮助! Re: Problem with NTAG protected in NFC side 你好@NSF 希望你一切顺利。 请确认您要写入的是哪个内存区域(用户内存还是配置内存)? 您的保护指针和相关条件的配置是什么? 您是否对试图写入的区域执行过锁定操作?NFC 锁块配置块的值是多少? 我们建议您使用TapLinx SDK。该SDK为智能手机中的免接触式应用程序开发提供了一些工具。开放式应用程序接口允许开发人员访问恩智浦 NFC 产品组合的所有硬件功能。它为快速、轻松地开发轻量级应用程序提供了一个功能子集。 Eduardo。 Re: Problem with NTAG protected in NFC side 您好, 请尝试在读取和写入时都执行 SET PASSWORD,然后尝试写入程序块。 Eduardo。 Re: Problem with NTAG protected in NFC side 你好@EduardoZamora   感谢您的答复!   以下是 NFC 标签的配置:   reg. 0x1037(配置字节):[0]:0x09;[1]:0x00;[2]:0x5f;[3]:0x00 Reg. 0x103F(设备网络安全配置):[0]:0x45;[1]:0x00;[2]:0xff;[3]:0xff -NFC 网络安全:普通密码 - 从 NFC 的角度看,配置区没有读写保护 - PP_AREA_1:0xFFFF(指向用户内存之外) 注册表 0x1020(读取密码):[0]:0x00; [1]:0x00; [2]:0x00; [3]:0x00 - 读取密码为 0x00000000 注册表 0x1021(写密码):[0]:0x00; [1]:0x00; [2]:0x00; [3]:0x00 - 写入密码为 0x00000000 注册表 0x1058(NFC 保护指针):[0]:0x08; [1]:0x30; [2]:0x00; [3]:0x00 - NFC_PP_AREA_0H: 0x08 - NFC_PPC:0x30(AREA_0-H 受写和读保护;AREA_0-L 不受读和写保护) 注册表 0x100C: [0]:0x00; [1]:0x81; [2]:0x00; [3]:0x00 - NFC_GCH: 0x81 (NFC 密码可通过 READ CONFIG(读取配置)读取和写入。 和 WRITE CONFIG 命令)。   内存组织 0x00 - 0x08 --> NFC_AREA_0_L(不受读写保护) 0x08 - 内存结束 --> NFC_AREA_0_H(读写受保护)   此致, NSF Re: Problem with NTAG protected in NFC side 您好, 有进展吗?我在写入受密码保护的内存区域时也遇到了同样的问题。 顺祝商祺! Re: Problem with NTAG protected in NFC side 您好, 尝试以下顺序: - SELECT NTAG - Get Random Number - SET PASSWORD for PID 01 - SET PASSWORD for PID 02 - Write to register 0x14 Eduardo。 Re: Problem with NTAG protected in NFC side 你好@EduardoZamora 谢谢您的答复。 在我发送的截图中,你可以看到在 SET PASSWORD 命令中,我使用 0x01 读取,0x02 写入。从我运行的测试来看,只有READ命令在读取保护内存区域中有效。为了在写保护的内存区域中写入,我使用了以下命令集: -使用密码标识符 0x02 设置密码;这个命令有效; -例如,在寄存器 0x14 中写入;此命令返回 0x01 0x0F。 根据我进行的这些测试和我在之前的回复中发送的寄存器值,您能在您的终端复制相同的情况吗? 寄存器值或命令中是否存在配置错误? 感谢您的帮助。 NSF
查看全文
RT1021: OTPMK / SNVS Highキーを使用したDCPの例はゼロキーで暗号化されているようです こんにちは、 MCUXpresso SDKs DCP AES の例をハードウェア キーを使用するように変更しました。 SNVS High経由でOTPMKを使用するように暗号化が設定されている すべてゼロのソフトウェアキーで実行される復号化 テストは依然として合格であり、これは暗号化が OTPMK/SNVS High キーではなくゼロ キーで効果的に行われていることを示しています。 観察: DCP API はエラーを報告しません。 操作は正常に完了しました。 「ハードウェア キー」暗号化によって生成された暗号文は、ゼロ ソフトウェア キーを使用して復号化できます。 新しい EVK ボードでも、ヒューズが切れた EVK でも、動作を再現できます。(BT_FUSE_SEL、BEE_KEY*_SEL=0b10、EXIP 有効化など) これは、ハードウェア キーが無視されているか、正しく選択されていないことを示しています。 質問: DCP が実際に OTPMK/SNVS High を使用するために必要な前提条件 (ヒューズ、SNVS セットアップ、キー選択ビット) はありますか? SDK の例には既知の制限やフォールバック動作はありますか? 有効な DCP キー ソースを実行時に検証するにはどうすればよいでしょうか? 修正した例を添付します。これは RAM 内で実行するようにリンクされています (名前が示すようにフラッシュ内ではありません)。 TestAesEcb() のみを保持し、OTP キーを使用するために DCP_TEST_USE_OTP_KEY を定義しました。 私は自分の仮説を証明するために鍵と暗号文を変更しました。 static const uint8_t keyAes128[16] __attribute__((aligned)) = { 0 }; static const uint8_t plainAes128[] = {0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a}; static const uint8_t cipherAes128[] = {0xcf, 0x2e, 0xa3, 0x8a, 0x12, 0x3b, 0xe2, 0x07, 0x65, 0xeb, 0x8c, 0x5c, 0x56, 0xca, 0xf2, 0x24}; 暗号文は、すべてゼロのキーを使用して平文から取得されます。 mastupristi_0-1765355727546.png OTPMKで暗号化し、SWキーで復号化します m_handle.channel = kDCP_Channel0; m_handle.swapConfig = kDCP_NoSwap; m_handle.keySlot = kDCP_OtpKey; status = DCP_AES_SetKey(DCP, &m_handle, keyAes128, 16); TEST_ASSERT(kStatus_Success == status); DCP_AES_EncryptEcb(DCP, &m_handle, plainAes128, cipher, 16); TEST_ASSERT(memcmp(cipher, cipherAes128, 16) == 0); m_handle.keySlot = kDCP_KeySlot0; status = DCP_AES_SetKey(DCP, &m_handle, keyAes128, 16); TEST_ASSERT(kStatus_Success == status); DCP_AES_DecryptEcb(DCP, &m_handle, cipher, output, 16); TEST_ASSERT(memcmp(output, plainAes128, 16) == 0); PRINTF("AES ECB Test pass\r\n"); これを実行すると、シリアル ポートに次の内容が表示されます。 mastupristi_1-1765355841651.png ご説明いただければ幸いです。 よろしくお願いいたします。 最大 Re: RT1021: DCP example using OTPMK / SNVS High key appears to encrypt with zero key こんにちは@Bio_TICFSL ご説明ありがとうございます。 私の状況は次のとおりです。 「実際の」ボードでは USB または LPUART1 を使用できないため、NXP プロビジョニング ツール (SEC またはシリアル ダウンローダー) を使用できません。 このため、私は次の目的を持つRAM 常駐ファームウェアを開発しています。 必要なヒューズ(BT_FUSE_SEL、BEE_KEY*_SELなど)をプログラムします。 最終的なファームウェア イメージを理想的には SNVS High キー (OTPMK) を使用して暗号化します。 しかし、ヒューズの設定に関係なく、また HAB およびキー選択ヒューズがすでに切れている搭載ボード上であっても、SNVS キーが使用されることは決してないということを私は一貫して観察しています。 使用可能なインターフェースはSWD/JTAGのみなので、DCP が実際に OTPMK にアクセスできる状態にデバイスを設定するための推奨手順は何ですか? あなたの説明は重要な懸念も提起しています: デバイスがオープン モードのままの場合、署名または暗号化されたブートを必要としないアプリケーションであっても、独自の SNVS キーを使用してデータ (暗号化された大容量ストレージ ファイルなど) を暗号化/復号化できないことを意味しますか? これは厳しい制限となります。 最後に、ドキュメントに記載されているステート マシンによれば、キーは赤色の「失敗」状態のいずれかを通過する場合にのみゼロ化されます。 mastupristi_0-1765466458455.png オープンデバイスでは、遷移はCHECK → NON-SECUREのように見え、失敗状態になることはないため、SNVS マスター キーが使用できない理由は不明です。 これらの点、特に SWD/JTAG のみが利用可能な場合に OTPMK アクセスを有効にする方法に関する部分を明確にしていただけますか? よろしくお願いします。 Re: RT1021: DCP example using OTPMK / SNVS High key appears to encrypt with zero key こんにちは、 あなたが観察している動作、つまり暗号化が OTPMK/SNVS High キーではなくゼロ キーで行われているように見える動作は、特定のセキュリティ構成では予想されます。 デバイスがオープンモード構成(SEC_CONFIG[1]ヒューズ= 0)の場合、SNVSはブート中に非セキュア状態に移行します。この状態では、OTPMK は DCP モジュールで使用できません。これは、OTP キー設定を使用すると暗号化されたデータが同一に見える理由です。実際のハードウェア キーは使用されていません。 OTPMK を DCP で使用できるようにするには、デバイスが安全で信頼できる状態である必要があります。これには次のものが必要です: 1.HABを閉じるには、SEC_CONFIG[1]ヒューズを溶断(1に設定)する必要がある。 2. SNVSは信頼された状態にある必要があります テストケースでは、おそらくオープン モードになっています。このモードでは、DCP は実際の OTPMK ではなくゼロ キーを使用して実質的に暗号化します。これは、観察結果と一致します。 暗号化に OTPMK を適切に使用するには: - SEC_CONFIG[1]ヒューズをプログラムしてデバイスをセキュアモードに移行する必要があります。 - SNVSが信頼できる状態を維持することを確認する このセキュリティ アーキテクチャは意図的なものであり、適切なセキュリティ状態要件が満たされた場合にのみ、ハードウェア キーが暗号化モジュールにアクセスできるようになります。 よろしくお願いします。
查看全文
S32M276 - HD/HSx測定 こんにちは、 ADC を介して HD/HSx 信号を正しく測定する方法がわかりません。 RM によれば、HD と HSx は次のチャネルで測定できます。 HS0: ADC0_S16、PTD2 HS1: ADC0_S19、PTD4 HS2: ADC0_S17、PTB12 HD: ADC1_S18、PTA6 私はピン ツールを使用してこれを設定しました (これが必要なのかどうかはわかりません)。 mme255_0-1765381122530.png BCTU を使用して ADC 測定をトリガーします。「Adc Target Mask」= `0b11` の単一トリガーを使用して、ADC0 と ADC1 から同時に読み取ります (偶数インデックス -> ADC0、奇数インデックス -> ADC1 と想定)。 測定中、GDU はアクティブで、3相すべてが HIGH になります。 私の問題は次のとおりです: HD電圧(ADC1_S18)の結果値が正しくありません(+/- 1000にジャンプし、電源電圧に応じて変化しません) 不思議なことに、チャネルを ADC0 (ADC0_S18) で測定すると、値は予想値と一致します。 HS2電圧(ADC0_S17)の結果値が正しくありません(0に近い) しかし、HS0 と HS1 の結果の値は正しいです。 何か追加の設定が足りないのでしょうか?HS2 は HS0/HS1 とは異なる構成にする必要がありますか? ADC0 経由で HD 電圧を測定できるのに、ADC1 では測定できない理由は何でしょうか? 他の信号 (ADC1_S8、ADC0_ANAMUX 経由の電流など) は問題なく測定できるため、BCTU の設定に問題はないと思います。 (RTD 4.0.0を使用しています) よろしくお願いします! Re: S32M276 - HD/HSx measurement こんにちは、 BCTU CL を変更すると動作が変わり、電圧が正しく測定される場合は、おそらくこれが正しく設定されていません。 「Adc Target Mask」= `0b11`でADC0とADC1から同時に読み取る複数の並列変換が開始されると、リスト内の項目の意味は、RMが示すとおり、偶数インデックス→ADC1、奇数インデックス→ADC0となります。 PetrS_0-1765457594013.png また、ADC0 から 3 つのチャネルをサンプリングし、ADC1 から 1 つのチャネルをサンプリングする場合、この並列変換では、ADC1 に 3 つのペアを持たせるためにいくつかの「ダミー」チャネルを追加する必要があります。例えば: - ADC0_S16、HS0 - ADC1_S18、HD - ADC0_S19、HS1 - ADC1_S8、ISENSE - ADC0_S17、HS2 - ADC1_S18、HD BR、ペトル   Re: S32M276 - HD/HSx measurement こんにちは、 アプリ エンジニアから通知を受けたもう 1 つの理由は... RTD には S32M の制限があり、ADC インターリーブは PINS ツールでは設定されません。PTA6 ではインターリーブは ADC1_S18 に設定できますが、PTB12 ではインターリーブは ADC0_S17 に設定できます。これはDCMRWF4レジスタに設定されます(RMのレジスタの説明を参照)。 PetrS_0-1765464180177.png PetrS_1-1765464199188.png PetrS_2-1765464224121.png SO、SIUL/ポートを初期化した後、インターリーブを手動で設定することをお勧めします。弊社の BLDC 6 ステップ モータ制御の例は、正しいものであり、次の Web サイトからダウンロードできます。 PetrS_3-1765464345545.png または、次のように SIUL/ポートの初期化後に CAN 実行できます。 PetrS_4-1765464379542.png BR、ペトル Re: S32M276 - HD/HSx measurement Petr様 私の問題を調べるために時間を割いていただきありがとうございます。それが私が見逃していた部分でした。あなたの提案で解決しました! ご回答をお待ちしています。
查看全文
如果只使用两个通道,i.MX8M-Mini SAI1-TX 支持 768kHz/32 位 IMX8MMRM 第 13.1.1.4 章音频接口列表显示 SAI1-TX 支持 384kHz 32bit x 8 通道。 不过,SAI2-TX 规定的频率为 768kHz 32 位 x 2 个通道。 如果禁用其余通道,请反馈 SAI1-TX 能否处理 768kHz 32 位 x 2 通道。 如果是,请反馈在禁用其余通道的情况下,SAI1-TX 能否处理 768kHz 32 位 x 4 通道。 感谢和问候,克里斯托夫 Re: i.MX8M-Mini SAI1-TX support for 768kHz/32 bit if only using two lanes 根据我们的测试,SAI1 的频率限制为 768kHZ,这意味着可以支持 768Khz、32 位和 2 个通道,但我们只测试了 768khz、16 位和 2 个通道,限制的 BCLK 应该是 49.152 Re: i.MX8M-Mini SAI1-TX support for 768kHz/32 bit if only using two lanes 亲爱的琼 非常感谢你的答复。 请允许我重新提问: 客户是否应将 i.MX8M-Mini 的 SAI1 更改为 SAI2,以支持 768kHz 32bitx 2 通道 I2S? 还是说这样做没有意义,因为 SAI2 在这方面并不比 SAI1 好? 两个端口(SAI1 和 SAI2)上的 I2S BCLK 和 I2S MCLK 频率限制为 49.152MHz。 如果有任何理由说明 SAI2 在这方面优于 SAI1,请与我们分享。 感谢和问候,克里斯托夫
查看全文
SBCFS26 VPREレギュレータの電圧範囲の説明が必要 こんにちは、NXPさん SBCFS26 VPRE レギュレーターについて説明が必要です。VPRE 電圧レギュレータの MFS2613AMDA6 データシートを分析しました。供給電圧範囲が VPRE_IN の最小制限を下回る場合、FS26 は電源レールを提供できないと言われています。 データシートによると、最小電圧範囲は 4.75V です。このCASE、しきい値が VPRE 監視電圧 6V の 90% であるため、VMONPRE は VPRE 低電圧障害をトリガーしますか? また、どのようなCASEでVPRE低電圧障害が発生する可能性があるかを明確にしてください。 ご理解いただきありがとうございます。 FSBC+PMIC Re: Clarifications required in SBCFS26 VPRE Regulator Voltage Range こんにちは、シヴァハリ 良い一日! 1.- はい、ただし VPRE がオンで規制されると予想される場合のみです。デバイスがVPREが有効で調整中のモード(VPREがアクティブな通常モードまたはスタンバイモード)にあり、有効なVPRE出力がVMONPRE UVしきい値を下回ると、FS26のセーフティモニタは内部デグリッチ時間後にVPRE低電圧障害をフラグ付けすることができます。 2.- VPRE 低電圧障害が発生する可能性があるCASEは次のとおりです。 バッテリーのたるみ/クランキング VSUPがVPRE入力最小値を下回る VPREレールの過度の負荷ステップまたは短絡 フロントエンドと直接バッテリー トポロジの誤った構成 (OTP に依存) 熱または内部保護の相互作用 この情報がお役に立てば幸いです。他に何かご不明な点がございましたら、お知らせください。 素晴らしい一日をお過ごしください。幸運をお祈りします。 Re: Clarifications required in SBCFS26 VPRE Regulator Voltage Range RafaRさん、説明していただきありがとうございます。
查看全文
错误代码为 102。 我有 S32G-VNP-RDB2 板和 S32 调试探头。 我尝试在版本到示例项目后进行调试。 但调试失败,错误代码如下(错误代码为 102)。 原因可能是什么? youngdae_0-1651127942343.png Re: S32 Debug Probe error code is 102. 嗨 , 当我使用 S32 调试探针时,也出现了同样的问题。 zhipeng_1-1765187216931.png 1.电源正常 2.JTAG 原理图 ↓ zhipeng_0-1765187074548.png 3.SD选择 示意图尝试上拉和下拉 zhipeng_0-1765187679813.png   问题出在哪里?谢谢。       Re: error code is 102. 修复提示 打开或关闭 Windows 防火墙功能 检查代理服务器设置 更改 Windows 适配器设置 对 Windows PC 进行全面扫描 清除 Internet 浏览器 Cookies& 缓存 在 CMD 中清除 DNS 解析器缓存 此致, 雷切尔-戈麦斯 Re: error code is 102. 你好 Youngdae、 从您提供的有限信息中很难确定原因,不过,造成连接问题的一些常见原因如下: 1) S32 调试探头未通电。通常在使用以太网连接时,人们很容易忘记以太网不提供电源。 2) EVB 没有供电。有时需要更改跳线设置,更改跳线设置后应关闭板的电源,但是之后很容易忘记重新打开电源开关。需要注意的是,RDB2 板上的电源开关有 3 个位置,其中只有一个可以正确地为板供电,请检查您选择的开关位置是否正确。 3) JTAG 电缆未完全固定在 S32 调试探设备端或 EVB 端的连接器上。 4) 连接 JTAG 电缆和 S32 调试探测设备的探针尖端未完全固定在 S32 调试探测设备的连接器上。 5) 开发板设置为从 SD 卡启动,SD 卡装有 Linux 电路板支持包并安装到 SD 卡插槽中。Linux 电路板支持包可能会干扰 S32 调试探器与目标的通信。 6) S32 调试探针有特定的电压要求(在随附的 S32 调试探针用户指南中有具体说明)。如果使用的电源与 RDB2 套件中包含的电源不同,则 JTAG 线路上的电压可能不适合 S32 调试探针的使用。 我建议您尝试使用调试配置菜单中的 "测试连接 "按钮,以确认硬件设置和通信设置是否正确。这比仅使用 "调试 "按钮检查连接状态要快得多。 如果您确认了以上所有内容,但仍然无法正常工作,请与我们联系。 顺祝商祺! Mike
查看全文
エミュレーターは使用できず、TX/RX インジケーター ライトが赤く点滅し続けます。 CodeWarriorエミュレータを使用する際、USBケーブルでコンピュータに接続しました。しかし、エミュレータのTX/RXインジケーターが赤く点滅し続けました。外部接続を確認したところ、正常に動作していることが確認されました。 これは CodeWarrior ドライバーがないからでしょうか? Re: 仿真器无法使用,TX/RX指示灯一直闪烁红灯 CodeWarrior をどのように設定すればよいですか? また、ドキュメントの例はありますか? Re: 仿真器无法使用,TX/RX指示灯一直闪烁红灯 こんにちは@YPKEJI12341さん、 お問い合わせいただきありがとうございます。添付のUSB TAPユーザーガイドをご参照ください。Codewarriorを設定せずにUSB TAPをPCに接続するだけで、赤色のランプが点滅するのは正常です。 Celeste_Liu_0-1765164688396.png BR セレステ Re: 仿真器无法使用,TX/RX指示灯一直闪烁红灯 使用しているチップと、Codewarrior のどのバージョンを使用しているかを教えてください。 通常、新しいプロジェクトを作成するときは、接続設定で「Freescale USB TAP」を選択する必要があります。 Celeste_Liu_0-1765175432601.png 次に、デバッグ構成で対応する構成を行います。 Celeste_Liu_1-1765175542665.png CodeWarrior 内のすべてのドキュメントを検索するには、Help-Search を使用できます。 Celeste_Liu_2-1765175957263.png
查看全文
MC33886DHの両方の出力は12Vを示しています モータ・ドライバとして 2 つの MC33886DH を搭載したカスタム PCB を構築しましたが、OUT1 と OUT2 の電圧を見ると両方とも 12V を示しており、モーターが回転していません。マルチメーターですべての入力が正しいことを確認しましたが、その通りでした。In1 は 3.3V を受け取り、In2 は 0V を受け取り、D1 は 0V を受け取り、D2! は 3.3V を受け取ります。何が起こっているのか、アイデアはありますか? Re: Both MC33886DH Outputs Show 12V こんにちは レビュー用に回路図をお送りください。 ありがとう! Re: Both MC33886DH Outputs Show 12V こんにちは!返信ありがとうございます。回路図はこちらです。 FredTheOkGuy_0-1765198363018.png 回路図では 24V と記載されていますが、PCB をテストするときは 12V のバッテリーを使用していました。 Re: Both MC33886DH Outputs Show 12V VIH の最小値は 3.5V であることがわかります。 guoweisun_0-1765266444264.png Re: Both MC33886DH Outputs Show 12V ああ、完全に見逃してました、ありがとう!
查看全文
imx8ULP 独立镜像 我想为 i.MX8ULP 版本一个完整的独立组网 (SA) 可启动映像。 我已经为 i.MX8ULP 下载并版本了 Linux 内核和 U-Boot。 我需要什么额外的元器件,既然 i.MX8ULP 内置了 eMMC,我该如何将 U-Boot、内核和根文件系统闪存到其上? 启动 ROM | 启动配置 | 闪存 Re: IMX8ulp standalone image 是的,我已经阅读了 imx linux 用户指南,但找不到任何链接来下载所有这些依赖项,内核和 rfs 又是怎么回事呢? Re: IMX8ulp standalone image 你好@bajpaia 希望你一切顺利。 对于 i.MX 8ULP EVK,建议使用 imx-mkimage 版本启动映像: 1。将 u-boot.bin 从 u-boot/u-boot.bin 和 u-boot-spl.bin 从 u-boot/spl/u-bootspl.bin 复制到 imx-mkimage/iMX8ULP/。 2。将 bl31.bin 从 Arm Trusted 固件 (imx-atf) 复制到 imx-mkimage/imx8ULP/。 3.将哨兵固件容器 mx8ulpa0-ahab-container.img 的镜像复制到 imx-mkimage/iMX8ULP/。 4.将 uPower 固件镜像 upower.bin 复制到 imx-mkimage/iMX8ULP/。 5.将 Cortex-M33 映像 m33_image.bin 复制到 imx-mkimage/iMX8ULP/。 6.如果使用 OP-TEE,请将 tee.bin 复制到 imx-mkimage/iMX8ULP/。在步骤 2 中复制的 bl31.bin 必须在启用 OP-TEE SPD 的情况下构建。 7.运行 make SOC=iMX8ULP flash_singleboot_m33 生成 flash.bin。 有关信息请参见第 4.5.12 章。如何在独立组网 (SA) 和 4.5.13 中版本 U-Boot 和内核如何使用 i.MX Linux 用户指南 中的 imx-mkimage 版本构建 imx-boot 启动映像。 此外,建议您在修改内核、驱动程序等时使用独立组网 (SA)。 要生成完整镜像,我建议使用Yocto环境 顺祝商祺! 萨拉斯 Re: IMX8ulp standalone image 您好。 这里有指向"依赖项的链接" : U 启动。 mkimage. ATF. 您可以在版本说明表 5 中找到所有依赖关系。 要创建 RFS,强烈建议使用 Yocto 环境。 顺祝商祺! 萨拉斯
查看全文