Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
ADC BCTU DMA rtd 链接 亲爱的恩智浦 我在通过 RTD gui 将 DMA 连接到 BCTU 时遇到了麻烦。 当我将 DMA 0 CH 0 连接到 BCTU 时,gui 生成的代码没有错误。但是当我版本并尝试使用 BCTU 配置结构时,生成的 RTD 中不存在 DMA_LOGIC_CH_0 宏 DButler_0-1761215220736.png 我得到这样的错误信息 ../generate/src/Bctu_Ip_PBcfg.c:152:9: error: 'DMA_LOGIC_CH_0' undeclared here (not in a function); did you mean 'SA_DMA_LOGIC_CH_0'? 152 | DMA_LOGIC_CH_0, /* FifoDmaChannel */ | ^~~~~~~~~~~~~~ | SA_DMA_LOGIC_CH_0 如果我把它改为 SA_DMA_LOGIC_CH_0,代码就能正常工作,但我不能随意更改生成的代码。为什么 BCTU 配置找错了宏? 我使用的是 rtd 6.0.0 版 另外,当系统本应只用 rtd 即可运行时,为什么还必须加入 RM CDD mcal 元器件(本话题中提出这个问题但没有得到答案示例 S32K344 PIT BTCU 并行 ADC FIFO DMA D S3.5 RTD300-恩智浦社区) 此致, 丹 Re: ADC BCTU DMA rtd linking 好的,非常感谢 Re: ADC BCTU DMA rtd linking 感谢您关注我们的产品并为我们的社区做出贡献。 关于 DMA_LOGIC_CH_0 问题。抱歉,这是一个已知问题,已报告将在未来的 RTD 版本中修复。 只要在project/generate/src/Bctu_Ip_PBcfg.c中添加以下内容,就能轻松解决这个问题每次在配置工具中更新代码时,都会使用"......": #define DMA_LOGIC_CH_0 ((uint8)0U) 详情还请参阅下面的帖子: S32M27x/S32K3 - eMIOS/BTCU/ADC/DMA - [RTD600]-> https://community.nxp.com/t5/S32M-Knowledge-Base/S32M27x-S32K3-eMIOS-BTCU-ADC-DMA-RTD600/ta-p/2155542 关于没有 RM CDD MCAL 元器件的 BCTU/ADC/DMA 示例,很抱歉我们没有这样的例子。因此,我们建议按原样使用。 希望这些信息对您有所帮助。
查看全文
400EVG用S32Z評価ボード設計ファイル S32Z280-400EVB のデザインファイルは、594EVG 用のもののようです。 https://www.nxp.com/design/design-center/development-boards-and-designs/S32Z280-400EVB Orcad X ビューアでデザインを開くと: Gene1000_0-1761660962286.png デザイン ビューには次の内容が表示されます。 Gene1000_1-1761661065220.png 回路図に示されている S32 デバイスは次のとおりです。 Gene1000_2-1761661108393.png ここで、JF サフィックスは BGA400 ではなく BGA594 です (もちろん、回路図は BGA594 のピン配置と一致しています)。 Gene1000_3-1761661192786.png PCB レイアウト ファイルも間違っているようです。 Re: S32Z Evaluation Board Design Files for 400EVG ありがとう@alejandro_e 400EVG 用に送信されたボード レイアウトは正しいようです。 Re: S32Z Evaluation Board Design Files for 400EVG こんにちは、 @Gene1000さん、 ファイルを送信しました。 よろしくお願いいたします。 Re: S32Z Evaluation Board Design Files for 400EVG こんにちは@alejandro_e 、 回路図は正しいように見えますが (BGA400 パッケージ デバイス)、ボード レイアウトが欠落しているようです (*.brd ファイルがありません)。 Gene1000_0-1761784542485.png ありがとうございます ダレル Re: S32Z Evaluation Board Design Files for 400EVG こんにちは@Gene1000さん、 正しいファイルをプライベートメッセージで送信しました。 正しく開けるCANかどうか教えてください。 よろしくお願いします。 Re: S32Z Evaluation Board Design Files for 400EVG こんにちは@Gene1000さん、 ご指摘のとおり、ファイルは製品ページと一致しません。これを社内に報告し、最新のファイルを要求します。 ご指摘ありがとうございます。できるだけ早く最新情報をお知らせします。 Re: S32Z Evaluation Board Design Files for 400EVG こんにちは@alejandro_e 、 私にも送ってもらえますか?NXP Web サイトからダウンロードした zip ファイルには、400 ピンの回路図ではなく、594 ピンの回路図のみが含まれています。 当社は NXP との NDA を締結済みです。 ありがとうございました。 コディ Re: S32Z Evaluation Board Design Files for 400EVG こんにちは@kodyw 、 リクエストに対するサポートチケットを作成できますか? alejandro_e_0-1765557801549.png トピックを追跡するには、私の名前とこの会話へのリンクを参照してください。 よろしくお願い申し上げます。
查看全文
ex_ecc 含 -DPTMW_SE05X_Auth=ECKey_PlatfSCP03 我正在使用 github 插件与信任的 Plug & Trust 中间件 (v04.05.03)。 使用 CMake 标志版本 ex_ecc:-dptmw_applet=se05x_c-dptmw_hostcrypto=openSSL-dptmw_se05x_auth=eckey_platfscp03 配置了 /tmp/SE05X/plain_scp.txt: 运行 ./ex_ecc/dev/i2c-0 失败并显示:SE ECDSA 公钥未配置!!!而且 ss_session_open 失败。 完整日志: 应用程序 :INFO :PlugAndTrust_v04.05.03_20240502 App :INFO :Running //tmp/ex_ecc App :INFO :Using PortName='/dev/i2c-0' (CLI) ... App :WARN :Using SCP03 keys from:'/tmp/SE05X/plain_scp.txt' ... App :ERROR:Unknown key type ... sss :INFO :atr (Len=35) ... sss :INFO :Newer version of Applet Found sss :INFO :Compiled for 0x70200.有更新的 0x70216... SSS: 错误:SE ECDSA 公钥未配置!!! 应用程序:错误:SSS_Session_Open 失败... 如何为 eckey_platfscp03 身份验证配置 ECDSA 公钥? Smart Card Re: ex_ecc with -DPTMW_SE05X_Auth=ECKey_PlatfSCP03 你好,@Carlos_o 感谢之前的指导。我在 SE052F 上通过以下步骤解决了 " SE ECDSA 公钥未配置 " 问题: 将默认会话登录设置为SSS_HAVE_SE05X_AUTH_PLATFSCP03。 运行se05x_Delete_and_test_provision示例,执行AddAttestationKeys和ReInitializeTestSample(全部成功,显示kSE05x_Result_SUCCESS)。 将默认会话登录名切换为SSS_HAVE_SE05X_AUTH_ECKEY_PLATFSCP03。 之后,ex_sss_boot_open成功,./ex_ecc /dev/i2c-0运行无误。 你能否确认这个工作流程: SSS_HAVE_SE05X_AUTH_PLATFSCP03--> — > 配置 — >--> SSS_HAVE_SE05X_AUTH_ECKEY_PLATFSCP 03 是否正确且值得推荐? Re: ex_ecc with -DPTMW_SE05X_Auth=ECKey_PlatfSCP03 你好@KiteJLKo 您能否尝试更新至 SE-PLUG-TRUST-MW_04.07.01? Re: ex_ecc with -DPTMW_SE05X_Auth=ECKey_PlatfSCP03 嗨,@Carlos_o、 我的 Env:yocto Linux Re: ex_ecc with -DPTMW_SE05X_Auth=ECKey_PlatfSCP03 你好@KiteJLKo 请提供您是在哪个环境下编写代码的?(视窗、Linux、特定微控制器)
查看全文
lS1043AでPCIEにEDMAを使用する こんにちは、皆さん。 私たちのシステムでは 3 つの Pcie インスタンスを使用しています。システムのニーズに応じて DMA を使用する必要があります。DMA を有効にする方法を知る必要があります。 有効にするにはどうすればいいですか?デバイス ツリーに追加する必要があるかどうか、またはどのように追加する必要があるか? 私たちはls1043ardbボードを使用しており、yocto-real-time-edge BSPを使用しています。 デバイス ツリーを確認しましたが、どの Pcie ノードにも DMA 範囲が記載されていません。 以下はfsl-ls1043a.dtsiの下のデバイスツリーです。 "pcie1: pcie@3400000 { 互換性 = "fsl、ls1043a-pcie"; reg = <0x00 0x03400000 0x0 0x00100000>, /* コントローラレジスタ */ <0x40 0x00000000 0x0 0x00002000>; /* 設定空間 */ reg-names = "regs", "config"; 割り込み = 、 ; 割り込み名 = "pme", "aer"; #アドレスセル = <3>; #size-cells = <2>; デバイスタイプ = "pci"; iommu-map = <0 &smmu 0 1>; /* ブートローダーによる更新 */ ビューポート数 = <6>; バス範囲 = <0x0 0xff>; 範囲 = <0x81000000 0x0 0x00000000 0x40 0x00010000 0x0 0x00010000 /* ダウンストリームI/O */ 0x82000000 0x0 0x40000000 0x40 0x40000000 0x0 0x40000000>; /* プリフェッチ不可能なメモリ */ msi-parent = <&msi1>、<&msi2>、<&msi3>; #割り込みセル = <1>; 割り込みマップマスク = <0 0 0 7>; 割り込みマップ = <0000 0 0 1 &gic 0 110 0x4>, <0000 0 0 2 &gic 0 111 0x4>, <0000 0 0 3 &gic 0 112 0x4>, <0000 0 0 4 &gic 0 113 0x4>; fsl、pcie-scfg = <&scfg 0>; ビッグエンディアン; ステータス = "正常"; }; pcie2: pcie@3500000 { 互換性 = "fsl、ls1043a-pcie"; reg = <0x00 0x03500000 0x0 0x00100000>, /* コントローラレジスタ */ <0x48 0x00000000 0x0 0x00002000>; /* 設定空間 */ reg-names = "regs", "config"; 割り込み = 、 ; 割り込み名 = "pme", "aer"; #アドレスセル = <3>; #size-cells = <2>; デバイスタイプ = "pci"; iommu-map = <0 &smmu 0 1>; /* ブートローダーによる更新 */ ビューポート数 = <6>; バス範囲 = <0x0 0xff>; 範囲 = <0x81000000 0x0 0x00000000 0x48 0x00010000 0x0 0x00010000 /* ダウンストリームI/O */ 0x82000000 0x0 0x40000000 0x48 0x40000000 0x0 0x40000000>; /* プリフェッチ不可能なメモリ */ msi-parent = <&msi1>、<&msi2>、<&msi3>; #割り込みセル = <1>; 割り込みマップマスク = <0 0 0 7>; 割り込みマップ = <0000 0 0 1 &gic 0 120 0x4>, <0000 0 0 2 &gic 0 121 0x4>, <0000 0 0 3 &gic 0 122 0x4>, <0000 0 0 4 &gic 0 123 0x4>; fsl、pcie-scfg = <&scfg 1>; ビッグエンディアン; ステータス = "正常"; }; pcie3: pcie@3600000 { 互換性 = "fsl、ls1043a-pcie"; reg = <0x00 0x03600000 0x0 0x00100000>, /* コントローラレジスタ */ <0x50 0x00000000 0x0 0x00002000>; /* 設定空間 */ reg-names = "regs", "config"; 割り込み = 、 ; 割り込み名 = "pme", "aer"; #アドレスセル = <3>; #size-cells = <2>; デバイスタイプ = "pci"; iommu-map = <0 &smmu 0 1>; /* ブートローダーによる更新 */ ビューポート数 = <6>; バス範囲 = <0x0 0xff>; 範囲 = <0x81000000 0x0 0x00000000 0x50 0x00010000 0x0 0x00010000 /* ダウンストリームI/O */ 0x82000000 0x0 0x40000000 0x50 0x40000000 0x0 0x40000000>; /* プリフェッチ不可能なメモリ */ msi-parent = <&msi1>、<&msi2>、<&msi3>; #割り込みセル = <1>; 割り込みマップマスク = <0 0 0 7>; 割り込みマップ = <0000 0 0 1 &gic 0 154 0x4>, <0000 0 0 2 &gic 0 155 0x4>, <0000 0 0 3 &gic 0 156 0x4>, <0000 0 0 4 &gic 0 157 0x4>; fsl、pcie-scfg = <&scfg 2>; ビッグエンディアン; ステータス = "正常"; }; " SO、やり方を教えてください。 #ls1043a
查看全文
更新 Multilink 的固件 你好, 当我首次将 Multilink FX 连接到目标 MCU 并尝试闪存目标时,Multilink 会尝试更新固件。但最后却出现错误"Error during blank check" 。 然后我收到这个错误:服务用上市序列 错误 peMicro GDB 用上市失败:GDB 服务器无法与目标处理器建立连接。请检查连接和电源。验证调试配置中的用上市设置是否准确。 有关 Multilink 的数据见附件。 我怎样才能修好它? Re: Updating firmware of Multilink 你好 感谢您的反馈。 当我首次将 Multilink FX 连接到目标 MCU 并尝试闪存目标时,Multilink 会尝试更新固件。但最后却出现错误"Error during blank check" 。 嗯,这可能与设计有关:可能的原因 电源或连接问题 目标 MCU 可能未正确供电或连接,导致无法成功通信。 调试配置不正确 集成开发环境(如 MCUXpresso、CodeWarrior、S32DS)中的设置可能与目标 MCU 或接口不匹配。 你在恩智浦评估板上尝试过同样的方法吗? 验证调试接口设置 在集成开发环境(如 S32DS)中,转到 确认接口是否正确(SWD 或 JTAG)。 设置正确的目标电压(通常为 3.3V 或 5V)。 尝试降低通信速度(如 1000 kHz)。 您是否遵循了硬件设计指南来设计调试接口?在第 6 章推荐的调试连接器和连接器引脚输出定义中,您将找到必要的硬件详细信息。 顺祝商祺! Peter Re: Updating firmware of Multilink 您好, 1.否 2.是 3.在闪烁 MCU 时,PE 试图更新,但没有成功(见附图)。 4.无 5.没有 Re: Updating firmware of Multilink 你好 在我提出任何解决方案之前,请您说明您是否: 1. 使用恩智浦评估板? 2. 您的微型机是 MPC5777C? 3. 您是否用最新固件更新了 PE? 4. 您的微信是否经过审查/加密? 5. 您还想说明哪些细节? 顺祝商祺! Peter
查看全文
暗号ドライバは入出力リダイレクトをサポートしていない 同じお客様からの2番目のチケットとそこに記載されているSWバージョンに関して https://community.nxp.com/t5/AP-Software-Support/S32K3-Crypto-driver-KeyElementCopy/mp/2180545#M5384 お客様は、AUTOSAR 仕様への準拠について別の疑問を抱いています。 チケットの内容をそのまま全文シェアします。彼が言及しているプレゼンテーションを添付します。ご協力いただきありがとうございます 「Crypto_43_HSE ドライバ (v 6.0.0) を使用しています。」 私たちのプロジェクトでは、OEM は次の機能を実装することを望んでいます。特定の CryptoKey に属する各 CryptoKeyElement のハッシュを実行することによって、特定の CryptoKey のハッシュを実行できるようにする必要があります。個々のキー要素のハッシュが完了したら、この結果を再度ハッシュする必要があります。 SO、ジョブ入力/出力リダイレクトが使用されます。 基本的なアイデアは、入力リダイレクトを使用して、入力キー要素をハッシュの「ソース」として使用し、ハッシュ結果を HashKey1 の出力キー要素にリダイレクトすることです。その後、この出力キー要素は、KeyElementCopy (部分的) を介して、別の CryptoKey (HashKey2) に属する別のキー要素に「追加」されます。 CryptoKey のすべてのキー要素を続行すると、最後のキー要素に到達します。HashKey2 のキー要素には、入力 CryptoKey の各キー要素のハッシュが含まれるようになります。 この時点で、ハッシュ ジョブを使用し、HashKey2 からの入力リダイレクトを実行して最終的なハッシュを実行します。 いずれにせよ、私の意見では、Crypto Driver UM には次のように明確に記載されているため、これは不可能です。 このサービスは、キー マテリアルではないキー要素に対してサポートされているため、CryptoKeyElementId は 1、9、または 10 とは異なる必要があります。 このCASE、ハッシュを計算する必要がある入力 CryptoKey にも、id=1 のキー要素 ID が存在します。 さらに。すでに開いている別のチケットを参照すると、KeyElementCopy 操作は Crypto ドライバおよび/または HSE によって完全にはサポートされていないようです。 私たちのプロジェクトの提供フェーズで、NXP から、SW スタックが OEM の要件と互換性があるというプレゼンテーションをいくつか受け取りましたが、私が提示した問題は非互換性であるようです。 AUTOSAR の要件に従ってジョブ リダイレクトの適切な動作を統合/実装し、CryptoKeyElementId にキー マテリアルを識別する値があるCASEもサポートする予定はありますか。 SECURITY_CRYPTO Re: Crypto Driver lacks support for input/output redirection こんにちは@davidtosenovjan 私はこの質問について Crypto チームにリクエストを提出しました。( https://jira.sw.nxp.com/browse/FWCRYPTO-295 ) 彼らから返信があったらいつでも使えるように更新します Re: Crypto Driver lacks support for input/output redirection @davidtosenovjan この懸念とフィードバックについては、Cryptoチームにすぐに確認します。 Re: Crypto Driver lacks support for input/output redirection @davidtosenovjan 開発チームは私の質問を、2026年1月19日に開始されるスピントPI 26.1に投稿しました。
查看全文
将闪存从千兆位改为千兆位时,无法使用 KEIL 和 ulink pro 对闪存进行编程 我们有 i.MX RT1173 交叉处理器 我们使用 1 千兆外置四极管或非闪存 (IS25LE02GG-RHLE) 来启动连接到 flexspi1 和 port1 的映像。 1 Gb 闪存和 2 Gbit 闪存之间的区别仅在于设备 ID 和大小变化,其余的编程都是一样的。 最近,我们将闪存从千兆位变为双千兆位 (is25le02gg-rhle).为了测试,我没有更改源代码中的任何内容,甚至连微控制器的配置也没有更改。 我尝试使用旧的闪存算法文件闪存,但闪存编程一开始就失败了,错误如下 在闪存方面,我们使用 KEil uversion 和 ulinkpro 擦除失败! 错误:闪存下载失败 -"Cortex-M7" 请问这里面有什么问题? 我上网查了一些资料,发现如果两个闪存的 JEDEC ID 不同,闪存算法将无法编程。 我没有以前的 Flash 算法源代码,因此我使用 KEIL 中给出的模板创建了自己的 Flash 算法。 我进行了修改,可以创建"NewDevice.FLM" 我把上述文件放到了下面的位置。但是,当我打开 KEIL 并转到实用程序并尝试添加时,仍然找不到 NewDevice.FLM 。因此,我无法使用 NewDevice.FLM 对闪存进行编程。 我不确定我的 Flash 算法有多好,因为我是用模板编写的,但还是附上供您参考。 附上文件以供参考。 Re: unable to program my flash using KEIL and ulink pro when changed flash from 1Gigabit to 2Gigabit 感谢您的教程,对我帮助很大...... 编程和擦除正在进行,但验证失败。我遇到以下错误 因此,我用这个 FLM 对闪光灯进行编程。 擦除和编程正在进行,但验证失败。我遇到了以下错误: 我在我的 1Gigabit 板上测试了这个算法,只是为了检查算法是否正常工作。 加载 " C:\\ khushboo_flash_new\\ 设备\\ Device_Release\\ Source\\ Master\\ 输出\\ prostarnew_combined.Hex " 全芯片擦除完成。 编程完成。 30040020H 处内容不匹配(Flash=6FH Required=FFH) !30040020H (Flash=6FH Required=FFH) ! 内容不匹配:30040021H (Flash=DFH Required=FFH) ! 内容不匹配:30040022H (Flash=7BH Required=FFH) ! 内容不匹配:30040023H (Flash=07H Required=FFH) ! 内容不匹配:30040024H (Flash=BFH Required=FFH) ! 内容不匹配:30040025H (Flash=E9H Required=FFH) ! 内容不匹配:30040026H (Flash=7DH Required=FFH) ! 内容不匹配:30040027H (Flash=C9H Required=FFH) ! 内容不匹配:30040028H (Flash=F7H Required=FFH) ! 内容不匹配:30040029H (Flash=7FH Required=FFH) ! 目录不匹配:3004002AH (Flash=CFH Required=FFH) ! 内容不匹配:3004002BH (Flash=39H Required=FFH) ! 内容不匹配:3004002CH (Flash=03H Required=FFH) ! 内容不匹配:3004002DH (Flash=01H Required=FFH) ! 内容不匹配:3004002EH (Flash=18H Required=FFH) ! 内容不匹配:3004002FH (Flash=01H Required=FFH) ! 内容不匹配:30040030H (Flash=8CH Required=FFH) ! 内容不匹配:30040031H (Flash=1BH Required=FFH) ! 内容不匹配:30040032H (Flash=C0H Required=FFH) ! 内容不匹配:30040034H (Flash=01H Required=FFH) ! 内容不匹配:30040035H (Flash=DEH Required=FFH) ! 内容不匹配:30040036H (Flash=ACH Required=FFH) ! 内容不匹配处:30040037H (Flash=A7H Required=FFH) ! 页面内容不匹配:30040038H (Flash=D6H Required=FFH) ! 内容不匹配:30040039H (Flash=EFH Required=FFH) ! 页面内容不匹配:3004003AH (Flash=F7H Required=FFH) ! 内容不匹配:3004003BH (Flash=8BH Required=FFH) ! 内容不匹配:3004003CH (Flash=FBH Required=FFH) ! 内容不匹配:3004003DH (Flash=FBH Required=FFH) ! 内容不匹配:3004003EH (Flash=FDH Required=FFH) ! 内容不匹配:3004003FH (Flash=A8H Required=FFH) ! 内容不匹配:30040040H (Flash=8AH Required=FFH) ! 内容不匹配:30040041H (Flash=EEH Required=FFH) ! 内容不匹配:30040042H (Flash=5BH Required=FFH) ! 内容不匹配:30040043H (Flash=E7H Required=FFH) ! 内容不匹配:30040044H (Flash=64H Required=FFH) ! 内容不匹配:30040045H (Flash=9EH Required=FFH) ! 内容不匹配:30040046H (Flash=73H Required=FFH) ! 目录不匹配:30040047H (Flash=8EH Required=FFH) ! 内容不匹配:30040048H (Flash=7CH Required=FFH) ! 内容不匹配:30040049H (Flash=DFH Required=FFH) ! 内容不匹配:3004004DH (Flash=1BH Required=FFH) ! 内容不匹配:3004004EH (Flash=99H Required=FFH) ! 内容不匹配:3004004FH (Flash=19H Required=FFH) ! 30040050H 处内容不匹配(Flash=99H Required=FFH) !30040050H (Flash=99H Required=FFH) ! 页面内容不匹配:30040051H (Flash=59H Required=FFH) ! 内容不匹配:30040052H (Flash=72H Required=FFH) ! 内容不匹配:30040053H (Flash=D5H Required=FFH) ! 页面内容不匹配:30040054H (Flash=18H Required=FFH) ! 内容不匹配:30040055H (Flash=23H Required=FFH) ! 内容不匹配:30040056H (Flash=B4H Required=FFH) ! 目录不匹配:30040057H (Flash=F3H Required=FFH) ! 内容不匹配:30040058H (Flash=66H Required=FFH) ! 页面内容不匹配:30040059H (Flash=76H Required=FFH) ! 页面内容不匹配:3004005AH (Flash=F2H Required=FFH) ! 内容不匹配:3004005BH (Flash=3BH Required=FFH) ! 内容不匹配:3004005EH (Flash=59H Required=FFH) ! 内容不匹配:3004005FH (Flash=9CH Required=FFH) ! 内容不匹配:30040060H (Flash=CCH Required=FFH) ! 内容不匹配:30040061H (Flash=4CH Required=FFH) ! 内容不匹配:30040062H (Flash=88H Required=FFH) ! 内容不匹配:30040064H (Flash=5AH Required=FFH) ! 目录不匹配:30040066H (Flash=C9H Required=FFH) ! 目录不匹配:30040067H (Flash=ADH Required=FFH) ! 目录不匹配:30040068H (Flash=AAH Required=FFH) ! 内容不匹配:30040069H (Flash=02H Required=FFH) ! 内容不匹配:3004006AH (Flash=80H Required=FFH) ! 内容不匹配:3004006BH (Flash=AFH Required=FFH) ! 内容不匹配:3004006CH (Flash=BBH Required=FFH) ! 内容不匹配:3004006DH (Flash=1BH Required=FFH) ! 内容不匹配:3004006EH (Flash=FEH Required=FFH) ! 内容不匹配:30040070H (Flash=B5H Required=FFH) ! 内容不匹配:30040071H (Flash=FEH Required=FFH) ! 目录不匹配:30040072H (Flash=3FH Required=FFH) ! 内容不匹配:30040073H (Flash=EEH Required=FFH) ! 页面内容不匹配:30040074H (Flash=EFH Required=FFH) ! 页面内容不匹配:30040075H (Flash=F7H Required=FFH) ! 页面内容不匹配:30040076H (Flash=FBH Required=FFH) ! 目录不匹配:30040077H (Flash=41H Required=FFH) ! 目录不匹配:30040078H (Flash=F7H Required=FFH) ! 页面内容不匹配:30040079H (Flash=F3H Required=FFH) ! 页面内容不匹配:3004007AH (Flash=F4H Required=FFH) ! 内容不匹配:3004007BH (Flash=E5H Required=FFH) ! 内容不匹配:3004007CH (Flash=FEH Required=FFH) ! 内容不匹配:3004007DH (Flash=7EH Required=FFH) ! 内容不匹配:3004007EH (Flash=BFH Required=FFH) ! 内容不匹配:3004007FH (Flash=1FH Required=FFH) ! 内容不匹配:30040080H (Flash=3CH Required=FFH) ! 30040081H 处内容不匹配:30040081H (Flash=4FH Required=FFH) ! 页面内容不匹配:30040082H (Flash=E6H Required=FFH) ! 内容不匹配:30040083H (Flash=53H Required=FFH) ! 目录不匹配:30040084H (Flash=DCH Required=FFH) ! 内容不匹配:30040085H (Flash=DFH Required=FFH) ! 内容不匹配:30040086H (Flash=EFH Required=FFH) ! 内容不匹配:30040087H (Flash=F7H Required=FFH) ! 内容不匹配:30040088H (Flash=03H Required=FFH) ! 内容不匹配:30040089H (Flash=10H Required=FFH) ! 页面内容不匹配:3004008AH (Flash=D7H Required=FFH) ! 内容不匹配:3004008BH (Flash=BEH Required=FFH) ! 内容不匹配:3004008CH (Flash=F7H Required=FFH) ! 错误太多,无法显示! 错误:Flash Download failed -"Cortex-M7" Flash Load finished at 11:48:11 我所做的改变 : 在 FlashDevc. struct FlashDevice const FlashDevice = { FLASH_DRV_VERS, " KSIS25LE01G (128MB)", EXTSPI, 0x30000000, // AHB base 0x08000000、// 128 MB (1 Gbit) 256, // 页面大小 0, 0xFF, 100, // 程序超时 6000, // 擦除超时 0x001000, 0x000000, SECTOR_END }; FlashPrg.c #include"..\FlashOS.H" // FlashOS 结构 #include"fsl_flexspi.h" #include"app.h"   /* 外部函数声明 */ extern status_t flexspi_nor_flash_erase_sector(FLEXSPI_Type *base, uint32_t address); extern status_t flexspi_nor_flash_page_program(FLEXSPI_Type *base, uint32_t dstAddr, const uint32_t *src); extern status_t flexspi_nor_flash_program(FLEXSPI_Type *base, uint32_t dstAddr, const uint32_t *src, uint32_t length);   extern status_t flexspi_nor_get_vendor_id(FLEXSPI_Type *base, uint8_t *vendorId); extern status_t flexspi_nor_enable_quad_mode(FLEXSPI_Type *base); extern status_t flexspi_nor_erase_chip(FLEXSPI_Type *base); extern void flexspi_nor_flash_init(FLEXSPI_Type *base);   #define FLEXSPI_BASE (FLEXSPI1) #define FLASH_BASE_ADR (0x30000000)   /* 强制闪存编程功能(由 FlashOS 调用): int Init(无符号长 adr, // 初始化闪存 无符号长 clk、 无符号长 fnc); int UnInit (unsigned long fnc); // 取消闪存初始化 int EraseSector (unsigned long adr); // 擦除扇区功能 int ProgramPage (unsigned long adr, // Program Page Function) 无符号长 sz、 无符号 char *buf);   可选的 Flash 编程函数(由 FlashOS 调用): int BlankCheck(无符号长 adr,//空白校验 无符号长 sz、 无符号 char pat); int eraseChip (void);//擦除完整设备 无符号长验证(无符号长 adr, // 验证函数 无符号长 sz、 无符号 char *buf);   - 如果闪存空间未映射到 CPU 内存空间,则有必要进行 BlanckCheck 检查 - 如果闪存空间未映射到 CPU 内存空间,则有必要进行验证 - 如果未提供 EraseChip,则调用所有扇区的 EraseSector */     /* * 初始化闪存编程功能 * 参数:adr:设备基本地址 * clk: 时钟频率(赫兹) * fnc: 功能代码(1 - 擦除,2 - 编程,3 - 校验) * 返回值:0 - 确定,1 - 失败 */   int Init(无符号长 adr、无符号长 clk、无符号长 fnc) { (void)adr; (void)clk; (void)fnc;    flexspi_nor_flash_init(FLEXSPI_BASE); return (0); // 无错误完成 }     /* * 去初始化闪存编程功能 * 参数:fnc: 功能代码(1 - 擦除,2 - 编程,3 - 校验) * 返回值:0 - 确定,1 - 失败 */   int UnInit(无符号长 fnc) { (void)fnc; return (0); // 无错误完成 }     /* * 擦除全部闪存 * 返回值:0 - 确定,1 - 失败 */   int EraseChip (void) { status_t status = flexspi_nor_erase_chip(FLEXSPI_BASE); 如果 (status != kStatus_Success)     { 返回 (1);    } 不然     { 返回 (0);    } }     /* * 擦除闪存中的扇区 * 参数: adr:扇区地址 * 返回值:0 - 确定,1 - 失败 */   int EraseSector (unsigned long adr) { /* 将 AHB 总线地址转换为 Flash 内部地址 */   status_t status = flexspi_nor_flash_erase_sector(FLEXSPI_BASE, adr - FLASH_BASE_ADR); 如果 (status != kStatus_Success)     { 返回 (1);    } 不然     { 返回 (0);    }     }     /* * 闪存中的程序页 * 参数: adr:页面起始地址 * sz: 页面大小 * buf:页面数据 * 返回值:0 - 确定,1 - 失败 */   int ProgramPage(无符号长 adr、无符号长 sz、无符号 char *buf) { /* 将 AHB 总线地址转换为 Flash 内部地址 */   status_t status = flexspi_nor_flash_program(FLEXSPI_BASE, adr - FLASH_BASE_ADR, (const uint32_t *)buf,sz); 如果 (status != kStatus_Success)     { 返回 (1);    } 不然     { 返回 (0);    }     } 目标选择 : khush_THF_0-1763443524441.png khush_THF_1-1763443601226.png 将生成的 .FLM 复制到 c:\Keil_v5\ARM\Flash\ 在我的主项目中添加了该算法: khush_THF_2-1763443717229.png 然后尝试使用新创建的 flm 闪存我的主图像 结果失败了,出现了我上面提到的错误。 当我启动板的时候它会一直持续到引导加载程序然后说找不到有效的图片 Re: unable to program my flash using KEIL and ulink pro when changed flash from 1Gigabit to 2Gigabit 你好@khush_THF、 我使用带有 W25Q512NWEIQ 闪存的 RT1170-EVKB 板在本地测试了本教程。它能在 Keil 中正确编译并生成闪存下载算法。其实现相对简单——它只涉及将相关的 LUT、Pinmux/配置文件和其他其他元器件从 SDK 中的 flexspi_polling 项目移植到 Keil 的 _Template 项目。 此外,我们建议在继续操作之前尝试使用高效密码学标准(SEC)工具在串行下载模式下刷新映像,以确保硬件正常运行。 希望对你有所帮助! 致以最诚挚的问候, Gavin Re: unable to program my flash using KEIL and ulink pro when changed flash from 1Gigabit to 2Gigabit 谢谢 🙂 这个博客真的很有用,但我在给闪存编程时还是出现了一些错误。 我遵循的步骤 我下载了代码 : RT-UFL v1.0 下载地址: https://github.com/JayHeng/RT-UFL/archive/refs/tags/v1.0.zip 然后,我走上了这条路 ..\RT-UFL-1.0\RT-UFL-1.0\版本\mdk 然后使用我的 KIEL ID 打开 MIMXRT_FLEXSPI_UV5.uvprojx。 为了测试算法,我在我的板上测试了具有 1 千兆闪存的算法。 在 flashv.c 下由于我的是 MIMXRT1173,因此未在下面添加注释 struct FlashDevice const FlashDevice = { FLASH_DRV_VERS, // 驱动程序版本,请勿修改! " MIMXRT_FLEXSPI ",//设备名称 EXTSPI,//设备类型 0x30000000,//设备起始地址 0 x04000000,//以字节为单位的设备大小 256,//编程页面大小 0,//保留,必须 为 0 0xFF,//擦除内存的初始内容 100 毫秒 15000,//扇区擦除超时 15000 毫秒 // 指定扇区大小和地址 0x1000, 0x00000000, // 扇区大小 4kB (256 扇区) SECTOR_END }; 它成功编译了然后我把文件 MIMXRT_FLEXSPI_UV5_UFL.FLM " 放到了 c:\Keil_v5\ARM\Flash\。 然后,我打开了我的主项目,想在闪存中为哪个图像编程。 在我的 KEIL 中添加了闪光算法: khush_THF_2-1762747156628.png 然后我尝试闪存,结果出现以下错误 khush_THF_0-1762746958043.png khush_THF_1-1762747108003.png Re: unable to program my flash using KEIL and ulink pro when changed flash from 1Gigabit to 2Gigabit 我做了一些更改,它也被列入了我的 KEIL 中。 " flash 超时。RESET目标然后重试 " 在 KEIL 中它显示以下错误 Er ase Failed! 错误:Flash 下载失败-" Cortex-M7 " khush_THF_0-1762507173641.png khush_THF_1-1762507219355.png 更新了 flashprg.c /////**************************************************************************//** //// * @文件 FlashPrg.c ///* @brief 适用于新设备闪存的闪存编程函数 //// * 版本V1.0.0 //// * @ 日期 10.2018年1月 //// ******************************************************************************/ /////* ///* 版权所有 (c) 2010-2018 Arm Limited。保留所有权利。 //// * //// * SPDX-License-Identifier:Apache-2.0 //// * //// * 根据阿帕奇许可证 2.0 版(许可证)授权;您可以 //// * 除非遵守许可协议,否则不得使用本文件。 //// * 您可从以下网址获取许可证副本 //// * //// *www.apache.org/licenses/LICENSE-2.0 //// * //// * 除非适用法律要求或书面同意,软件 //// * 根据许可协议发布的内容是按原样发布的,不包含以下内容 //// * 任何明示或暗示的保证或条件。 //// * 有关许可和权限的具体语言,请参阅许可。 //// * 许可中的限制。 //// */ //// #include ".\FlashOS.H" // FlashOS 结构 #include #include //#include"FlashOS.h"/* 在 MDK 包中提供 Keil 头文件 */ 静态 内联 void _alg_disable_irq(void){ __asm volatile("cpsid i"); } 静态 内联 void _alg_enable_irq(void){ __asm volatile("cpsie i"); } /********************** 用户配置 ************************/ #ifndefFLEXSPI1_BASE #defineflexspi1_base (0x400CC000u) /* FlexSPI1 寄存器(必要时调整) */ #endif #defineflash_ahb_base (0x30000000u) /* 映射的 XIP 基 */ #defineflash_total_sz (0x08000000u) /* 128MB (1Gb) */ /********************** ISSI Opcodes/Consts ************************/ #defineCMD_RDID 0x9F #defineCMD_WREN 0x06 #defineCMD_RDSR 0x05 #defineCMD_READ 0x03 #defineCMD_PP 0x02 #defineCMD_SE_4K 0x20 #defineCMD_BE_64K 0xD8 #defineCMD_CE 0xC7 /* 银行地址寄存器(BAR)。 #defineCMD_RDBR_16 0x16 #defineCMD_WRBRV_17 0x17 #defineJEDEC_MFG 0x9D #defineJEDEC_MEMTYPE 0x60 #defineJEDEC_CAP 0x21 #definePAGE_SIZE 256u #defineSECTOR_SIZE 0x1000u /********************** 最小 FlexSPI 注册表 *********************/ /* 这是一个缩小的子集,足以处理 IP 命令和 LUT。*/ 类型 结构{ 易变 uint32_tMCR0; // 0x000 易变 uint32_tMCR1; // 0x004 易变 uint32_tMCR2; // 0x008 易变 uint32_tAHBCR; // 0x00C 易变 uint32_tINTEN; // 0x010 易变 uint32_tINTR; // 0x014 易变 uint32_tLUTKEY; // 0x018 易变 uint32_tLUTCR; // 0x01C 易变 uint32_tAHBRXBUF0CR0;// 0x020 易变 uint32_tAHBRXBUF1CR0;// 0x024 易变 uint32_tAHBRXBUF2CR0;// 0x028 易变 uint32_tAHBRXBUF3CR0;// 0x02C 易变 uint32_tAHBRXBUF4CR0;// 0x030 易变 uint32_tAHBRXBUF5CR0;// 0x034 易变 uint32_tAHBRXBUF6CR0;// 0x038 易变 uint32_tAHBRXBUF7CR0;// 0x03C uint32_t RESERVED0[24]; // 0x040...0x09C 易变 uint32_t FLSHCR0[4];// 0x0A0...0x0AC 易变 uint32_t FLSHCR1[4];// 0x0B0...0x0BC 易变 uint32_t FLSHCR2[4];// 0x0C0...0x0CC 易变 uint32_tFLSHCR4; // 0x0D0 uint32_t 保留1[8]; // 0x0D4...0x0F0 易变 uint32_tIPCR0; // 0x0F4 串行闪存地址 易变 uint32_tIPCR1; // 0x0F8 SeqID/SeqNum + DataSize 易变 uint32_tIPCR2; // 0x0FC(如果存在;不一定使用) volatil e uint32_t IP CMD;//0x100 触发器 易变 uint32_tIPRXFCR; // 0x104 RX FIFO 控制 易变 uint32_tIPTXFCR; // 0x108 TX FIFO 控制 易变 uint32_t DLLCR[2]; // 0x10C... uint32_t 保留2[26]; // 至 0x180 易变 uint32_tTXDATAn; // 重复写入。 易变 uint32_tRXDATAn; // 重复读取。 uint32_t 保留3[70]; // ... 易变 uint32_t LUT[64]; // 0x200..LUT (64 x 32 位) }FLEXSPI_Regs; #defineFLEXSPI1 ((FLEXSPI_Regs *)flexspi1_base) /* 位/键 */ #defineMCR0_MDIS (1u<<1) #defineintr_ipcmddone (1u<<1) #defineINTR_IPRXWA (1u<<2) #defineINTR_IPTXWE (1u<<3) #defineintr_iprxwater intr_iprxwa #defineintr_iptxwater intr_iptxwe #defineLUTKEY_VALUE (0x5AF05AF0u) #defineLUTCR_UNLOCK (0x02u) #defineLUTCR_LOCK (0x01u) /* IPCR1 助手:布局因每个 RT 而异;我们将其编码为[SEQID:0..5][SEQNUM:8..10][IDATSZ:16..31] */ #defineIPCR1_SEQID(x) ((x) & 0x3Fu) #defineIPCR1_SEQNUM(x) (((x) & 0x7u) << 8) #defineIPCR1_IDATSZ(x) (((x) & 0xFFFFu) << 16) /* LUT 编码助手(简化) */ #defineLUT_OP(op,pads,imm) ( ((op)&0x3F) |(((pads)&3)<<8) |(((imm)&0xFF)<<10) ) #defineLUT_CMD(c) LUT_OP(0x01,0,c) #defineLUT_ADDR(位) LUT_OP(0x02,0,(位)) #defineLUT_READ(len) LUT_OP(0x09,0,(len)) #defineLUT_WRITE(len) LUT_OP(0x08,0,(len)) #defineLUT_STOP() LUT_OP(0x00,0,0) /******************* 3 字节 LUT(24 位)***********************/ 枚举{ L_WREN=0, L_RDSR=4, L_RDID=8, L_READ=12, L_PP=16, L_SE4K=20, L_BE64=24, L_CE=28, L_RDBR=32, L_WRBR=36}; 静态 const uint32_tLUT_3B[] ={ /* L_WREN */ LUT_CMD(CMD_WREN)、 LUT_STOP(), 0, 0, /* L_RDSR */ LUT_CMD(CMD_RDSR)、 LUT_READ(1), 0, 0, /* L_RDID */ LUT_CMD(CMD_RDID)、 LUT_READ(3), 0, 0, /* L_READ */ LUT_CMD(CMD_READ)、 LUT_ADDR(24), LUT_READ(0), LUT_STOP(), /* L_PP */ LUT_CMD(CMD_PP)、 LUT_ADDR(24), LUT_WRITE(0), LUT_STOP(), /* L_SE4K */ LUT_CMD(CMD_SE_4K)、LUT_ADDR(24), 0, 0, /* L_BE64 */ LUT_CMD(CMD_BE_64K)、LUT_ADDR(24),0, 0, /* L_CE */ LUT_CMD(CMD_CE)、 LUT_STOP(), 0, 0, /* L_RDBR */ LUT_CMD(CMD_RDBR_16)、 LUT_READ(1), 0, 0, /* L_WRBR */ LUT_CMD(cmd_wrbrv_17)、 LUT_WRITE(1), 0, 0, }; /******************* 低级帮助程序 *********************/ 静态 void flexspi_wait_ip_done(void) { 虽然(!(FLEXSPI1->INTR &intr_ipcmddone)){/* 自旋 */} FLEXSPI1->INTR =intr_ipcmddone;/* 清除 */ } 静态 void flexspi_load_lut(const uint32_t *lut, 无符号 字数) { FLEXSPI1->MCR0 |=MCR0_MDIS; /* 禁用 */ FLEXSPI1->LUTKEY =LUTKEY_VALUE; FLEXSPI1->LUTCR =LUTCR_UNLOCK; 为(无符号i=0; i<字数 &&i<64; ++i) { FLEXSPI1->LUT[i] = LUT[i];   } FLEXSPI1->LUTCR =LUTCR_LOCK; FLEXSPI1->MCR0 &= ~MCR0_MDIS; /* 启用 */ } /* 发布 IP 命令序列。如果 tx!=NULL -> 写入;如果 rx!=NULL -> 读取。len 以字节为单位。*/ 静态 void flexspi_ip_xfer(uint8_t seqIdx, uint32_t addr, void *buf, uint32_t ......。, int is_read) { /* 清除 FIFO */ FLEXSPI1->IPRXFCR = 1;/* 清除 RX FIFO */ FLEXSPI1->IPTXFCR = 1;/* TX FIFO 清除 */ FLEXSPI1->IPCR0 =addr; /* 串行闪存地址(使用低24b) */ FLEXSPI1->IPCR1 = IPCR1_SEQID(seqIdx) | IPCR1_SEQNUM(1) | IPCR1_IDATSZ(len); 如果(!is_read &&buf &&len) { /* 以字为单位推送 TX 数据 */ const uint8_t *p =(const uint8_t*)buf; 为(uint32_ti=0;i<len;){ uint32_tw=0; 无符号n=0; 为(; n<4 &&i<len; ++n,++i) w |=((uint32_t)p[i]) <<(8*n); FLEXSPI1->TXDATAn =w;    }   } FLEXSPI1 -> IPCMD = 1; /* 触发器 */ flexspi_wait_ip_done(); 如果(is_read &&buf &&len) { uint8_t *p =(uint8_t*)buf; 为(uint32_ti=0;i<len;){ uint32_tw = FLEXSPI1->RXDATAn; 为(无符号n=0;n<4 &&i<len;++n,++i) p[i] =(uint8_t)(w >>(8*n));    }   } } 静态 void 鹪鹩(虛擬){ flexspi_ip_xfer(L_WREN、 0, NULL, 0, 0); } 静态 uint8_t rdsr(uint8_trdsr (){ uint8_tsr=0; flexspi_ip_xfer(L_RDSR、0,&sr、1,1); 返回sr; } 静态 int wait_wip(uint32_t ms){ 当(ms--){ 如果((rdsr() & 1u)==0) 返回 0; } 返回 1; } /* 从绝对地址计算 BAR。BANK = 128MB 范围的 [26:24] 位。*/ 静态 int set_bank_for_addr(uint32_t absAdr){ uint8_t银行 =(uint8_t)((absAdr -flash_ahb_base) >> 24);/* 0..7 */ uint8_tcur=0; flexspi_ip_xfer(L_RDBR、0,&cur、1,1); 如果((cur & 0x07) ==bank) 返回 0; 鹪鹩(); flexspi_ip_xfer(L_WRBR、0,&银行1,0); 返回 0; } /*********************** FlashOS API ************************/ int 初始化(无符号 长 adr, 无符号 长 时钟, 无符号 长 fnc) { (( void)adr; (( void )adr)clk; ((void)adr; ()fnc; /*--------------------功能安全:禁用 IRQ 以避免 ISR/XIP 总线冲突--------------------*/ __asm volatile("cpsid i"); // 在闪存操作激活时屏蔽所有中断 /*--------------------可选的:禁用监视程序(如果在启动时启用)--------------------*/ // RT117x 的示例:禁用 WDOG3 和 RTWDOG(如需要) // wdog3->wcr&= ~wdog_wcr_wde_mask; // rtwdog->cs = (rtwdog->cs& ~rtwdog_cs_en_mask) | rtwdog_cs_update_mask; ---------------- 最简 FlexSPI 启动 ---------------- */ //确保时钟和键盘多路复用器在外部配置(启动代码)。   //为了功能安全起见,在编程期间禁用 AHB 预取/缓存。 FLEXSPI1->AHBCR = 0x00000000u; // 禁用 AHB 预取/缓存 /*--------------------清除并加载 LUT 表(3 字节操作)--------------------*/ 为(无符号i = 0; i < 64; i++) FLEXSPI1->LUT[i] = 0; flexspi_load_lut(LUT_3B、 sizeof(LUT_3B)/sizeof(uint32_t)); /*--------------------验证 JEDEC ID(可选的强制执行)--------------------*/ uint8_t id[3] ={0}; flexspi_ip_xfer(L_RDID、 0, id、 3, 1); // 取消下面几行的注释,以执行严格的 JEDEC ID 匹配 // if (id[0] != JEDEC_MFG || id[1] != JEDEC_MEMTYPE || id[2] != JEDEC_CAP) { // __asm volatile ("cpsie i"); // 返回前重新启用 IRQ // 返回 1; // } ---------------- 将银行寄存器设置为 0(起始窗口 0x000000�0xFFFFFF) ---------------- */ 如果(set_bank_for_addr(flash_ahb_base)){ __asm volatile("cpsie i"); 返回 1;   } ---------------- 安全启动后重新启用 IRQ */ __asm volatile("cpsie i"); 返回 0; // 成功 } int UnInit(无符号 长 fnc) { (void)fnc; 返回 0; } int 擦除芯片(无效) { _alg_disable_irq(); 鹪鹩(); flexspi_ip_xfer(L_CE、 0, NULL, 0, 0); intrc = wait_wip(100000); // 100 s _alg_enable_irq(); 返回rc; } int 擦除扇区(无符号 长 adr) { _alg_disable_irq(); 如果(set_bank_for_addr((uint32_t)adr)) { _alg_enable_irq(); 返回 1; } 鹪鹩(); flexspi_ip_xfer(L_SE4K,(uint32_t)adr、 NULL, 0, 0); intrc = wait_wip(6000); _alg_enable_irq(); 返回rc; } int 程序页(无符号 长 adr, 无符号 长 sz, 无符号 字符串 *buf) { 而(sz){ 无符号page_off =(无符号)(adr &(PAGE_SIZE-1)); 无符号块 =PAGE_SIZE -page_off; 如果(chunk>sz) chunk=(无符号)sz; 如果(set_bank_for_addr((uint32_t)adr)) 返回 1; 鹪鹩(); flexspi_ip_xfer(L_PP、(uint32_t)adr,buf,chunk、 0); 如果(wait_wip(1000)) 返回 1; adr +=chunk; buf +=chunk; sz -=chunk   } 返回 0; } /*********************** FlashDevice ************************/ /* 使用 EXTSPI 设备类型;扇区布局使用偏移量(不是绝对地址)。*/ /* 集成说明: * - 如果您的 FlexSPI1 寄存器基数不同,请更新 FLEXSPI1_BASE。 * - 确保启动时配置了 FlexSPI1 和焊盘的时钟/pinmux。 * - 该算法使用单 SPI(1-1-1)操作,以实现最大兼容性。 * - 为了提高速度,可以添加快速读取 (0x0B),并使用哑循环和四倍使能。 */   更新了 FlashDev.c ///**************************************************************************//** // * @文件 FlashDev.c //* @brief 新设备闪存的闪存设备描述 // *@versionV1.0.0 // * @日期 10.2018 年 1 月 // ******************************************************************************/ ///* //* 版权所有 (c) 2010-2018 Arm Limited。保留所有权利。 // * // * SPDX-License-Identifier:Apache-2.0 // * // * 根据 Apache 许可 2.0 版(许可)授权;您可以 // * 除非遵守许可协议,否则不得使用本文件。 // * 您可以从以下网址获取许可证副本 // * // *www.apache.org/licenses/LICENSE-2.0 // * // 除非适用法律要求或书面同意,软件 // * 根据许可协议发布的内容是按原样发布的,不包含以下内容 // * 任何明示或暗示的保证或条件。 // * 有关许可和权限的具体语言,请参阅许可。 // * 许可证规定的限制。 // */ // #include ".\FlashOS.H" // FlashOS 结构   #defineflash_ahb_base (0x30000000u) /* 映射的 XIP 基 */ #defineflash_total_sz (0x08000000u) /* 128MB (1Gb) */ 结构FlashDevice constFlashDevice = { flash_drv_vers、 " PKISSI 1Gb (128MB) SPI 或非 3B+BAR @0x30000000-SDKFree ", EXTSPI、 flash_ahb_base、 flash_total_sz、 256, /* 页 */ 0, 0xFF, 100, /* 程序超时(毫秒) */ 6000, /* 扇区擦除超时(毫秒) */ 0x1000, 0x00000000, /* 从偏移 0 开始的 4KB 扇区 */ SECTOR_END }; Re: unable to program my flash using KEIL and ulink pro when changed flash from 1Gigabit to 2Gigabit 你好@khush_THF、 感谢您对 NXP MIMXRT 系列的关注! 您的算法文件放入相应文件夹后无法识别。这可能是因为 *.FLM 文件无效,因此 Keil 无法识别。您可以试试 JLink 的通用下载算法RT-UFL。它可与市场上大多数闪存一起使用,但需要 JLink。 中文指导博客: 痞子衡嵌入式:超级下载算法RT-UFL v1.0在Keil MDK下的使用 - 痞子衡 - 博客园 致以最诚挚的问候, Gavin
查看全文
MPX2053 您好, 我们的应用要求我们测量从大气压 0mmHg 到低于大气压 330mmHg 的压力。 我们计划使用 MPXM2053GS。关于上述传感器,请回答以下三个问题。 1) 能否使用该传感器测量上述压力范围? 2) 请告诉我 P2 通气口的连接方式。这个真空端口 P2 是连接到真空还是排气到大气压力? (我的理解是,真空口 P2 端口不是向大气开放的,而是内部密封的,因此被视为真空)。 2) 该传感器的输出为差分输出。但在数据表中,我找不到 Vout+ 和 Vout- 的实际值。相反,我知道输出在 0.8mV/kPa 灵敏度范围内变化,并能列出每个 kPa 范围内的输出电压值。但请解释 Vout 与 Vout+ 和 Vout- 之间的联系公式。 Re: MPX2053 你好,迪帕克_印度 日安 我能否使用该传感器测量上述压力范围? 可以使用,330 mmHg ≈ 44 kPa,所以在范围之内。 请告诉我 P2 通气口的连接方式。这个真空口 P2 是连接到真空还是排气到大气压? 我建议您查看数据表 第 9.4 章 压力 (P1) / 真空 (P2) 侧识别9.4 压力 (P1) / 真空 (P2) 侧识别 恩智浦将压力传感器的两侧分别称为压力 (P1) 侧和压力 (P2) 侧。 真空 (P2) 侧。压力(P1)面是含有硅凝胶的一面,可隔离 将模具从环境中分离出来。恩智浦 MPX 压力传感器可在以下条件下运行 施加正压差,P1> P2。 该传感器的输出为差分输出。但在数据表中,我找不到 Vout+ 和 Vout- 的实际值。相反,我知道输出在 0.8mV/kPa 灵敏度范围内变化,并能列出每个 kPa 范围内的输出电压值。但请解释 Vout 与 Vout+ 和 Vout- 之间的联系公式。 好了,数据表 10 V 供电时,典型灵敏度为 0.8 mV/kPa。 输出电压的计算公式为 RafaR_0-1752791106924.png 例如,电源电压为 10 V: 0 kPa 时:Vout- = 0mV 在 50 千帕时Vout+ = 0.8×50 = 40mV Vout = 40mV 数据表说 RafaR_1-1752791106926.png 这样,我们就可以确认压力与压力之间的关系是正确的。 希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。 祝你愉快,好运连连。
查看全文
Textarea bug issue I created several Textarea components. When I used the keyboard to input in one of them and then clicked "Finish", the keyboard would automatically switch to another Textarea for further operations. How to solve this problem? The video is placed at https://github.com/monkeyhorse/guiguider.git Re: Textarea bug issue Hi @monkeyhorse, Thanks for the clarification. I see this issue seems to occur during simulation. Does it only occur when simulating? Or also when running the GUI on a board? Re: Textarea bug issue @EdwinHz Yes, I use the latest version. Re: Textarea bug issue Hi @monkeyhorse, Thanks for the update. What version of GUI Guider/LVGL are you using? Are they the latest (GUI Guider 1.9.1 with LVGL 9.2.1)? Re: Textarea bug issue Now I have discovered that the creation sequence of the Textarea in setup_scr_screen.c is the cause of this problem, but I still don't know how to solve it.
查看全文
Target applications of CoolFlux DSP in S32K39-37-36 Company: DAEJIN SEMICONDUCTORS Contact Name: Heedong Lee Device: S32K39-37-36 Hi team, As far as customer and I understand, S32K39-37-36 were designed for safe EV control applications:     - Motor control (3- or 6-phase motor, Si IGBT/SiC/GaN transistors)     - Power conversion (DCDC, OBC)     - Battery management system (BMS) control     - Vehicle control unit (VCU) or domain control Particularly, CoolFlux DSP is built to implement FIR filtering capability for motor resolver application (in S32K39-36), postprocessing raw data from the SDADCs and provide the final samples according to the configured sampling rate. However, customer wants to know what other roles the CoolFlux DSP can play in the following applications:      - Power conversion (DCDC, OBC)      - Battery management system (BMS) control      - Vehicle control unit (VCU) or domain control Also, if SDADC is not used in the application, what other operations could CoolFlux DSP perform? Thank you in advance for your help. Have a nice day! Best Regards, Leonardo COOLFLUX Priority: HIGH Re: Target applications of CoolFlux DSP in S32K39-37-36 "CF" means CoolFlux, Petr Re: Target applications of CoolFlux DSP in S32K39-37-36 Thanks for your feedback. What does "CF" means in the acronym "CFSDADC" please? Re: Target applications of CoolFlux DSP in S32K39-37-36 Hello, as mention in the thread the main (and only) use case of the CoolFlux DSP is the motor control application. No other use case support was requested during the development phase. In case of other/new use cases an analysis would need to be performed to find out if the FW as is can support any other use case. Or there would be some changes required or different version of th e FW with different functionality would be needed. Regarding the second question. Instead of the SDADC input stream the CFSDADC FW can work with DMA-WRITE buffer and clock threshold scheduling mode. I am not sure if RTD driver has support for this at this point though. In general the CFSDADC FW supports following processing of input data (Either SDADC of DMA-WRITE buffer). Up-samping, FIR filtering, Decimation, Adjustment (gain or offset), IIR filtering. Best regards. Jindřich.
查看全文
How to Build Release Version of Example Project – S32K1 AUTOSAR Hello NXP Team, I'm currently working with the S32K1 AUTOSAR RTD 2.0.0 example project. I created a Gpio_Dio_lp_Example_S32K118 project and successfully built the Debug_Flash version. However, it seems that the example project only supports building in debug mode by default. Could you please advise how I can configure the project to build a release version instead? Thank you for your support! Re: How to Build Release Version of Example Project – S32K1 AUTOSAR Hi PetrS Thank you for your advice. Re: How to Build Release Version of Example Project – S32K1 AUTOSAR Hi, you can go to project's properties and add new Build configuration PetrS_0-1753267132040.png Put new name and copy from existing Debug configuration PetrS_4-1753267328511.png Finally remove debugging flags PetrS_3-1753267260950.png Then Apply and build BR, Petr
查看全文
S32DS3.6.1 安装 S32K5 RTD0.4.4 P02 嗨,团队、 根据 S32k5 RTD0.4.4 P02 版本说明,模块配置为 S32DS 3.6.1。 在 S32DS 3.6.1 上安装 S32k5 RTD0.4.4 P02 时会产生以下错误。   您能指导我如何安装吗? 谢谢您! BR、 双 RTD S32DS Re: S32DS3.6.1 install S32K5 RTD0.4.4 P02 您好, 感谢您的支持。 是的,在安装 S32K5 RTD 之前我已经安装了 S32K5 代码包。问题就如弗洛林之前所说,当我移除 S32DesignStudio 时,K5 RTD P02 可以正确安装。 BR、 双 Re: S32DS3.6.1 install S32K5 RTD0.4.4 P02 嗨,弗罗林 感谢您的支持。 是的,你的变通方法在我的电脑上可行。屏幕不是客户的,是我的 S32DS 的屏幕。我已经确认它没有被截断。以下屏幕是我的 S32DS 软件网站。(安装 K5 RTD 后,我已读取 S32DesignStudio 网站)。 我连接的是公司网络,不知道网速如何。 BR、 双 Re: S32DS3.6.1 install S32K5 RTD0.4.4 P02 您好, 我认为客户的屏幕截图被截断了。如果缺少依赖项,则无法继续安装。全屏截图应该是这样的 从错误信息来看,似乎是网络问题,平台更新没有正确下载。我在内部进行了验证,结果没有任何问题。 作为一种变通方法,由于您并不真正需要 3.6.2升级时,可以进入扩展和更新 -> 管理网站 -> 找到一行: S32DesignStudio -https://www.nxp.com/lgfiles/updates/Eclipse/S32DS_3.6 并单击删除,然后重试。 安装后,你可以通过手动添加或单击 "恢复默认设置 "将其还原,这将删除你添加的任何自定义更新站点,并恢复初始默认站点。 这不是一种解决方案,而是一种变通办法。理想情况下,我们需要更多有关您的连接和网速的信息,以便确定这是否会影响流量。 另外,请注意,我们有 S32Design Studio 3.6.2 版本。安装程序向后兼容所有 3.6.x以前的版本。 亲切的问候, Florin Re: S32DS3.6.1 install S32K5 RTD0.4.4 P02 嗨,双、 在安装 S32K5 RTD 之前,请确保安装 S32K5 软件包。如果您的账户中没有 K5 代码包,您可以将其添加到 are.nxp.com 目录中。
查看全文
iMX8MPlus + 88W8987 + PDn pin I am trying to reboot the 8987 module in android 10 using the PDn pin on the iMX8MPlus     # unload modules $ rmmod -f moal $ rmmod -f mlan     [  987.206583] wlan: Unloading MWLAN driver [  987.211780] wlan: Driver unloaded     #unbind MMC controller $ echo "30b50000.mmc" > /sys/bus/platform/drivers/sdhci-esdhc-imx/unbind   [  988.124586] mmc1: card 0001 removed   # set PDn to LOW   $ echo "30b50000.mmc" > /sys/bus/platform/drivers/sdhci-esdhc-imx/bind   [  998.119429] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA       # set PDn to HIGH   [ 1010.224255] mmc1: new ultra high speed SDR104 SDIO card at address 0001     # Load modules $ insmod /vendor/lib/modules/mlan.ko $ insmod /vendor/lib/modules/moal.ko mod_para=wifi_mod_para.conf       [ 1027.098443] wlan: Loading MWLAN driver [ 1027.103256] wlan: Register to Bus Driver... [ 1027.120295] vendor=0x02DF device=0x9149 class=0 function=1 [ 1027.126578] Attach moal handle ops, card interface type: 0x105 [ 1027.133282] SD8987: init module param from usr cfg [ 1027.138829] card_type: SD8987, config block: 0 [ 1027.143989] cfg80211_wext=0xf [ 1027.147669] sta_name=wlan [ 1027.151001] uap_name=wlan [ 1027.154341] wfd_name=p2p [ 1027.157589] max_vir_bss=1 [ 1027.160926] cal_data_cfg=none [ 1027.164611] ps_mode = 2 [ 1027.167844] auto_ds = 2 [ 1027.171028] host_mlme=enable [ 1027.174629] fw_name=sdiouart8987_combo_v0.bin [ 1027.179833] SDIO: max_segs=128 max_seg_size=65472 [ 1027.185353] rx_work=1 cpu_num=4 [ 1027.189296] Attach mlan adapter operations.card_type is 0x105. [ 1027.204869] wlan: Enable TX SG mode [ 1027.209100] wlan: Enable RX SG mode [ 1027.216328] Request firmware: sdiouart8987_combo_v0.bin [ 1028.066187] Wlan: FW download over, firmwarelen=603832 downloaded 603832 [ 1030.080214] Fail to poll firmware status: firmwarestat=0xf005 [ 1030.086693] FW failed to be active in time! [ 1030.091600] wlan_dnld_fw fail ret=0xffffffff [ 1030.096656] WLAN: Fail download FW with nowwait: 0 [ 1030.102459] SDIO Func0 (0x0-0x9): 43 03 02 02 03 00 00 02 03 00 [ 1030.109401] SDIO Func1 (0x10-0x17): 00 00 00 00 00 00 00 00 [ 1030.116157] SDIO Func1: (0x8) 00 (0x58) 00 (0x5c) 0d (0x5d) 00 (0x60) 01 (0x61) 00 (0x62) 00 (0x64) 10 (0x65) 01 (0x66) 00 (0x68) 00 (0x69) 00 (0x6a) 00 [ 1030.130949] SDIO Func1 (0xe8-0xf2): 05 f0 00 00 00 00 00 00 24 14 70 [ 1030.241168] SDIO Func1 (0xe8-0xf2): 05 f0 00 00 00 00 00 00 24 14 70 [ 1030.248445] woal_request_fw failed [ 1030.252557] Firmware Init Failed [ 1030.260510] Free module params [ 1030.264292] woal_add_card failed [ 1030.268383] wlan_sdio: probe of mmc1:0001:1 failed with error -1 [ 1030.275567] wlan: Register to Bus Driver Done [ 1030.280673] wlan: Driver loaded successfully       # cat /sys/kernel/debug/mmc1/ios clock:          208000000 Hz vdd:            21 (3.3 ~ 3.4 V) bus mode:       2 (push-pull) chip select:    0 (don't care) power mode:     2 (on) bus width:      2 (4 bits) timing spec:    6 (sd uhs SDR104) signal voltage: 1 (1.80 V) driver type:    0 (driver type B)   wifi 8987 + imx8m plus   &usdhc2 { assigned-clocks = <&clk IMX8MP_CLK_USDHC2>; assigned-clock-rates = <400000000>; pinctrl-names = "default", "state_100mhz", "state_200mhz"; pinctrl-0 = <&pinctrl_usdhc2>; pinctrl-1 = <&pinctrl_usdhc2_100mhz>; pinctrl-2 = <&pinctrl_usdhc2_200mhz>; bus-width = <4>; pm-ignore-notify; keep-power-in-suspend; fsl,sdio-async-interrupt-enabled; status = "okay"; }; Re: iMX8MPlus + 88W8987 + PDn pin Hello, The following hardware conditions will cause the error code in your log, please take a look in each point. 1. SDIO communication is abnormal 2. The 32.768K clock of the Wi-Fi chip is not used 3. The power supply current of the Wi-Fi chip is not enough (when downloading FW, the peak current requirement is relatively large, and the total power supply current of 3.3V must be greater than 1.5A). Best regards.
查看全文
S32 Design Studio for Power Architecture for WINDOWS 11 Hi, I am looking for the supported windows operating system for latest "S32 Design Studio for Power Architecture" and its download site. Thanks Gokulraj Re: S32 Design Studio for Power Architecture for WINDOWS 11 Hi,  S32DS for PA is no more developed. Latest version is S32DS for PA v2.1. It is not tested on WIN 11, but can be used with it. You can download it here - https://www.nxp.com/design/design-center/software/automotive-software-and-tools/s32-design-studio-ide/s32-design-studio-for-power-architecture:S32DS-PA 
查看全文
在 LSDK 设置 LS1012A 单端口 pfe 你好,我想在 LS1012A 中为 SGMII 通信配置 1 端口以太网。 我使用了 DP8367 phy 芯片,并对 ls1012afrwy.dts 的 PFE 进行了如下配置。 &pfe {   status = "okay"; #address-cells =<1> ; #size-cells =<0> ;    pfe_mac0: ethernet@0 { compatible ="fsl,pfe-gemac-port" ; #address-cells =<1> ; #size-cells =<0> ; reg =<0x0>; /* GEM_ID */ fsl,gemac-总线-id = <0x0>; /* 总线_ID */ fsl,mdio-mux-val =<0x0> ; phy-mode ="sgmii" ; phy-handle =<& sgmii_phy1> ; fsl,pfe-phy-if-flags =<0x0> ;  }; /*pfe_mac1: ethernet@1 { compatible ="fsl,pfe-gemac-port" ; #address-cells =<1> ; #size-cells =<0> ; reg =<0x1> ; fsl,mdio-mux-val =<0x0> ; phy-mode ="sgmii" ; phy-handle =<& sgmii_phy2> ; fsl,pfe-phy-if-flags =<0x1> ; };*/ mdio@0 { #address-cells =<1> ; #size-cells =<0> ;   sgmii_phy1: ethernet-phy@2 { reg =<0x0> ; ti,rx-internal-delay =<0x7> ; ti,tx-internal-delay =<0x7> ; ti,fifo-depth =<0x1> ;  }; /*sgmii_phy2: ethernet-phy@1 { reg =<0x1> ; ti,rx-internal-delay =<0x7> ; ti,tx-internal-delay =<0x7> ; ti,fifo-depth =<0x1> ; };*/ }; };   但是,似乎无法接收到 eth0 的 rx 数据包。   如果你能告诉我还有什么需要设置的,我将不胜感激。 Re: LS1012A Single port pfe setting at LSDK 谢谢,我用这种方法解决了问题。但我还有一个问题,如果您也能回答下面的链接,我将不胜感激。 在 LS1012A 中,在内核中重启并在物理交换机上 RESET 无法正常工作-恩智浦社区 Re: LS1012A Single port pfe setting at LSDK 您使用 PHY DP83867 吗?如果是,请在 Linux 内核配置文件中配置 CONFIG_DP83867_PHY。 在 dts 文件中,请将注册值替换为自定义板上的真实 PHY 地址。 sgmii_phy1: ethernet-phy@2 { reg =<0x0>;///请使用您自定义的真实 PHY 地址修改 PHY 地址。 ti,rx-internal-delay =<0x7> ; ti,tx-internal-delay =<0x7> ; ti,fifo-depth =<0x1> ;  };
查看全文
Error when using EB to configure FS23 driver _0-1753439081159.png _1-1753439111221.png _2-1753439144529.png Hello, I am configuring the FS2303 driver and the EB gives me an error message as in figure one. But I have added the notification function in Figure 2. At the same time, I don't know how the error in Figure 3 is generated. I am using Autosar 4.4. Version 2.0 of S32K3 mcal driver and Autosar 4.7 version 1.0 for FS23 MCAL Driver. I would like to ask if the above issue is a problem caused by incompatibility between the two versions? Re: 使用EB配置FS23驱动时报错 Okay, thanks for the reply. Re: 使用EB配置FS23驱动时报错 Hi@夏超 从release note里面来看,你所使用的版本确实是不兼容的。我将这两个版本所对应的版本截图给你看。 FS23 SBC AUTOSAR R21-11 Version 1.0.0 Senlent_0-1753669563921.png FS23 SBC Autosar 4.4 version 0.8.0 Senlent_1-1753669688281.png
查看全文
S32G274ardb2 IPCF、BSP40 + IPCF_4.9.0_D2310 エラー こんにちは、NXPチーム S32G274ardb2 ハードウェアで BSP40 + IPCF_4.9.0_D2310 を使用しています。 「ipc-shm-uio.ko」を構築しました& "ipc-shm-sample.ko" は yocto ビルド システムを使用します。 返信「 Re: NXP S32G274A RDB2 の問題 - IPCF - NXP コミュニティ」に記載されている手順に従いました。 しかし、insmod ipc-shm-sample.ko ファイルを実行しているときに、「ローカル shm 領域を予約できません」というエラーが発生します。 ramjeey_0-1753444077208.png 私は.koを構築しました.ko をビルドしたときに「バージョンマジック」エラーが発生したため、yocto ビルドシステムを使用してファイルをビルドしました。ファイルを手動でUMの手順に従い、.koを挿入していましたファイル。 root@s32g274ardb2:/lib/modules/5.15.145-rt73+g3a3fafb13baa+p0/extra# dmesg | grep uio [ 0.802110] hse-uio 40210000.mu0b:ファームウェアが見つかりません [ 243.511859] ipc_shm_uio: バージョンマジック '5.15.145-rt73SMP preempt mod_unload aarch64' は '5.15.145-rt73+g3a3fafb13baa+p0 であるべきであるSMP プリエンプト mod_unload aarch64' [ 2131.570066] ipc_shm_uio: バージョンマジック '5.15.145-rt73SMP preempt mod_unload aarch64' は '5.15.145-rt73+g3a3fafb13baa+p0 であるべきであるSMP プリエンプト mod_unload aarch64' [ 8467.474097] ipc_shm_uio: バージョンマジック '5.15.145+g3a3fafb13baa+p0-rt73-dirtySMP preempt mod_unload aarch64' は '5.15.145-rt73+g3a3fafb13baa+p0 であるべきであるSMPプリエンプトm' u-boot envを以下のように設定しました setenv デキャッシュオフ mw.q 0x34100000 0x0 0x40000 保存環境 ブート ここで、M7 コア上で「 IPCF_Example_S32G274A_M7_0.bin 」を実行していないことに注意してください。 あなたの助けを要請します。 Re: S32G274ardb2 IPCF, BSP40 + IPCF_4.9.0_D2310 Err こんにちは、 @ramjeey 共有していただいたログによると、IPCF は問題なく正常に動作しています。 最後のテストでは、使用した ko ファイルを手動で削除し、ko ファイルを挿入して再度テストを実行し、まだ問題が残っているかどうかを確認することをお勧めします。 BR チェイン Re: S32G274ardb2 IPCF, BSP40 + IPCF_4.9.0_D2310 Err こんにちは@chenyin_h ご返信ありがとうございます。 IPCF .koをロードするには、正解です。A53 コア側のファイル、M7 コア上のアプリケーションが最初に実行される必要があります。以下のすべての出力は、S32G274ardb2 NXP ハードウェア上の BSP38 + IPCF_4.9.0_D2310 に関するものです。 ipc-shm-dev.ko & ipc-shm-sample.koipc-shm-dev.ko および ipc-shm-sample.ko さらに、.elfをビルディングしながら、Yoctoビルディングシステムを使用してipc-shm-sample_uio.elfをビルディングしました。ファイル os_uio/ ipc-os.cに変更を加えました #IPC_UIO_MODULE_NAME "ipc_shm_uio" を定義します #define IPC_UIO_MODULE_PATH "/lib/modules/5.15.119-rt65-yocto-standard/extra/ipc-shm-uio.ko" ipc-shm-sample_uio.elf を実行すると、以下の出力が得られました。 elf-execution.PNG UMの手順を使用してipc-shm-sample.koとipc-shm-sample_uio.elfを手動でビルドしましたが、insmod ipc-shm-sample.koをロード中に以下のエラーが発生していました。 root@s32g274ardb2:~/IPCF# insmod ipc-shm-sample.ko insmod: ER[ 424.031982] ipc_shm_sample: バージョン マジック '5.15.119-rt65-yocto-standardSMP preempt mod_unload aarch64' は '5.15.119-rt65' であるべきであるSMP プリエンプト mod_unload aa' ROR: モジュール ipc-shm-sample.ko を挿入できませんでした:無効なモジュール形式 上記の「バージョンマジック」は、5.15.119-rt65-yocto-standard を 5.15.119-rt65 に移動/名前変更するだけで解決されました。 追加# ./ipc-shm-sample_uio.elf 入力番号 [ 1283.925001] ipc_shm_uio: ツリー外のモジュールをロードするとカーネルが汚染されます。 送信するメッセージの数: 5 ipc-shm-us-app: ch 0 >> 19 バイト: 送信メッセージ: 5 ipc-shm-us-app: ch 1 >> 32 バイト: #0 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #0Cortex M7▒からのメッセージ!@ ipc-shm-us-app: ch 2 >> 32 バイト: #1 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #1Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #2 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #2Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 2 >> 32 バイト: #3 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #3Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #4 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #4Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 0 << 19 バイト: 返信メッセージ: 5 送信するメッセージの数を入力してください: 10 ipc-shm-us-app: ch 0 >> 20 バイト: 送信メッセージ: 10 ipc-shm-us-app: ch 1 >> 32 バイト: #0 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #0Cortex M7▒からのメッセージ!@ ipc-shm-us-app: ch 2 >> 32 バイト: #1 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #1Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #2 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #2Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 2 >> 32 バイト: #3 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #3Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #4 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #4Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 2 >> 32 バイト: #5 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #5Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #6 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #6Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 2 >> 32 バイト: #7 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #7Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 1 >> 32 バイト: #8 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #8Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 2 >> 32 バイト: #9 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 2 << 24 バイト: #9Cortex M7 からのメッセージ▒!@ ipc-shm-us-app: ch 0 << 20 バイト: 返信メッセージ: 10 送信するメッセージの数を入力してください: 1 ipc-shm-us-app: ch 0 >> 19 バイト: 送信メッセージ: 1 ipc-shm-us-app: ch 1 >> 32 バイト: #0 HELLO WORLD!ユーザーから ipc-shm-us-app: ch 1 << 24 バイト: #0Cortex M7▒からのメッセージ!@ ipc-shm-us-app: ch 0 << 19 バイト: 返信メッセージ: 1 送信するメッセージの数を入力してください: ^Cセグメンテーションエラー /extra# ./ipc-shm-sample_uio.elf ipc-shm-uio-lib: ipc_os_init(): /lib/modules/5.15.119-rt65+ge18f05316cd9/extra/ipc-shm-uio.ko モジュールをロードできません ipc-shm-sample_uio.elfを再度実行するには、ハードウェアを再起動し、すべてのブート コマンドを再度実行する必要があります。 この問題は、.koをビルディングしている場合にのみ発生することをお知らせします。&.elfファイルを手動で作成します。 よろしくお願いいたします。 ラムジー・ヤダブ Re: S32G274ardb2 IPCF, BSP40 + IPCF_4.9.0_D2310 Err こんにちは、 @ramjeey ご返信ありがとうございます。 IPCF_Example_S32G274A_M7_0 ディレクトリの description.txt に記載されている手順を確認していただけますか? Linux モジュールを挿入する前に、まず M7 アプリケーションを実行する必要がある場合があります。 ドキュメントに記載されている手順に従っても問題がまだ解決しない場合は、ログ全体を添えてチケットを更新してください。さらに詳しく調査いたします。 BR チェイン Re: S32G274ardb2 IPCF, BSP40 + IPCF_4.9.0_D2310 Err 私も、S32G274ardb2 ハードウェア上の BSP38 + IPCF_4.9.0_D2310 A-53 コアで試しました。 それでも同じエラーが発生します root@s32g274ardb2:~/IPCF# lsmod モジュールサイズ使用 sja1110 20480 0 root@s32g274ardb2:~/IPCF# lsmod ipc-shm-dev.ko 使用法: lsmod root@s32g274ardb2:~/IPCF# insmod ipc-shm-dev.ko ルート@s32g274ardb2:~/IPCF# root@s32g274ardb2:~/IPCF# lsmod モジュールサイズ使用 ipc_shm_dev 40960 0 sja1110 20480 0 root@s32g274ardb2:~/IPCF# insmod ipc-shm-sample.ko insmod: エラー: モジュール ipc-shm-sample.ko を挿入できませんでした:メモリを割り当てられません BSP38-IPCF-Err.PNG エラーを解決する方法についてアドバイスをお願いします。 ここで、M7 コアに「 IPCF_Example_S32G274A_M7_0.bin 」または任意のバイナリをフラッシュしていないことをお知らせします。 Re: S32G274ardb2 IPCF, BSP40 + IPCF_4.9.0_D2310 Err こんにちは、 @ramjeey ご投稿ありがとうございます。 IPCF 4.9.0 リリース ノートを調べたところ、次の情報が確認されました。 chenyin_h_0-1753672391839.png BSP38+IPCF4.9 でテストしたかどうかを教えていただけますか? それはあなたの側では正しいですか? BR チェイン
查看全文
HSE 状态寄存器损坏 以下图片供参考 abdul_rahiman_csg_0-1753449874831.png abdul_rahiman_csg_1-1753449924290.png abdul_rahiman_csg_2-1753449953207.png abdul_rahiman_csg_3-1753449971206.png abdul_rahiman_csg_4-1753449998730.png 使用 S32K312 并面临 HSE 固件问题: 1.HSE 状态寄存器值出现损坏 (0x4038C107)。 2.由于状态损坏,无法访问 HSE API。 3.尝试清除或重新刷新 HSE 固件失败。 4. 写入 MU0_TR1 寄存器或内存以触发擦除/RESET 命令不起作用。 5. 连接调试器后,观察到在一次外部 RESET 期间进行了多次软件 RESET。 请求: 1.请提供在 S32K312 上清除并重新刷新 HSE 固件的正确步骤。 2.如果由于当前损坏状态而无法重新刷新 HSE 固件,可以采取哪些步骤恢复 HSE 或解决状态寄存器损坏问题? 3.在连接调试器的情况下进行硬 RESET 时观察到的多次 RESET 是否有任何已知问题或变通方法? 4.如何解决 HSE 状态寄存器损坏问题,并重新获得对 HSE API 的访问权限? HSE 固件闪存时遵循的程序: 第 1 步:刷新提供的没有 IVT 的 PINK 文件以及演示应用程序和安全启动应用程序 ELF 文件。 第 2 步:RESET 完成 第 3 步:观察到 "??" 在 HSE 位置 0x 005d4000 和 D CM 寄存器处标记 Step4:我们在地址 0x 00400000 处重新刷新了引导加载程序,在地址 0x 00 442000 处刷新了应用程序。 第 5 步:在连接调试器的情况下执行硬 RESET 时,尽管只发出一个外部 RESET 命令,但我们观察到从软件端触发了多次 RESET
查看全文
从 Flash 混乱中启动 我一直在考虑如何通过一个简单的流程将开发工作转变为生产工作。我使用的是带有 IS25WP QSPI 闪存的 iMXRT1062。 BOOT_MODE[1] 引脚拉高,BOOT_MODE[0] 引脚拉低。 所有 BOOT_CONFIG 引脚均被拉低。 我使用Zephyr版本了可以正常运行的代码,并且我使用McuBoot创建了带有签名保护的引导加载程序以加载映像。 如果我使用 J-Link 将合并后的十六进制文件加载到干净的板上,那么什么也不会发生,但是如果我随后通过 UART 使用 nxp-mcubootUtility 进行连接,那么它会在连接之后——然后在它运行正常之后永远活跃起来——但我没有故意更改任何熔丝设置。 或者,如果我使用安全配置工具从我的引导加载程序 HEX 和我的签名镜像 HEX 创建镜像,那么通过 UART 加载的速度会非常慢。 我的问题是,为什么我不能通过 J-Link 加载组合 HEX 文件,然后开始运行?我的 BOOT_MODE 引脚设置为内部运行,而 BOOT_CONFIG 引脚告诉它从闪存运行,不是吗?我需要让生产变得简单,而最简单的方法就是将 HEX 文件加载到编程器中。 谢谢! Re: Boot from Flash confusion 好的,现在我的问题缩小到我需要了解如何使用安全配置工具。谢谢 Re: Boot from Flash confusion 当您使用安全配置工具 (SPT) 版本映像时,它会将 FCB 和 IVT 预置到二进制文件中,这样 ROM 引导加载程序就可以正确初始化 QSPI 闪存并跳转到您的引导加载程序。这就是它在 UART 闪存后可以工作的原因——ROM 能看见 FCB 并知道如何启动。 但是,当你通过 J-Flash 刷新相同的二进制文件时,它可能被写入了错误的地址或没有正确对齐,因此 ROM 引导加载程序无法在预期的位置 (0x60000000) 找到 FCB。 为了使您的生产过程能够使用 J-Flash (SWD),您需要确保: 二进制文件包含正确的偏移量的 FCB 和 IVT。 将二进制刷新到地址 0x60000000,这是外部 QSPI 闪存的开始。 图像布局正确: 0x60000000: FCB 0x60001000:IVT + 引导加载程序 0x60002000 或更高版本:已签名应用程序映像 在合并后的映像中,可以让它像 SPT 映像一样从地址 0x0 开始,在 SWD 上加载时,从 0x60000000 加载。 BR, Omar Re: Boot from Flash confusion 我用 SPT 拍摄了我的 Mcuboot+MainApp 合并的十六进制文件,然后在 "版本 Image " 选项卡上创建了一个二进制镜像。如果我使用 UART 接口使用 " Write Image " 税务摊销收益,那么它会在大约 10 分钟内加载然后就能正常工作。 但是,如果我将该二进制文件导入 J-Flash,然后使用 SWD 进行编程,那么它会在几秒钟内加载,但之后不会运行。 将原始十六进制文件载入 J-Flash,显示在 0x60000000 和 0x60020000 之间添加了代码,但之后的代码也不一样...在原始MainApp二进制图像转换为十六进制之前以及与McuBoot合并之前,我还可以在原始的二进制图像上看到这一点。 Re: Boot from Flash confusion 是的,可以选择使用 SPT 生成的映像并通过调试器加载。 BR, Omar Re: Boot from Flash confusion 是的,我开始觉得这正是问题所在。但如何才能在不使用这些工具的情况下添加这些内容呢? 正如我之前所说,通过 UART,SPT 的速度慢得令人难以置信。或者,我是否可以使用从中创建的图像,并像 JLink 那样使用 SWD 接口加载图像? Re: Boot from Flash confusion 您的映像可能没有必要的头文件,需要 FCB 才能让 ROM 引导加载程序知道如何与闪存通信。MCUBootUtility 和 SPT 添加了这些标头。 BR, Omar Re: Boot from Flash confusion 你好@Omar_Anguiano、 我们使用的是 i.MX8M Plus EVK,它有 32 MB QSPI 闪存。 我们的目标是完全从 QSPI 闪存启动 U-Boot、Linux 内核、设备树和 initramfs (rootfs.img)。 我们能够成功启动: U-Boot(来自 flash.bin) Linux 内核(Image.gz) 设备树 (imx8mp-evk.dtb) 但是,我们在从 QSPI 闪存加载和使用 initramfs/rootfs 映像时遇到了问题。内核启动成功,但内核在 Waiting for removable media(等待可移动媒体)处挂起....,请参阅下面附带的日志。 -----Flash 布局和图像大小---------------- QSPI 闪存大小:32 MB flash.bin (U-Boot + SPL) ~2.3 MB Image.gz (内核) ~13.5 MB imx8mp-evk.dtb ~86 KB rootfs.img ~12.6 MB ----QSPI 偏移布局---------- flash.bin @ 0x00000000 Image.gz @ 0x00240000 imx8mp-evk.dtb @ 0x01000000 rootfs.img @ 0x01080000 ------ 将文件编入 QSPI(来自 SD 卡)--------- sf probe 0 sf erase 0x0 0x2000000 fatload mmc 1${loadaddr} flash.bin sf 写${loadaddr} 0x0${filesize} fatload mmc 1${loadaddr} Image.gz sf 写${loadaddr} 0x240000${filesize} fatload mmc 1${loadaddr} imx8mp-evk.dtb sf 写${loadaddr} 0x1000000${filesize} fatload mmc 1${loadaddr} rootfs.img # initramfs (cpio.gz) sf 写${loadaddr} 0x1080000${filesize} ------闪烁后,重启板------------------ 从 u-boot 启动后,为 Linux 内核 (Image.gz)、设备设置环境变量树 (imx8mp-evk.dtb),rootfs.img。 sf probe 0 setenv loadaddr 0x40480000 // 核心 setenv fdt_addr 0x43000000 //dtb setenv initrd_addr 0x43800000 //rootfs setenvkernel_comp_addr_r 0x50000000 setenv kernel_comp_size 0x04000000 sf read${loadaddr} 0x240000 0xCD3CE2 sf read${fdt_addr} 0x1000000 0x14360 sf read${initrd_addr} 0x1080000 0xC04DB0 setenv bootargs"console=ttymxc1,115200 root=/dev/ram0 rw" setenv bootcmd 'sf probe 0; sf read${loadaddr} 0x240000 0xCD3CE2; sf read${fdt_addr} 0x1000000 0x14360; sf read${initrd_addr} 0x1080000 0xC04DB0; booti${loadaddr} ${initrd_addr} ${fdt_addr} ' saveenv ----------------------------------------------------------------------- 1. 使用 SD 卡 Wic 文件在分区(启动/根目录)上运行良好。 2.We genarated Two yocto images ==> 1.bitbake core-image-minimal-initramfs (generated initramfs.cpio.gz)这个 cpio.gx 使用这个 cmd mkimage-A arm-O linux-T ramdisk-d (来自 linux 用户指南)== > 2. 还从 yocto 中生成了使用 bitbake core-image-tiny 生成的微小 rootfs。 core-image-tiny-imx8mp-evk.tar.zst,该 tar 已解压缩到 SD 卡中的 EXT4 分区,并成功加载了微小的 rootfs。 3.但正如第二点所说,rootfs.img 也被放入了 SD 卡的 EXT4 根分区,但却无法加载 rootfs。 ------------------------------------------------------------------------------------------- 1. 这是启动 initramfs (rootfs.img) 的正确方法吗从 QSPI 直接连接 i.MX8M Plus EVK? ----------------------------------------------------------------------------------------------- 3. 有没有推荐的恩智浦参考镜像用于在 i.MX8MP(Linux 内核 (Image.gz)、设备上完全从 QSPI 启动内核和 initramfs树 (imx8mp-evk.dtb),rootfs.img)?
查看全文
Can I use LVGL8.2.0 with Chinese input method, that is, the keyboard widget to input Chinese, I use LVGL8.2.0 LVGL8.2.0, use the keyboard widget to do Chinese input, I am using LVGL8.2.0, and the gui guider is using version 1.4.1; can I do it? Re: LVGL8.2.0能用中文输入法吗,就是键盘部件输入中文,我用的是LVGL8.2.0 Hello @HJJHJJ. I checked the GUI Guider v1.9.1 Release Notes. You can see that gui guider v1.4.0 and v1.4.1 support Chinese input keyboard. Celeste_Liu_0-1753951983542.png However, older versions are not sure about stability and are difficult to support if there is a problem. We recommend you to upgrade your LVGL version and use the latest version of Gui Guider v1.9.1. BRs. Celeste
查看全文