Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
ブートローダーにはfs26インストールパッケージが必要です。 現在、S32K344をベースとしたブートローダープロジェクトの移植と開発にunified_bootloader_demo_v2.1を使用しています。RTDはバージョン2.0で、コントローラーにはFS26チップを使用しています。SBCドライバパッケージは少なくともRTD 3.0と互換性がありますが、RTD 2.0と互換性のあるものを提供していただけませんか?SBCパッケージですか、それとも手書きの実装コードですか?RTD 3.0以降に対応したブートローダープロジェクトを提供していただけるとさらに助かります。 どうもありがとうございます! 回复: bootloader需要fs26安装包 こんにちは。現在ブートローダーv2.1を修正しているのですが、ECCチェックサムの4バイトにエラーがあると表示されます。この関数は... Boot_PowerONClearAllFlag を変更する必要があります。8バイトのチェックを直接実行したところ、起動関数内の ExchangeInfo 領域のみが初期化されていないことがわかりました。この変更は許容範囲内でしょうか? /*電源投入時に、ECC用のRAM内のすべてのフラグをクリアします。*/ void Boot_PowerONClearAllFlag(void) ヤージュ uint16 infoCrc = 0u; uint8 インデックス = 0u; /* ECC用に8バイトでRAMをクリア */ for(index = 0u; index < (gs_stBootInfo.infoDataLen >> 3u); index++) ヤージュ *((uint64 *)gs_stBootInfo.infoStartAddr+ インデックス) = 0u; } infoCrc = Boot_CalculateInfoCRC(); SetInforCRC(infoCrc); } 回复: bootloader需要fs26安装包 こんにちは。画像1で、RAM初期化に関してstartup_cm7.s起動ファイルを変更する必要があります。変更を最小限に抑えるため、ブートローダーv2.1の`extern void Boot_PowerONClearAllFlag ( void );`だけを変更すれば良いでしょうか? 回复: bootloader需要fs26安装包 こんにちは コミュニティから提供された統合ブートローダーのデモは、より新しいS32K3 RTDバージョンの例を含めず「現状のまま」提供されており、ご迷惑をおかけすることを深くお詫び申し上げます。 FS26 SBC Autosar 4.4 バージョン 1.0.0は、 S32K3 RTD 2.0.0で使用するように設計されています。既に社内チームにこの旧バージョンのドライバをリクエスト済みです。お客様のアカウントにこのバージョンのソフトウェアのダウンロード権限が追加されるまでお待ちください。 ちなみに、サンプルコードに注意すべきエラーがあります。S32K3の共通問題チェックリスト、特にセクション3.4.3では、RAMのECC初期化には8バイトの書き込みが必要であると記載されています。 ECC初期化中にRAM(特にスタンバイRAM)が8バイト形式で書き込まれているかどうかを確認してください。 例えば、*(uint64 *)0x20400000 = 0; 規定を遵守しない場合、ECCエラーが発生する可能性があります。 NXPのブートローダーサンプルプロジェクトは、4バイトのゼロフィルECC初期化方式を使用しています。 *(uint32 *)0x20400000 = 0; それは間違いです。その記述は参照しないでください。 S32K3におけるブートローダーとアプリケーション間のデータ共有に関するセクションでも、これについて議論されています。 よろしくお願いします、 ロビン
記事全体を表示
最新のMediaPipeフェイスメッシュ(478ランドマーク)における量子化(INT8)モデルの利用可能性 GoogleのMediaPipe Face Mesh(478ポイントのランドマークモデルでアイリストラッキング/Attention Mesh)を使おうと考えています iMXプラットフォーム上で効率的に対応しています。NXPは現在、478ポイントのフェイスランドマーカーモデルに対して公式の量子化版(例:INT8)を提供していますか? もし現在入手可能でなければ、FUTUREにリリース予定はありますか? eIQツールキットを使ってGoogleの元のモデルを量子化しようとしましたが、精度は大幅に低下しています。Googleの古いFacemeshモデル(486 Landmarks)も同じ方法で量子化すると、まずまずのパフォーマンスが得られます。NXPも同じ観察結果を出していますか? 他にGoogleの最新のFaceMesh(478 Landmark)モデルの量子化を試したことがある人はいますか? 機械学習 Re: Availability of Quantized (INT8) Model for Latest MediaPipe Face Mesh (478 Landmarks) こんにちは、 現時点では利用できませんが、int8の改善に向けて社内でテストを行っています。 敬具。
記事全体を表示
[緊急]S32N55 GrayVIP HSE MACサービスがSEMタスクから呼び出された際にKEY_EMPTY(0xA5AA5317)を返す こんにちは、 この問題について調べていただけますか? 環境: SW32N5_GRAYVIP_1.0.25.0 カスタムSEMタスクジョブを使用して、実行時にSMRを再インストールしようとしています(OTA用)。 私がやったこと: Fss_Sem_PerformHSERequests(SEMタスクコンテキスト)からSMR再インストールをトリガーするカスタムSEMコマンドを追加しました。 SMR署名はAES-256 CMACをHSE_SRV_ID_MAC(GenerateMAC)経由で使用し、鍵はAES NvmKeyGroup(MuMask = MU_0)にインストールされます。 HSEリクエストはFss_Sem_SendServiceRequest(FSS_SEM_CSSI_MU0など)経由で送信され、PublishSysImageと同じパスです 問題: MACサービス要求は受け入れられましたが(送信応答はOK)、HSE応答は0xA5AA5317(HSE_SRV_RSP_KEY_EMPTY)でした。 同じCMACキーとキースロットは、初期ブート時のSMRインストール中に正しく機能します。 SEMタスク(ランタイム)から呼び出された場合にのみKEY_EMPTYが返されます。 同じSEMタスクからのPublishSysImage(読み取り専用、キーなし)は正常に動作します。 質問: (初期プロビジョニング後の)ランタイムSMRの再インストールは、サポートされているワークフローですか?もしそうなら、推奨されるアプローチは何ですか? 同じキースロットが、起動時には正常に動作するのに、SEMタスクコンテキストでのみKEY_EMPTYを報告するのはなぜでしょうか?セキュアブートを有効にした後に、MU/パーティションやキーカタログへのアクセス制限はありますか? Re: [Urgent]S32N55 GrayVIP HSE MAC service returns KEY_EMPTY (0xA5AA5317) when called from SEM task こんにちは、 @EddiePark 投稿ありがとうございます。またサポートできてうれしいです。 私の理解では、SMRエントリに紐づけられたキーは、SMRエントリのインストールが正常に完了すると使用できなくなります。そのため、同じキーが実行時に正しく使えなかったのかもしれません。 BR チェイン
記事全体を表示
i.MX8M Plus – MIPI CSI-2 Embedded Data(DT 0x12)とRAW画像の両方にアクセスする方法はありますか? こんにちは、NXPコミュニティの皆さん、 現在、MIPI CSI-2 RAW画像センサーを i.MX8M Plus と統合しており、センサーの CSI-2組み込みデータ(データタイプ0x12) をターゲット上のソフトウェアに提供できる、または技術的に可能な方法があるかどうかを明確にしたいと思います。 当社のカメラ映像は、典型的なCSI-2構造になっています。 Frame Start Embedded Data DT = 0x12 RAW image data DT = 0x2A / 0x2B / 0x2C Frame End 画像データは MIPI CSI-2レシーバ→ガスケット→ISI→メモリ/V4L2 経路を通じて取得され、この部分は正しく動作しています。 問題は、各フレームに属する埋め込みデータも必要となる点です。メタデータにはフレームに関連するセンサ情報が含まれているため、対応するキャプチャ画像と関連付けることが重要です。 i.MX 8M Plus Applications Processor Reference Manualによると、MIPI CSI-2レシーバーはCSI-2レシーバーレジスタを通じて、特にMIPI_CSIx_ISP_CONFIG0/DATAFORMAT構成において設定可能なデータ型処理を提供します。関連するMIPI CSI-2 Rx / CSISレジスタの記述は第 13.5章(MIPI CSI-2)にあり、リファレンスマニュアルの古い改訂版では、サポートされる画像データ型は セクション13.5.6.13あたりで説明されています。 また、NXPアプリケーションノート AN13857 – i.MX 8MシリーズMIPIキャプチャシステム、特に セクション7「組み込みデータサポート」も見つけました。 AN13857では、DT=0x12の埋め込みデータと別のデータ型の画像データを含むストリームは データ型インターリーブとみなされ、i.MX 8Mシリーズキャプチャシステムはこのモードをサポートしていないと述べています。提案されている回避策としては、センサを画像データと同じデータ型で埋め込みデータを送信するように設定することです。 残念ながら、この回避策は私たちのセンサではできません。センサーは DT 0x12を用いた標準CSI-2組み込みデータを送信し、画像データは対応するRAWデータ型を使用します。埋め込みデータ型はRAW画像データ型に変更できません。 しかし、i.MX8MPに関する古いNXPコミュニティの議論を見つけました。そこではNXP TechSupportがCSIハードウェアはDT=0x12をサポートするべきだと述べていましたが、BSPは当時メタデータをサポートしていませんでした。 https://community.nxp.com/t5/i-MX-Processors/I-MX8MP-capture-MIPI-embedded-data/td-p/1383845 また、i.MX8Mデバイス上でCSI-2組み込みデータにアクセスすることについての古い議論もあります: https://community.nxp.com/t5/i-MX-Processors/Does-iMX8M-CSI-support-metadata-embedded-data/m-p/977554 したがって、AN13857に記載されている制限事項が、ハードウェアパス全体に適用されるのか、それとも主に現在サポートされているISI/V4L2キャプチャアーキテクチャに適用されるのかを明確にしたいと思います。 私たちの主な疑問は次のとおりです。 i.MX8M Plusで、データタイプ0x12のCSI-2パケットのペイロードを受信またはアクセスしながら、同時にRAW画像ストリームをキャプチャできる方法はありますか?たとえLinuxドライバーの変更が必要であっても。 例えば、以下のいずれかのアプローチは技術的に可能でしょうか? DT=0x12およびRAW画像データを異なるCSI/ISI経路やチャネル経由でルーティングします。 MIPI CSI-2レシーバからISIより先に組み込みデータにアクセスできます。 DT=0x12用の追加のCSI-2レシーバ チャネル/インターフェースを設定してください。 組み込みデータには、別のDMAまたはメモリパスを使用してください。 NXP Linux CSI/ISIドライバーを拡張して、組み込みデータをV4L2メタデータノードまたは別の/dev/videoXデバイスとして公開します。 DT=0x12ペイロードがメモリに到達できるCSI-2レシーバの未公開または現在サポートされていないハードウェア機能を利用すること。 必ずしも公式にサポートされているV4L2メタデータの実装を必要としているわけではありません。もしi.MX8M PlusハードウェアがDT=0x12ペイロードをメモリに転送できるなら、私たち自身も必要なカーネル/ドライバの変更を実装したいと考えています。 NXPは、AN13857で説明されている制限が以下のものかどうかを明確にしていただけますか: これは i.MX8M Plus CSI-2 → Gasket → ISIアーキテクチャの根本的なハードウェア制限であり、RAW画像データが取得されている間はDT=0x12ペイロードをメモリに転送できないことを意味します。 または ソフトウェア やドライバの制限であり、カスタムドライバ実装で組み込みデータへのアクセスが可能になるのでしょうか? ハードウェアの制限によるものであれば、i.MX8M PlusでカメラのCSI-2出力フォーマットを変更せずに組み込みデータペイロードを取得するための代替手段はありますか? ご説明や実装に関するヒントをいただければ幸いです。 よろしくお願いします、 ピーター Re: i.MX8M Plus – Is there any way to access MIPI CSI-2 Embedded Data (DT 0x12) together with RAW im こんにちは、 アプリケーションノートの制限は、i.MX8M Plus CSIのハードウェアアーキテクチャの制限です。下流側のISIブロックには、DT=0x12ペイロードをRAWストリームから分離するメカニズムがありません。 残念ながら、アプリケーションノートに記載されているサポートや公式な回避策はありません。 よろしくお願いいたします。 Re: i.MX8M Plus – Is there any way to access MIPI CSI-2 Embedded Data (DT 0x12) together with RAW im ISIの代わりに統合ISPを使用した場合、答えは変わりますか? RAWのBayerストリームは、MIPI CSI-2受信機から統合ISPへルーティングすることも可能です。ISPのキャプチャパスには、CSI-2埋め込みデータパケット(DT=0x12)を受信または保存するためのメカニズムはありますか? 特に、ISPやその入力インターフェースはRAW画像データと組み込みデータを分離したり、ISPの統計/メタデータバッファを通じてソフトウェアに組み込みデータを提供したりできるのでしょうか? もしそうでなければ、DT=0x12パケットはCSIからISPへのピクセルインターフェースによって単純に破棄されるのでしょうか?
記事全体を表示
【紧急】从 SEM 任务调用 S32N55 GrayVIP HSE MAC 服务时返回 KEY_EMPTY (0xA5AA5317) 错误 您好。 请您帮忙查一下这个问题好吗? 环境: SW32N5_GRAYVIP_1.0.25.0 尝试通过自定义 SEM 任务作业在运行时(用于 OTA)重新安装 SMR。 我做了什么: 添加了一个自定义 SEM 命令,该命令从 Fss_Sem_PerformHSERequests(SEM 任务上下文)触发 SMR 重新安装。 SMR 签名使用 AES-256 CMAC,通过 HSE_SRV_ID_MAC(GenerateMAC)进行,密钥安装在 AES NvmKeyGroup(MuMask = MU_0)中。 HSE 请求通过 Fss_Sem_SendServiceRequest(FSS_SEM_CSSI_MU0, ...) 发送,路径与 PublishSysImage 相同。 问题: MAC 服务请求已被接受(发送返回 OK),但 HSE 响应为 0xA5AA5317 (HSE_SRV_RSP_KEY_EMPTY) 在初始启动时 SMR 安装过程中,相同的 CMAC 密钥和密钥插槽可以正常工作。 只有当从 SEM 任务(运行时)调用时,它才会返回 KEY_EMPTY。 从同一个 SEM 任务中执行 PublishSysImage(只读,无密钥)操作正常。 问题: 运行时 SMR 重新安装(初始配置之后)是否是受支持的工作流程?如果是这样,建议采取什么方法? 为什么同一个密钥槽在启动时可以正常工作,但在 SEM 任务上下文中却会报告 KEY_EMPTY 错误?启用安全启动后,是否存在 MU/分区或密钥目录访问限制? Re: [Urgent]S32N55 GrayVIP HSE MAC service returns KEY_EMPTY (0xA5AA5317) when called from SEM task 你好, @EddiePark 感谢您的帖子,很高兴再次支持您。 据我了解,与 SMR 入口关联的密钥在 SMR 入口成功安装后将无法使用。这可能就是同一密钥在运行时无法正确使用的原因。 BR 陈银
記事全体を表示
P71D600 安全元件 SDK? 您好, 我一直在使用SE P71D600,想知道如何查看芯片上预装了哪个SDK。 请问如何验证SDK版本或详细信息? 谢谢。 JCOP ID1 JCOP ID2 Smart Card Re: P71D600 Secure element SDK ? 您好,您提到的 SDK 版本可能意味着以下几种情况: 如果您指的是该卡的合规级别,那么具体来说是 Java Card 3.0.5 和 Global Platform 2.3,我想这不太可能改变(尽管某些功能和修复可能会随着时间的推移而改变)。 如果您指的是可用的操作系统级别、补丁、模块和操作系统功能等,那么大部分信息都可以通过 GET DATA (IDENTIFY) 命令获取,您可以在 JCOP 4.5 用户指南和管理手册中找到详细信息(需遵守 NDA)。 如果您指的是 ISD 中加载了哪些软件包/库,可以使用 GlobalPlatform GET STATUS 命令读取(无需签署保密协议)。 Re: P71D600 Secure element SDK ? 你好@elgin_1950 , 根据 P71D600 来看,它是 JCOP 4.5 吗?在 JCOP 4.5 中,我们不称之为 SDK,而是称之为模块和小程序。可以通过读取 OEF 编号或检查确切的类型名称来识别配置。请说明。 祝你有美好的一天, 坎 ------------------------------------------------------------------------------- 笔记: - 如果此回复解答了您的问题,请点击“标记为正确答案”按钮。谢谢你! - 我们会持续关注帖子,从最后一条回复发出后持续7周,之后的回复将被忽略。 如果您之后有相关问题,请另开新帖并引用已关闭的帖子。 ------------------------------------------------------------------------------- Re: P71D600 Secure element SDK ? 嗨@Kan_Li和@makinako , 感谢您的回复。 是的,你说得对, @Kan_Li,是JCOP 4.5,我的错。让我澄清一下我的问题。 我正在开发一种生物特征匹配算法,其中卡片匹配 (MoC) 功能由第三方供应商提供。恩智浦半导体提供支持不同MoC生物识别服务提供商的产品。例如,MoC 功能可以由 ID3 或神经技术 (NT) 提供。 我的问题是:如何确定特定卡片上已预装了哪个 MoC 解决方案或生物识别提供商? 我拥有这两个提供商的 SDK,可以构建相应的 applet 和模块。但是,我对预装元器件的工作原理以及如何确定卡上存在哪种解决方案感到有些困惑。 请问如何才能识别出这个问题? 谢谢您!
記事全体を表示
i.MX8M Plus – 是否有办法在访问 RAW 图像的同时访问 MIPI CSI-2 嵌入式数据 (DT 0x12) NXP社区的各位朋友,大家好! 我们目前正在将 MIPI CSI-2 RAW 图像传感器与i.MX8M Plus集成,并想确认是否有任何受支持或技术上可行的方法,使目标上的软件能够访问传感器的CSI-2 嵌入式数据(数据类型 0x12) 。 我们的摄像机视频流具有典型的CSI-2结构: Frame Start Embedded Data DT = 0x12 RAW image data DT = 0x2A / 0x2B / 0x2C Frame End 图像数据通过MIPI CSI-2 接收器 → 垫片 → ISI → 存储器/V4L2路径捕获,这部分工作正常。 问题是,我们还需要每一帧所包含的嵌入数据。元数据包含与帧相关的传感器信息,因此,元数据能够与相应的捕获图像关联起来非常重要。 根据i.MX 8M Plus 应用处理器参考手册,MIPI CSI-2 接收器通过 CSI-2 接收器寄存器提供可配置的数据类型处理,特别是 MIPI_CSIx_ISP_CONFIG0 / DATAFORMAT 配置。相关的 MIPI CSI-2 Rx / CSIS 寄存器描述在第 13.5 章 MIPI CSI-2中,在参考手册的旧版本中,支持的图像数据类型在第 13.5.6.13 节中进行了描述。 我们还找到了 NXP 应用笔记AN13857 – i.MX 8M 系列 MIPI 捕获系统,特别是第 7 节“嵌入式数据支持” 。 AN13857 指出,包含 DT=0x12 的嵌入式数据和另一种数据类型的图像数据的数据流被视为数据类型交错,并且 i.MX 8M 系列捕获系统不支持此模式。建议的解决方法是将传感器配置为使用与图像数据相同的数据类型来传输嵌入式数据。 遗憾的是,我们的传感器无法实现这种变通方法。传感器使用DT 0x12传输标准 CSI-2 嵌入式数据,而图像数据使用相应的 RAW 数据类型。嵌入数据类型不能更改为 RAW 图像数据类型。 然而,我们找到了一篇较早的 NXP 社区讨论,专门针对 i.MX8MP,其中 NXP 技术支持表示 CSI 硬件应该支持 DT=0x12,而当时的电路板支持包。不支持元数据: https://community.nxp.com/t5/i-MX-Processors/I-MX8MP-capture-MIPI-embedded-data/td-p/1383845 此外,还有一篇关于访问 i.MX8M 设备上的 CSI-2 嵌入式数据的较早讨论: https://community.nxp.com/t5/i-MX-Processors/Does-iMX8M-CSI-support-metadata-embedded-data/m-p/977554 因此,我们想澄清 AN13857 中描述的限制是否适用于整个硬件路径,还是主要适用于当前支持的 ISI/V4L2 捕获架构。 我们的主要问题是: i.MX8M Plus 是否有办法在捕获 RAW 图像流的同时接收或访问数据类型为 0x12 的 CSI-2 数据包的有效载荷,即使这需要修改 Linux 驱动程序? 例如,下列哪些方法在技术上可行? 将 DT=0x12 路由到不同的 CSI/ISI 路径或通道,并将 RAW 图像数据路由到这些路径或通道。 在 ISI 之前,直接从 MIPI CSI-2 接收器访问嵌入式数据。 为 DT=0x12 配置额外的 CSI-2 接收器通道/接口。 嵌入式数据应使用其他 DMA 或内存路径。 扩展 NXP Linux CSI/ISI 驱动程序,将嵌入式数据公开为 V4L2 元数据节点或单独的 /dev/videoX 设备。 使用 CSI-2 接收器的任何未记录或当前不支持的硬件功能,使 DT=0x12 有效载荷能够到达内存。 我们并不一定需要官方支持的 V4L2 元数据实现。如果 i.MX8M Plus 硬件能够将 DT=0x12 有效载荷传输到内存,我们也有兴趣自行实现必要的内核/驱动程序更改。 NXP能否澄清一下AN13857中描述的限制是否为: i.MX8M Plus CSI-2 → Gasket → ISI 架构存在一个根本性的硬件限制,这意味着在捕获 RAW 图像数据时,DT=0x12 有效载荷无法传输到内存中。 或 这是软件/驱动程序的限制,而自定义驱动程序实现可以提供对嵌入式数据的访问? 如果这是硬件限制,i.MX8M Plus 是否有其他机制可以在不改变摄像机 CSI-2 输出格式的情况下获取嵌入式数据有效载荷? 感谢您的任何澄清或实施建议。 此致, 彼得 Re: i.MX8M Plus – Is there any way to access MIPI CSI-2 Embedded Data (DT 0x12) together with RAW im 你好, 应用笔记中的限制是 i.MX8M Plus CSI 的硬件架构限制。下游 ISI 块没有机制将 DT=0x12 有效载荷与 RAW 流分离。 遗憾的是,应用笔记中没有提到任何官方支持的解决方法。 顺祝商祺! Re: i.MX8M Plus – Is there any way to access MIPI CSI-2 Embedded Data (DT 0x12) together with RAW im 如果使用集成ISP而不是ISI,答案是否会改变? 我们的 RAW Bayer 流也可以从 MIPI CSI-2 接收器路由到集成 ISP。ISP捕获路径中是否有任何机制来接收或保存CSI-2嵌入式数据包(DT=0x12)? 具体来说,ISP 或其输入接口能否分离原始图像数据和嵌入数据,或者通过 ISP 统计/元数据缓冲区向软件提供嵌入数据? 如果不是,DT=0x12 数据包是否会被 CSI 到 ISP 像素接口直接丢弃?
記事全体を表示
GMAC0とLinflexd UART0は同時に安定して動作しません 皆さんこんにちは。私はS32G274AのM7_0コア上でS32DS3.5とRTD4.0.0を使用し、FreeRTOS、Linflexd_Uart、Lwipをコンポーネントとして開発しています。デバッグ中に、GMAC0とLinflexd UART0が同時に安定して動作しないことに気づきました。私はprintfの内容を出力するためにLinflexd_Uartを使用しています。ログには初期化が完了し、アプリケーション起動後は各FreeRTOSタスクのステータスを循環的に印刷できます。しかし、ボードのIPアドレスにpingができません。_write 関数内の printf 呼び出しをコメントアウトするか、UART 送信を無効にすると、電源投入後またはリセット後にボードが ping 可能になります。ここでの問題は何でしょうか?printf関数はGMAC0がデータを受信できない原因になりますか?この問題をどのように解決すればよいでしょうか?ご提案をいただければ幸いです。よろしくお願いいたします。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time エラーログは共有できますか? Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg通常.jpg exception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpg 左側の図はプログラムが正常に動作している様子を示し、右側の図は例外発生後の動作を示しています:基板にpingが送れず、ログ出力が固定された位置で止まっています。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time こんにちは、 @williams_ww 投稿ありがとうございます。 私の理解では、printf() 自体が S32G274A GMAC0 ハードウェアによるフレームの受信を停止させることはないはずです。より可能性が高いのは、printf -> _write -> Linflexd_UartパスがFreeRTOS/lwIP/GMACソフトウェアのタイミングを乱していることです 詳細な実装についてはよくわかりませんが、_write() 内のブロックを確認したり、UART 出力を低優先度のロガー タスクに移動したりして、可能性のある範囲を絞り込むことをお勧めします。 BR チェイン Re: GMAC0 and Linflexd UART0 cannot work stably at the same time IPアドレス192.168.7.200とは何ですか?それはGMACの設定の一部ですか? GMAC関連の接続が安定していない場合は、S32G2ハードウェア設計ガイドラインAN14063も確認できます。 以下のどの作業モードがあなたのデザインに適していますか? db16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.png db16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.png Re: GMAC0 and Linflexd UART0 cannot work stably at the same time サポートチームの提案に従い、元の印刷ロジックを修正し、以下のようにバッファにデータを書き込みました。 静的文字バッファ[64*1024+1]; volatile char buffer_to_print = 0; void my_printf(const char *format , ...) ヤージュ va_list 引数; if(1 == buffer_to_print) ヤージュ 戻る ; } va_start(args,format); vsnprintf(buffer,sizeof(buffer),format,args); va_end(args); buffer_to_print = 1; } 優先度0のタスクを作成しました。これは他のすべてのタスクよりも優先度が低いものです。 void my_printf_flush() ヤージュ if(buffer_to_print) ヤージュ Linflexd_Uart_Ip_AbortSendingData(0); Linflexd_Uart_Ip_SyncSend(0,(uint8*)buffer,strlen(buffer),3000000); buffer_to_print = 0; } } void PrintfTaskDemo(void *pvParameters) ヤージュ (void)pvParameters; のために(;;) ヤージュ my_printf_flush(); vTaskDelay(pdMS_TO_TICKS(10)); } } // ここに印刷内容がありますが、なぜ PRINT_HEAP_INFO だけが印刷され、taskInfo は毎回印刷されないのでしょうか ????????????????????? のために(;;) ヤージュ ZRSleep(1000); // 1秒間スリープ PRINT_HEAP_INFO; // 残りのヒープサイズを表示する vTaskList(taskInfo); // FreeRTOSの全タスク状態を取得します ZRLOG(ZRLOG_USER_INFO,taskInfo); // my_printf を呼び出してバッファに書き込む ZRSleep(1000); // 1秒間スリープ } 現在の動作はこうです:PrintfTaskDemoタスクは通常通りコンテンツを印刷できます(DMAを有効にしていません)が、GMAC0のIPアドレスが時々到達不能で、ネットワーク機能も安定して動作しません。 私のlinker_ram.ldのSRAMサイズは3MB(S32G274A M7_0上)で、コンパイル設定とFreeRTOSのヒープサイズはどちらも正常のようです。 問題解決に関して、さらに詳しい説明や技術的なアドバイスが必要な場合はお知らせください。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 「提案された変更を適用した後も、問題は依然として解決していません。」 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time こんにちは、 @williams_ww ご返信ありがとうございます。 ブロック方法を使っていたようですね(Linflexd_Uart_Ip_SyncSend)。ノンブロッキングAPIを試したことはありますか?(Linflexd_Uart_Ip_AsyncSend) BR チェイン Re: GMAC0 and Linflexd UART0 cannot work stably at the same time GMACの設定は、基本的に公式のサンプルプログラムに従って行われます。 ip.jpgip.jpgip.jpgip.jpgip.jpgip.jpg code.jpgcode.jpgcode.jpgcode.jpgcode.jpgcode.jpg dev.jpgdev.jpgdev.jpgdev.jpgdev.jpgdev.jpg Re: GMAC0 and Linflexd UART0 cannot work stably at the same time こんにちは、 @williams_ww ご返信ありがとうございます。 私には以下の提案があります。 1. まず、UARTドライバ、ポーリング、割り込みモードのどの設定を使っているか確認します。 2. ポーリングモードの場合は、割り込みモードに変更し、UART/GMAC両方で使用されている割り込みの優先順位を確認し、UART割り込みをGMACよりも低く設定して再度試してください。 BR チェイン Re: GMAC0 and Linflexd UART0 cannot work stably at the same time ハードウェアエラーが発生した可能性があります。UART同期送信インターフェースの内部実装を確認しました。 SuspendAllInterrupts 関連コードをコメントアウトし、同期送信インターフェースを呼び出す前にロック保護を追加しましたが、問題は依然として解決していません。したがって、UART同期送信ロジックとは強く関係がないと思います。ハードウェアエラーがlwipとUARTの両方のクラッシュを引き起こしたのではないかと疑っています。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 割り込みモードを使うと状況が悪化する。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time こんにちは、 @williams_ww ご返信ありがとうございます。 ソフトウェアの観点から見ると、あなたが遭遇した問題は、頻繁なUART TX/RX割り込みがイーサネット割り込みプロセッシングを妨害し、RXプロセッシングのレイテンシを増加させパケットロスを引き起こすことによるものと考えられます。 これまで話したアドバイス以外にも、UARTやネットワークの割り込み優先度も影響するので、UART割り込みを設定して、ネットワーク割り込みの優先度より低く設定して試してみることをおすすめします。 BR チェイン
記事全体を表示
HSE:MU 安装后前两次重置后出现错误代码 0x67030001 我已按照固件参考手册 2.7 版 3.2.3.1 节中所述的通过 MU 接口在 FULL_MEM 模式下进行安装的安装程序进行操作。 安装过程完全按照说明进行,但是当我执行功能 RESET(步骤 7)时,出现 HSE 错误代码 0x67030001。第二次重置后问题仍然存在,但第三次重置后就会稳定消失。 我有几个问题: 最高位(0x6703)的特定值是否有意义? 什么原因会导致 HSE 驱动程序在启动时进入错误状态,但在两次 RESET 后恢复? 导致该错误的最可能原因是什么? Re: HSE: Error code 0x67030001 after first two resets following MU install 嗨@Emma_G-gbg 如 HSE_B 固件参考手册中所述,GSR 寄存器在其最低 16 位中记录致命事件和警告事件: 第 0-7 位表示致命错误。 第 8-15 位表示警告(非致命故障)。 最高 16 个有效位用于 NXP 内部错误。 由于您的设备上第 0 位已设置,这表明发生了致命错误,导致 HSE 关闭。在此状态下,需要重置设备才能恢复并退出关机模式。 请问能否提供 FSR 寄存器和 HSE_CONFIG_GPR3 (0x4039C028) 的值?另外,在执行重置后,您是否等到 GPR3 中的 HSE_STATUS_INIT_OK 标志被设置? 此外,在“通过 MU 安装 HSE 固件时出现 S32K3 恢复问题”主题中,分享了一个通过 MU 安装 HSE 固件的演示。它或许可以作为有用的参考资料。 BR,VaneB Re: HSE: Error code 0x67030001 after first two resets following MU install 嗨@Emma_G-gbg 重置 1 和 2:FSR = 0x00400000。第 24 位(HSE_STATUS_INIT_OK)未设置,这表明 HSE 尚未完成初始化。GSR 值 0x67030001 表示位 0 (HSE_ERR_GENERAL) 已设置,这触发了 HSE 子系统关闭。 RESET 3:FSR = 0x09600000。位 24 (HSE_STATUS_INIT_OK) 已设置,表明 HSE 已成功完成初始化。GSR 值 0x00000000 表示未报告任何 HSE 错误/警告。 造成这种行为的一个可能原因是应用程序在 HSE 初始化完全完成之前执行时钟初始化、XRDC 配置或 Flash 操作。 Re: HSE: Error code 0x67030001 after first two resets following MU install 前两次重置后的值如下: HSE_CONFIG_GPR3: 0x10000081 DCMRWP1: 0xA5000400 GSR: 0x67030001 FSR: 0x00400000 第三次 RESET 后的值为: HSE_CONFIG_GPR3: 0x000000C1 DCMRWP1: 0xA5000400 GSR: 0x00000000 FSR: 0x09600000  
記事全体を表示
P71D600 Secure element SDK ? Hi, I have been working with the SE P71D600 and would like to know how I can check which SDK is preloaded on the chip. Could you please guide me on how to verify the SDK version or details? Thanks. JCOP ID1 JCOP ID2 Smart Cards Re: P71D600 Secure element SDK ? Hi when you say SDK version this could mean several things: If you are talking about the compliance level of the card, it is specifically Java Card 3.0.5 and Global Platform 2.3 and this is likely not to change I would imagine (though certain features and fixes may change over time). If you mean which OS level, patch, modules and OS features available, etc most of it you can get from the GET DATA (IDENTIFY) command which you can find details on in the JCOP 4.5 User Guidance and Admin manual under NDA. If you mean which packages / libraries are loaded in the ISD, this can be read using the GlobalPlatform GET STATUS command (no NDA needed for this). Re: P71D600 Secure element SDK ? Hi @Kan_Li  and @makinako , Thanks for your response. Yes, you are right, @Kan_Li  it is JCOP 4.5, My mistake Let me clarify what I was asking. I am working on a biometric matching algorithm, where the Match-on-Card (MoC) functionality is provided by third-party vendors. NXP offers products that support different MoC biometric providers.  For example, the MoC functionality may be provided by ID3 or Neurotechnology (NT). My question is: How can I identify which MoC solution or biometric provider is already preloaded on a particular card? I have SDKs for both providers and can build the corresponding applets and modules. However, I am a little confused about how the preloaded components work and how I can determine which solution is present on the card. Could you please clarify how this can be identified? Thanks! Re: P71D600 Secure element SDK ? Hi @elgin_1950 , Based on P71D600 - is it JCOP 4.5? On JCOP 4.5 we don't call it SDKs, there we have modules and applets. The configuration can be identified by reading the OEF number or checking the exact type name. Please clarify. Have a great day, Kan ------------------------------------------------------------------------------- Note: - If this post answers your question, please click the "Mark Correct" button. Thank you! - We are following threads for 7 weeks after the last post, later replies are ignored Please open a new thread and refer to the closed one, if you have a related question at a later point in time. -------------------------------------------------------------------------------
記事全体を表示
#S32K388 拡張RX FIFO + eDMA: CPU割り込みなしで連続循環バッファ受信 NXPサポートの皆さん、こんにちは。 私はFlexCAN Enhanced RX FIFOとRTDを搭載したS32K388を使用しています。CPU割り込みなしで連続的なDMAベースのCAN受信を実現したいと考えています。 私の要望は以下の通りです。 MCU: S32K388 CAN: クラシックキャン、CAN FD無効 CANペイロード: 8バイト FlexCAN拡張RX FIFO対応 DMA受信が有効 フィルターなしで 、どのCAN IDでもCANメッセージを受け取る必要があります。 DMAが受信したすべてのCANフレームを自動的に RAMソフトウェアのリングバッファに転送したいのです。 FlexCANの受信割り込みは不要です。 DMAのメジャーループ完了割り込みも不要です。 DMAは、CPUがFlexCAN_Ip_RxFifo()を再度呼び出すことなく、自動的に実行を継続するはずです。 理想的には、受信した各FIFO要素が即座にDMA転送を引き起こすべきなので、大きなFIFOウォーターマークを待ちたくありません。 RTDのソースコードを確認しました。FlexCAN_StartRxMessageEnhancedFifoData()で、ドライバがDMAを次のように設定していることがわかりました。 Source address = Enhanced RX FIFO output Source transfer size = 4 bytes Source offset = 4 bytes Destination transfer size = 4 bytes Destination offset = 4 bytes Minor loop size = 80 bytes Major loop count = num_enhanced_watermark EnMajorInt = TRUE DisAutoHwRequest = TRUE 現在のRTD実装では、有限のDMA転送を実行した後、停止するため、FlexCAN_Ip_RxFifo()を再度呼び出す必要があると理解しています。 私の質問は次のとおりです。 S32K388上で、eDMA TCDを設定して、FlexCAN Enhanced RX FIFO DMA要求が、CPU割り込みやソフトウェアの再武装なしに、受信したFIFO要素を円形RAMバッファに継続的に転送する設定は可能でしょうか? 特に、 Destination Modulo や他のeDMA TCD機能を使えば、この連続リングバッファを実装できますか? もし可能であれば、具体的な構成を教えていただけるか、NXPの例やリファレンス実装を教えていただけませんか? 必要に応じてRTD FlexCANドライバーを修正したり、eDMA TCDを直接設定することも可能です。 よろしくお願いします!
記事全体を表示
最新 MediaPipe 面网格(478 个地标)的量化(INT8)模型可用性 我希望在 iMX 平台上高效运行 Google 的MediaPipe 人脸网格(478 点地标模型,带虹膜追踪/注意力网格) 。NXP 目前是否提供 478 点人脸地标模型的官方量化版本(例如 INT8)? 如果目前还没有发布,未来有发布计划吗? 我尝试使用 eIQ 工具包量化谷歌提供的原始模型,但精度大幅下降。当我用同样的方法量化谷歌旧版 Facemesh 模型(486 个地标点)时,却能获得不错的性能。NXP 是否也观察到了同样的问题? 还有其他人尝试过量化谷歌最新的 FaceMesh(478 Landmark)模型吗? 机器学习 Re: Availability of Quantized (INT8) Model for Latest MediaPipe Face Mesh (478 Landmarks) 你好, 目前尚不可用,但我们正在内部测试,以期实现 int8 的性能提升。 此致敬礼
記事全体を表示
GMAC0 和 Linflexd UART0 无法同时稳定工作 大家好,我正在使用 S32DS3.5 和 RTD4.0.0 在 S32G274A 的 M7_0 内核上开发软件,并使用 FreeRTOS、Linflexd_Uart 和 Lwip 作为元器件。在调试过程中,我发现 GMAC0 和 Linflexd UART0 不能同时稳定工作。我使用 Linflexd_Uart 输出 printf 的内容。日志显示初始化完成,应用程序启动后,可以循环打印每个 FreeRTOS 任务的状态。但是我无法 ping 通主板的 IP 地址。如果我注释掉 printf 调用或禁用 _write 中的 UART 传输,则上电或复位后,板就可以 ping 通了。这里的问题可能是什么?printf 函数是否会导致 GMAC0 无法接收数据?我应该如何解决这个问题?感谢您提出的任何建议。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 可以分享一下错误日志吗? Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg正常.jpg exception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpgexception.jpg例外.jpg 左侧的图表显示了程序正常运行的情况,而右侧的图表显示了发生异常后的行为:无法 ping 通电路板,并且日志输出卡在固定位置。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 你好, @williams_ww 感谢分享。 据我了解,printf() 本身不应该导致 S32G274A GMAC0 硬件停止接收帧。更可能的问题是,你的 printf > _write > Linflexd_Uart 路径干扰了 FreeRTOS/lwIP/GMAC 软件的时序。 由于我对你的详细实现不太确定,我建议检查一下 `_write()` 函数内部是否存在代码块,将 UART 输出移到一个低优先级的日志记录任务中等等,以缩小可能的范围。 BR 陈银 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time IP地址192.168.7.200是什么?这是您GMAC设置的一部分吗? 当 GMAC 相关连接不稳定时,您还可以查看 AN14063 S32G2 硬件设计指南。 以下哪种工作模式适合您的设计? db16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.pngdb16122_0-1788253582320.png db16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.pngdb16122_1-1788253600524.png Re: GMAC0 and Linflexd UART0 cannot work stably at the same time “应用建议的更改后,问题仍然存在。” Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 根据支持团队的建议,我修改了原有的打印逻辑,将数据写入缓冲区,如下所示: 静态字符缓冲区[64*1024+1]; volatile char buffer_to_print = 0; void my_printf(const char *format , ...) { va_list 参数; 如果(1 == buffer_to_print) { 返回 ; } va_start(args,format); vsnprintf(buffer,sizeof(buffer),format,args); va_end(args); buffer_to_print = 1; } 我创建了一个优先级为 0 的任务,它的优先级低于所有其他任务: void my_printf_flush() { 如果(buffer_to_print) { Linflexd_Uart_Ip_AbortSendingData(0); Linflexd_Uart_Ip_SyncSend(0,(uint8*)buffer,strlen(buffer),3000000); buffer_to_print = 0; } } void PrintfTaskDemo(void *pvParameters) { (void)pvParameters; 为了(;;) { my_printf_flush(); vTaskDelay(pdMS_TO_TICKS(10)); } } // 这里是打印的内容,但为什么每次只打印 PRINT_HEAP_INFO,而 taskInfo 却不打印呢? 为了(;;) { ZRSleep(1000);// 休眠 1 秒 PRINT_HEAP_INFO; // 打印剩余堆大小 vTaskList(taskInfo); // 获取 FreeRTOS 所有任务状态 ZRLOG(ZRLOG_USER_INFO,taskInfo); // 调用 my_printf 函数写入缓冲区 ZRSleep(1000); //睡眠 1 秒 } 当前行为是:任务 PrintfTaskDemo 可以正常打印内容(未启用 DMA),但 GMAC0 上的 IP 地址有时仍然无法访问,网络功能不稳定。 我的 linker_ram.ld 中的 SRAM 大小为 3MB(在 S32G274A M7_0 上),编译设置和 FreeRTOS 堆大小似乎都是正常的。 如果您需要进一步的说明或技术建议来解决问题,请告诉我。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 你好, @williams_ww 感谢您的回复。 您似乎使用了阻塞式方法( Linflexd_Uart_Ip_SyncSend ),请问您是否尝试过非阻塞式 API(Linflexd_Uart_Ip_AsyncSend)? BR 陈银 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 你好, @williams_ww 感谢您的回复。 我有一些建议: 1. 首先确认一下您的 UART 驱动程序使用的是哪种设置,是轮询模式还是中断模式? 2. 如果当前是轮询模式,请将其更改为中断模式。此外,请检查 UART 和 GMAC 中断的优先级,并将 UART 中断的优先级设置为低于 GMAC 中断,然后再试一次。 BR 陈银 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time GMAC配置基本按照官方示例程序进行。 ip.jpgip.jpgip.jpgip.jpgip.jpg code.jpgcode.jpgcode.jpgcode.jpgcode.jpg dev.jpgdev.jpgdev.jpgdev.jpgdev.jpg Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 使用中断模式会使情况更糟。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 可能出现了硬件错误。我检查了UART同步发送接口的内部实现。我注释掉了相关代码。 暂停所有中断 我修改了相关代码,并在调用同步发送接口前添加了锁定保护,但问题仍然存在。因此,我认为这与UART同步发送逻辑关系不大。我怀疑是硬件故障导致lwip和UART都崩溃了。 Re: GMAC0 and Linflexd UART0 cannot work stably at the same time 你好, @williams_ww 感谢您的回复。 从软件角度来看,您遇到的问题可能是由于频繁的 UART TX/RX 中断抢占了以太网中断处理,从而增加了 RX 处理延迟并导致丢包。 除了我们讨论过的技巧之外,UART/网络中断的优先级也会产生影响,所以我建议尝试将UART中断的优先级设置得比网络中断的优先级低一些,看看效果如何。 BR 陈银
記事全体を表示
#S32K388 Enhanced RX FIFO + eDMA: Continuous Circular Buffer Reception Without CPU Interrupts Hi NXP Support, I am using an S32K388 with the FlexCAN Enhanced RX FIFO and RTD. I would like to implement a continuous DMA-based CAN reception without any CPU interrupt. My requirements are: MCU: S32K388 CAN: Classical CAN, CAN FD disabled CAN payload: 8 bytes FlexCAN Enhanced RX FIFO enabled DMA reception enabled I need to receive CAN messages with any CAN ID, without filtering. I want DMA to automatically transfer every received CAN frame into a RAM software ring buffer. I do not want a FlexCAN RX interrupt. I also do not want a DMA major-loop-complete interrupt. DMA should continue running automatically without the CPU having to call FlexCAN_Ip_RxFifo() again. Ideally, each received FIFO element should trigger a DMA transfer immediately, so I do not want to wait for a large FIFO watermark. I checked the RTD source code. In FlexCAN_StartRxMessageEnhancedFifoData(), I found that the driver configures DMA approximately as follows: Source address = Enhanced RX FIFO output Source transfer size = 4 bytes Source offset = 4 bytes Destination transfer size = 4 bytes Destination offset = 4 bytes Minor loop size = 80 bytes Major loop count = num_enhanced_watermark EnMajorInt = TRUE DisAutoHwRequest = TRUE I understand that the current RTD implementation performs a finite DMA transfer and then stops, requiring FlexCAN_Ip_RxFifo() to be called again. My question is: Is it possible on S32K388 to configure the eDMA TCD so that the FlexCAN Enhanced RX FIFO DMA request continuously transfers received FIFO elements into a circular RAM buffer, without any CPU interrupt or software re-arming? In particular, can Destination Modulo and/or another eDMA TCD feature be used to implement this continuous ring buffer? If this is possible, could you please provide an example configuration or point me to an NXP example/reference implementation? I am willing to modify the RTD FlexCAN driver or configure the eDMA TCD directly if necessary. Thanks!
記事全体を表示
Secure boot in imxrt1024..5A Abhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.png I have attached a snap of hex compare of signed and unsigned image (signed using SPT) i can see IVT have several changes that i didnt understand.  At 0x1000 offset Unsigned -> D1 00 20 41 00 20 00 60 00 00 00 00 00 00 00 00 Signed ->     D1 00 20 40 DD 22 00 60 00 00 00 00 00 00 00 00 Question 1 i understand that 41 is the IVT version that is hardcode inside my code how this is changed to 40? question 2. Also i dont understand  how 00 20 -> DD 22 At 0x1010 offeset This is clear as here CSF pointer got updated At 0x1020 Unsigned -> 00 00 00 60 00 00 40 00 00 00 00 00 Signed ->     00 00 00 60 00 A0 00 00 00 00 00 00 Question 3 how 00 40 is update with A0 00 The reason to ask these question is as per my understanding if development team gave bootable binary then i just need to append CSF.bin and update the CSF pointer in IVT to make it sign , but after seeing the difference i feel there are more things happening Re: Secure boot in imxrt1024..5A Abhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.png In earlier post i got this answer so i thought just appending csf and updating the vsff pointer in IVT means firmware is signed but since i want to use CST for signing the image how to do that? I already have bootable image (FCFB, IVT, BOOTDATA,...) . I just need to sign and ship the package how to do that , i have created hab.csf  [Header] Version = 4.0 #Avalibale engine are DCP, SW, ANY for IMXRT Engine = DCP Engine Configuration = 0 Certificate Format = x509 Signature Format = CMS Hash Algorithm = sha256 #Install root public key for use in subsequent INSTALL CSFK or Install KEY #HAB install in slot 0 of its internal public key store # HAB just re-hashes the table and compares against the fused SRK-hash. [Install SRK] File = "keys/SRK_1_2_3_4_table.bin" #Tell which SRK to use, installation will fail if revocation fuse with this index is burned Source index = 0 Hash Algorithm = sha256 #HAB install CSF key's cert in slot 1 [Install CSFK] File = "crts/CSF1_1_sha256_4096_65537_v3_usr_crt.pem" Certificate Format = x509 #Authenticate CSF command authenticates the CSF from which it is executed [Authenticate CSF] #Install a public key for use in subsequent Install key or Authenticate Data commands #HAB install IMG cert into key slot 2 [Install Key] #Means this cert is checked against the SRK Verification index = 0 Target index = 2 File = "crts/IMG1_1_sha256_4096_65537_v3_usr_crt.pem" [Authenticate Data] #Should be same as Target Index in Install Key Verification index = 2 Blocks = 0x60001000 0x1000 0x6580 "evkmimxrt1024_iled_blinky_unsigned_original.bin" Re: Secure boot in imxrt1024..5A Hi @Abhay2080 , Thanks for your questions! Based on the RT1024 IVT / Boot Data definition, the differences you see are expected and are not limited to the CSF pointer update. Q1: Why does D1 00 20 41 become D1 00 20 40 ? D1 00 20 41 is the IVT header: 0xD1 is the IVT tag, 0x0020 is the fixed IVT length of 32 bytes, and the last byte is the version. The RT1024 Reference Manual defines the IVT version as 0x40/0x41 , so 0x40 is valid and not an error. Please check this online guide: https://mcuxpresso.nxp.com/mcuxsdk/latest/html/middleware/mcu_bootloader/docs/iMXRT1024_Manufacturing_User_Guide/topics/imx_rt_bootable_image.html Q2: Why does 00 20 00 60 become DD 22 00 60 ? This is the IVT entry field. In little-endian format: 00 20 00 60 = 0x60002000 DD 22 00 60 = 0x600022DD The RT1024 RM defines entry as the absolute address of the first instruction to execute from the image. AN12108 also states that if the default entry point is not Reset_Handler , entryPointAddress should be set to the Reset_Handler address. So SPT likely updated the IVT entry from 0x60002000 to the actual application entry point. Please confirm the Reset_Handler address in the map file / ELF symbol table. Q3: Why does 00 00 40 00 become 00 A0 00 00 ? At 0x1020 this is Boot Data: start remains 0x60000000 length changes from 0x00400000 to 0x0000A000 The RT1024 RM defines Boot Data as containing the image start address and image length, and the Boot ROM reads the image address and length from this structure. Therefore, SPT updated the length field to match the final generated bootable/signed image layout. For RT-series HAB secure boot, the final signed image is not just “append CSF.bin + update the CSF pointer”. The IVT header, entry, Boot Data length, CSF pointer, and the address/length covered by the CSF Authenticate Data command must all be consistent. HAB recalculates the hash from the software in flash and compares it with the reference hash recovered from the signature; if an authenticated region is modified after signing, verification fails.[0dfe-E1] The recommended approach is to use the final signed image generated by SPT/CST, not to manually append CSF.bin only. I hope this clarification helps! Best regards, Gavin Re: Secure boot in imxrt1024..5A Hi @Abhay2080 , Good question. The key point is: CST does not modify your image — it only computes the hash over the region you specify and produces the CSF (signature). It never changes IVT entry, Boot Data length, or version. That is why those fields changed under SPT: SPT rebuilds the boot image from the ELF and normalizes IVT.entry (to the real Reset_Handler) and Boot Data length. Those changes come from image re-building, not from the signing step. With the CST-direct flow you do not need to reproduce them — if your original image already boots in the open/development state, its entry and version are already correct and can stay as-is. However, there is one hard requirement. Your [Authenticate Data] block Blocks = 0x60001000 0x1000 0x6580 covers the entire IVT, and the IVT CSF pointer sits inside this signed region. HAB re-hashes this region and compares it against the signature, so if any byte in it is changed after signing, authentication fails. This is exactly why "sign first, then append CSF and update the CSF pointer" does not work — the order is wrong. Correct CST sign-and-ship procedure (do this before running cst): Decide where the CSF will sit (appended after the App). With your block, App ends at 0x1000 + 0x6580 = 0x7580 , so the CSF starts at file offset 0x7580 (memory 0x60007580 ). In the image to be signed, pre-set: IVT CSF pointer  → CSF memory address (e.g. 0x60007580 ); Boot Data length → total image size including the CSF. Keep FCFB and entry unchanged (FCFB is outside the HAB scope; ROM reads it before HAB). Run: cst -i hab.csf -o csf.bin (your hab.csf with Engine = DCP is correct for RT1024). Concatenate: cat prepared.bin csf.bin > signed_firmware.bin , place CSF at the address from step 1, and flash directly. So your hab.csf itself is fine; the only fix is to set the CSF pointer and Boot Data length before signing, not after. Best regards, Gavin
記事全体を表示
imxrt1024..5A のセキュアブート Abhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.pngAbhay2080_0-1788352073442.png 署名済み画像と署名なし画像(SPTで署名済み)を比較した六角形のスナップを添付しました。 IVTには私が理解できなかったいくつかの変更点があるのがわかります。 オフセット0x1000 符号なし -> D1 00 20 41 00 20 00 60 00 00 00 00 00 00 00 00 署名済み -> D1 00 20 40 DD 22 00 60 00 00 00 00 00 00 00 00 質問1:41は私のコード内にハードコードされているIVTバージョンだと理解していますが、これを40に変更するにはどうすればよいでしょうか? 質問2。また、00 20 -> DD 22 がどのように変換されるのかも理解できません。 オフセット0x1010 これは明らかで、ここではCSFポインタが更新されています。 0x1020 符号なし -> 00 00 00 60 00 00 40 00 00 00 00 00 署名済み -> 00 00 00 60 00 A0 00 00 00 00 00 00 質問3:00 40はA0 00でどのように更新されますか? これらの質問をする理由は、私の理解では、開発チームがブート可能なバイナリを提供すれば、CSF.binを追加してIVTのCSFポインタを更新して署名するだけでよいはずなのですが、違いを見て、もっと多くのことが起こっているように感じたからです。 Re: Secure boot in imxrt1024..5A Abhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.pngAbhay2080_0-1788520801299.png 以前の投稿でこの回答をいただいたので、CSFを追加してIVTでVSFFポインタを更新すればファームウェアが署名されると思っていましたが、画像にCSTで署名したいのでどうやって署名すればいいのでしょうか? すでに起動可能なイメージ(FCFB、IVT、BOOTDATA,...)を持っています。パッケージに署名して発送するだけです。どうやってそれを行うかは、hab.csfを作成しました [ヘッダ] バージョン = 4.0 #利用可能なエンジンは、ICXRT 用の DCP、SW、ANY です。 エンジン = DCP エンジン構成 = 0 証明書フォーマット = x509 署名形式 = CMS ハッシュアルゴリズム = sha256 #後続の INSTALL CSFK または Install KEY で使用するためにルート公開鍵をインストールします #HABは内部公開鍵ストアのスロット0にインストールされます # HAB は単にテーブルを再ハッシュし、融合された SRK ハッシュと比較します。 [SRKをインストール] ファイル = "keys/SRK_1_2_3_4_table.bin" #使用するSRKを指定します。このインデックスの失効ヒューズが焼損している場合、インストールは失敗します。 ソースインデックス = 0 ハッシュアルゴリズム = sha256 #HAB スロット 1 に CSF キーの証明書をインストールします [CSFKをインストール] ファイル = "crts/CSF1_1_sha256_4096_65537_v3_usr_crt.pem" 証明書フォーマット = x509 #Authenticate CSF コマンドは、実行元の CSF を認証します。 [CSFの認証] #後続の「鍵のインストール」または「データの認証」コマンドで使用するための公開鍵をインストールします #HAB が IMG 証明書をキー スロット 2 にインストールします [インストールキー] #この証明書はSRKと照合されていることを意味します 検証インデックス = 0 目標インデックス = 2 ファイル = "crts/IMG1_1_sha256_4096_65537_v3_usr_crt.pem" [データの認証] #インストールキーのターゲットインデックスと同じである必要があります 検証インデックス = 2 ブロック = 0x60001000 0x1000 0x6580 "evkmimxrt1024_iled_blinky_unsigned_original.bin" Re: Secure boot in imxrt1024..5A こんにちは、 @Abhay2080 さん。 ご質問ありがとうございます! RT1024 IVT / ブートデータの定義に基づくと、見られる差異は想定内のものであり、CSFポインタの更新に限ったものではありません。 Q1: なぜ D1 00 20 41 D1 00 20 40 になるのですか? D1 00 20 41 はIVTヘッダーで、 0xD1 はIVTタグ、 0x0020 は固定されたIVT長32バイト、最後のバイトはバージョンです。RT1024リファレンスマニュアルではIVT版を 0x40/0x41 と定義しているので、 0x40 は有効であり誤りではありません。こちらのオンラインガイドをご確認ください: https://mcuxpresso.nxp.com/mcuxsdk/latest/html/middleware/mcu_bootloader/docs/iMXRT1024_Manufacturing_User_Guide/topics/imx_rt_bootable_image.html Q2: なぜ 00 20 00 60 DD 22 00 60 になるのですか? これはIVT entry 体です。リトルエンディアン形式の場合: 00 20 00 60 = 0x60002000 DD 22 00 60 = 0x600022DD RT1024 RMは、 entry をイメージから実行される最初の命令の絶対アドレスとして定義します。AN12108では、デフォルトのエントリポイントが Reset_Handler でない場合、 entryPointAddress Reset_Handler アドレスに設定する必要があるとも記載されています。 したがって、SPTはIVTのエントリーを 0x60002000 から実際の申請エントリーポイントに更新した可能性が高いです。マップファイル/ELFシンボルテーブル内の Reset_Handler アドレスを確認してください。 Q3: なぜ 00 00 40 00 00 A0 00 00 になるのですか? 0x1020 にはブートデータがあります。 start 遺体 0x60000000 length 0x00400000 から 0x0000A000 RT1024 RMは、ブートデータにイメージの開始アドレスとイメージの長さが含まれていると定義しており、ブートROMはこの構造体からイメージのアドレスと長さを読み取ります。 そのため、SPTは最終的に生成されたブート可能/署名済みイメージのレイアウトに合わせて、長さフィールドを更新しました。 RTシリーズのHABセキュアブートの場合、最終的な署名付きイメージは単に「CSF.binを追加してCSFポインタを更新する」だけではありません。IVTヘッダー、エントリ、ブートデータの長さ、CSFポインタ、およびCSF認証データコマンドでカバーされるアドレス/長さはすべて一致している必要があります。HABはソフトウェアからハッシュをフラッシュで再計算し、署名から回収された参照ハッシュと比較します。認証済み領域が署名後に変更されると、検証は失敗します。[0dfe-E1] 推奨される方法は、CSF.binだけを手動で追加するのではなく、SPT/CSTによって生成された最終的な署名付きイメージを使用することです。 この説明がお役に立てば幸いです! よろしくお願いします、 ギャビン Re: Secure boot in imxrt1024..5A こんにちは、 @Abhay2080 さん。 良い質問ですね。重要な点は、CSTは画像自体を変更するのではなく、指定した領域のハッシュ値を計算してCSF(署名)を生成するだけであるということです。IVTエントリ、ブートデータの長さ、バージョンは一切変更されません。 そのため、SPT ではこれらのフィールドが変更されました。SPT は ELF からブートイメージを再構築し、IVT.entry (実際の Reset_Handler に) とブートデータの長さを正規化します。これらの変化は、署名の段階ではなくイメージの再構築から生まれます。CSTダイレクトフローなら再現する必要がありません。元のイメージがすでにオープン/開発状態で起動しているなら、そのエントリとバージョンはすでに正しく、そのまま維持できます。 しかし、一つだけ厳しい条件があります。あなたの [Authenticate Data] ブロック Blocks = 0x60001000 0x1000 0x6580 これはIVT全体をカバーしており、IVT CSFポインタはこの符号付き領域内に位置しています。HABはこの領域を再ハッシュし、署名と比較するため、署名後にバイトが変更されると認証が失敗します。 まさにこれが、「最初に署名してからCSFを追加し、CSFポインタを更新する」という方法が機能しない理由です。順序が間違っているのです。 CSTの署名および発送手順を正しく行う(CSTを実行する前にこれを行ってください): CSFを配置する場所を決定します(アプリの後に添付)。あなたのブロックの場合、アプリは 0x1000 + 0x6580 = 0x7580 で終わります。つまりCSFはファイルオフセット 0x7580 (メモリ 0x60007580 )から始まります。 署名する画像では、以下の設定が事前に行われます。 IVT CSF ポインタ  → CSF メモリ アドレス (例: 0x60007580 ); ブートデータの長さ → CSFを含むイメージ全体のサイズ。 FCFBとエントリは変更しないでください(FCFBはHABの範囲外です。ROMはHABの前にそれを読み取ります)。 実行: cst -i hab.csf -o csf.bin (RT1024 の場合、 hab.csf と Engine = DCP の組み合わせが正しいです)。 連結: cat prepared.bin csf.bin > signed_firmware.bin 、ステップ1のアドレスにCSFを配置し、直接フラッシュします。 つまり、 hab.csf 自体は問題ありません。唯一の解決策は署名前にCSFポインタとブートデータの長さを設定することです。署名後ではなく。 よろしくお願いします、 ギャビン
記事全体を表示
NTAG 224/223 Documentation Hello, I'm going through the configuration page documentation for the 223/224  TT & Non-TT tags, but the 223 DNA (non-TT) configuration seems to be significantly different than the other tags, and the SUNCMAC_KEY is floating in 2 separate areas. This looks like an error with the documentation, and I just want to bring it to your attention so you can either resolve the issue, or clarify any misunderstandings. Best Regards, Tino 223 TT223 TT 223223 224224 224 TT224 TT Re: NTAG 224/223 Documentation Hello @TinoF  The memory layout for different products is not necessarily exactly the same: The NTAG 224 DNA has 64 bytes more user memory than the 223 DNA, and it also has an additional AES mutual authentication key area. Therefore, the starting address of SUNCMAC_KEY has moved from 34h to 44h, which is a reasonable product design difference and not a documentation error.
記事全体を表示
NTAG 224/223 文档 你好, 我正在查阅 223/224 TT 和非 TT 标签的配置页面文档,但 223 DNA(非 TT)标签的配置似乎与其他标签有很大不同, SUNCMAC_KEY 的值出现在两个不同的位置。这看起来像是文档中的一个错误,我想提醒您注意,以便您解决问题或澄清任何误解。 此致, 蒂诺 223 TT223 TT 223223 224224 224 TT224 TT Re: NTAG 224/223 Documentation 你好@TinoF 不同产品的内存布局不一定完全相同:NTAG 224 DNA 的用户内存比 223 DNA 多 64 字节,并且还有一个额外的 AES 相互认证密钥区域。因此,SUNCMAC_KEY 的起始地址已从 34h 移至 44h,这是合理的产品设计差异,而不是文档错误。
記事全体を表示
S32R264 – CLK_OUT0(CLKOUT)60MHzに制限がありますが、80MHzを出力できますか? #S32R2X 私はS32R264を使用しています。CLK_OUT0(図6-3はRMのMCB_CLKOUT_SELによるCLKOUTの選択を示しています)と、このピンでSDPLL_CLK80/AFEPLL_CLK80を80MHzで出力できるかどうかについて質問があります。 しかし、表5-3(「システムレベルのクロック周波数の最大値」)には、CLK_OUT[01]の最大周波数が60MHzと記載されていますが、この制限に関する説明はありません。 出力のうち1つにしかCMUが接続されていないことに気づきました。それが理由かもしれませんが、私はCMUを使用していません。 チャープ信号を生成する外部フロントエンドボードに80MHzのクロックを供給する必要があり、すべてのクロックソースを1つに絞りたいと考えています。 現在、100MHzの発振器を2台(MCU用にCWX813-040.0M、フロントエンド用にCWX813-100.0M)を使っています。良い独立発振器でも位相整列が不十分で信号品質を劣化させる可能性があると疑っています。私の波形生成は100 MHzのクロックから動作し、MCU内のAFEは40(320)MHzから動作しています。波形生成を80MHzに切り替え、そのクロックをMCUから取り入れて、システム全体を同期かつ同位相にしたいと考えています。 CMUが無効になっている場合、CLK_OUT0で80MHzを出力することは可能ですか? 60MHzという制限の本当の理由は何ですか?
記事全体を表示
将 CodeWarrior 和 PEmicro 多链路连接至 MCU MKL03Z16VFK4R 您好, 我有 MCU MKL03Z16VFK4R,需要在 winXP 上使用 P 语言编程。EmicroMultilink Universal。根据我收集到的信息,CodeWarrior 10.6 支持 WinXP。 能否共享 CodeWarrior 10.6 软件安装程序? 或者,您有其他支持 winXP 的软件吗? 谢谢 Re: CodeWarrior and PEmicro Multilink to MCU MKL03Z16VFK4R 你好@Chalearmrat 感谢您的来信。 没有可用的 10.6 Code Warrior 安装程序你可以查看 CodeWarrior 下载中提供的不同版本的 CodeWarrior | 恩智浦半导体 Kinetis 的推荐版本是 CodeWarrior for MCUs 11.1(可用于 Windows 11),但不包括对 KL03 的支持。 carlos_o_0-1778783252765.pngcarlos_o_0-1778783252765.png MCUXpresso IDE 支持 KL0x 系列,SDK 可从MCUXpresso SDK Builder下载。 carlos_o_1-1778783488621.pngcarlos_o_1-1778783488621.png Re: CodeWarrior and PEmicro Multilink to MCU MKL03Z16VFK4R 您好, CodeWarrior 10.6 版本比较老旧,官方安装程序可能已经无法轻易获取。对于采用 PEmicro Multilink Universal 的 MKL03Z16VFK4R,我建议查看 NXP 存档的 CodeWarrior 下载和 PEmicro 的旧版软件/工具,以确认其与 Windows XP 的兼容性。如果您无法访问安装程序,联系 NXP 或 PEmicro 支持部门并提供确切的 MCU 和调试器型号,是获取受支持的旧版软件包的最安全方法。
記事全体を表示