Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
S32K3 RTD FlexCAN ドライバは、デフォルトでメモリ ECC を無効にします。 こんにちは、チームの皆さん 最近、当社のお客様は、S32K3 RTD ドライバが FlexCAN のメモリ ECC 機能を無効にしてしまうことを発見しました。この ECC 機能はデフォルトで有効になっています。 お客様の Xingyu は、一部の CAN MB が永久にスタックし、特定の ID を受信できなくなるという問題を抱えています。根本的な原因は、一部の CAN MB に ECC エラーがあり、この MB の ID フィールドが変更されていることであることがわかりました。このメモリ修正機能を有効にすると、お客様の問題は解消されます。 CAN RTD の初期化でこの機能が無効になっているのはなぜでしょうか? この質問を優先していただければ幸いです。お客様は量産現場にいらっしゃるので、説明を求めています。 ありがとう、そしてよろしく。 リチャード 優先度: 高 RTD Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@DanNguyenDuy 、 ご返信ありがとうございます。さらに詳しく説明します。 1. お客様は古い RTD バージョン 2.0.0 を使用しています。最新の RTD バージョンでもこのメモリ修正が無効になっているようです。 2. CAN レジスタ マップは 0x40304000 から始まるので、以下を参照してください。   この機能を有効にすると、通常の送受信プロセスにどのような影響が及ぶのでしょうか? お客様の製品20,000点を超える中で1つの製品にランダムな問題が発生しており、当社の品質チームが対応しています。お客様がこのメモリ修正機能を有効にすると、CAN MB ECC の問題が解決され、この機能を有効にした後は正常に送受信できるようになりました。 BR リチャード Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@RichardLiさん、 以前は、FlexCan の ECC がデフォルトで有効になっていると、FlexCan ドライバで ECC の問題が発生し、電源投入リセット後にデータを正常に送受信できませんでした。さらに、RTD ドライバは FlexCan の ECC をサポートしていませんでした。SO、この機能はデフォルトで無効になっています。 お客様の状況について、関連情報を教えていただけますでしょうか? 1. どの RTD パッケージ バージョンを使用しましたか? 2. 問題が発生したときの FlexCan レジスタの値は何でしたか? よろしくお願いいたします。 ダン Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@RichardLiさん、 1.私は RTD チームに問い合わせチケット ( ARTDCC3-368 ) を発行し、説明を求めました。 2. 添付された画像に基づいて、ESR1[BIT0ERR]の値が1であることがわかりました。この値エラー ビットは、CANトランシーバ間の物理的な接続、またはノード間の CAN ビットのタイミングが同じでないことが原因である可能性があります。設定ファイル(.xdm または .arxml)をもっと送っていただけますか?ファイル) とオフセット 0 から C14h までのレジスタの値は何ですか? よろしくお願いいたします。 ダン Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@DanNguyenDuy サポートありがとうございます。RTD チームからのフィードバックをお待ちしています。 ここでは、お客様とのオンライン デバッグ時に取得したレジスタの一部を示します。ほとんどのレジスタが表示されています。xdm 構成ファイルについては、お客様に連絡して、お客様の会社のポリシーに従って提供できるかどうかを確認します。 BR リチャード Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@LiekLiさん、 SW チームがさらに分析できるように、お客様に xdm ファイルを提供するよう依頼することは可能でしょうか?それとも、このチケットを閉じるには RTD チームからの説明だけが必要なのでしょうか? BR リチャード Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは、リチャード。 RTD がこの機能を無効にする理由を説明するだけで十分です。 Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@DanNguyenDuy RTD チームから何かアップデートはありますか?ありがとう! BR リチャード Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@RichardLiさん、 彼らの返答は次のとおりです。 ECC がデフォルトで無効になっている理由についてですが、RTD コードベースを作成した当初から、ECC は従来の MCAL コードベースから継承されていたため、現在まで残っている可能性があります。専用の Errata に関する特定のコードを特定するために、すべてのコードを確認するのは非常に困難です。 さらに、S32K3 では、低レベルの FlexCAN ドライバで ECC のサポートを実装しました。 ARTD-53030 [CAN] S32K3 プラットフォームでの RAM ECC 操作のサポートを実装 - NXP Jira" よろしくお願いいたします。 ダン Re: S32K3 RTD FlexCAN driver disable the memory ECC by default. こんにちは@DanNguyenDuy 、 早速のフィードバックをありがとうございます。この説明をお客様にお渡しして、さらにご質問があるかどうかを確認します。 よろしくお願いいたします。 リチャード。
View full article
EB activation failed 您好, 我试图在 AUTOSAR 中使用 EBtresos,但未能激活。 B25C-AEBB-4319-BAB1 (valid until 06/30/2026) ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数量超过允许的最大数量 (0)。 与 FlexNet Operations Server 的连接失败。 因此,我需要另一个激活代码才能使用 EBtresos。 Re: EB activation failed 非常感谢 !如果 EB 向我们提供新的代码,我的代码是否会自动刷新,不再过期?如果有任何留言,请立即通知我,再次感谢。 Re: EB activation failed 你好 我试图在 AUTOSAR 中使用 EBtresos,但激活失败。 B25C-AEBB-4319-BAB1(有效期至 2026 年 06 月 30 日) ERROR: flxActAppActivationSend (50040,41147,10248) 指定的数字超过了允许的最大值 (0)。 连接 FlexNet Operations Server 失败。 因此,我需要另一个激活码才能使用 EBtresos。 原因是该激活码没有免费许可证。您可以在恩智浦 SW 账户的 tresos 下载中找到最新代码。 如果代码用完了,通常需要几天时间,直到 EB 向我们提供新的代码。 顺祝商祺! Peter Re: EB activation failed 你好 如果您需要永久许可证,我建议您与 EB 联系。 我们获得的许可证是评估许可证,试用期结束后总会过期。 没有自动通知。新许可证一旦可用,您就可以在 SW 账户中找到: petervlna_0-1764756358013.png 顺祝商祺! Peter Re: EB activation failed 您好: 我使用最新的激活码6A94-974F-C73A-28C1,目前也是授权数用完了,目前有没有其他新的激活码了? Re: EB activation failed 您的问题解决了吗? License Error.jpg
View full article
IMX8MQ Camera mipi Question hi , I'm developing camera mipi driver on IMX8MQ-evk board, my camera output data is RAW-10bit. When I refer to ov5640 driver code , I encountered below issues. 1. in 'drivers/media/platform//mxc/capture/mx6s_capture.c' , there are some registers as below, but I can't find any clue about below registers in Reference Manual .(from review code, I know these register's base address is 0x0x30A90000) #define CSI_CSICR1 0x0 #define CSI_CSICR2 0x4 #define CSI_CSICR3 0x8 #define CSI_STATFIFO 0xC #define CSI_CSIRXFIFO 0x10 #define CSI_CSIRXCNT 0x14 #define CSI_CSISR 0x18 #define CSI_CSIDBG 0x1C #define CSI_CSIDMASA_STATFIFO 0x20 #define CSI_CSIDMATS_STATFIFO 0x24 #define CSI_CSIDMASA_FB1 0x28 #define CSI_CSIDMASA_FB2 0x2C #define CSI_CSIFBUF_PARA 0x30 #define CSI_CSIIMAG_PARA 0x34 #define CSI_CSICR18 0x48 #define CSI_CSICR19 0x4c 2. same question as upon , can't find out any introducation about below registers(0x180~0x198) in Reference Manual.(base address is 0x30A70000) in "driver/media/platform/imx8/mxc-mipi-csi2_yav.c" ,  printk("MIPI CSI2 HC IGNORE_VC 0x180 = 0x%x\n",          readl(csi2dev->base_regs + 0x180)); printk("MIPI CSI2 HC VID_VC 0x184 = 0x%x\n",                   readl(csi2dev->base_regs + 0x184)); printk("MIPI CSI2 HC FIFO_SEND_LEVEL 0x188 = 0x%x\n", readl(csi2dev->base_regs + 0x188)); printk("MIPI CSI2 HC VID_VSYNC 0x18C = 0x%x\n", r         eadl(csi2dev->base_regs + 0x18C)); printk("MIPI CSI2 HC VID_SYNC_FP 0x190 = 0x%x\n",       readl(csi2dev->base_regs + 0x190)); printk("MIPI CSI2 HC VID_HSYNC 0x194 = 0x%x\n",          readl(csi2dev->base_regs + 0x194)); printk("MIPI CSI2 HC VID_HSYNC_BP 0x198 = 0x%x\n",    readl(csi2dev->base_regs + 0x198)); 3. in Reference Manual, mentions some "Data Type" as below, " 13.6.3.6.4  RAW10 (Data Type = 0x2B) " how do I set value 0x2B to Data Type? My Reference Manual version is : name : i.MX 8M Dual/8M QuadLite/8M Quad Applications Processors Reference Manual Document Number: IMX8MDQLQRM Rev. 0, 01/2018 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: IMX8MQ Camera mipi Question I’ve seen this exact behavior on multiple i.MX8MQ MIPI-CSI bring-ups — the driver usually looks fine, but the failure happens due to subtle issues in the CSI-2 lane mapping, data type, or the clock tree when the display/HDMI side comes up. On i.MX8MQ, the CSI-2 receiver is extremely strict about: Correct data-type matching (RAW10 vs RAW8 vs YUV422) Correct lane polarity + mapping Stable sensor clock once the DISP/HDMI PLLs switch Proper pinctrl (many boards accidentally leave a data lane in GPIO mode) If any one of these mismatches happen, the CSIS block stays “streaming” but silently drops all packets — looks very similar to what you described. For reference, here are a few upstream MIPI/CSI camera drivers we worked on that show the exact DT patterns and CSI setup sequences that typically solve this on i.MX8-class SoCs: Example of a MIPI sensor driver in Linux-next https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=fa9e6df636fb8b3b27570f38c53640c9e2b02f79 Another sensor bring-up in Zephyr (useful for comparing the MIPI/clock sequences) https://github.com/zephyrproject-rtos/zephyr/commit/c784481ca039ccd606a192ee07bc83f6b0117e59 Media pipeline update example (CSI routing + format negotiation) https://web.git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=9d382f6a9978916317b3fb4ef07b5fec684adde0 And if you're designing the full camera pipeline (sensor → MIPI → CSI-2 → ISP/display), this deep-dive might help: https://siliconsignals.io/blog/v4l2-camera-stack-step-by-step-guide-for-custom-devices/ https://www.kernel.org/doc/html/v4.9/media/kapi/v4l2-intro.html Re: IMX8MQ Camera mipi Question Hi [email protected]‌, Can you share some details on what changes you need to do to resolve these issue? For me 4-bits are missing on every pixel. I have started a thread for my issue. Please have a look. https://community.nxp.com/message/1195672  Thanks in advance, Wasim  Re: IMX8MQ Camera mipi Question Hi, I'm seeing at exact same issue. Have anyone resolved this issue receiving 10 bit? Regards, James Re: IMX8MQ Camera mipi Question Hi [email protected]‌, Could you share some information about how you solved the issue? I ask this as we are facing a similar issue and it would nice to know a little more information about how you solved your issue. Was it a problem in the platform side or in the sensor side? Thanks in advance, Sivaraam Re: IMX8MQ Camera mipi Question Hi Lenka, Thanks for your reply. I have resolved this issue.  one more question puzzles me , I always think MIPI CSI driver should receive 1280000 bytes (1280*800*10bit / 8 ) per one frame, but actually it's 1024000 bytes(1280x800). I don't know the reason. According to RM(imx6) as below, for RAW10 data size should be (n * pixel * 5 / 4 ) bytes. Re: IMX8MQ Camera mipi Question Hi Yang, I would not recommend you to change MIPI PHY clock in the device tree. You wrote that your camera is 1280x800, 60fps, Gray 10bit. 2-lane, I suppose that this config is not supported in the BSP directly. You also wrote that after some time the image is dislocated. From my experiences this happens if camera registers are not set correctly for the given resolution, if the camera clock is not stable. Neverthless you don't need to use iMX6 documents/sources for iMX8 family mcu. Could you possibly provide the register settings in range of 0x3800 ~ 0x3815 and 0x3035 ~ 0x3037? I also have problem to set 720p resolution at 60fps. I will try to contact the camera owner to ask for help with this type of configuration. Kind regards, Lenka Re: IMX8MQ Camera mipi Question Hi Lenka, Thanks for your help. Currently, I can receive one complete image, but the image isn't stable. after 1 minute, the image will be dislocation. The camera sensor's vendor  suggested that modify MIPI-CSI pixel clock, as you know, there are not useful information about MIPI CSI in RM. I found some documents on NXP website as below, but I'm still confused cause it's for iMX6.  https://www.nxp.com/files-static/32bit/doc/app_note/AN5305.pdf According this document,  I try to modify 'IMX8MQ_CLK_CSI1_PHY_REF_DIV' to  <178560000>, but verify to linux system file that's not match. My Question is ,  1. 'IMX8MQ_CLK_CSI1_PHY_REF_DIV'  is MIPI clock , right ? 2  'IMX8MQ_CLK_CSI1_CORE_DIV' and 'IMX8MQ_CLK_CSI1_ESC_DIV' , what’s purpose ? 3. How to modify  'IMX8MQ_CLK_CSI1_PHY_REF_DIV' value to exactly what's I want ? my camera is 1280x800, 60fps, Gray 10bit. 2-lane And I comments 'base addr switch' functionality, otherwise kernel will print "base address switching Change Err". I'm not sure this is necessary behavior. Thanks. Yang Qing Re: IMX8MQ Camera mipi Question Hi Yang, 1. These registers do not match with any registers implemented on iMX8. 2. The registers are not supported on iMX8 yet. 3. There is a register Data type disable (offset 0x38) for input data type reformating but you can ignore it. If you set correctly camera and ISI register to target data type then it should work either. If you have other questions, feel free to ask. Good luck, Lenka Re: IMX8MQ Camera mipi Question Hi Yang for 1. register descriptions one can look RM for imx6sll, as described in discussion on iMX8M MIPI-CSI 4-lane configuration  For other questions (not described in reference manual) may be recommended to apply to nxp local marketing office. Note, there will be new reference manual revisions with updated information. Best regards igor ----------------------------------------------------------------------------------------------------------------------- Note: If this post answers your question, please click the Correct Answer button. Thank you! -----------------------------------------------------------------------------------------------------------------------
View full article
S32K3 SAF - sCheck_ExecuteStartupTests が HardFault Execption まで実行される こんにちは、サポート お客様から、起動時に sCheck_ExecuteStartupTests() が呼び出され、その後 ECC テストを実行するとハード フォールト例外にジャンプするという問題があるという報告がありました。 この点の確認をお手伝いいただけますでしょうか? MCU: S32K314 SAFETY_SW Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 、 各 sCheck テストでは、sCheck UM の章「L1 CACHE ECC テスト」に記載されているすべての条件に従う必要があります。 このCASE、メモリ セクションの配置が間違っており、MPU のセットアップが適切でない可能性が高く、これはこのテストを適切に実行するために重要です。 詳細については、sCheck UMの章「メモリ割り当て(キャッシュ可能またはキャッシュ不可能なMPU属性が正しいセクションに配置することが重要です)」」を参照してください。 また、SAF デモの例では、リンカー ファイルと MPU の設定を調べることもできます。 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 顧客は NXP の例で sCheck_ExecuteRuntimeTests() を sCheck_ExecuteStartupTests() に置き換えましたが、同様のエラーが発生しました。 これをどこでCAN確認できるかを正確に教えていただけますか? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim いいえ、sCheck スタートアップ テストをランタイム テスト専用のループに置き換えて使用することはできません。 起動テストは、アプリケーションの起動プロセスの最初に 1 回だけ実行されることになっています。 さらに、K314 は SAF デモ例ではサポートされていないため、一部のリンカー ファイルを再利用した場合、K314 デバイスのメモリ マップに従わなくなる可能性が高く、更新が必要になります。 SAF は統合が容易ではなく、マニュアルをよく読んでソフトウェアのセーフティの概念を理解する必要があります。 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 お客様からのフィードバック: ただし、現在、ECC チェックに関連する問題が発生しています。お気づきかもしれませんが、NXP の例でも同様の ECC チェックの問題が発生します。 SAF パッケージの統合は非常に困難であるため、このマターについては NXP の専門家からのサポートをいただければ幸いです。 ECC チェックを適切に統合するために、従って検証する必要がある特定のリンカー関連のポイントまたは要件についてアドバイスをいただけますか? ご協力をよろしくお願いいたします。 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、マーカス。 すべての情報は sCheck UM から明らかであるはずです。少なくとも私は通常このような疑問を抱かないので、SAF チームは sCheck UM がこのマターに関して明確であると想定しました。 改善できるよう、sCheck UM で具体的に何が不明なのかをお客様にお尋ねいただけますか? ありがとう、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 お客様は*(.ramcode_no_cacheable)をint_sram_no_cacheableからint_sramに移動したところ、正常に動作しました。ご意見がございましたらお気軽にお寄せください。 によると 表55. sCheckモジュールに存在するMemMapセクション、 次のセクションは特定のフラッシュ領域に配置する必要があります。 s32_saf_const_flash_0 → コードフラッシュメモリ0 s32_saf_const_flash_1 → コードフラッシュメモリ1 s32_saf_const_flash_2 → コードフラッシュメモリ2 s32_saf_const_flash_3 → コードフラッシュメモリ3 しかし、私が使用しているシステムでは A/BスワップSO、いつでも フラッシュ0 そして フラッシュ1 アプリケーションによってアクティブ/使用されています。 配置 s32_saf_const_flash_2 そして s32_saf_const_flash_3 残りのフラッシュ ブロックでは、未使用のフラッシュ領域 (他のバンクまたは OTA アップデート用に予約されている領域など) に干渉する可能性があります。 私の質問は次のとおりです: Flash 0 と Flash 1 のみでテストを実行するように sCheck を構成する方法はありますか? または、 非アクティブなバンクの内容に影響を与えずに、4つのフラッシュブロック(フラッシュ0~3)すべてをテストする安全な方法はありますか? A/Bスワップで使用されますか? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 前回の投稿の質問に加えて、お客様は、 sCheck_ExecuteStartupTestsとsCheck_ExecuteRuntimeTestsを実行した後、システムが一貫して同じECC 関連エラーのセットを報告することを共有しました。 SCHECK_ERR_DCACHE_ECC_CM7_0 SCHECK_ERR_ICACHE_ECC_CM7_0 SCHECK_ERR_ITCM_M7_0_ECC SCHECK_ERR_DTCM_M7_0_ECC これらのエラーは、すべてのテスト実行中に繰り返し継続的に発生します。 この動作の根本原因の調査と特定についてサポートいただけますでしょうか? それではよろしくお願いいたします。 マーカス Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 、 *(.ramcode_no_cacheable) を int_sram_no_cacheable から int_sram に移動すると機能したのは、おそらく偶然でしょう。 ここで、お客様が HFNMIENA = 0 を設定している場合、例外がトリガーされたときに問題が発生する可能性があると思われます。 MPU_CTRL.HFNMIENAの値を確認してください。 ゼロの場合、今後の 1.0.6 リリースで次の修正が行われます。 [ASFT-19327] [sCheck] Arm M7 HFNMIA はサポートされていません - NXP JIRA sCheck フラッシュ テストは Flash_0 と Flash_1 だけに縮小することはできませんが、今後の 1.0.6 リリースでは、特定のフラッシュ メモリ セクションをリンカー ファイルに配置する必要がなくなり、アドレスの内容が変更されない構成済みのフラッシュ アドレスが使用されるように変更される予定です。これにより、A/B スワップのお客様の問題も解決される可能性があります。 https://jira.sw.nxp.com/browse/ASFT-19738 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 共通の根本原因があると思います。 メモリ セクションは、キャッシュ可能/キャッシュ不可能な MPU 属性を使用して正しく配置する必要があり、前回の投稿で説明した HFNMIENA ビットも問題を引き起こす可能性があります。 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 お客様は移転を試みている *(.ramcode_no_cacheable) に int_sram_no_cacheable の代わりに int_sram また、 HFNMIENA = 0 に設定されています。 さらに、MPU は、キャッシュ不可能な RAM 領域からのコード実行を許可するように適切に構成されています。 さらに調査を進めると、 sCheck_Tcm_RunEccTest 、関数  sCheck_Tcm_MemTestEccCorrError そして sCheck_Tcm_MemTestUncorrError 実行されます。 これらの関数は両方とも sCheck_ErrRead (pParams、&result)。 しかし、 sCheck_Tcm_MemTestEccCorrError 正常に完了しました。 sCheck_Tcm_MemTestUncorrError 呼び出し時にHardFaultをトリガーします sCheck_ErrRead(pParams, &result) (添付画像のポイント1)そしてその後システムは BusFaultハンドラ (添付画像のポイント2)。 この点の調査にご協力いただけませんか? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 、 申し訳ありませんが、私は間違っていました。お持ちの SAF リリースでの正しい設定は、例外で MPU 設定が変更されないように HFNMIENA = 1 です。これにより、後でフラッシュされるキャッシュに何らかの変更が生じる可能性があります。これは、適切な反応をテストするために例外を使用しているため、TCM の修正可能部分は成功し、修正不可能部分は失敗している理由を説明しています。 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 お客様からのフィードバック: >>>>>>>> HFNMIENA = 1を設定した後、 sCheck_ExecuteStartupTests()が正しく動作することを確認しました。この時点で、 ECC 関連のエラーは見られなくなりました。この動作をさらに検証するために、追加のストレス テストを実行します。 ただし、 sCheck_ExecuteRuntimeTests()が呼び出され、その後sCheck_Tcm_MemTestUncorrError()が呼び出されると、システムはINVSTATE (無効な状態) フラグが設定されたUsageFault 例外をトリガーします。 この動作を引き起こす可能性のある、 sCheck_ExecuteStartupTests()とsCheck_ExecuteRuntimeTests()の間のデザインの違いや特定の使用条件があるかどうかを教えてください。 よろしくお願いいたします。 マーカス Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 、 FPU が有効になっている場合、潜在的な問題を示している可能性があり、さらに調査する必要があります。 FPU を無効にして再度テストを実行していただけますか? 結果はどうなりましたか? FPU を有効にすると、ウォッチ ウィンドウ内の例外トラック内で次の変数を実行できます。 sCheck_ErrRead_ExceptionContext.bAbortFlag sCheck_DetectedFaults[0] スクリーンショットをもう一度貼り付けますか? FCCU NCF_2 チャネルに設定された反応は何ですか? 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 要求された情報はここにあります: ポイント1: FPUを無効にする - 同じエラー。 ポイント2: FPUを有効にする ポイント3:FCCU NCF_2反応 よろしくお願いいたします。 マーカス Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、マーカス。 最新のスクリーンショットでは、使用法の障害ではなく、メモリ管理の障害が生成されていることがわかります (元の投稿と同じ)。SO、私たちが直面している例外がどれであるかを明確にする必要があると思います。 MPU 構成を確認/共有してください。 例外の原因が sCheck_Lib_ARMv7M.c の「LDRD R0,R1,[R1]\n」命令なのか、それとも他の命令なのか確認できますか? 敬具、 ラドスラフ Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは、ラドスラフさん。 添付されているのは、お客様の MPU 構成とリンカー ファイルです。彼は私たちにそれらをレビューしてもらいたいと考えています。 よろしくお願いいたします。 マーカス Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption こんにちは@marcuslim 、 RTD の例 SystemInit() から MPU 構成を再利用していることがわかります。 これは RTD からの単なるスタブであり、検証されていないため、SAF だけでなく一部の RTD ドライバにも不十分である可能性があることに注意してください。 同様に、リンカー ファイルについても、追加の SAF および SCST メモリ セクションを持つ RTD リンカー ファイルからの起源を確認できます。 MPU 構成については、RTD プラットフォーム プラグインを使用して MPU を構成することを強くお勧めします。 SAF デモの例では、K344 の MPU 構成の例も含まれています (K314 用ではありませんが、TCM の正しいメモリ サイズを変更するだけです)。 ただし、これは SAF デモ セットアップ用の単なるサンプル コード (スタブ) であり、検証済みの成果物ではありません。 AI によると、MPU 構成は次のセットアップを表すはずです。 地域 RBARアドレス サイズ タイプ/キャッシュポリシー 共有可能 アクセス 備考 0 0x00000000 アドレス空間全体をカバーします (RASR = 0x1004003F ) 強く順序付けされ、キャッシュなし はい アクセス不可 すべてをブロックする背景領域 1 __INT_ITCM_START リンカーから 通常、キャッシュなし なし RW/RW CM7用ITCM 2 __ROM_CODE_START リンカーから ノーマル、WB/WA(内側と外側) なし RO/RO メインプログラムフラッシュ 3 __ROM_DATA_START リンカーから 正常、WB/WA はい RO/RO データ・フラッシュ 4 0x1B000000 8 KB ( 0x160B0019 ) 正常、WB/WA はい RO/RO UTESTエリア 5 __INT_DTCM_START リンカーから 通常、キャッシュなし なし RW/RW CM7用DTCM 6 __INT_SRAM_START リンカーからのサイズ ( __RAM_CACHEABLE_SIZE ) 正常、WB/WA なし RW/RW キャッシュ可能なSRAM(サブ領域6と7は無効) 7 __RAM_NO_CACHEABLE_START リンカーから 通常、キャッシュなし はい RW/RW キャッシュ不可能なRAM領域 8 __RAM_SHAREABLE_START リンカーから 通常、キャッシュなし はい RW/RW 共有可能なRAM 9 0x40000000 6MB 強く順序付けされ、キャッシュなし はい RW/RW AIPS0~2ペリフェラル空間(サブ領域6/7は無効) 10 0x40600000 S32K314では無効 — — — AIPS3; S32K39x でのみ有効 11 0x67000000 128MB 強く命令された はい RW/RW QSPI RX 12 0x68000000 128MB 正常、WB/WA なし RW/RW QSPI AHBマップ領域 13 0xE0000000 デフォルトのARM PPBサイズ 強く命令された はい RW/RW プライベートペリフェラルバス(SCB、NVICなど) 14 __ROM_CODE_START + 0x400000 S32K314の場合は0 — — — 追加プログラムフラッシュ(他の派生モデルのみ有効) 15 0x44000000 S32K314の場合は0 — — — ACE領域はS32K388でのみアクティブ これは、K344 の SAF デモ例の MPU 構成です。 これら 2 つの MPU 構成とリンカー ファイルを簡単に比較すると、次のことがわかります。 - これらのメモリ セクションの配置が間違っています: *(.s32_saf_const_flash_1) *(.s32_saf_const_flash_2) *(.s32_saf_const_flash_3) *(.s32_saf_const_flash_4) *(.s32_saf_const_flash_5) - キャッシュ不可能なSRAMの実行可能属性が見つかりませんが、これはsCheckでは必須ではありません。おそらくSAFのMPU設定例の冗長属性です。 - お客様が OS を実行していることを考慮すると、OS とそのアプリケーションに必要な特定の MPU 設定とメモリ セクションがいくつかあると予想されます (これは単なる推測であり、これがいくつかの問題の根本原因になる可能性があると言っているわけではありません) いずれにせよ、お客様は適切な MPU およびリンカー ファイルの設定について、SAF ユーザー マニュアルと RTD マニュアルの「メモリ割り当て」の章に従う必要があります。NXP の例からのスタブを再利用することは良い方法ではありません。 また、特に sCheck テスト中に OS が実行される場合は、次の sCheck の章「 BSW スケジューラで定義される排他領域」も要求されます。同様の排他領域は、eMcem および RTD ドライバにもあります。 敬具、 ラドスラフ
View full article
s32k144 用 MBD ツールボックスの FreeMaster 構成 こんにちは! S32K144用のMBD ToolboxのFreeMASTER設定でボーレートをCAN変更できますか?1Mbpsにしか設定できないようですが? cavalier_0-1764577834834.png
View full article
HSE Firmware Install Hi, I want to try to use HSE. I download HSE_DEMOAPP_S32K3XX_0_2_6_0 HSE_FW_S32K3XX_0_2_6_0, HSE_FW_S32K312_0_2_40_0. ENV: S32DS IDE 3.5, RTD 4.0.0, HSE_DEMOAPP_S32K3XX_0_2_6_0 HSE_FW_S32K3XX_0_2_6_0, HSE_FW_S32K312_0_2_40_0. I have some problem: from readme.pdf It says only trace32 is supported, how to use JLINK SWD to install HSE FW? at NXP website, I do not find  AN744810 “HSE FW install for S32K3xx” at secure files section. how to write HSE feature flag to UTEST at 0x1B000000? what is the usage of Demoapp? it is just for install HSE FW? If I want to use EB29 + IDE3.5+ RTD4.0 for application project how to use HSE module?  Re: HSE Firmware Install #Hello,@VaneB  I am working on the S32K3X4EVB-T172 board and trying to install the HSE firmware  The HSE firmware flashing is successful, but my application always stops at if (FALSE == checkHseFwFeatureFlagEnabled()) { /* Stuck here */ } So HSE FW initialization does not proceed. I checked the UTEST region (0x1B000080), and I am getting the value 0xffffffff please review out project and image and helps us proceed with this  Thank you  Re: HSE Firmware Install Hi @BigSun  The HSE FW installation steps are the same for all S32K3 variants. So the code for S32K344 can be ported to S32K312.  Regarding the UTEST sector, this is an OTP (One Time Programmable). This causes the erase operations not to be allowed. You can only append new data or configuration and read data. The process to write data in the UTEST Sector is the same process used to program data in other blocks. The unlocking process is also the same but with the difference that the UTEST sector has its own register PFCBLKU_SPELOCK[SLCK] to lock or unlock the sector from program operations. Unfortunately, as all the documentation of the HSE is under NDA (Non-Disclosure Agreement) the information is not public and we can not share it.  If you have never accessed the secure files follow the guide below. NXP SECURE ACCESS RIGHTS FIRST-TIME USER REGISTRATION GUIDE Re: HSE Firmware Install Hi, the S32K3_HSE_DemoExamples_1_0_0 mentioned above only support S32K344, but now I use S32K312 and need to debug with JLINK SWD. for the HSE FW install, I do not know how to write HSE feature flag with JLINK now. for HSE install manual is secure file , now I have no access permission. I have to ask questions in this community. Re: HSE Firmware Install Hi @BigSun  The available HSE examples are provided with the HSE Demo App for Lauterbach TRACE32 and S32K3 MCUs for General Purpose HSE Demo Examples for PEMicro. These packages offer different use-case scenarios and examples to showcase the capabilities of the HSE FW in various devices. The application note: HSE FW install for S32K3xx can be downloaded from S32K3 Microcontrollers for Automotive General Purpose and found in Documentation > Secure Files (under NDA (Non-Disclosure Agreement)). Also, you can find an S32K3xx HSE with RTD Training.  Additionally, refer to the available S32K3_M27x CRYPTO_43_HSE Driver examples provided with the RTDs, and the USER Manual and Integration manual that can be found in the file installed by the RTD.exe, for example, C:\NXP\SW32K3_S32M27x_RTD_R21-11_4.0.0_P12\eclipse\plugins\Crypto_43_HSE_TS_T40D34M40I0R0\doc. B.R. VaneB
View full article
S32K388CVB-Q289 驱动 PTC21 亲爱的团队 我正在使用 S32K388CVB-Q289,并启用了 FlexCAN_0 和 TJA1153 CAN0。为了测试目的,我在物理总线上连接了第二个节点。 但 FlexCAN_0 在传输时会出现 Ack 错误 AhmadKhalil_0-1764329071712.png 当我仔细检查 TJA1153 收发器是否启用时,我测量了 J95 的 5 号引脚,但读数为 ~2 伏。当我在 0 和 1 之间更改 GPDO85 寄存器时,该引脚上读取的电压不受影响。 AhmadKhalil_1-1764329191048.png 虽然我可以看到 GPDO85 寄存器中的引脚设置为高电平,而且 MSCR85 中的输出驱动器已启用 AhmadKhalil_2-1764329282677.png AhmadKhalil_3-1764329341274.png 配置: AhmadKhalil_4-1764329501186.png AhmadKhalil_5-1764329565448.png AhmadKhalil_6-1764329609295.png Re: S32K388CVB-Q289 Driving PTC21 您好, 要检查引脚电平,只需移除 J95.5-6 跳线并检查 MCU (5) 和 TJA1153 (6) 侧。 注意 TJA1153 的 VIO 通过 J804 连接至 VDD_HV_B_PERH(VDD_HV_B 3.3V),而所用 MCU 引脚则连接至 VDD_HV_A(5V)。 除非用户想在 TJA1153 模式之间切换,否则无需驱动 EN 引脚。EN 和 STB_N 均通过外部电阻上拉至 VIO。如果设备处于 Vanilla 状态,STB_N 应由 MCU 调低,以允许本地配置。在配置 TJA1153 结束时,STB 会因 EN、STB_N 为高电平而返回正常模式。 如果您在总线上看到消息,但不是 ACK,则很可能是由于两个节点之间的 CAN 位时序不一致所致。 总之,S32K388EVB 的现成示例已发布在 https://community.nxp.com/t5/S32K/Need-MCAL-working-CAN-Configuration-for-S32K388-EVB-bench/m-p/1923345/highlight/true#M38660上。   BR, Petr Re: S32K388CVB-Q289 Driving PTC21 感谢您的回复。 现在电压等级似乎不错。EN 和 nSTB 变为高电平。我还是会出现 Ack 错误,我的测试测量工具中总线上什么也没显示。 我的收发器是否可能处于 Vanilla 状态,因此在我配置一次之前无法运行? 我阅读了示例,但对于我目前的设置来说,从测试工具发送 CAN 信息比将收发器相互连接要简单得多。你能否和我分享一下初始化顺序,对于只发送和接收(无需网络安全要求)的基本配置,我应该通过 CAN 发送什么? Re: S32K388CVB-Q289 Driving PTC21 您好, 默认情况下,设备处于 Vanilla 状态,因此必须从主机或远程进行配置。配置完成后,状态可以更改,但在示例中通常保持香草状态,因此每次开机后都需要启动。 如果发布的示例在板上的 FlexCAN 模块之间运行,则仅将一个模块连接到 CAN 工具,它也应该可以正常工作。在该示例中,正在传输的 ID 被添加到 CAN0 收发器的 通过列表中 ,其他配置保持默认。 您可以参考以下在 IP 级别完成的示例,了解另一个初始化序列。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K358-FlexCAN-TXRX-ISR-S32DS35-RTD400-500/ta-p/1981987 它希望收发器也处于普通状态,并设置收发器的通行证清单将通过所有 STD 和分机 ID,并且 不会屏蔽来自总线的任何消息。最后退出配置模式,既不写入非易失性存储器,也不锁定收发器(保留 Vanilla)。 BR, Petr
View full article
S32K3xx NXP RTOS for RTD 7.0.0 Hi team, I see that S32K3xx NXP RTOS version 0.4.3 is officially supported with SW32K3_S32M27x_RTD_R21-11_5.0.0_D2410. Since then, newer RTD releases (6.0.0 and 7.0.0) have been introduced. Are these RTD versions compatible with NXP RTOS v0.4.3? If not, when can we expect a new NXP RTOS release that is officially compatible with RTD 7.0.0? Thank you, BR, Daniel RTD RTOS Re: S32K3xx NXP RTOS for RTD 7.0.0 Hi team, The customer would appreciate a response by tomorrow. Can you please comment on that? Thank you Re: S32K3xx NXP RTOS for RTD 7.0.0 Hi Daniel,  Last release for NXP RTOS and K3xx devices was done in May 2025 and it is aligned with  RTD 6.0.0 RTM ( this is available already and tested by Template team ). Teoretical next release planned is November 2026 but most probably this will be dropped due to PL corridors. NXP RTOS for K3xx devices was Demo , just for enablement so this has low priority. If there is a client to request this it has to be discussed with the PL. 
View full article
RFID Discover上でのMifare Desfire EV3ハンズオン 多くのお客様から、日常業務の中でMifare Desfire EV3の開発方法についてよく質問をいただきます。確かにMifare Desfire EV3は、セキュリティ機能が強化された製品で、関連するアプリケーション資料も複雑なため、お客様にとって使いにくかったり、調査に時間がかかりすぎる場合があります。そこで本日は、その内容を共有したいと思います。
View full article
[关于 SScheck 的 SAF 总是返回 SCHECK_TEST_ERROR 大家好 将 SAF SW32K3_SAF_1.0.5_D2503 与 MCU: S32K314 集成时,客户正在尝试使用 CMU 运行 sCheck 运行时模块。 但是,sCheck_ExecuteRuntimeTests() 总是返回 SCHECK_TEST_ERROR。 能否请您解释一下发生了什么情况以及如何解决? 谢谢! SAF 优先级:高 资料来源直接客户 Re: [SAF on SScheck is always return SCHECK_TEST_ERROR 你好,拉多斯拉夫、 请参考以下图片。 谢谢! 谨致 Jason Tseng Re: [SAF on SScheck is always return SCHECK_TEST_ERROR 您好@JasonTsengSG, 这意味着某些 Scheck 测试在执行过程中出现了内部错误,也就是说某些测试的先决条件没有满足。 请确认是哪个测试报告了错误,并检查 UM 章节: 有关特定测试的条件、限制和副作用。 在运行时,正确执行 "排他性区域 "也至关重要。 亲切的问候, Radoslav Re: [SAF on SScheck is always return SCHECK_TEST_ERROR 感谢您的支持。 售票截止。 Re: [SAF on SScheck is always return SCHECK_TEST_ERROR 您好@JasonTsengSG, OK,所以这是运行时的一些 CMU_FC 测试。 如果您仔细检查了 sCheck UM 第5.8.2 章CMU_FC 测试和第 5.7.4 章ISR 在操作系统内配置 - 依赖关系 中的所有条件,那么如果是 CMU_FC4,则 K3 1.0.6 CD02 中修复了一个新错误: [ASFT-20071] [sCheck] CMU_FC 运行时检查在时钟变化较大时失败 - NXP JIRA 问候您, Radoslav
View full article
MPC5777C DCF_UTEST_REE_TMPSNS 設定後の PMC_SELF_TEST 失敗に関する問い合わせ 私は MPC5777C チップを使用しており、UTEST の PMC 温度センサ リセット イベント情報 イネーブル コントロール DCF を構成しています。LDPLS ビットを 1 に設定して、PMC_REE_TD レジスタに DCF クライアント データをロードし、TEMPSNS0 と TEMPSNS2 の両方を 0 に設定して、温度センサによって発生するリセット イベント情報 を無効にします。 -> DCF構成は次のとおりです: DCF_UTEST_REE_TMPSNS: LDPLS(1), TMPSNS2(0), TMPSNS0(0) この状態で MPC5777C に電源が投入されると、PMC_SELF_TEST_UM_VD_REG の ST_RESULT には SCM SELF TEST が失敗したことが示されます。DCF 設定前は結果は常に PASS でしたが、設定後は Failed が記録されます。この動作は、製造するボードによって異なります。 たとえば、搭載 1 では DCF を構成した後に常に失敗しますが、搭載 2 では DCF 構成後に常に成功します (両方の搭載とも DCF 構成前は常に成功します)。 私の質問は次のとおりです: 1.設定した DCF 内の LDPLS、TEMPSNS0、および TEMPSNS2 設定が PMC SELF TEST の操作と結果にどのように影響するかを理解したいと思います。具体的には、温度センサのリセット イベント情報が無効になっている場合、セルフ テストが失敗したり合格したりするのは正常ですか? 2. DCF を設定した場合、ブート シーケンス後にアプリケーション領域で PMC 設定を再構成し、再度セルフ テストを実行するのは正しいですか? あなたの親切で役立つ回答にいつも感謝しています。
View full article
i.MX6DL PCIe x1 Gen1 Link Training Failure We are using an i.MX6DL running kernel 5.10.235 and are seeing a PCIe Gen1 link-training issue. The logs indicate that link training never completes—the link continuously retrains. Debug0 register shows that link is not stable indicating that something is triggering a retrain. Observed LTSSM transitions: L0 → S_POLL_CONFIG → S_RCVRY_RCVRCFG → S_CFG_LINKWD_START → S_POLL_CONFIG We also noticed that the LnkCap register value changes (every power cycle) even though both pci-imx6.c and pcie-designware.c explicitly configure the link for Gen1. What else could be modifying this register? Examples: Case 1: 0x1ffc07c = value  0x0011cc12 LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s/L1, Exit Latency L0s <1us, L1 <8us LnkCtl2: Target Link Speed 2.5GT/s Case 2: 0x1ffc07c = value 0x00100001 LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s/L1, Exit Latency L0s <1us, L1 unlimited LnkCtl2: Target Link Speed 2.5GT/s Additionally, disabling the scrambler appears to stabilize the link: devmem2 0x1ffc710 w 0x00010122 Looking for info on: 1. What could trigger link retraining after initially reaching L0? 2. What other HW/SW part may modify LnkCap? Attaching document for more details. Re: i.MX6DL PCIe x1 Gen1 Link Training Failure Hello, 1. Regarding what could trigger link retraining after reaching L0 state: - Signal integrity issues on the PCIe lanes can cause link instability - Power supply fluctuations or noise affecting the PCIe PHY - Clock jitter or instability in the PCIe reference clock - Hardware design issues related to PCIe trace impedance or length matching - Software/driver bugs that may initiate unnecessary retraining 2. For the fluctuating LnkCap register values: - The register can be modified by both hardware initialization sequences and software drivers - In the i.MX6 PCIe implementation, both pci-imx6.c and pcie-designware.c attempt to configure link parameters - Link capability negotiation occurs during training, and values may be adjusted based on what the endpoint device reports Your observation that disabling the scrambler stabilizes the link (devmem2 0x1ffc710 w 0x00010122) suggests a potential signal integrity or clock issue. This is consistent with previous cases where PCIe link stability issues on i.MX6 platforms were resolved through hardware adjustments. I recommend reviewing application note AN4784 "PCIe Certification Guide for i.MX 6Dual/6Quad and i.MX 6Solo/6DualLite" which contains detailed PCIe SERDES settings information specifically for the i.MX6DL platform. This document provides comprehensive PCIe certification guidance that can help resolve intermittent link training failures. For your specific continuous retraining issue, consider: - Verifying PCIe reference clock signal quality and jitter - Checking trace length matching on your PCB design - Confirming proper termination and impedance on PCIe lanes - Examining power rail stability under load conditions The LnkCap register modifications you're seeing could be related to hardware-level register access during initialization sequences, potentially influenced by variations in PHY calibration. Regards Re: i.MX6DL PCIe x1 Gen1 Link Training Failure Adding some more details. Based on the observations below, the Gen1 link is stable when the scrambler is disabled. Is there a way to force the host to train exclusively at Gen1, preventing it from attempting Gen2? * LnkCap is 5GT/s root# lspci -s 00:00.0 -vv |grep LnkCap LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6f5c000. Read at address 0x01FFC07C (0xb6f5c07c): 0x0011CC12 <<< gen2 root# ltssm_debug.sh |grep curr LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0x11 | S_L0 LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0xf | S_RCVRY_RCVRCFG * Setting Lnkcap to gen1 but value is getting overwritten root# devmem2 0x1ffc07c w 0x00100011 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6fb1000. Read at address 0x01FFC07C (0xb6fb107c): 0x0011CC12 root# ltssm_debug.sh |grep curr LTSSM current state | 0x7 | S_CFG_LINKWD_START LTSSM current state | 0xf | S_RCVRY_RCVRCFG LTSSM current state | 0x7 | S_CFG_LINKWD_START * Disable scrambler root# devmem2 0x1ffc710 w 0x00010122 root# devmem2 0x1ffc710 /dev/mem opened. Memory mapped at address 0xb6f66000. Read at address 0x01FFC710 (0xb6f66710): 0x00010122 * LnkCap was set to Gen1 again, and the value remains stable. root# devmem2 0x1ffc07c w 0x00100011 root# devmem2 0x1ffc07c /dev/mem opened. Memory mapped at address 0xb6f0a000. Read at address 0x01FFC07C (0xb6f0a07c): 0x00100011 * Gen1 changes reflected here root# lspci -s 00:00.0 -vv |grep LnkCap LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM not supported root:~# ltssm_debug.sh |grep curr LTSSM current state | 0x11 | S_L0 LTSSM current state | 0x11 | S_L0 Link stable. Thanks Re: i.MX6DL PCIe x1 Gen1 Link Training Failure Hello, Thanks for providing the pointers. However, if we are forcing the link speed to Gen1, in what scenarios can the hardware still advertise Link Capabilities as Gen2 and also enable ASPM-related options? For example, we see: LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <8us We also observe 5 GT/s and Autonomous Change TS1 in the training sequence. We do not want the link to train at Gen2. TS1/TS2 logs are attached. Thanks
View full article
FEE(K3)データ処理に関する質問 こんにちはチーム S32K3のFEEデータ取り扱い情報についてお伺いしてもよろしいでしょうか? 1.FeeBlockSize = 10 B の場合、ヘッダーやその他のメタデータを追加した後に DataFlash に書き込まれる実際のサイズはどれくらいですか? 2. Fee_MainFunction を 1 回実行すると、いくつの単位のデータ (FlsPageSize 単位) が書き込まれますか?(HW 書き込み操作は、FlsPageSize で設定された値に基づいて実行されますか?) 書き込み操作は、デフォルトで 32 ビットに設定されている「仮想ページ サイズ」に基づいていると思います。したがって、サイズが 10 バイトの場合、32 バイトが書き込まれます。 Fee_MainFunction は実行されるたびに、32 バイト (仮想ページ サイズ) 単位で動作します。 これで理解できましたか? よろしくお願いします。 RTD 出典: 直接お客様 Re: Question about FEE(K3) Data handling こんにちは@Luke_Chun 、 1.FeeBlockSize = 10 B の場合、ヘッダーやその他のメタデータを追加した後に DataFlash に書き込まれる実際のサイズはどれくらいですか? => DataFlash に書き込まれるブロック n データの実際のサイズ: 実際のサイズ = n * FEE_VIRTUAL_PAGE_SIZE (ブロックサイズ < FEE_VIRTUAL_PAGE_SIZE)の場合 { 1 の場合 } それ以外 { if((ブロックサイズ % FEE_VIRTUAL_PAGE_SIZE) == 0U) { n = ブロックサイズ/FEE_VIRTUAL_PAGE_SIZE; } それ以外 { n = ブロックサイズ/FEE_VIRTUAL_PAGE_SIZE + 1; } } 例: FeeBlockSize = 10 バイト、FEE_VIRTUAL_PAGE_SIZE = 8 の場合 --> ドライバはデータを 2 回に分けて書き込みます。1 回目: 8 バイトのデータを書き込みます。2 回目: 残りの 2 バイトのデータ + 6 バイトのパディング データ (0xFF) を書き込みます。 FeeBlockSize = 10 バイト、FEE_VIRTUAL_PAGE_SIZE = 16 の場合 --> ドライバは 1 回でデータを書き込みます: 10 バイトのデータ + 6 バイトのパディング データ (0xFF) を書き込みます 2. Fee_MainFunction を 1 回実行すると、いくつの単位のデータ (FlsPageSize 単位) が書き込まれますか?(HW 書き込み操作は、FlsPageSize で設定された値に基づいて実行されますか?) => 私の答え: Mem_Acc レイヤー ( MemAcc_CalculateLengthTransfer 関数内)では、ブロック データの長さが計算され、JobInfo->LengthChunk に割り当てられます。 この変数は下位層で使用されます - Mem_INFLS (ユーザーが料金ブロック用に内部フラッシュを構成した場合)。Mem_INFLS レイヤーでは、Mem_43_INFLS_IPW_ComputeWriteLength 関数を介してオフセットとアドレスに基づいて長さが再度計算されます (フラッシュ メモリへの書き込み前)。 SO、長さの値はアドレスとブロックのサイズによって異なるため、状況に応じた正しい長さの値はありません。 よろしくお願いいたします。 ダン
View full article
メモリ割り当ての問題 こんにちは、 S32K322 マイクロコントローラの既存のプロジェクトに新しいフォルダーを統合するようにビルドしようとしています。しかし、クロック ドライバでハードフォールト問題が発生しています。私の観察では、ハードフォールトはメモリ不足が原因で発生しているのではなく、SRAM には十分なメモリが利用可能です。SRAM メモリへのアクセスに制限があるかどうかを知りたいです。 注記: 1)デュアルコア(CM0、CM1)を有効にしたプロジェクトを作成しました。 2)作成した既存プロジェクトと新規フォルダ統合プロジェクトのメモリ使用量を添付します。 3) 700 バイトのサイズを追加するだけで、ハードフォールトが発生します。 Existing project memory usage既存プロジェクトのメモリ使用量 Memory usage after integration of new folder新しいフォルダの統合後のメモリ使用量 image (1).png よろしくお願いいたします。 ヴァルシュニ     Re: MEMORY ASSIGNING ISSUE こんにちは@Varshini_extさん、 考えられる根本原因は多数あります。 障害例外に関する詳細情報を検索してください。 https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-HARDFAULT-Handling-Interrupt-DS3-5-RTD300/ta-p/1806259 https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX/ta-p/1595570 https://community.nxp.com/t5/S32K-Knowledge-Base/S32K14x の障害処理/ta-p/1114447 それはどのような障害例外ですか? 障害命令の PC アドレスは何ですか? ありがとうございました。 BR、ダニエル
View full article
为新计算机添加 S32DS3.6 许可证 你好 我目前使用的是 S32 Design Studio 3.6.0。许可证详细信息如下 - 激活代码:A644-0842-.... - 产品:S32 Design Studio 3.6.0适用于 S32K3xx 设备的开发软件包 -当前主机 ID:4A077B615F1987AA8DF96B... -订购日期:2025 年 2 月 13 日 我想在两台不同的电脑上使用该软件。 是否可以为该产品添加额外的许可证? 谢谢 激活 | 安装 | 许可 | 安装程序下载 Re: Add S32DS3.6 license to New Computer 你好、 增加了可用许可证的数量。
View full article
imx8mp-evk 多核 M 核 UART 资源访问失败 在使用 imx8mp-evk 进行异构通信时,我尝试从 M 内核调用 UART3,但失败了。以下是我的程序。 1。修改 uboot 设备树 mcu_rdc。编译并生成 falsh.bin 之后、烧了它 hjk003_0-1764123430485.png 2。进入 U-Boot 并启动 Linux 系统。 hjk003_1-1764123515906.png 3. 根据演示修改的 M-core 代码。 hjk003_2-1764123571437.png 4. hjk003_3-1764123601664.png hjk003_4-1764123626665.png 调用发送函数时,PC 没有收到任何数据。 hjk003_5-1764123689621.png Re: imx8mp-evk multicore M-core UART resource access failed @Zhiming_Liu  同样的设置时钟频率我也尝试过,但还是没有输出 hjk003_0-1764142779109.png Re: imx8mp-evk multicore M-core UART resource access failed Hi @hjk003  请拷贝UART4的时钟配置代码,改成UART3。CLOCK_EnableClock(kCLOCK_Uart3)只能解除门控,不能设置对于的clock源和时钟速率。 Zhiming_Liu_0-1764141185051.png Best Regards, Zhiming Re: imx8mp-evk multicore M-core UART resource access failed @Zhiming_Liu顺便说一下,我的项目是基于对 evkmimx8mp_rpmsg_lite_pingpong_rtos_linux_remote_cm7 所做的演示更改。 Re: imx8mp-evk multicore M-core UART resource access failed @Zhiming_Liu当然,这是我的项目。 Re: imx8mp-evk multicore M-core UART resource access failed 您好@hjk003 ,能否在此分享您的项目?或发送私人信息。 致敬, Zhiming Re: imx8mp-evk multicore M-core UART resource access failed @Zhiming_Liu感谢您的回复。但是,我不想更改默认调试串行端口;我想使用另一个 UART3。 左侧包含我的函数,右侧包含用于安装调试串行端口的配置。 hjk003_0-1764138610526.png Re: imx8mp-evk multicore M-core UART resource access failed 您好@hjk003 请确保您已将所有 UART4 替换为 UART3,并低于 UART_INSTANCE。 Zhiming_Liu_0-1764136362949.png 致敬, Zhiming Re: imx8mp-evk multicore M-core UART resource access failed @Zhiming_Liu 好的,感谢回复。我尝试一下。 Re: imx8mp-evk multicore M-core UART resource access failed Hi @hjk003  1.首先关于RDC的配置,uboot里只分配给M7就行,这段配置会写在RAM中,ATF起来之后会读取这段配置,然后写入对应的寄存器。 2.关于这个共享访问的问题,我们建议将一组外设只分配给一个核心,例如你把GPIO2都分给M7,如果A53要访问的GPIO2下面的IO,需要通过rpmsg的机制来实现属性控制。其他外设类似。 3.设备树里的pinctrl并不会管UART 管脚分配给谁了,只要定义在里面,驱动就会设置对应的iomux寄存器。虽然M7和A53都有访问权限,但是后占有的就可能读写有问题。你可以试试在uboot里加载M7固件,看看是不是正常的,保留A53 设备树里的pinctrl设置。 Best Regards, Zhiming Re: imx8mp-evk multicore M-core UART resource access failed Hi @hjk003  我这边之前是测试过的,一般确保uboot里M7独占UART3,SDK里只有复制UART4的代码就可以启动了。DbgConsole_Init里用的UART INSTANCE你改了吗? Best Regards, Zhiming
View full article
S32N55:gpTP 桥接设备中的 sourcePortID 队员们好 我在 GrayVIP_1_0_22 中测试了 gPTP 示例。 我有两个 S32N55 板。一个作为设备 1(Grand Master)运行,另一个作为设备 0(桥接)运行。设备 1 的端口 0 连接到设备 0 的端口 0。设备 0 的端口 1 连接到我的电脑,使用 Wireshark 捕获帧。 Wireshark 可以捕获三种类型的帧,但它们的 sourcePortID 不同: 对于同步消息, 对于同步跟进消息,sourcePortID 为 1,对于 pDelay Req 消息,sourcePortID 为 2,sourcePortID 为 2 我想问一下,这种现象是预料之中的吗? 最美好的祝愿, Bridget GPTP_STACK GRAY_VIP Re: S32N55: SourcePortID in gPTP bridge device 你好,布里奇特。 是的,这是意料之中的事。 同步信息只在网桥上传播--你可以认为它们是由 GM 本身发送的。该值应与 GM 出口端口的端口 ID 相对应。后续报文和 pdelay 报文是从网桥(由网桥)发送的,因此带有出口端口值的印记。
View full article
How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello NXP Experts, We searched the entire community, but couldn’t find a satisfactory answer. Following is the reserved-memory node in imx8mp.dtsi in NXP's Linux 6.12  reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; /* * Memory reserved for optee usage. Please do not use. * This will be automaticky added to dtb if OP-TEE is installed. * optee@56000000 { * reg = <0 0x56000000 0 0x2000000>; * no-map; * }; */ /* global autoconfigured region for contiguous allocations */ linux,cma { compatible = "shared-dma-pool"; reusable; size = <0 0x3c000000>; alloc-ranges = <0 0x40000000 0 0xC0000000>; linux,cma-default; }; gpu_reserved: gpu_reserved@100000000 { no-map; reg = <0x1 0x00000000 0 0x10000000>; }; dsp_reserved: dsp@92400000 { reg = <0 0x92400000 0 0x1000000>; no-map; }; dsp_reserved_heap: dsp_reserved_heap@93400000 { reg = <0 0x93400000 0 0xef0000>; no-map; }; dsp_vdev0vring0: vdev0vring0@942f0000 { reg = <0 0x942f0000 0 0x8000>; no-map; }; dsp_vdev0vring1: vdev0vring1@942f8000 { reg = <0 0x942f8000 0 0x8000>; no-map; }; dsp_vdev0buffer: vdev0buffer@94300000 { compatible = "shared-dma-pool"; reg = <0 0x94300000 0 0x100000>; no-map; }; }; 1.How to adjust reserved-memory/linux,cma/size and reserved-memory/linux,cma/alloc-ranges for i.MX8MP with 2GB/4GB/8GB DDR size? (It is obvious that size(960MB) is to big for 2GB DDR and alloc-ranges also out of range of 2GB DDR) 2.Execpt linux,cma/size and linux,cma/alloc-ranges, are there any other propertys need be changed acroding different DDR size 2GB/4GB/8GB? 3.It is obvious that the reg of gpu_reserved node is out of range for 2GB ddr, how shoud it change? we notice that reserved-memory/linux,cma/size&alloc-ranges is changed in NXP's linux6.12 arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mpxl.dts: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; /* global autoconfigured region for contiguous allocations */ linux,cma { compatible = "shared-dma-pool"; reusable; size = <0 0x38000000>; alloc-ranges = <0 0x40000000 0 0xB0000000>; linux,cma-default; }; }; 4.What triggered this modification? Is it attributed to different DDR sizes? we also notice that the node/reserved-memory is changed more in NXP's linux 6.12 arch/arm64/boot/dts/freescale/imx8mp-evk-root.dts. &{/reserved-memory} { jh_reserved: jh@fdc00000 { no-map; reg = <0 0xfdc00000 0x0 0x400000>; }; loader_reserved: loader@fdb00000 { no-map; reg = <0 0xfdb00000 0x0 0x00100000>; }; ivshmem_reserved: ivshmem@fda00000 { no-map; reg = <0 0xfda00000 0x0 0x00100000>; }; ivshmem2_reserved: ivshmem2@fd900000 { no-map; reg = <0 0xfd900000 0x0 0x00100000>; }; pci_reserved: pci@fd700000 { no-map; reg = <0 0xfd700000 0x0 0x00200000>; }; inmate_reserved: inmate@c0000000 { no-map; reg = <0 0xc0000000 0x0 0x3d700000>; }; }; &{/reserved-memory/linux,cma} { size = <0 0x28000000>; alloc-ranges = <0 0x40000000 0 0x60000000>; };  5. under what circumstances should the new-added node jh_reserved/loader_reserved/ivshmem_reserved/ivshmem2_reserved/pci_reserved/inmate_reserved be used?  Please provide a detailed explanation to address my aforementioned doubts. i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello JorgeCas, We really appreciate your assistance. We still have doubts about Quction6. In our custom imx8mp boards with 2GB/4GB/8GB DDR(based on imx8mpevk board with 6GB DDR), we have a separate u-boot.imx for each board with different DDR size,  and keep the following 'memory@40000000' node unchange form imx8mp-evk.dts in linux6.12 source code. memory@40000000 { device_type = "memory"; reg = <0x0 0x40000000 0 0xc0000000>, <0x1 0x00000000 0 0xc0000000>; //3GB+3GB=6GB }; And our imx8mp boards run well. Also they can pass a hole night memtester. Below is my imx8mp board with 4GB DDR: root@router:/# free total used free shared buff/cache available Mem: 3686580 159528 2914044 19536 613008 3458156       //Recognizing a total of 3686580 KB is reasonable for 4GB DDR. Swap: 0 0 0 root@router:/# /media/MCB2/memtester 3G memtester version 4.3.0 (32-bit) Copyright (C) 2001-2012 Charles Cazabon. Licensed under the GNU General Public License version 2 (only). pagesize is 4096 pagesizemask is 0xfffff000 want 3072MB (3221225472 bytes) got 3072MB (3221225472 bytes), trying mlock ...locked. Loop 1: Stuck Address : testing 3[ 3326.210063] clean_cache.sh (100707): drop_caches: 1 [ 3326.277139] clean_cache.sh (100707): drop_caches: 2 [ 3326.316299] clean_cache.sh (100707): drop_caches: 3 ok Random Value : ok Compare XOR : ok Compare SUB : ok Compare MUL : ok Compare DIV : ok Compare OR : ok Compare AND : ok Sequential Increment: ok Solid Bits : ok Block Sequential : ok Checkerboard : ok Bit Spread : ok ... // Overnight testing showed no issues. Here is the memory info in the kernel startup stage of 4GB DDR device: [ 0.000000] Machine model: NXP i.MX8MPlus EVK board [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created CMA memory pool at 0x00000000c4000000, size 960 MiB [ 0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x00000000c4000000..0x00000000ffffffff (983040 KiB) map reusable linux,cma [ 0.000000] OF: reserved mem: 0x0000000057c00000..0x0000000057ffffff (4096 KiB) nomap non-reusable optee_shm@0x57c00000 [ 0.000000] OF: reserved mem: 0x0000000056000000..0x0000000057bfffff (28672 KiB) nomap non-reusable optee_core@0x56000000 [ 0.000000] OF: reserved mem: 0x0000000100000000..0x000000010fffffff (262144 KiB) nomap non-reusable gpu_reserved@100000000 [ 0.000000] OF: reserved mem: 0x0000000092400000..0x00000000933fffff (16384 KiB) nomap non-reusable dsp@92400000 [ 0.000000] OF: reserved mem: 0x0000000093400000..0x00000000942effff (15296 KiB) nomap non-reusable dsp_reserved_heap@93400000 [ 0.000000] OF: reserved mem: 0x00000000942f0000..0x00000000942f7fff (32 KiB) nomap non-reusable vdev0vring0@942f0000 [ 0.000000] OF: reserved mem: 0x00000000942f8000..0x00000000942fffff (32 KiB) nomap non-reusable vdev0vring1@942f8000 [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000094300000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node vdev0buffer@94300000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem: 0x0000000094300000..0x00000000943fffff (1024 KiB) nomap non-reusable vdev0buffer@94300000 [ 0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000013fffffff] [ 0.000000] NODE_DATA(0) allocated [mem 0x13f84a840-0x13f84d3bf] [ 0.000000] Zone ranges: [ 0.000000] DMA [mem 0x0000000040000000-0x00000000ffffffff] [ 0.000000] DMA32 empty [ 0.000000] Normal [mem 0x0000000100000000-0x000000013fffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000040000000-0x0000000055ffffff] [ 0.000000] node 0: [mem 0x0000000058000000-0x00000000923fffff] [ 0.000000] node 0: [mem 0x0000000092400000-0x00000000943fffff] [ 0.000000] node 0: [mem 0x0000000094400000-0x00000000ffffffff] [ 0.000000] node 0: [mem 0x0000000100000000-0x000000010fffffff] [ 0.000000] node 0: [mem 0x0000000110000000-0x000000013fffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000013fffffff] [ 0.000000] On node 0, zone DMA: 8192 pages in unavailable ranges 1. Can you identify any unreasonable logs caused by the 6GB reg configuration in the memory@40000000 node for a actully 4GB DDR device? 2.So I speculate that the kernel does not calculate the memory range solely based on the memory@40000000/reg configuration in the DTS. Instead, it comprehensively determines the range by combining the actual physical memory size — which is passed from U-Boot to the kernel via ATAGs. In other words, I believe there may be no need to prepare separate DTB files for 2GB/4GB/8GB memory configurations. Could you please confirm this for us? Thank you again. Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello, 1. There is no a specific documentation to adjust reserved-memory nodes in device tree since these values depends of the DDR size and you application, the only limitation will be the max memory region assigned for each module as is described in memory map of reference manual. Default CMA size in BSP can be 960MB, as you mention for 2GB DDR, 960MB is too large and a common practice is to reduce CMA to 256MB–512MB or similar. You must focus in allocate in a valid DDR space. 2. There is no need to add additional properties. 3. You can re-organize each node according to the available size in your design, for example: gpu_reserved: gpu_reserved@70000000 { no-map; reg = <0 0x70000000 0 0x10000000>; }; Similar for the others. 4. That device tree is used for reserved memory of hypervisors. 5. These nodes are used for Jailhouse/PCIe/virtualization, if you don’t use them, you can omit these nodes. You can use this document as reference for more information. i.MX Virtualization User's Guide 6. Yes, it should match to each DDR size. Best regards. Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Quction 6:(Additional ) Does the reg property in the memory@40000000 node(in arch/arm64/boot/dts/freescale/imx8mp-evk.dts) need to be modified according to the DDR capacity (2GB/4GB/8GB)? memory@40000000 { device_type = "memory"; reg = <0x0 0x40000000 0 0xc0000000>, <0x1 0x00000000 0 0xc0000000>; }; If yes, does this mean that our custom i.MX8MP boards with different DDR sizes require separate DTB files? Thinks in advance! Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello JorgeCas, Since the kernel will use the DDR size passed from U-boot, what is the purpose of configuring memory@40000000/reg in the DTS? Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello,  Thank you for the information. 1. There are no critical logs such as errors or warnings, The Kernel just uses the memory range that is available from U-boot. 2. Both U-boot and DTS configurations are used by the kernel.  In device tree you can assign more virtual memory even if you do not have enough physical memory but if you have a lot of RAM usage, the system can crash.  Best regards. Re: How to adjust i.MX8MP's reserved-memory accroding different DDR size? Hello, I confirmed with internal team. The U-boot configuration has the correct data about your available physical DDR memory but the DTS reserved memory node is also passed to the Kernel, in your case you can assign more virtual memory in the node but if you full all the physical reserved memory you will get errors because there is no available memory, the physical address does not exist or you will have resource issues because it may be used by other module. You need to adapt the reserved memory to each board, as you mention, it works but if you have a lot if RAM usage, it is possible that you will get an error/kernel panic. I will correct my last reply. Best regards.
View full article
uart0 in mke06128vqh4 Hello friends, I have a board that I designed with the MKE06Z128VQH4 microcontroller, in which I am using several outputs and inputs. I am using one KBI input, 3 timers, and one counter, so there’s no problem there — I’ve already done the configurations and they work. I am currently working on the UART0 serial port, where I connect a USB-TTL serial adapter to the PC to receive or send data. I haven’t been able to make it send or receive information using the SDK libraries. My configurations using MCUXpresso are as shown in the image: mk1.JPG the pins: Iotelctronic_0-1764071007390.png the clock, i have a external crystal 12MHZ: Iotelctronic_1-1764071084330.png i can´t put the FEE option because the FLL have error, then i doing the configuration with FBELP. In the UART0 i doing the configuration with interrupt receive and transmitt polling. Iotelctronic_2-1764071328099.png Iotelctronic_3-1764071349888.png the sdk installed is: Iotelctronic_4-1764071419903.png i have the example sdk: Iotelctronic_5-1764071510120.png With those examples I still can’t get UART0 to work. I need some guidance — I’ve been trying for several days to get UART0 working. Re: uart0 in mke06128vqh4 Hello @Iotelctronic  Thanks for your question. Please first test the UART demo. Does the UART demo work properly on your side? Make sure the hardware connections are correct. Connect the proper TX and RX pins. Measure the TX/RX signals. BR Alice Re: uart0 in mke06128vqh4 Hello @Iotelctronic  Please use the demo as it is without any modifications. I have tested it on my side and found no issues BR Alice Re: uart0 in mke06128vqh4 hi alice! I tested with the demo using polling and it doesn't work. codigo main.c: #include "pin_mux.h" #include "board.h" #include "fsl_uart.h" /******************************************************************************* * Definitions ******************************************************************************/ /* UART instance and clock */ #define DEMO_UART UART1 #define DEMO_UART_CLK_FREQ CLOCK_GetFreq(kCLOCK_BusClk) /******************************************************************************* * Prototypes ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ uint8_t txbuff[] = "Uart polling example\r\nBoard will send back received characters\r\n"; uint8_t rxbuff[20] = {0}; /******************************************************************************* * Code ******************************************************************************/ /*! * @brief Main function */ int main(void) { uint8_t ch; uart_config_t config; BOARD_InitBootPins(); BOARD_InitBootClocks(); config.baudRate_Bps = 115200U; config.parityMode = kUART_ParityDisabled; config.stopBitCount = kUART_OneStopBit; //config.txFifoWatermark = 0; //config.rxFifoWatermark = 1; config.enableTx = false; config.enableRx = false; // UART_GetDefaultConfig(&config); // config.baudRate_Bps = BOARD_DEBUG_UART_BAUDRATE; // config.enableTx = true; //config.enableRx = true; UART_Init(DEMO_UART, &config, DEMO_UART_CLK_FREQ); UART_WriteBlocking(DEMO_UART, txbuff, sizeof(txbuff) - 1); while (1) { UART_ReadBlocking(DEMO_UART, &ch, 1); UART_WriteBlocking(DEMO_UART, &ch, 1); } } Re: uart0 in mke06128vqh4 Hello, I found the problem. The SDK examples and other projects I used with registers were not working for me; they always sent incorrect data and wrong characters. I’m using an external 12 MHz crystal, and it seems that with that crystal you can’t generate an exact baud rate of 115200. However, I changed the configuration to 8 MHz without desoldering the 12 MHz crystal, and it works fine. My big question is: why does it work if I modify the configuration to 8 MHz but don’t change the 12 MHz crystal? The code I’m showing is the modification I made in .freq = 8000000U. Is there an explanation for this? I also wanted to ask if the MKE06Z128VQH4 microcontroller has DMA to use with UART? /*********************************************************************************************************************** * This file was generated by the MCUXpresso Config Tools. Any manual edits made to this file * will be overwritten if the respective MCUXpresso Config Tools is used to update this file. **********************************************************************************************************************/ /* * How to setup clock using clock driver functions: * * 1. call CLOCK_SetSimSafeDivs() to set the system clock dividers in SIM to safe value. * * 2. If external oscillator is used Call CLOCK_SetXtal0Freq() to set XTAL0 frequency based on board settings and * call CLOCK_InitOsc0() to init the OSC. * * 3. Call CLOCK_BootToXxxMode()/CLOCK_SetXxxMode() to set ICS run at the target mode. * * 4. If ICSIRCLK is needed, call CLOCK_SetInternalRefClkConfig() to enable the clock. * * 5. call CLOCK_SetSimConfig() to configure the divider in sim. */ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!GlobalInfo product: Clocks v7.0 processor: MKE06Z128xxx4 package_id: MKE06Z128VLK4 mcu_data: ksdk2_0 processor_version: 9.0.0 * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ #include "clock_config.h" /******************************************************************************* * Definitions ******************************************************************************/ /******************************************************************************* * Variables ******************************************************************************/ /* System clock frequency. */ extern uint32_t SystemCoreClock; /******************************************************************************* ************************ BOARD_InitBootClocks function ************************ ******************************************************************************/ void BOARD_InitBootClocks(void) { BOARD_BootClockRUN(); } /******************************************************************************* ********************** Configuration BOARD_BootClockRUN *********************** ******************************************************************************/ /* clang-format off */ /* TEXT BELOW IS USED AS SETTING FOR TOOLS ************************************* !!Configuration name: BOARD_BootClockRUN called_from_default_init: true outputs: - {id: Bus_clock.outFreq, value: 20 MHz} - {id: Core_clock.outFreq, value: 40 MHz} - {id: Flash_clock.outFreq, value: 20 MHz} - {id: ICSFF_clock.outFreq, value: 31.25 kHz} - {id: ICSIR_clock.outFreq, value: 37.5 kHz} - {id: LPO_clock.outFreq, value: 1 kHz} - {id: OSCER_clock.outFreq, value: 8 MHz} - {id: Plat_clock.outFreq, value: 40 MHz} - {id: System_clock.outFreq, value: 40 MHz} - {id: Timer_clock.outFreq, value: 20 MHz} settings: - {id: ICSMode, value: FEE} - {id: ICS.BDIV.scale, value: '1', locked: true} - {id: ICS.IREFS.sel, value: ICS.RDIV} - {id: ICS.RDIV.scale, value: '256'} - {id: ICS_C1_IRCLKEN_CFG, value: Enabled} - {id: OSC_CR_OSCEN_CFG, value: Enabled} - {id: OSC_CR_OSC_MODE_CFG, value: ModeOscLowPower} - {id: OSC_CR_RANGE_CFG, value: High} - {id: OSC_CR_RANGE_RDIV_CFG, value: High} - {id: SIM.DIV2.scale, value: '2'} - {id: SIM.DIV3.scale, value: '2', locked: true} sources: - {id: OSC.OSC.outFreq, value: 8 MHz, enabled: true} * BE CAREFUL MODIFYING THIS COMMENT - IT IS YAML SETTINGS FOR TOOLS **********/ /* clang-format on */ /******************************************************************************* * Variables for BOARD_BootClockRUN configuration ******************************************************************************/ const ics_config_t icsConfig_BOARD_BootClockRUN = { .icsMode = kICS_ModeFEE, /* FEE - FLL Engaged External */ .irClkEnableMode = kICS_IrclkEnable, /* ICSIRCLK enabled, ICSIRCLK disabled in STOP mode */ .bDiv = 0x0U, /* Bus clock divider: divided by 1 */ .rDiv = 0x3U, /* FLL external reference clock divider: divided by 256 */ }; const sim_clock_config_t simConfig_BOARD_BootClockRUN = { .outDiv1 = 0x0U, /* DIV1 clock divider: divided by 1 */ .outDiv2 = 0x1U, /* DIV2 clock divider: divided by 2 */ .outDiv3 = 0x1U, /* DIV3 clock divider: divided by 2 */ .busClkPrescaler = 0x0U, /* bus clock optional prescaler */ }; const osc_config_t oscConfig_BOARD_BootClockRUN = { .freq = 8000000U, /* Oscillator frequency: 12000000Hz */ .workMode = kOSC_ModeOscLowPower, /* Oscillator low power */ .enableMode = kOSC_Enable, /* Enable external reference clock, disable external reference clock in STOP mode */ }; /******************************************************************************* * Code for BOARD_BootClockRUN configuration ******************************************************************************/ void BOARD_BootClockRUN(void) { /* Set the system clock dividers in SIM to safe value. */ CLOCK_SetSimSafeDivs(); /* Initializes OSC0 according to board configuration. */ CLOCK_InitOsc0(&oscConfig_BOARD_BootClockRUN); CLOCK_SetXtal0Freq(oscConfig_BOARD_BootClockRUN.freq); /* Set ICS to FEE mode. */ CLOCK_BootToFeeMode(icsConfig_BOARD_BootClockRUN.bDiv, icsConfig_BOARD_BootClockRUN.rDiv); /* Configure the Internal Reference clock (ICSIRCLK). */ CLOCK_SetInternalRefClkConfig(icsConfig_BOARD_BootClockRUN.irClkEnableMode); /* Set the clock configuration in SIM module. */ CLOCK_SetSimConfig(&simConfig_BOARD_BootClockRUN); /* Set SystemCoreClock variable. */ SystemCoreClock = BOARD_BOOTCLOCKRUN_CORE_CLOCK; } Re: uart0 in mke06128vqh4 thanks the problem of clock is the crystal solder is 8MHZ not 12MHZ
View full article
件名: タブ名に中国語文字を使用すると GUI Guider が無効な C 識別子を生成する NXPサポートチーム様 私は GUI Guider (vX.XX) を使用して、複数のタブを持つ lv_tabview ウィジェットを含むインターフェースを設計しています。 中国語の文字を入力すると(例:タブテキスト フィールドに「设置」、「关于」などの文字列を入力すると、Guider はタブ オブジェクトのC 識別子として同じ文字列を自動的に再利用します。結果として、生成されたコードは次のようになります。 C 言語では非 ASCII 識別子が許可されていないため、コンパイラ エラーが発生します。 FUTUREのリリースで以下の改善点のいずれかを検討していただけますか? 2つの概念を分割する 2 つの個別の入力ボックスを提供します。 – 「表示テキスト」(任意のUnicode文字列) – 「オブジェクトID / 変数名」(ASCII文字、数字、アンダースコアのみ使用可能) 生成された C コードでのみオブジェクト ID を使用し、画面に表示されるラベルの表示テキストを保持します。 自動消毒 ユーザーがUnicodeテキストを入力した場合は、有効なC識別子に暗黙的に変換します(例:ラベリングの元の Unicode 文字列を保持しながら、タブを「设置」→「tab_setting」に変更します。 組み込みのi18nサポート 常に英語/ASCII ID を内部に保存し、ユーザーが既存の国際化テーブルを通じて翻訳を提供できるようにします。これはすでに可能ですが、単一の入力ボックスでは入力したテキストがコード内でそのまま使用されることを意味するため、新規ユーザーには明らかではありません。 現時点では、唯一の回避策は次のとおりです。 まず英語のIDを入力してください。 コードを生成する ラベリングのテキストを手動で中国語に戻します。 これは面倒で、間違いが起こりやすくなります。 ご清聴ありがとうございました。この機能強化をロードマップに組み込むCANかどうかについてのフィードバックをいただければ幸いです。 よろしくお願いします、 1.png 2.png 3.png Re: Subject: GUI Guider Generates Invalid C Identifiers When Using Chinese Characters for Tab Names **最適化が大体いつ完了するか**を教えていただけますか? Re: Subject: GUI Guider Generates Invalid C Identifiers When Using Chinese Characters for Tab Names こんにちは@yyxy 情報をいただきありがとうございます。 BR ハリー Re: Subject: GUI Guider Generates Invalid C Identifiers When Using Chinese Characters for Tab Names 「报警設置」にイベント情報を追加してみてください Re: Subject: GUI Guider Generates Invalid C Identifiers When Using Chinese Characters for Tab Names こんにちは@yyxy 中国語に変更してみます。 Harry_Zhang_0-1764059502687.png そして、正常にCANコンパイルします。 どのバージョンを使用していますか? BR ハリー Re: Subject: GUI Guider Generates Invalid C Identifiers When Using Chinese Characters for Tab Names こんにちは@yyxy 現時点ではこの操作はサポートされていませんが、お客様のご提案を GUI GUIDER チームに転送いたしました。FUTUREのバージョンでこの問題に対処する予定です。 ご理解のほどよろしくお願いいたします。 BR ハリー
View full article