Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
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 トピックを追跡するには、私の名前とこの会話へのリンクを参照してください。 よろしくお願い申し上げます。
記事全体を表示
Inquiry about PCIe bandwidth limitation and Ara-2 NPU performance on Geniatech APC800 Dear NXP, I understand that the Geniatech APC800 uses an i.MX 8M Plus and a Kinara Ara-2 connected via a PCIe Gen3 interface. As far as I know, the i.MX 8M Plus supports PCIe Gen3 x1 (about 1 GB/s), while the Ara-2 supports PCIe Gen4 x4 (about 8 GB/s in total). Given that the i.MX 8M Plus is limited to a Gen3 x1 link, I’d like to know whether it can fully utilize the Ara-2’s maximum NPU performance of 40 TOPS. If any part of my understanding is incorrect, I would appreciate it if you could clarify the correct details. Thank you. Best regards, Andy Re: Inquiry about PCIe bandwidth limitation and Ara-2 NPU performance on Geniatech APC800 yes, your understanding is correct
記事全体を表示
S32K 用スタンドアロン NXP GCC ツールチェーン ツールチェーンをダウンロードする場所を見つけました。私が欲しいのは次のもののようです: NXP_GCC11-4_eARMv7 _gf703eb2-LINUX しかし、それは.binであると書かれていますしかし、「bash file.bin」または「chmod +x file.bin」で実行すると、./file.bin"以下のエラーが発生します。 なぜ Java が混在するのでしょうか?これらのツールの tarball バージョンはありますか。GCC ツール用の tarball はありますが、これは NXP に適合したコンパイラ (RTD をビルドするために必要なもの) ではないと思います。 インストールの準備 インストーラー アーカイブからインストール リソースを抽出しています... このシステムの環境に合わせてインストーラーを構成しています... PATH から Java 仮想マシンが見つかりません 環境変数。VMをインストールする必要があります このプログラムを実行しています。
記事全体を表示
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、特定微控制器)
記事全体を表示
更新 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
記事全体を表示
S32K144EVBのSPIの問題 こんにちは、チームの皆さん NFCリーダ ST25R3916B スレーブ デバイスを S32K144EVB とインターフェースしました。SPI通信が正常に機能していることを確認するために、ST25R3916BスレーブICのチップIDを読み取ろうとしています。ただし、MISO 行では有効なデータではなく、常に 0xFF が読み取られます。 この問題の解決を手伝っていただけますか? ST25R3916B スレーブ データシートによると、読み取り波形は次のようになります。 Anilpatil_SasvaAuto_0-1762263860772.png マスターは以下のように読んでいます Anilpatil_SasvaAuto_1-1762263874895.png 何が悪かったのか教えてください。 SPI 読み取りおよび書き込みプロセスには、NXP ホスト ライブラリ API を使用しています。SPI通信にはS32SDK_S32K1XX_RTM_4.0.2 SDKを使用しました Re: SPI issue in S32K144EVB こんにちは@Anilpatil_SasvaAuto マスターの問題を排除するには、MOSI と MISO がハードウェア ループバックでコネクテッドされた簡単なプロジェクトを作成してください。ダミーデータ配列を送信し、送信されたデータが正しく受信されることを確認します。 問題が解決しない場合は、プロジェクトを共有していただき、私の側でテストしてください。 マスターの送信と受信が正しく機能している場合は、デバイスとの通信に関する詳細なサポートについては、ST25R3916B プロバイダーに問い合わせることをお勧めします。 BR、ヴェインB
記事全体を表示
将闪存从千兆位改为千兆位时,无法使用 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
記事全体を表示
Yocto Linux の Imx8 アニメーションロゴ こんにちはチーム Yocto Linuxカーネル6.6.3のimx8qxpでは、 .mp4を統合する必要があるまたは複数の画像をアニメーションロゴとして表示する必要があります パッケージや入力に必要なすべてのものを教えてください。 前もって感謝します !! Re: Animated Logo in Imx8 in Yocto Linux こんにちは@Ram2 ログ データは構造体として Linux に保存されるため、起動中にさらに多くのフレームを保存し、フレームを読み取るには、logo.c を変更する必要があります。 https://github.com/torvalds/linux/blob/master/drivers/video/logo/logo.c よろしくお願いします、 志明
記事全体を表示
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 这样,我们就可以确认压力与压力之间的关系是正确的。 希望这些信息对您有所帮助,如果您还需要其他帮助,请告诉我。 祝你愉快,好运连连。
記事全体を表示
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
記事全体を表示
Apply s32g274 bsp35.0 to add the PHY chip ADIN1200 in U-Boot Apply s32g274 bsp35.0 to add the PHY chip ADIN1200 in U-Boot. After U-Boot starts, the register of the PHY can be read by the mii command, but the input ping is 10.0.0.1. It will directly prompt "Failed to enable rx_rgmii clock". What's the problem here? Re: Apply s32g274 bsp35.0 to add the PHY chip ADIN1200 in U-Boot Hello @sdx111, Thanks for the information. To narrow it down even more, please share the following: The complete node definition of  gmac0: ethernet@4033c000 in ATF (fdts/s32cc.dtsi) Please add the return value to the print of the error in eth.c#L312 : dev_err(gmac_dev, "Failed to enable %s clock, returned %d\n", rx, ret); If you are aware of any relevant change applied to your u-boot or ATF configuration that might be related to this problem please also share it Thanks! Re: Apply s32g274 bsp35.0 to add the PHY chip ADIN1200 in U-Boot The ADIN1200 is connected to GMAC0 and uses the RGMII connection method. The result after executing the command is shown in the attachment. Re: Apply s32g274 bsp35.0 to add the PHY chip ADIN1200 in U-Boot Hello @sdx111, Thanks for reaching out to us. Please execute the following commands in u-boot and share the output: => printenv => xpcs list Please also let me know which interface (GMAC, PFE0, PFE1 or PFE2) and pins you are using to connect to the ADIN1200. Thanks
記事全体を表示
在 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> ;  };
記事全体を表示
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
記事全体を表示
S32K344 - ECC 訂正可能および訂正不可能なエラー メモリ 10 (SBC10-NCE10) こんにちは、 エラー報告モジュールから診断データを読み取るためのドライバを作成中です。 メモリ 10に対応するERM ステータス レジスタ 1 が、シングル ビット訂正イベント情報と訂正不可能なエラー イベント情報を継続的に検出していることに気付きました。 その結果、エラー カウンター CORR_ERR_CNT10 はすぐに 0xFF に達し、EAR10 と SYN10 の両方が何らかのエラーを確認しているように見えます (下の画像を参照してください)。 これは、この動作によって影響を受ける唯一のメモリ領域です。SBC10 フィールドと NCE10 フィールドをクリアしようとすると、ほぼ即座に NCE10 ビットが反転し、その後 10 ミリ秒以内に SBC10 ビットが反転します。これは、エラー イベント情報の一貫した修正と通知を示します。 このモジュールを初期化するための現在のアプローチは、すべてのステータス レポート フィールドをクリアし、ECC エラーに関する割り込みベースの通知を使用しないことです。システムの電源投入時にステータス レポート レジスタをクリアしようとしない場合も、同じ動作が発生します。 いくつか質問があります なぜそんなことが起きるのでしょうか? 表293によると、メモリ10は「Cortex-M7_0 ITCM」に関連していますか? メモリ 10 が実際に Core#0 ITCM に関連しており、ロックステップ マイクロコントローラを使用しており、この問題が Cortex-M7_1 ITCM のチェッカー コアには影響していないと思われる場合、Core0 ITCM に障害があることを意味しますか? ECC Error - Cortex-M7_0 ITCM.png Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) こんにちは、ダニエル。サポートしていただきありがとうございます。 あなたのアドバイスに従って、AN13388「S32K3 メモリ ガイド」に含まれる「例 6. コアによる ITCM 初期化」を実装することで問題を解決しました。 Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) こんにちは@fede_ls 、 ECC 初期化はデバイス固有であるため、デフォルトの起動コードには含まれません。対象ハードウェアの要件に従って ECC セットアップを実装するのは開発者の責任です。重要なのは、メモリ上で読み取り操作を実行する前に、ECC を適切に初期化する必要があることです。 Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) こんにちは、ダニエル。 スタートアップ コード (ITCM_Init セクションの startup_cm7.s) で ITCM が適切に初期化されているかどうかを確認してください。 デフォルトの S32DS CMSIS コアデバイス スタートアップ ファイルstartup_ARMCM7.c を使用しています。標準の .c ファイルをこの返信に添付します。 「 Example_Siul2_Port_Ip_Example_S32K344_ITCM_DTCM_S32DS3.4 RTD300.zip」をチェックして、それがどのようなものかを把握しました (今後のFUTUREのために、以下のスクリーンショットに示されています)。 fede_ls_0-1753869362851.png ITCM と DTCM は、RTD 以外の起動ファイルではデフォルトで初期化されないということですか? SCB->ITCMCR で ITCM が実際に有効になっていることを確認し、起動時に無効化->再有効化を試みました。 アドレス 0x508 でエラーが検出されたことに気付きました。 .mapのそのアドレスにどんなコードがあるのかCAN確認できますか?ファイル? fede_ls_1-1753870680244.png 本物の ECC エラーを除外CAN場合、問題はシステム クロックの構成に関連している可能性があります。 システム クロック設定がクロック オプションで指定された分周比に準拠していない場合、NXP は適切な MCU 機能を保証しません。 たとえば、表 157、オプション A – 高パフォーマンス モード (CORE_CLK @ 160 MHz) を参照してください。 現在、クロックをオプション A に正常に構成し、その構成が実際に適用されていることを確認しました。 Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) こんにちは@fede_ls 、 ご確認ありがとうございます。 スタートアップ コード (ITCM_Init セクションの startup_cm7.s) で ITCM が適切に初期化されているかどうかを確認してください。 アドレス 0x508 でエラーが検出されたことに気付きました。 .mapのそのアドレスにどんなコードがあるのかCAN確認できますか?ファイル? ITCM は、メモリへの 64 ビット書き込みによっていつでも再初期化 CAN ことに注意してください。 したがって、読み取りエラーが発生した場合でも、ITCM を再初期化することで解決できる可能性があります。 本物の ECC エラーを除外CAN場合、問題はシステム クロックの構成に関連している可能性があります。 システム クロック設定がクロック オプションで指定された分周比に準拠していない場合、NXP は適切な MCU 機能を保証しません。 たとえば、表 157、オプション A – 高パフォーマンス モード (CORE_CLK @ 160 MHz) を参照してください。 信頼性の高い動作を確保するために、定義済みのクロック オプションのみを指定されたとおりに使用することを強くお勧めします。 よろしくお願いいたします。 ダニエル Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) 確認しました。PRTN1_COFB0_STATは0x7EFF001Fに設定されており、PRTN1_COFB0_STAT[BLOCK23]が実行中であることを示します。 この問題の原因について何か知見はありますか? Re: S32K344 - ECC Correctable and Uncorrectable errors Memory 10 (SBC10-NCE10) こんにちは@fede_ls 、 念のため、PRTN1_COFB0_STAT[BLOCK23]は実行されていますか?
記事全体を表示
S32K146: VLPSモード開始時に割り込みが発生したためウェイクアップに失敗 こんにちは。最近、コードのデバッグ中に問題が発生しました。私のチップは64MHzで動作しており、SDKs関数POWER_SYS_SetModeを呼び出してVLPSモードに入ると、 STANDBY ();まで約16msかかります。STANDBY();の行に到達する前は、ACC ON割り込みでVLPSモードへの移行プロセスを中断できません。しかし、VLPSモードに入ると、ACC ON割り込みが既にトリガーされているため、VLPSモードに移行するための他の割り込みがありません。この問題を改善する方法はありますか? Re: S32K146: Failure to wake up due to an interrupt occurring during VLPS mode entry こんにちは@シャオティエンジ 割り込みネストの問題があるかどうかをCAN確認できます。その場合は、割り込み優先度を調整することでこの問題を解決できます。 割り込みネストの問題がなければ、この問題は存在しないと思います。 また、GPIO 割り込みサービス関数が割り込みフラグをクリアするかどうかを確認します (例: "PINS_DRV_ClearPortIntFlagCmd(PORTn)")。 Re: S32K146: Failure to wake up due to an interrupt occurring during VLPS mode entry 問題は、POWER_SYS_SetMode を呼び出して VLPS モードに入るときに、関数の開始から STANDBY(); に到達するまでに約 16 ミリ秒かかることです。 この 16 ミリ秒の期間中に GPIO 割り込み (ACC ON) がトリガーされても、VLPS エントリは妨げられず、関数は STANDBY(); まで実行を継続します。STANDBY(); が実行された後にのみ、MCU を VLPS から起動するために割り込みが必要になります。 この 16 ミリ秒のウィンドウ中に GPIO 割り込みがトリガーされた場合に、VLPS エントリ プロセスを中止できるようにする方法はありますか? Re: S32K146: Failure to wake up due to an interrupt occurring during VLPS mode entry こんにちは@シャオティエンジ あなたが言及している「ACC ON」は、MCU を起動する GPIO 割り込みのことですか? GPIO 経由で起動している場合は、その GPIO ポートの割り込み優先度を変更して再度テストしてみてください。
記事全体を表示
从 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)?
記事全体を表示
S32K118Q048 EVB をLINマスターとして使用 こんにちは、 既存の LIN スレーブ ECU と通信するために NXP S32K118 EVB を LIN マスターとして使用していますが、行き詰まっています。セットアップと試してみたことは次のとおりです。 1. 奴隷捕獲 スレーブのLINヘッダーと応答をCANoeに記録しました。 PicoScope で波形を検証しました。 2. マスタープロトタイプ S32K118 を 13 ビットのブレーク、0x55 同期、正しい ID を生成するように構成しました。 PicoScope は、フレーム ヘッダーが LIN スレーブのものとまったく同じであることを示します。 問題: EVB の LIN 出力を実際のスレーブ ECU に接続すると、ヘッダーはキャプチャしたものと同一に見えますが、スレーブの応答は間違っています。 私が見つけた唯一の違いは休憩時間です: EVB ブレーク: ~675 µs (19,200 ボーで 13 ビット時間) CANoeキャプチャ: ~940 µs LIN 仕様によれば、最小ブレーク長 (13 ビット時間) のみがあり、最大値はないので、カバーされていると思いました。EVB のブレークが短いためにスレーブがヘッダーを無視している可能性がありますか? もしそうでない場合、EVBのハードウェア詳細が不足しているのでしょうか?同じような状況に遭遇した方、または追加で必要な接続やコンポーネントを教えていただける方はいらっしゃいますか?LIN ラインにコンデンサまたは抵抗器を接続する必要がありますか?ECU スレーブは 13.5 V を使用しますが、LIN トランシーバーは 12 V を使用します。 Re: S32K118Q048 EVB as a LIN master こんにちは@yousefdessouki123さん、 測定するブレーク フィールドは LIN 仕様に準拠しています。 https://www.cs-group.de/wp-content/uploads/2016/11/LIN_Specification_Package_2.2A.pdf danielmartynek_0-1754045718017.png 問題はスレーブノード側にあるはずです。 CANデバイスを指定していただけますか? AN5426: S32K1xxのハードウェアデザインガイドラインを参照してください。 https://www.nxp.com/webapp/Download?colCode=AN5426 図18. LINインターフェースの回路図 「マスターノードとして使用するには、ダイオードと直列の1kΩの外部抵抗を並列に接続する必要があります。 VBAT [バッテリー電圧] と LIN バス ライン。 よろしくお願いいたします。 ダニエル
記事全体を表示
从 S32DS Arm2.2 升级到 S32DS3.6.1 时代码量增加 尊敬的各位, 客户 Bosch HC 使用 S32K116,并一直在使用传统 SDK 驱动程序为 Arm2.2 开发 S32DS 代码。 他们现在正转向 S32DS3.6 和 RTD 驱动器。 问题:他们声称闪存中的代码大小增加了 20% ,RAM 中的数据大小增加了 30% 。对于 S32DS3.6,他们使用 -Os 进行编译,而对于 Arm2.2 则使用 -O1 应用程序代码并没有增加很多,但 RTD 生成的驱动程序代码似乎是根本原因。 您可以在下面看到 Arm2.2 版本的 SDK 驱动程序: 因此,他们确实使用RTD,但仅使用驱动程序层,而不是中间件。我附上了两个项目的截图;一个是 ARM2.2 项目,另一个是迁移到 S32DS 3.6 的项目(您可以在窗口标题中看到),我还附上了两个项目的映射文件(文件内容完全相同)。 我们的假设是,所有 SchM_* 的内容都会导致大小增加,尤其是在 RTD 代码中与 ADC 相关的部分。 他们不使用操作系统,所有配置都是裸机。 他们是否应该添加另一个定义,以排除更多不必要的生成代码? 来自 Arm2.2 版本的 SDK 驱动程序 非常感谢。 BR Guenter    优先权:紧急 RTD S32DS Re: Codesize increase when moving from S32DS Arm2.2 to S32DS3.6.1 @guenter_loettrich RTD 和 SDK 有很大不同,因此在 RTD 中做了很多改动。 函数 SchM_Enter_Adc_ADC_EXCLUSIVE_AREA 和 SchM_Exit_Adc_ADC_EXCLUSIVE_AREA 不仅保护 MCAL 层的专属区域,还保护 IP 层的专属区域。删除这些部分对 ADC 驱动程序 不安全 。 如果您的项目优先考虑代码大小,我建议您尝试编译器优化选项。例如,GCC 支持 -Os (优化尺寸) -ffunction-sections -fdata-sections 更多详情请访问: https://gcc.gnu.org/onlinedocs/gcc-3.2/gcc/Optimize-Options.html#Optimize%20Options Re: Codesize increase when moving from S32DS Arm2.2 to S32DS3.6.1 Hi Guenter、 如果客户对代码大小有很高的要求,恐怕唯一的解决办法就是返回到旧版 SDK 和处理器专家。RTD 是一种不同的软件,其编写方式更具通用性,而且比旧版 SDK 更加复杂。 希望 RTD 团队中有人能补充更多细节。
記事全体を表示
"Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to LPDDR4 Dear Community Members, We are encountering a boot issue on our S32G274A-based hardware, where the bootloader fails with a data abort exception. Setup Details: Boot Method: QSPI Image: Custom FIP image with integrated ramdisk Flashing Method: S32DS Flash Tool and Lauterbach (issue occurs with both) BSP Version: 43.0 Bootloader: U-Boot 2022.04+gc01b3bf7b1+p0 SoC: S32G274A We are able to configure the DDR and able to boot till uboot prompt. But after that an access to DDR get crash , ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Please find the below details for reference. => md 80000000 1000 "Synchronous Abort" handler, esr 0x96000210 elr: 00000000ff91cb68 lr : 00000000ff91cab8 (reloc) elr: 00000000ff91cb68 lr : 00000000ff91cab8 x0 : 0000000000000009 x1 : 00000000ffbc66e8 x2 : 00000000fffffffe x3 : 0000000000000020 x4 : 0000000000000000 x5 : 00000000ffbc66e0 x6 : 0000000000000030 x7 : 00000000ffbc6630 x8 : 0000000000000010 x9 : 0000000000000002 x10: 00000000ffffffd8 x11: 0000000000000010 x12: 0000000000000001 x13: 0000000000000001 x14: 0000000000000030 x15: 0000000000000021 x16: 00000000ff8af778 x17: 0000000000000000 x18: 00000000ffbcfd80 x19: 0000000000000004 x20: 0000000000000004 x21: 0000000000000004 x22: 0000000080000000 x23: 00000000ffbc66e9 x24: 0000000000000000 x25: 00000000ffbc6698 x26: 00000000ff9398a7 x27: 0000000000000008 x28: 0000000000000004 x29: 00000000ffbc6630 Code: 2a0403f3 17ffffcb 7100129f 54000181 (b94002c3) Resetting CPU ... resetting ... NOTICE: Reset status: Power-On Reset NOTICE: BL2: v2.10.7(release):bsp43.0-2.10.7-dirty NOTICE: BL2: Built : 08:17:37, Nov 26 2024 NOTICE: BL2: Booting BL31 ------------------------------------------------------------------------------------------ The complete boot-log is as below, where the crash can be found while Uboot trying to access DDR. ------------------------------------------------------------------------------------------ Please find the boot logs attached below for reference. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ U-Boot 2022.04+gc01b3bf7b1+p0 (Nov 21 2024 - 14:00:36 +0000) SoC: NXP S32G274A rev. 2.1 CPU: ARM Cortex-A53 r0p4 @ max 1000 MHz Model: S32G2-platform DRAM: 4 GiB Inside dm_init_and_scan............ pfeng_mdio mdio@2: EMAC MDIO id out of range 88Q5152 reset Core: 291 devices, 24 uclasses, devicetree: board MMC: FSL_SDHC: 0 Loading Environment from SPIFlash... SF: Detected mt35xu01gbba with page size 256 Bytes, erase size 4 KiB, total 128 MiB *** Warning - bad CRC, using default environment s32cc_serdes_phy serdes@40480000: Using mode 0 for SerDes subsystem pci_s32cc pcie@40400000: DBI R/W is not being enabled pci_s32cc pcie@40400000: PCI Device and Vendor IDs could not be set pci_s32cc pcie@40400000: DBI R/W is not being enabled s32cc_serdes_phy serdes@40480000: Failed to lock PCIe phy s32cc_serdes_phy serdes@40480000: PHY: Failed to power on serdes@40480000: -110. pci_s32cc pcie@40400000: Failed to power on PHY 'serdes_lane0' pci_s32cc pcie@40400000: Failed to set PCIe host settings In: serial@401c8000 Out: serial@401c8000 Err: serial@401c8000 Board revision: RDB2 Net: Found PFE version 0x50300 (S32G2) pfeng pfeng-base: Uploading CLASS firmware pfeng pfeng-base: EMAC0 block was initialized pfeng pfeng-base: EMAC1 block was initialized pfeng pfeng-base: EMAC2 block was initialized pfeng pfeng-base: Enabling the CLASS block pfeng pfeng-base: PFE Platform started successfully (mask: 7) pfeng_netif pfe0: Failed to get 'emac0_xpcs' PHY eth1: pfe0pfeng_netif pfe1: Failed to get 'emac1_xpcs' PHY , eth2: pfe1, eth3: pfe2 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0(part 0) is current device ** No partition table - mmc 0 ** Couldn't find partition mmc 0:2 Can't set block device mcr=cc000f03 ipcr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=800080 bfgencr=e00000 buf0ind=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d0080c2 paritycr=0 sfar=2c03 sfacr=0 smpr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=f4c00080 dlcr=ff40ff40 dlsr_fa=0 tbsr=0 tbdr=0 tbct=0 sr=380002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa => run flashboot Booting from flash... Reading 17629184 byte(s) at offset 0x00000000 "Error" handler, esr 0xbf000002 elr: 00000000ff8f5f6c lr : 00000000ff8f5e68 (reloc) elr: 00000000ff8f5f6c lr : 00000000ff8f5e68 x0 : 0000000000000040 x1 : 0000000000000000 x2 : 0000000000000ba0 x3 : 000000000000003f x4 : 0000000000000002 x5 : 000000001fe00411 x6 : 0000000000000000 x7 : 0000000000000011 x8 : 0000000000200000 x9 : 0000000000000008 x10: 0000000000000002 x11: 000000001fe00000 x12: 0000000000000001 x13: 000000000000003f x14: 0000000000000000 x15: 0000000000000021 x16: 00000000ff8f4e9c x17: 0000000000000000 x18: 00000000ffbcfd80 x19: 00000000ffbf33f0 x20: 00000000010d0000 x21: 00000000002b0000 x22: 0000000080000000 x23: 00000000007d2dc2 x24: 0000000000000007 x25: 0000000000000000 x26: 0000000000000001 x27: 0000000000000001 x28: 00000000010d0000 x29: 00000000ffbc6130 Code: d1000694 380016c0 17ffffbd f8606aa1 (f8206ac1) Resetting CPU ... Removing MTD device #5 (Kernel) with use count 1 Error when deleting partition "Kernel" (-16) resetting ... NOTICE: Reset status: Destructive Reset (RUN) NOTICE: BL2: v2.10.7(release):bsp43.0-2.10.7-dirty NOTICE: BL2: Built : 08:17:37, Nov 26 2024 NOTICE: BL2: Booting BL31 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ We would appreciate any guidance or suggestions to help resolve this issue. Regards, Vishal G Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to Hello, @vishalg  Thanks for your reply. From the log, it is "Internal error: synchronous external abort", this indicates that a exception occurred while accessing certain address, which is likely related to accessing unmapped memory or inconsistent permissions. Not sure if you modified default dts for GIC part? have you examined the memory used in gic_iterate_rdists? BR Chenyin Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to Hi Chenyin, Thankyou for the quick reply. I am able to resolve the issue by performing the DDR Validation test using S32 Design Studio and configuring the DDR correctly with regenerated configurations..  Now i am successfully able to boot uboot come to kernel where i am observing kernel panic at boot, triggered by an "Internal error: synchronous external abort" while initializing the GICv3 interrupt controller on our  Custom S32G274A platform running Linux 6.6.52-rt43. -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- NOTICE: Reset status: Power-On Reset NOTICE: BL2: v2.10.7(release):bsp43.0-2.10.7-dirty NOTICE: BL2: Built : 08:17:37, Nov 26 2024 NOTICE: BL2: Booting BL31 U-Boot 2022.04+gc01b3bf7b1+p0 (Nov 21 2024 - 14:00:36 +0000) SoC: NXP S32G274A rev. 2.1 CPU: ARM Cortex-A53 r0p4 @ max 1000 MHz Model: S32G2-platform DRAM: 3.5 GiB Inside dm_init_and_scan............ pfeng_mdio mdio@2: EMAC MDIO id out of range 88Q5152 reset Core: 291 devices, 24 uclasses, devicetree: board MMC: FSL_SDHC: 0 Loading Environment from SPIFlash... SF: Detected mt35xu01gbba with page size 256 Bytes, erase size 4 KiB, total 128 MiB *** Warning - bad CRC, using default environment s32cc_serdes_phy serdes@40480000: Using mode 0 for SerDes subsystem pci_s32cc pcie@40400000: DBI R/W is not being enabled pci_s32cc pcie@40400000: PCI Device and Vendor IDs could not be set pci_s32cc pcie@40400000: DBI R/W is not being enabled s32cc_serdes_phy serdes@40480000: Failed to lock PCIe phy s32cc_serdes_phy serdes@40480000: PHY: Failed to power on serdes@40480000: -110. pci_s32cc pcie@40400000: Failed to power on PHY 'serdes_lane0' pci_s32cc pcie@40400000: Failed to set PCIe host settings In: serial@401c8000 Out: serial@401c8000 Err: serial@401c8000 Board revision: RDB2 Net: Found PFE version 0x50300 (S32G2) pfeng pfeng-base: Uploading CLASS firmware pfeng pfeng-base: EMAC0 block was initialized pfeng pfeng-base: EMAC1 block was initialized pfeng pfeng-base: EMAC2 block was initialized pfeng pfeng-base: Enabling the CLASS block pfeng pfeng-base: PFE Platform started successfully (mask: 7) pfeng_netif pfe0: Failed to get 'emac0_xpcs' PHY eth1: pfe0pfeng_netif pfe1: Failed to get 'emac1_xpcs' PHY , eth2: pfe1, eth3: pfe2 Hit any key to stop autoboot: 0 switch to partitions #0, OK mmc0(part 0) is current device ** No partition table - mmc 0 ** Couldn't find partition mmc 0:2 Can't set block device mcr=cc000f03 ipcr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=800080 bfgencr=e00000 buf0ind=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d0080c2 paritycr=0 sfar=2c03 sfacr=0 smpr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=15c00080 dlcr=ff40ff40 dlsr_fa=0 tbsr=0 tbdr=0 tbct=0 sr=380002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa => run flashboot Booting from flash... Reading 17629184 byte(s) at offset 0x00000000 Reading 196608 byte(s) at offset 0x00000000 Reading 32571392 byte(s) at offset 0x00000000 ## Loading init Ramdisk from Legacy Image at 90000000 ... Image Name: fsl-image-base-s32g2-platfo Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 29917545 Bytes = 28.5 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 83000000 Booting using the fdt blob at 0x83000000 Using Device Tree in place at 0000000083000000, end 00000000830120ae Starting kernel ... unable to select a mode : -70 device_remove: Device '[email protected]' failed to remove, but children are gone [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 6.6.52-rt43-g1a29a32be610-dirty (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.4.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT_RT Thu Nov 21 09:35:09 UTC 2024 [ 0.000000] Machine model: s32g274 Platform [ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (options '') [ 0.000000] printk: legacy bootconsole [linflex0] enabled [ 0.000000] OF: reserved mem: 0x0000000034000000..0x000000003407ffff (512 KiB) nomap non-reusable pfebufs@34000000 [ 0.000000] OF: reserved mem: 0x0000000034080000..0x000000003409ffff (128 KiB) nomap non-reusable pfebufs@34080000 [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000083200000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node pfebufs@83200000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x0000000083200000..0x00000000835dffff (3968 KiB) nomap non-reusable pfebufs@83200000 [ 0.000000] OF: reserved mem: 0x00000000835e0000..0x00000000835fffff (128 KiB) map non-reusable pfebufs@835e0000 [ 0.000000] OF: reserved mem: 0x0000000084000000..0x0000000084ffffff (16384 KiB) nomap non-reusable shm@84000000 [ 0.000000] OF: reserved mem: 0x00000000c0000000..0x00000000c03fffff (4096 KiB) nomap non-reusable shm@c0000000 [ 0.000000] OF: reserved mem: 0x00000000c0400000..0x00000000c07fffff (4096 KiB) nomap non-reusable shm@c0400000 [ 0.000000] OF: reserved mem: 0x00000000d0000000..0x00000000d000007f (0 KiB) nomap non-reusable shm@d0000000 [ 0.000000] OF: reserved mem: 0x00000000d0000080..0x00000000d00000ff (0 KiB) nomap non-reusable shm@d0000080 [ 0.000000] OF: reserved mem: 0x00000000ff600000..0x00000000ff7fffff (2048 KiB) nomap non-reusable atf@ff600000 [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x00000008dfffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080000000-0x00000000831fffff] [ 0.000000] node 0: [mem 0x0000000083200000-0x00000000835dffff] [ 0.000000] node 0: [mem 0x00000000835e0000-0x0000000083ffffff] [ 0.000000] node 0: [mem 0x0000000084000000-0x0000000084ffffff] [ 0.000000] node 0: [mem 0x0000000085000000-0x00000000bfffffff] [ 0.000000] node 0: [mem 0x00000000c0000000-0x00000000c07fffff] [ 0.000000] node 0: [mem 0x00000000c0800000-0x00000000cfffffff] [ 0.000000] node 0: [mem 0x00000000d0001000-0x00000000ff5fffff] [ 0.000000] node 0: [mem 0x00000000ff600000-0x00000000ff7fffff] [ 0.000000] node 0: [mem 0x00000000ff800000-0x00000000ffffffff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008dfffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008dfffffff] [ 0.000000] On node 0, zone DMA: 1 pages in unavailable ranges [ 0.000000] cma: Reserved 256 MiB at 0x00000000ef600000 on node -1 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.4 [ 0.000000] percpu: Embedded 20 pages/cpu s42112 r8192 d31616 u81920 [ 0.000000] pcpu-alloc: s42112 r8192 d31616 u81920 alloc=20*4096 [ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] CPU features: detected: NXP erratum ERR050481 (TLBI by VA handled incorrectly) [ 0.000000] CPU features: detected: ARM errata 1165522, 1319367, 1530923, or 1530924 [ 0.000000] alternatives: applying boot alternatives [ 0.000000] Kernel command line: console=ttyLF0,115200 root=/dev/ram rw earlycon [ 0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear) [ 0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 903167 [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000eb600000-0x00000000ef600000] (64MB) [ 0.000000] Memory: 3194416K/3670012K available (9856K kernel code, 686K rwdata, 3012K rodata, 1856K init, 245K bss, 213452K reserved, 262144K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU event tracing is enabled. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4. [ 0.000000] rcu: RCU priority boosting: priority 1 delay 500 ms. [ 0.000000] rcu: RCU_SOFTIRQ processing moved to rcuc kthreads. [ 0.000000] No expedited grace period (rcu_normal_after_boot). [ 0.000000] Trampoline variant of Tasks RCU enabled. [ 0.000000] Tracing variant of Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 100 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 544 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: MBI range [167:182] [ 0.000000] GICv3: Using MBI frame 0x0000000050800000 [ 0.000000] Root IRQ handler: gic_handle_irq [ 0.000000] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT_RT SMP [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.6.52-rt43-g1a29a32be610-dirty #1 [ 0.000000] Hardware name: s32g274 Platform (DT) [ 0.000000] pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.000000] pc : gic_iterate_rdists+0x4c/0x114 [ 0.000000] lr : gic_init_bases+0x198/0x664 [ 0.000000] sp : ffffffc080e83b80 [ 0.000000] x29: ffffffc080e83b80 x28: 0000000080ca6074 x27: 0000000000000000 [ 0.000000] x26: 0000000000000000 x25: ffffffc080e8c208 x24: 0000000000000018 [ 0.000000] x23: 000000000000ffe8 x22: 0000000000000000 x21: ffffffc08040ed84 [ 0.000000] x20: ffffffc0809f9b60 x19: ffffffc081000000 x18: 0000000000000030 [ 0.000000] x17: 6a20303031207369 x16: 2079616c65642074 x15: ffffffffffff1660 [ 0.000000] x14: 0000000000000000 x13: 7172695f656c646e x12: 61685f636967203a [ 0.000000] x11: ffffffffffff0000 x10: 000000000000000a x9 : ffffffc080e9aa78 [ 0.000000] x8 : 00000000fffff7ff x7 : ffffffc080ec6a78 x6 : 000000000000004d [ 0.000000] x5 : ffffff885f8479c8 x4 : 0000000000000000 x3 : 0000000000000000 [ 0.000000] x2 : 0000000000000000 x1 : ffffff88000030e0 x0 : ffffffc08100ffe8 [ 0.000000] Call trace: [ 0.000000] gic_iterate_rdists+0x4c/0x114 [ 0.000000] gic_init_bases+0x198/0x664 [ 0.000000] gic_of_init+0x2a8/0x308 [ 0.000000] of_irq_init+0x318/0x3a8 [ 0.000000] irqchip_init+0x18/0x24 [ 0.000000] init_IRQ+0xac/0xc0 [ 0.000000] start_kernel+0x24c/0x5f0 [ 0.000000] __primary_switched+0xb4/0xbc [ 0.000000] Code: d29ffd17 9b387eda f87a6833 8b170260 (b9400000) [ 0.000000] ---[ end trace 0000000000000000 ]--- [ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task! [ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Any input what can cause this issue ? Regards, Vishal Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to Hello, @vishalg  Thanks for your post. In common, such issues are caused by accessing the protect or not-mapped memory(like reserved one), may I know if you had modified the memory map of default BSP43? adding more reserved address range? Have you tested more addresses? are there any other ranges of address are valid for loading images? BR Chenyin
記事全体を表示
SAF FCCU 障害処理 R1、R2、R3 反応 こんにちは、チームの皆さん 概要: エラー処理用の eMCEM モジュールに取り組んでいます。したがって、SAF (eMCEM モジュール) の設計に従って、eMcem_InjectFault() によって NCF 障害がトリガーされると、アラーム ハンドラーが呼び出されます。 2 つのアラーム ハンドラーを呼び出すことができるようです。 1. eMcemUserAlarmHandler - 都合に応じて EMCEM_ERR_RECOVERED/EMCEM_ERR_NOT_RECOVERED をCAN返します。emcem_clearfault APIが最終的に呼び出されるのもわかります Harish_R_0-1754286287382.png EMCEM_ERR_RECOVERED を返しましたが、エラーが実際にはクリアされない場合はどうなるでしょうか。また、emcem_clearfault のみが障害のステータスをクリアします。どのように処理することが予想されますか? EMCEM_ERR_RECOVEREDが返された場合、その場合には NMI もトリガーされません。SO、そのCASE、NMI に何が必要でしょうか。NMIはどのように活用されますか? 2. eMcemDefaultAlarmHandler - この API を使用すると、同じエラーが返されるため、常に回復されていないステータスが返されます。そして再びISRをトリガーします。どのように対処すればよいでしょうか? DTC を設定したい場合、回復不可能な障害に対して DTC をどのような条件で設定すればよいですか。 誰かが情報を教えてくれたら。それは役に立つでしょう。 BR、 ハリッシュR Re: SAF FCCU Fault handling R1, R2 and R3 Reaction こんにちは、 @Harish_R ご投稿ありがとうございます。 1.eMCEM ドライバは、アラーム ハンドラー関数を定義することによって ALARM イベント情報 を処理する機能を提供します。ユーザーは、あらゆる FCCU 障害に対して独自の処理機能を定義できます。1 つのハンドラー関数を複数の障害に使用CAN。SW回復可能として設定された障害はeMCEMによって自動的にクリアされます。 ハンドラーがEMCEM_ERR_RECOVEREDを返した場合のドライバー。 場合によっては、FCCU によってキャプチャされた障害が特定の IP の実際の機能に影響を与えない可能性があり、ハンドラーが障害をクリアした後、システムは問題なく実行を継続する場合があります。場合によっては、障害をクリアするだけでは不十分で、エラーが存在し、クリア後に対応する障害が設定されることがあります。その場合、実際に問題を修正するためのコードを実装するのはユーザーの責任です。 2. デフォルトの処理関数eMcemDefaultAlarmHandlerが定義されており、ユーザーが自身で障害を処理したくないCASEにEMCEM_ERR_NOT_RECOVEREDを返します。このCASE、障害はクリアされません。SO、ユーザーが障害を処理したくないCASEに使用されます。その結果、障害は「回復しない」状態になる可能性があります。 3. ユーザーは、独自のデザイン/ユースCASEに従ってDTCを定義するときに、どの種類の障害を回復不能として扱うことができるかを決定できます。 BR チェイン
記事全体を表示