Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
iMX8MP:恩智浦内核 lf-6.12.20-2.0.0 上 SAI MCLK 的 SGTL5000 时钟问题 你好 我正在使用 imx8MP 上的恩智浦内核版本 lf-6.12.20-2.0.0,我正在集成外部音频编解码器 SGTL5000。根据硬件设计,SAI MCLK 应为 SGTL5000 提供主时钟。 在没有打补丁的情况下,我得到了这样的错误信息: sgtl5000 1-000a: Error reading chip id -6 然而,在执行 probe() 功能期间,时钟并未启用或可用。为了解决这个问题,我修补了 fsl_sai.c,以明确启用 MCLK。 @@ -1864,6 +1864,9 @@ static int fsl_sai_runtime_resume(struct device *dev)                regmap_update_bits(sai->regmap, FSL_SAI_TCSR(ofs),                                   FSL_SAI_CSR_TERE, FSL_SAI_CSR_TERE); +       clk_prepare_enable(sai->mclk_clk[1]); 问题是:这个补丁真的有必要吗,还是有办法通过设备树设置启用 MCLK? 感谢您的帮助, Sven Re: iMX8MP: SGTL5000 Clock Issue with SAI MCLK on NXP Kernel lf-6.12.20-2.0.0 你好 是否有 6.12 内核的补丁? Sven Re: iMX8MP: SGTL5000 Clock Issue with SAI MCLK on NXP Kernel lf-6.12.20-2.0.0 你好 是的,因为要启用 clk,所以必须这样做,我会告诉开发人员解决这个问题,但在 6.6.52 上不会出现这种情况,你最好去看看。 此致
查看全文
RT1170 評価ボード こんにちは、チーム 当社では、クラス3医療アプリケーションの1つにRT1170コントローラを使用しています。RT1170 評価ボードを参照していましたが、質問や懸念事項はほとんどありませんでした。それらは次のとおりです。 1:) 主に、RT1170 には 2 つのボードがあり、1 つは RT1170EVK で、もう 1 つは RT1170EVKB です。それぞれの違いを確認しましたが、PMIC なしで進める予定です。SO、RT1170EVK を参照しています。 2:)EVK に 1.8V および 1V 出力用の外部 DC/DC 予約コントローラまたはレギュレータを実装したのはなぜですか。私は、この O/P レールがデザインのどこにも使用されていないことに気付きました。写真を添付します。   3:) 3 番目のポイントは、SNVS バンク セクションの GPIO に関してです。いくつかの TVS ダイオードを使用しており、すべての GPIO がいくつかにコネクテッドされており、ESD 損傷保護という注意事項が付けられています。これは何の目的で実装されているのか、簡単に教えていただけますか。 4:) 内部 DCDC コンバーターは 2 つの出力を提供します。1 つは DCDC_ANA と呼ばれる 1.8 V で、もう 1 つは 1V の DCDC_DIG です。RT1170 コントローラ の Power Architecture に従って、アナログ セクションと SOC デジタル セクションの内部バンク電圧は DCDC モジュールによって提供されますが、DCDC_DIG が VDD_SOC に コネクテッド されていることに気づきました。私の dbt は DCDC_ANA を VDDA_USB1_P8、VDDA_MIPI_1P8、および VDDA_ADC_P8 に接続する必要があることですが、VDDA_USB_1P8 では外部 LDO を使用していることに気づきましたが、これには何か特別な理由があるのでしょうか。 また、DCDC_ANA o/p を制限的に使用するための特定の条件または基準があるかどうかも知りたいです。そして、これら 2 つの電源レール DCDC_ANA と DCDC_DIG に接続 CAN 最大負荷はどれくらいでしょうか。 5:)外部水晶の デザイン について、32kHz水晶と24MHz水晶にそれぞれ9pFと8pFの負荷を持つ水晶を選択した理由を教えていただけますか。データシートやハードウェア リファレンス・マニュアル には、これについて何も記載されていません。   これらに対する回答ができるだけ早く得られることを期待しています。 よろしくお願いします。 アキレス・シンデ Re: RT1170 EVAL Board こんにちは、 @Akhilesh-Shindheさん、 1) その通りです。 2) 外部 DCDC は使用されませんが、お客様がこの出力を必要とするCASEに備えて実装されます。 3) 次のアプリケーションノートでは、ESD保護の意味とそれを実装するための回路について詳しく説明しています。AN10853 ICのESDおよびEMC感度 4) RT1170-EVKにはVDDA_USB_1P8レールは存在せず、 DCDC_1V8_OUTにコネクテッドされたVDD_USB_1P8のみ存在します。RT1170のデータシート( IMXRT1170IEC)に記載されているように、😞 「 オンチップ レギュレータは、オンチップ負荷にのみ電力を供給するように設計されています。オンチップ レギュレータを 外部負荷に電力を供給するために使用しないでください。DCDC_DIG は、VDD_SOC_IN に電力を供給するために使用されます。DCDC_ANA は、 オンチップ アナログ負荷にのみ電力を供給するために使用される低ノイズ電源レールです。」 5) RT1170ハードウェア開発ガイド( MIMXRT1170HDUG)に記載されているように😞 "最大 ESR (等価直列抵抗) が 100 k の水晶を選択し、静電容量についてはメーカーの推奨事項に従ってください。"
查看全文
[S32K388] BIST前提条件の詳細説明 こんにちは、チーム お客様は、SAF/SPD Bist ユーザー マニュアルの最新バージョンで更新された情報について説明を求めています。 新しいバージョンの SAF BIST ドキュメントを調べてみると、次のような文言が記載されています。 1) これは S32K388 デバイスに関して誤った記述でしょうか。これをそのまま読むと、S32K388 の場合、CM7_0 コアで BIST を実行することが推奨されているようです。これは、すべてのセーフティ チェックをマスター セーフティ コア (AOU_SW_SAFETY_CORE_USAGE) で実行する必要があるというデバイスのセーフティ マニュアルの提案とはまったく対照的であるように思われます。また、マスター セーフティ コアは S32K388 では CM7_2 コアとして定義されています。 2) 説明のために以下の質問にCAN答えていただけますか? BIST が実行されていないコアを「無効」にすることは必須ですか、それとも単なる推奨事項ですか? ここでの「無効」とは、コアがハードウェアで文字通り停止され、まったく実行されていないことを意味しますか、それとも、すべての割り込みが無効にされ、BIST が十分に完了するまでコアがソフトウェア待機ループ内にあるだけでしょうか? 本当にハードウェアで停止する必要がある場合、IVT ブート構成ワードを通じてこれらのコアを自動的に起動できるようにするオプションが事実上排除され、代わりに BIST が実行されるまでこれらのコアをオフのままにしておく必要がありますか (そして他のコアを手動で起動するためのソフトウェア戦略を開発する必要がありますか)? ありがとう、 ダニエル V. SAFETY_SW Re: [S32K388] BIST Prerequisite Details Clarifications こんにちは、ダニエル。 K388 のマスター セーフティ コアについてお客様の指摘は正しいです。これは BIST UM で修正される予定です。 セーフティ設計者によると、必ずしも CM7_2 である必要はありません。顧客が CM7_0 で ASIL_D を実行したい場合、K388_LS チップバリアントがあれば、CM7_0 をマスターセーフティコアとして検討し、そのコアから SAF を実行できます。 2 番目の質問は HW 関連ですが、簡単な答えは、他のコアをリセット状態 (デフォルト状態) に保つことです。通常、有効にするコアは、お客様が述べたように、起動時にブート構成ワードで設定されるSO、K3 でオンライン BIST を実行するには、お客様のソフトウェア内で BIST 後に他のコアを実行する必要があります。Mcu_SetMode () を介して MCU ドライバを使用する必要があると思います。 他のコアをスリープ モードにするか、何もしないループにするだけで十分かどうかは良い質問ですが、この使用CASEは検証されていないため、HW チームが確認する必要があります。 私の理解では、BIST は、他のコアで使用できる一部の HW およびメモリにアクセスしています (RM をチェックしてください。たとえば、MBIST でカバーされる命令およびデータ キャッシュ ブロックなど)。何らかのアプリが実行されている場合は、正しい BIST 実行が破壊される可能性があります。 敬具、 ラドスラフ
查看全文
S32G pfe master project question Hi,nxp I'm testing the pfe_master project, using the MasterProject_RDB2 project from PFE-DRV_S32G_M7_MCAL_1.3.0, and I found that the initialization initialized the clock McuClockSettingConfig_0 first, and then re-initialized the clock after doing some module initialization McuClockSettingConfig_1, may I know the reason for this? Why do I need to initialize the clock twice? Re: S32G pfe master project question Hello, @youke  Thanks for your reply. From my understanding, it is difficult to do it once, since several steps needed for initializing the related clock. Regarding to the method of initializing it, theoretically, it could be done either from the bootloader or the M core application itself, it depends only on your design. If putting all clock init phase to the bootloader, then you may need to implement similar steps from teh PFE example to the bootloader to initialize the pfe, and then remove the corresponding phase from the M core application itself(pfe master exmaple.) to avoid any conflict. BR Chenyin Re: S32G pfe master project question Hi, chenyin Thank you for your reply How do I need to do to initialize the clock only once? Or can you help me to explain how I need to do the whole initialization logic if I use bootloader to boot the M core and use the pfe_master function? Re: S32G pfe master project question Hello, @youke  Thanks for your post. The first init could initialize clock for serdes module, while the second one is used for initializing serdes for the MUX. I hope it will help. BR Chenyin
查看全文
S32G pfe master project question Hi,nxp I'm testing the pfe_master project, using the MasterProject_RDB2 project from PFE-DRV_S32G_M7_MCAL_1.3.0, and I found that the initialization initialized the clock McuClockSettingConfig_0 first, and then re-initialized the clock after doing some module initialization McuClockSettingConfig_1, may I know the reason for this? Why do I need to initialize the clock twice? Re: S32G pfe master project question Hello, @youke  Thanks for your reply. From my understanding, it is difficult to do it once, since several steps needed for initializing the related clock. Regarding to the method of initializing it, theoretically, it could be done either from the bootloader or the M core application itself, it depends only on your design. If putting all clock init phase to the bootloader, then you may need to implement similar steps from teh PFE example to the bootloader to initialize the pfe, and then remove the corresponding phase from the M core application itself(pfe master exmaple.) to avoid any conflict. BR Chenyin Re: S32G pfe master project question Hi, chenyin Thank you for your reply How do I need to do to initialize the clock only once? Or can you help me to explain how I need to do the whole initialization logic if I use bootloader to boot the M core and use the pfe_master function? Re: S32G pfe master project question Hello, @youke  Thanks for your post. The first init could initialize clock for serdes module, while the second one is used for initializing serdes for the MUX. I hope it will help. BR Chenyin
查看全文
Does the S32K328 internal RTC not support the reboot save time function? After tracing the source code below, I found that the parameters " counterValue " and " startTime " are zeroed out during initialization; wouldn't the MCU lose time every time it reboots? Rtc_Ip_GetTimeDate Rtc_Ip_GetTimeDate (uint8 instance instance Rtc_Ip_TimedateType *Rtc_Ip_TimedateType timeDate timeDate ) { uint32 counterValue =counterValue 0U uint32 counterValue = 0U uint32 secondsPassed =uint32 secondsPassed 0U uint32 secondsPassed = 0U #if RTC_IP_DEV_ERROR_DETECT == STD_ON DevAssert (NULL_PTR ! = timeDate ); DevAssert (RTC_INSTANCE_COUNT > instance ). #endif /* Get the current counter value in ticks */ counterValue = Rtc_Ip_GetCounterRegister ( instance ); /* Compute the number of the seconds passed since setting the time and date */ secondsPassed = Rtc_Ip_TicksToSeconds ( instance counterValue counterValue ); /* Add the start time to the calculated value */ secondsPassed += Rtc_Ip_u32ChState [ instance instance ]. startTime startTime /* Convert the seconds into time/date format */ Rtc_Ip_ConvertSecondsToTimeDate (& secondsPassed timeDate timeDate ). }   I also tried the following without executing the initialization code after a reboot and found that the RTC time just fails to be obtained 回复: S32K328内部的RTC是不是不支持重启保存时间功能啊 Hi @dujunqiu  You can refer to the following example code. It may serve as a helpful reference for your implementation. S32K312: RTC- Preserving RTC counter value from getting resets once after every wakeup 回复: S32K328内部的RTC是不是不支持重启保存时间功能啊 if change mode, from standby to run; the standby mode "counterValue" and "startTime", how to save it? 回复: S32K328内部的RTC是不是不支持重启保存时间功能啊 Hi @dujunqiu  Please correct me if I misunderstood your question, but the RTC can actually operate in standby mode. You just need to ensure that the SIRC (Slow Internal RC oscillator) is properly configured to remain enabled during standby. 回复: S32K328内部的RTC是不是不支持重启保存时间功能啊 this sample can't deal my question; chip on RTC can't runing in standby mode, it need by nvm storage time Re: S32K328内部的RTC是不是不支持重启保存时间功能啊 Hi @dujunqiu  As indicated in the S32K3xx Reference Manual, Rev. 11, the chip supports RTC operation across functional resets when using the clock sources SIRC or SXOSC. Additionally, the GPT Standby Wakeup Support ensures that the driver does not clear the interrupt flag, the interrupt enable bit, or disable the counter during initialization. For further details, please refer to the following threads: S32k324 Rtc time keep up S32K324 RTC value not preserved after sleep BR, VaneB
查看全文
[S32K388] BIST Prerequisite Details Clarifications Hi Team, Customer is looking for some clarifications about information updated in latest version of the SAF/SPD Bist User Manual: Looking into the newer version SAF BIST documentation, this is now the wording mentioned: 1) Is this an incorrect statement for the S32K388 device. Reading this as stated, it seems to imply that for the S32K388 it is recommended to run the BIST on CM7_0 core. This seems to be in stark contrast with what your device safety manual is suggesting that all safety checks should be running on the master safety core (AOU_SW_SAFETY_CORE_USAGE), and the master safety core is defined as CM7_2 core on the S32K388. 2) Can you address the below questions for clarification: Is it mandatory that the cores that the BIST is NOT executing on are "disabled", or just a recommendation?  Does "disabled" here mean the cores are literally halted in hardware and are not at all executing, or if they are simply in a software wait loop with all interrupts disabled and waiting for the BIST to be completed good enough?  If it really needs to be halted in hardware, does this effectively exclude the option for me to enable those cores to start automatically through the IVT boot configuration word, and instead have to keep those cores off until after the BIST has executed (and I'd have to develop a software strategy for manually starting the other cores)? Thanks, Daniel V. Safety_SW Re: [S32K388] BIST Prerequisite Details Clarifications Hello Daniel, customer is right about what is master safety core on K388, it will be fixed in BIST UM. As per Safety architects, it doesn't necessarily mean it must be CM7_2, if customer wants to run ASIL_D on CM7_0, and has K388_LS chip variant it is possible to consider CM7_0 as master safety core and run SAF from that core. Second question is HW related, but simple answer is to keep the other cores in reset, which should be default state. Typically which cores are enabled is set in startup in Boot Configuration Word as customer mentioned, so yes to run online BIST on K3 requires to run the other cores after BIST within customer SW - I think using MCU driver via Mcu_SetMode(). It's a good question whether it should be enough to put the other cores into SleepMode or some loop where it will do nothing, but this use case is not validated - HW team need to confirm. My understanding is that BIST is accessing some HW and Memories which can be used by other cores (check RM e.g. for instruction and data cache blocks covered be MBIST) if there would be some app running so it would corrupt correct BIST execution. Kind Regards, Radoslav
查看全文
[Nobleo ; RTD-Driver] Impact on changing to C17 C standard Hello Team, I received the following question :  Good day, we are developing software based on the reference design RD-BESS1500BUN from NXP. The reference project provided by NXP was set to use the C99 language standard (which is quite old). We would like to update this to the C11 or C17 standard if possible to make use of newer language features. Safety certification and toolchain validation is critical for this project however. Is there any specific reason why C99 was chosen for the original reference project? Is the provided compiler toolchain and RTD drivers validated/certified to be used with a more recent C standard such as C11 or C17? Can you support me on this? Thx, Frank RTD
查看全文
sBoot 看门狗测试 - FDTI 时间和看门狗超时值 你好, 在我当前的应用程序中,内部看门狗超时时间为 128 毫秒。 执行 sBoot 看门狗测试时,sBoot 正在检查 FDTI 时间是否大于或等于内部看门狗超时。 在当前配置器中,我无法配置超过 100ms 的 FDTI 值。 如何在内部看门狗超时 128 毫秒的情况下执行此测试? 谨致 Irshad Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 我收到了内部团队的反馈意见,以下是他们的分享: ” 请选出以下答案: S32G SAF 代码包中是否包含对 FDTI 限制的取消? 答:它将包括 S32G SAF 代码包。 我们预计何时会将此更改包含在版本中? A:S32G_SAF_2.0.3 是否有临时的变通方法来使用超过 100ms 的 FDTI 值? 答:客户可以修改 sBoot_Cfg.h 中生成的代码、但这只是用于测试目的的临时变通方法,不适合在生产中使用。 “ 很抱歉这么晚才提供解决方案,如果您还有其他问题,请告诉我。 谢谢! Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 我还没有收到任何更新,我会要求更新,收到后再回来。 很抱歉耽搁了,希望不会造成任何不便。 顺祝商祺! Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 问得好。我搜索了内部文档,发现这也是其他客户反复出现的话题,我看到了一些关于可能取消对S32系列其他元器件的限制的讨论,但是我不知道S32G芯片是否考虑过这一点。我将向内部团队提出这个话题,看看能否在 S32G 系列中完成。 我会尽快就这一主题提供最新消息、 感谢您的耐心等待。 Re: sBoot watchdog test - FDTI time and Watchdog timeout value 您好, ,您能提供任何有关该范围的理由吗? Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 很抱歉之前没有理解您的要求。你说得没错,FDTI不能 超过 100 毫秒,这与配置无关,你可以在 sBoot 文档中看到这一点: 您需要调整您的实施方案,以适应 FDTI 的限制。 不便之处,敬请原谅 Re: sBoot watchdog test - FDTI time and Watchdog timeout value 您好, SWT 配置为 128ms 且正常工作。 我的主要疑问是关于 sboot SWT 出现故障的问题,因为它希望 FDTI 时间大于或等于 SWT 超时值。因此,测试失败是由于条件不合格造成的。 目前 SWT 的超时时间为 128 毫秒,我无法在配置器中配置超过 100 毫秒的 FDTI 时间。 在第 218 行,运行失败。 谨致 Irshad Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 感谢您提供的详细信息。要将 SWT_0 配置为 128 毫秒的超时时间,你需要在相应的超时寄存器中使用值 6,144,000,偏移量 0x0008,基本地址 0x4010_0000 [第 224 页,S32G3 参考手册,修订版 4,02/2024]: 这是因为 SWT 模块使用 FIRC 作为源时钟,即 48MHz [第 887 页,S32G3 参考手册,第 4 修订版,2024 年 2 月 2 日]: 因此,超时寄存器[ticks] = Clock freq[Hz] *Timeou[s]= 6 144 000。 你可以查看 RTD 中提供的示例 Swt_Ip_Example_S32G399A_M7 以获取更多参考。 如果您有更多问题,请告诉我。 Re: sBoot watchdog test - FDTI time and Watchdog timeout value 1.SAF 版本:sw32g_saf_2.0.2_qlp01_d2410 2.SWT_0 3.SWT_0 超时为 128ms Re: sBoot watchdog test - FDTI time and Watchdog timeout value 你好@Irshad2225、 感谢您联系我们。请提供以下信息,以便获得更好的支持: 您使用的是哪个版本的 SAF? 你指的是哪个 "内部监察机构"? 请提供任何其他细节,以帮助我更好地了解您的设置。 谢谢!
查看全文
mcuboot/启动/nxp_mcux_sdk/flashapi/flashapi/flash_api.c 中可能存在错误 您好, 我使用 RT1021,正在测试 mcuboot。 我希望图像的最大容量为 512kB,因此在 sblconfig.h 中我的定义是 #define CONFIG_MCUBOOT_MAX_IMG_SECTORS 128 /*4kB sector * 128 = 512kB */ 和 flash_partitioning.h 中我已经下了定义: #define BOOT_FLASH_ACT_APP 0x60100000 #define BOOT_FLASH_CAND_APP 0x60180000 但是,我收到了一个错误: Failed reading sectors; BOOT_MAX_IMG_SECTORS=128 - too small? 我进行了调试,找到了我认为存在错误的地方。 https://github.com/nxp-mcuxpresso/mcuboot/blob/mcux_main/boot/nxp_mcux_sdk/flashapi/flash_api.c#L378 int flash_area_get_sectors(int fa_id, uint32_t *count, struct flash_sector *sectors) { const struct flash_area *fa; uint32_t max_cnt = *count; uint32_t rem_len; int rc = -1; if (flash_area_open(fa_id, &fa)) goto out; if (*count < 1) goto fa_close_out; rem_len = fa->fa_size; *count = 0; while ((rem_len > 0) && (*count < max_cnt)) { if (rem_len < MFLASH_SECTOR_SIZE) { goto fa_close_out; } sectors[*count].fs_off = MFLASH_SECTOR_SIZE * (*count); sectors[*count].fs_size = MFLASH_SECTOR_SIZE; *count = *count + 1; rem_len -= MFLASH_SECTOR_SIZE; } if (*count >= max_cnt) { goto fa_close_out; } rc = 0; fa_close_out: flash_area_close(fa); out: return rc; } 如果插槽大小等于图像大小,while 循环会一直重复,直到两个条件都为假,但如果循环结束时 rem_len 为 0,则不会出错,这意味着我已经使用了扇区数组中的一个条目,但不需要其他条目。 我认为应该修改 if 条件: if (rem_len > 0) { goto fa_close_out; } 您对此有何看法? 顺祝商祺! 最大值 Re: possible bug in mcuboot/boot/nxp_mcux_sdk/flashapi/flash_api.c 嗨,@mastupristi、 感谢您报告这个问题。 我将把这个问题转给 SDK 团队,以便他们进一步调查,并在认为有必要时提供修改。 BR, Edwin.
查看全文
verdin imx95 の LPUART3 サポート こんにちは、皆さん。 私は verdin i.MX95 19x19 EVK に取り組んでおり、デバイス ツリーで LPUART3 を有効にしようとしています。変更後、起動中にカーネルパニックが発生します。 デバイスツリーの変更 diff --git a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts index 4aa2d000df8b..55d660ce38aa 100644 --- a/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts +++ b/arch/arm64/boot/dts/freescale/imx95-19x19-evk.dts @@ -570,6 +570,12 @@ &lpuart1 { status = "okay"; }; +&lpuart3 { + pinctrl-names = "default"; + pinctrl-0 = <&pinctrl_uart3>; + status = "okay"; +}; + &lpuart5 { /* BT */ pinctrl-names = "default"; @@ -980,6 +986,13 @@ IMX95_PAD_UART1_TXD__AONMIX_TOP_LPUART1_TX 0x31e >; }; + pinctrl_uart3: uart3grp { + fsl,pins = < + IMX95_PAD_ENET1_RD0__LPUART3_RX 0x31e + IMX95_PAD_ENET1_TD0__LPUART3_TX 0x31e + >; + }; + pinctrl_uart5: uart5grp { fsl,pins = < IMX95_PAD_DAP_TDO_TRACESWO__LPUART5_TX 0x31e ブートログ [ 2.234704] /soc/bus@42000000/i2c@426d0000/tcpc@52/connector: Fixed dependency cycle(s) with /soc/phy@4c1f0040 [ 2.244734] i2c i2c-6: LPI2C adapter registered [ 2.250234] adp5585 1-0034: error -EIO: Failed to read device ID [ 2.256064] adp5585 1-0034: probe with driver adp5585 failed with error -5 [ 2.262925] i2c i2c-1: LPI2C adapter registered [ 2.268342] imx8mq-usb-phy 4c1f0040.phy: supply vbus not found, using dummy regulator [ 2.281775] /soc/bridge@4b0d0000/channel@0: Fixed dependency cycle(s) with /soc/syscon@4b010000/bridge@8 [ 2.291122] /soc/syscon@4b0c0000/ldb@4/channel@0: Fixed dependency cycle(s) with /soc/syscon@4b010000/bridge@8 [ 2.301094] /soc/syscon@4b010000/bridge@8: Fixed dependency cycle(s) with /soc/syscon@4b0c0000/ldb@4/channel@0 [ 2.310967] /soc/syscon@4b010000/bridge@8: Fixed dependency cycle(s) with /soc/bridge@4b0d0000/channel@0 [ 2.321873] /soc/syscon@4b0c0000/ldb@4/channel@0: Fixed dependency cycle(s) with /lvds0_panel [ 2.330249] /soc/syscon@4b0c0000/ldb@4/channel@0: Fixed dependency cycle(s) with /soc/syscon@4b010000/bridge@8 [ 2.342922] scmi-pinctrl-imx scmi_dev.8: Error set config -13 [ 2.348464] scmi-pinctrl-imx scmi_dev.8: pin_config_set op failed for pin 56 [ 2.355438] fsl-lpuart 42570000.serial: Error applying setting, reverse things back [ 2.363245] Internal error: synchronous external abort: 0000000096000010 [#1] PREEMPT SMP [ 2.371199] Modules linked in: [ 2.374234] CPU: 0 UID: 0 PID: 60 Comm: kworker/u24:3 Not tainted 6.12.20-lts-next-gdfaf2136deb2-dirty #1 [ 2.383764] Hardware name: NXP i.MX95 19X19 board (DT) [ 2.388879] Workqueue: events_unbound deferred_probe_work_func [ 2.394685] pstate: 60400009 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 2.401611] pc : lpuart_probe+0x55c/0x630 [ 2.405598] lr : lpuart_probe+0x33c/0x630 [ 2.409591] sp : ffff800083083b20 [ 2.412884] x29: ffff800083083b30 x28: 0000000000000000 x27: 0000000000000000 [ 2.419991] x26: ffff000080b4c240 x25: 0000000000000000 x24: ffff800080876bf0 [ 2.427091] x23: ffff8000822d9bc8 x22: ffff000080208410 x21: ffff000080208400 [ 2.434198] x20: 0000000000000000 x19: ffff00008177a880 x18: ffffffffffffffff [ 2.441304] x17: ffff0000815ee000 x16: ffff0000815ede00 x15: 0000000000000002 [ 2.448411] x14: ffffffffffffffff x13: ffff0000807bc580 x12: 0000000000000001 [ 2.455518] x11: 000000008bb15db4 x10: 0000000000000a90 x9 : ffff800083083830 [ 2.462624] x8 : ffff0003fdf58c80 x7 : 1000000000000104 x6 : 0000000000000002 [ 2.469731] x5 : 1000000000000004 x4 : ffff0000807bc500 x3 : 0000000000000000 [ 2.476838] x2 : ffff800082400278 x1 : 0000000000000003 x0 : ffff8000825c3018 [ 2.483951] Call trace: [ 2.486378] lpuart_probe+0x55c/0x630 [ 2.490018] platform_probe+0x68/0xc8 [ 2.493651] really_probe+0xbc/0x29c [ 2.497205] __driver_probe_device+0x78/0x12c [ 2.501538] driver_probe_device+0x3c/0x15c [ 2.505698] __device_attach_driver+0xb8/0x134 [ 2.510118] bus_for_each_drv+0x88/0xe8 [ 2.513931] __device_attach+0xa0/0x190 [ 2.517744] device_initial_probe+0x14/0x20 [ 2.521904] bus_probe_device+0xac/0xb0 [ 2.525718] deferred_probe_work_func+0x80/0xb8 [ 2.530224] process_one_work+0x148/0x28c [ 2.534211] worker_thread+0x2c8/0x3d0 [ 2.537938] kthread+0x110/0x114 [ 2.541144] ret_from_fork+0x10/0x20 [ 2.544707] Code: f9411260 97fbe006 17ffff17 91002000 (b940001a) [ 2.550772] ---[ end trace 0000000000000000 ]--- 質問 ENET1_RD0 と ENET1_TD0 は、このボード上の LPUART3 RX/TX の正しいパッドですか? Linux でこれらのピンを使用するには、SCMI/ファームウェアの所有権を調整する必要がありますか? i.MX95 EVK の LPUART3 用の正常な DTS スニペットを持っている人はいますか? よろしくお願いします! Yocto Project Re: LPUART3 support in verdin imx95 @Zhiming_Liu さん、ありがとうございます。あなたが提供した解決策は機能しました。デバイス ツリーの変更に合わせて、lpuart3 に関連する imx-system-manager コードに次の変更を加え、新しい Yocto イメージを構築しました。ttyLP2 は /dev/ にあり、私のアプリケーションでも使用しており、正常に動作していました。 imx-system-manager マネージャ コードの変更: --- a/configs/mx95evk.cfg +++ b/configs/mx95evk.cfg @@ -370,7 +370,6 @@ LPIT1 OWNER LPTMR1 OWNER LPTMR2 OWNER LPTPM1 OWNER -LPUART3 OWNER, test MSGINTR1 OWNER MSGINTR2 OWNER MU5_A OWNER @@ -477,6 +476,7 @@ PERLPI_GPIO3 ALL PERLPI_GPIO4 ALL PERLPI_GPIO5 ALL PERLPI_LPUART1 ALL +PERLPI_LPUART3 ALL PERLPI_LPUART4 ALL PERLPI_LPUART5 ALL PERLPI_LPUART6 ALL @@ -760,6 +760,7 @@ LPTPM4 OWNER LPTPM5 OWNER LPTPM6 OWNER LPUART1 OWNER +LPUART3 OWNER LPUART4 OWNER LPUART5 OWNER LPUART6 OWNER 私の/devディレクトリ root@imx95:~# ls -al /dev/ttyLP2 crw-rw---- 1 root dialout 241, 2 Sep 7 14:30 /dev/ttyLP2 root@imx95:~# dmesg | grep ttyLP2 [ 2.426195] 42570000.serial: ttyLP2 at MMIO 0x42570010 (irq = 141, base_baud = 1500000) is a FSL_LPUART Re: LPUART3 support in verdin imx95 こんにちは、 LPUART3 は SCMI の M7 に割り当てられます。https://github.com/nxp-imx/imx-sm/blob/master/configs/mx95evk.cfg#L373を変更し、M7 リソースからこの行を削除する必要があります。 LPUART3 OWNER, test そして、A55 リソースに以下の行を追加してみてください。 PERLPI_LPUART3 ALL よろしくお願いします、 志明
查看全文
在恩智浦 imx8MQ EVK 板上实施 FOTA 亲爱的团队, 我计划在恩智浦imx8MQ EVK板上实施FOTA。 我查看了恩智浦提供的应用笔记 “AN13872”,找到了以下详细信息 另外,根据恩智浦社区页面和应用笔记 13872,参见第 10.1 节 " SWUpdate 目前支持 i.MX 6ULL、i.MX 8M Mini、i.MX 8QuadXPlus 和 i.MX 93 平台。 对于其他平台,用户可以自行添加支持。 除了修改SWUpdate内部的配置外,还需要对meta-swupdate-imx进行两处修改,以支持新 i.MX 平台的SWUpdate。 为了支持新平台,可以在 meta-swupdate-imx 中的 recipes-bsp/u-boot/u-boot/u-boot/u-boot-imx_.bbappend 中进行大多数更改。 ” 我们有工作示例/用户指南或Github链接来完成我在恩智浦imx8MQ EVK板上的FOTA更新吗? 我们已经在 Yocto kirkstone_5.15.32_2.0.0 上添加了 SWupdate 软件包,生成了图像并对其进行了测试,因此我们确定 SWupdate 服务已启动并正在运行,我们需要采取进一步措施让 FOTA 与 HawBit 服务器或任何其他服务器配合使用? 谢谢、 苏米特 Re: FOTA Implementation on NXP iMX8MQ EVK Board 嗨,@sumiteca09!、 感谢您联系恩智浦支持中心! 不幸的是,我们没有适用于 i.MX8MQ 处理器的特定配置,仅适用于应用笔记中列出的设备。 但是,我建议使用i.MX8MM作为参考,因为它与i.MX8MQ具有相似的架构。这可以作为您发展的一个有益起点。 致以最崇高的敬意, Chavira
查看全文
mcuboot/boot/nxp_mcux_sdk/flashapi/flash_api.c にバグがある可能性があります こんにちは、 RT1021 を使用して、mcuboot をテストしています。 画像を最大512kBにしたい。SO、sblconfig.hで私は次のように定義します: #define CONFIG_MCUBOOT_MAX_IMG_SECTORS 128 /*4kB sector * 128 = 512kB */ flash_partitioning.h 内私は次のように定義しました: #define BOOT_FLASH_ACT_APP 0x60100000 #define BOOT_FLASH_CAND_APP 0x60180000 ただし、エラーが発生します: Failed reading sectors; BOOT_MAX_IMG_SECTORS=128 - too small? デバッグしてバグがあると思われる箇所を見つけました。 https://github.com/nxp-mcuxpresso/mcuboot/blob/mcux_main/boot/nxp_mcux_sdk/flashapi/flash_api.c#L378 int flash_area_get_sectors(int fa_id, uint32_t *count, struct flash_sector *sectors) { const struct flash_area *fa; uint32_t max_cnt = *count; uint32_t rem_len; int rc = -1; if (flash_area_open(fa_id, &fa)) goto out; if (*count < 1) goto fa_close_out; rem_len = fa->fa_size; *count = 0; while ((rem_len > 0) && (*count < max_cnt)) { if (rem_len < MFLASH_SECTOR_SIZE) { goto fa_close_out; } sectors[*count].fs_off = MFLASH_SECTOR_SIZE * (*count); sectors[*count].fs_size = MFLASH_SECTOR_SIZE; *count = *count + 1; rem_len -= MFLASH_SECTOR_SIZE; } if (*count >= max_cnt) { goto fa_close_out; } rc = 0; fa_close_out: flash_area_close(fa); out: return rc; } スロット サイズがイメージ サイズと等しい場合、while ループは両方の条件が false になるまで反復されますが、ループの終了時に rem_len が 0 であってもエラーにはなりません。これは、セクター配列のすべてのエントリを使用したが、他のエントリは必要ないということを意味します。 if 条件を次のように変更する必要があると思います。 if (rem_len > 0) { goto fa_close_out; } これについてどう思いますか? よろしくお願いいたします 最大 Re: possible bug in mcuboot/boot/nxp_mcux_sdk/flashapi/flash_api.c こんにちは@mastupristi 、 この問題を報告していただきありがとうございます。 これを SDK チームに渡して、さらに調査し、必要であれば変更してもらいます。 BR、 エドウィン。
查看全文
FlexSPI (QSPI_B) 能否用于控制 i.MX 8M Mini 上的标准 SPI 外围设备? 你好 我正在使用 i.MX 8M Mini,想知道是否有可能使用 FlexSPI 控制器(MOSI、MISO、SCLK、C S)与标准 SPI 设备(例如 RTL8752H)进行通信。 我知道通常建议使用 ECSPI 控制器,但由于某些限制,我需要评估是否可以改用 FlexSPI 来控制标准 SPI 设备。 特别是,我想知道是否有可能在 i.MX 8M Mini 上通过 FlexSPI QSPI_B 控制和测试标准 SPI 设备(RTL8752H)。 我的问题是: Q1.是否可以通过这种方式配置 FlexSPI 来控制标准 SPI 设备而不是 QSPI 闪存? Q2.如果是,是否有现有的 Linux 内核支持(如 spidev),还是需要自定义驱动程序/初始化? Q3.如果没有,在无法使用 ECSPI 时有哪些替代方法? 谢谢。 Re: Can FlexSPI (QSPI_B) be used to control a standard SPI peripheral on i.MX 8M Mini? 你好@cmw Flexspi 只能连接 spi 闪存设备。如果你想连接标准的 spi 设备,你应该选择 ecspi。 B.R
查看全文
SGTL5000 can you advise how many bits the ADC and DAC are on this device. SGTL5000 Re: SGTL5000 Thank you so much! Re: SGTL5000 Hello PaulJoseph Good day! ADC and DAC resolution for the SGTL5000 Codec is 24-bits. I hope this information has helped you, please let me know if you need help with anything else. Have a great day and best of luck.
查看全文
ループや一時変数のいくつかのカウンターに CPU レジスタを使用するようにコンパイラに指示しますか? RAM/スタックを使用せずに、ループまたは変数の一部のカウンターに CPU レジスタを使用するようにコンパイラに指示するにはどうすればよいですか? Re: Order the compiler use CPU Registers for some counters of loops or temp variables? こんにちは、 最新のコンパイラ (GCC や Green Hills など MPC57xx に使用されるものを含む) は、レジスタの使用を自動的に最適化します。標準の C/C++ 構文を使用して変数をレジスタに強制することはできません。レジスタ キーワードもヒントに過ぎず、レジスタの負荷が高い場合や、変数がレジスタ内にあることでメリットがない場合には、コンパイラはそれを無視することがあります。 インラインアセンブリを使用する: これにより、レジスタの使用を直接制御できますが、移植性と保守性が犠牲になります。 アセンブリ揮発性(     「li r3, 0\n\t」  // 即値をレジスタ r3 にロードする     "ループ:\n\t"     「r3, r3, 1 を追加\n\t」     「cmpwi r3, 1000\n\t」     "bltループ\n\t"   または、キーワードを確実に登録します。これは、i をレジスタに格納する必要があることをコンパイラに示します。 for (レジスタint i = 0; i < N; i++) { // ループロジック } また、コンパイラの最適化と設定を確認したり、積極的なレジスタ割り当てやループ展開を実行したりすることもCANます。 以前は単純にアセンブリ コードを使用するのが一般的でした。最大限に最適化されており、指示されたとおりの動作をしました。 よろしくお願いいたします。 ピーター
查看全文
s32k312 Software reset time HI Using the watchdog/power management module of s32k312 for reset, but the reset time is too long, taking 4ms, and cannot respond to the upper computer information refreshed by UDS boot in a timely manner, resulting in the final error. Is there any way to speed up the reset time?
查看全文
关于在 MCUboot 中取消加密 XIP 的三插槽模式的问题 你好 在测试恩智浦的McuBoot分支时,我注意到在9月的预览版本中,一项有用的功能已被删除。 具体来说,我指的是支持加密 XIP 的三插槽模式(两个暂存插槽+一个执行插槽,用于启用还原)。 我看到了以下提交: 7c455cf2d 并附带信息 [MCUX-80671] Encrypted XIP: remove customization for three slot mode 能否请您解释一下为什么要删除这项功能? 它是否被视为过时或不再受支持? 是否有计划重新引入它,或者我们是否应该调整设计,在加密 XIP 的情况下只使用两个插槽? 这与技术限制有关,还是与简化代码库有关? 该功能对我们的使用案例非常有价值,了解删除该功能背后的原因将有助于我们计划下一步的工作。 预先感谢您的澄清。 顺祝商祺! 最大值 Re: Question about removal of three-slot mode for Encrypted XIP in MCUboot 嗨,@mastupristi、 三插槽模式是对 MCUboot 代码的修改,目的是在加密 XIP 模式下支持还原机制(SWAP/DIRECT-XIP 模式)。但是,在某些设备上,可以使用闪存重映射和加密 XIP 来实现 DIRECT-XIP,因此三插槽模式在那里没有感知。此外,由于是定制修改,很难通过社区提供的最新 MCUboot 更新进行维护,而且还存在最终认证等问题。 我们不打算再次引入。 BR, Edwin. Re: Question about removal of three-slot mode for Encrypted XIP in MCUboot 嗨,@mastupristi、 我将在内部调查这个问题。能否请您提供目前使用的 MCU?
查看全文
Question about removal of three-slot mode for Encrypted XIP in MCUboot Hello, while testing the MCUboot fork from NXP, I noticed that in the September preview release a useful feature has been removed. Specifically, I am referring to the support for three-slot mode with Encrypted XIP (two staging slots + one execution slot, used to enable revert). I saw this commit: 7c455cf2d  with the message: [MCUX-80671] Encrypted XIP: remove customization for three slot mode Could you please explain why this functionality was removed? Is it considered deprecated or no longer supported? Are there plans to reintroduce it, or should we adapt our designs to use only two slots in case of encrypted XIP? Was this related to technical limitations, or more to simplify the codebase? This feature was quite valuable for our use case, and understanding the rationale behind its removal will help us plan the next steps. Thank you in advance for your clarification. best regards Max Re: Question about removal of three-slot mode for Encrypted XIP in MCUboot Hi @mastupristi, Three slot mode was a modification of the MCUboot code to support the revert mechanism (known from SWAP/DIRECT-XIP mode) in Encrypted XIP mode. However, on some devices, it's possible to implement DIRECT-XIP with flash remap and Encrypted XIP, so three slot mode doesn't make sense there. Additionally, due to the custom modification, it was difficult to maintain with newer MCUboot updates from the community, plus there were concerns about eventual certification, etc. We are not planning to reintroduce it again. BR, Edwin. Re: Question about removal of three-slot mode for Encrypted XIP in MCUboot Hi @mastupristi, I will investigate this topic internally. Could you please provide the MCU that you are currently using?
查看全文
KW45 初めてのプログラミング 初めてカスタム KW45 ベースの PCB をプログラムしようとしています。MCUXpressoを使ってみました。J-Link は SWD 経由でプログラムをアップロードできましたが、デバッグ モードに入ろうとするとボードがアドレス 0x14816fdc で停止します。さらに調査を進めると、Bluetooth コプロセッサの NBU をアップロードする必要があることが判明しました。AN13838 を試しましたが、UART 経由でボードを検出できません。AN14003 を調べてきましたが、現在の SPSDK に関してはその情報が古くなっています。私は何をしますか? Re: KW45 First Time Programming こんにちは、 Threadを読んでいて、AN14003 に記載されている手順に従い、SWD を使用して KW45 をプログラムするための単一のバイナリを生成しようとしていることを理解しました。このThreadは少し古いですが、成功しましたか? 私もここで同じことをやろうとしていますが、いくつか問題に直面しています。キーを生成し、安全なバイナリを作成するための Jupyter 部分は成功しませんでした。その部分については、同じThreadで言及された SPSDK CLI ツールを使用しています (キーと sb3 ファイルを生成するためです)。しかし、バイナリ ファイルをマージするときに問題が発生します。 ドキュメントに従って、 otap_client_freertos SDK の例を使用し、記載されているように変更を加えました。bin ファイルを生成しました。次に、16進エディタでotap_client_freertos.binとkw45b41_nbu_ble_xp_hosted.sb3ファイルを開き、sb3ファイルの内容をotap_client_freertos.binのアドレス0x7A000にコピーしました。 前述の通り。次に、マージされたバイナリを SEGGER J-Flash ユーティリティにロードして、バイナリを KW45 にフラッシュしました。しかし、操作は失敗し、その後は点滅の例をプログラムすることさえできなくなりました。この状態から回復するには、ISP モードに入り、チップ全体を消去する必要がありました (消去するためにも、SWD 経由でチップにアクセスできませんでした)。以下は、マージされたバイナリでフラッシュに失敗したときに表示されるエラー メッセージです。 **************************************************************************************** ターゲットのプログラミングと検証中 (1040384 バイト、1 つの範囲)... - 接続中... - USB経由でプローブ/プログラマデバイス0に接続 - プローブ/プログラマーファームウェア: J-Link V9 コンパイル日: 2022年12月13日 11:14:50 - プローブ/プログラマーS/N: 69730348 - デバイス「KW45B41Z83」が選択されました。 - ターゲットインターフェース速度: 4000 kHz (固定) - VTarget = 3.290V - ConfigTargetSettings() の開始 - ConfigTargetSettings() 終了 - 499us かかりました - InitTarget() 開始 - SWDが選択されました。JTAG -> SWD 切り替えシーケンスを実行しています。 - ROM が ISP コマンド処理ループに入りました。デバッグ アクセスを再度有効にします。 - InitTarget() 終了 - 117msかかりました - ID 0x6BA02477 の SW-DP が見つかりました - DPv0が検出されました - CoreSight SoC-400 以前 - AP マップの検出をスキップしました。手動で構成された AP マップが見つかりました。 - AP[0]: AHB-AP (IDR: 未設定、ADDR: 0x00000000) - APマップを反復処理して使用するAHB-APを見つける - AP[0]: ROMBASE読み取りをスキップしました。CoreBaseAddrはユーザーが手動で設定します - AP[0]: コアを発見 - CPUIDレジスタ: 0x410FD214。実装者コード: 0x41 (ARM) - 機能セット: メインライン - キャッシュ: キャッシュなし - Cortex-M33 r0p4、リトルエンディアンが見つかりました。 - Cortex-M (ARMv8-M 以降): コネクテッド J-Link (S/N 69730348) は、I/D キャッシュを正しく処理しない古いファームウェア モジュールを使用します。キャッシュが有効になっている場合、適切なデバッグ機能は保証されません。 - FPUnit: 8 つのコード (BP) スロットと 0 つのリテラル スロット - セキュリティ拡張: 実装済み - セキュアデバッグ: 有効 - ROM テーブルスキャンはスキップされました。ユーザーが手動で設定した CoreBaseAddr: 0x80030000 - SetupTarget() の開始 - SetupTarget() 終了 - 7.11msかかりました - 初期化シーケンスを実行しています... - リセット実行中(0, 0 ms) - ResetTarget() 開始 - 有効なアプリケーションがプログラムされていません。リセットをスキップします。 - ResetTarget() 終了 - 1.18msかかりました - デバイス固有のリセットが実行されました。 - 初期化に成功しました - ターゲットインターフェース速度: 4000 kHz (固定) - JTAG デバイスが 1 個見つかりました。コアID: 0x6BA02477 (なし) - コネクテッドに成功しました - 選択したデータが選択したフラッシュ セクターに収まるかどうかを確認します。 - フラッシュプログラミングの準備の開始 - フラッシュプログラミングの準備終了 - フラッシュキャッシュ内のダーティエリアの特定を開始 - 汚れたエリアの特定終了 - CPU速度を測定できませんでした。 - フラッシュプログラミングの開始 -プログラミング範囲 0x00000000 - 0x00007FFF ( 4 セクター、32 KB) - フラッシュプログラミングの終了 - エラー: プログラムが失敗しました - 復元の開始 - エラー: ターゲットの復元に失敗しました。RAMCodeは停止しません - 復元終了 - エラー: ターゲットのプログラムと検証に失敗しました 警告: 供給電圧が低すぎるか高すぎるため、ターゲットを切断します。VTarget = 0.000V 切断しています... - 切断されました ********************************************************************************************** プログラムしようとしている領域は 0x00000000 - 0x00007FFF のようです が、ドキュメントによると、NBU ファームウェアは この範囲外の 0x7A000 にコピーされます。 間違っていたら訂正してください。 Re: KW45 First Time Programming 次の定義を使用して、Bluetooth ファームウェアが KW45 にアップロードされました。 OtaPartition_t テスト_ota_partition = { /*開始オフセット*/ 0,\ /*サイズ*/ 0,\ /*セクターサイズ*/ 0,\ /*ページサイズ*/ 0,\ /*internal_flash*/ 真、\ /*spi_ボーレート*/ 0,\ }; Re: KW45 First Time Programming こんにちは ここで言及されているのと同じ問題に遭遇しました... 「アプリケーションノートを実装しようとしていますが、このカスタムボードの機能を検証するためだけにデフォルトのキーを使用します。an14003では、 13ページのTest_ota_partitionがOTAPの例やその他のコードでは定義されていません。 」 この変数のサンプルデータを提案していただけますか?内部メモリを調べていると混乱してきます。この変数のサンプル(テスト)値を確認すると、理解が深まります。 Re: KW45 First Time Programming このThreadを閉じます。カスタム ハードウェアにデザインエラーがあり、boot_config ピンが永続的にプルアップされていました。取り外すと問題は解決し、NBU を AN14003 の指定どおりにプログラムできるようになりました。 Re: KW45 First Time Programming こんにちは、 ブートローダを使用して NBU イメージをロードするには、PTC2 および PTC3 [LPUART1] を使用して接続します。この接続により、ROM ブートローダは ISP モードに入り、blhost を使用して KW45 デフォルト キーと NBU イメージをロードできるようになります。デバイスをブートローダ モードにするために BOOT_CFG[PTA4] を論理ハイに引き上げる方法のオプションを用意することが推奨されています。また、ISP によって使用されるペリフェラル インスタンスを UART から USB へのコンバータに接続するオプションも用意することが推奨されています。 この情報は、 KW45リファレンス・マニュアルの第16章表74とハードウェアデザインの推奨事項のスライド52ブートローダの章に記載されています。 ISP モードに入る手順を説明していただけますか?リセット中にBOOT_CFG[PTA4]ピンからVDDに接続しましたか? UART0 接続を UART1 に変更して ISP モードに入り、KW45 のデフォルト キーと NBU イメージ [SDK v25.09] をアップロードすることは可能でしょうか? ここで説明した方法で ISP モードに入り、blhost が使用できるようになるかどうかをお知らせください。 また、例に使用した SDK のバージョンを共有していただけますか?また、SDKs の例を NBU イメージと一致させるために、利用可能な最新バージョン [25.09] をご使用ください。 よろしくお願いいたします。 ルイス Re: KW45 First Time Programming blhost が、ボードにコネクテッドした UART から USB へのコンバータを検出しません。COM8 では別のコンバーターを使用していますが、COM15 のコンバーターで発生したのと同じ問題が発生しています。 Re: KW45 First Time Programming こんにちは、 お使いのコンピューターのデバイス マネージャ ツールの [ポート (COM と LPT)] セクションで、ボードが COM ポート [UART] として正しく検出されているかどうか確認していただけませんか?これはアクティブな COM 接続を確認するのに役立ちます。画像によると、コマンドはCOM15を使用しているようですが、debug_logはCOM7を示しています。 デバイスマネージャーでは、次のようなものが表示されます。   COM7 での接続を確認した場合は、blhost コマンド [blhost -p COM7 get-property 0x01] を再試行して、成功応答接続を確認してください。 このコマンドが成功した場合は、COM15 ではなく COM7 を使用して MCUXpresso Secure Provisioning Tool の手順を再試行し、NBU イメージを更新してください。 結果をお知らせください。 よろしくお願いいたします。 ルイス Re: KW45 First Time Programming 部品番号はこちらです: KW45B41Z83AFTBR blhost を使用できません。 試してみると、次のようになります。 LPUART0 ピンにコネクテッドされた USB から UART へのアダプターがあります。 以下のことが可能です。 エラーが参照するデバッグ ログが添付されています。USBからTTLシリアルへの変換はCOM15にコネクテッドする必要があります Re: KW45 First Time Programming KW45 がどの OEM 州にあるか確認していただけますか?blhost ツール コマンド「blhost -p COMx get-property 0x01」を使用できますが、応答を共有していただけますか?また、KW45 の完全な部品番号を教えていただけますか? 部品番号情報は、KW45B(無線)およびKW45Z(MCU)データシートの表1で確認できます。 敬具、ルイス Re: KW45 First Time Programming LED 点滅の例の場合でも、プログラムは 0x14816fdc で停止します。 Re: KW45 First Time Programming Hello ワイヤレスや Bluetooth Low Energy の例を除いて、ボード上で任意のプログラムをフラッシュして実行できるかどうかを確認させていただけませんか? これは、NBU を必要としないプログラムを実行している場合でも、ボードが動作に失敗するかどうかを確認したいためです。 基本的な機能を確認するには、SDK で利用可能な例の 1 つをテストすることをお勧めします。 さらに、KW45B41Z-EVK 回路図と比較して、ボードのシリアル接続が正しく構成されていることを確認してください。回路図は次のリンクから参照できます: KW45B41Z 評価キットボード回路図 よろしくお願いいたします。 ルイス Re: KW45 First Time Programming ルイス: SPSDK をインストールし、あなたが言及したツールを見つけました。現在の問題は、USB 用のオンボード デバイスがないため、USB から UART へのコンバーターを使用する必要があることです。ソフトウェアがボード (USB から TTL へのコンバータを備えた USB ポート上) を見つけられないため、以下のエラー メッセージが表示されます。 ターミナルで nxpdebugmbox cmd -f kw45b41z8 ispmode -m 1 コマンドを使用して ISP モードに設定したことがCAN確認できます。ターミナルには設定が正常に実行されたことが示されています。 Re: KW45 First Time Programming こんにちは、 この手順は「 MCUXpresso Secure Provisioning Tool」について言及しており、OS の最新バージョン「MCUXpresso Secure Provisioning Tool 25.06 」を使用することをお勧めします。このツールは、このリンクからダウンロードできます: MCUXpresso Secure Provisioning Tool のダウンロード、また、ツール内に新しいワークスペースを作成することもできます。   よろしくお願いします。 ルイス Re: KW45 First Time Programming 送信されたガイドに指定されているように、MCUXpresso で [ツール] > [製造ツール] が見つかりません。さらに最新の情報はありますか? Re: KW45 First Time Programming ログ障害またはメッセージ エラーを共有していただけますか? 調べていただけることとして、おっしゃるとおり、AN14003 でヒューズを焼き付けるためのデフォルト キーを使用しています。SDKs の sb3 ファイルは KW45 ボードに焼き付けられたデフォルト キーに適用されるため、セクション 3.3 「ワイヤレス例の NBUの更新」で説明されている手順を使用して NBU イメージを更新していただけますか。 ヒューズの燃焼プロセスが正しく実行されたかどうかの確認を手伝っていただけますか?そうでない場合は、表示されたエラーを共有していただけますか? ISPモードに問題なくCAN入るか確認していただけますか? Re: KW45 First Time Programming これは機能しませんでした。デバッグしようとすると、依然としてブート メモリ内のそのアドレスにアクセスします。他に何か調べられることはありますか? Re: KW45 First Time Programming PLATFORM_OtaGetOtaInternalPartitionConfig は内部パーティション構成構造を返します。内部フラッシュが選択され、値が 0 から始まることを確認するために、手動で初期化を試みることができます。 それがうまくいったかどうか教えてください。 OtaPartition_t Test_ota_partition = {     /*start_offset*/ 0,\     /*size*/         0,\     /*sector_size*/  0,\     /*page_size*/    0,\     /*internal_flash*/ true,\ /*spi_baudrate*/ 0,\ }; loader_info.partition_desc= &Test_ota_partition; Re: KW45 First Time Programming evk sb3 を使用して、an14003 セクション 5 (セクション 3 は省略) に従ってみました。私が行った唯一の変更は設定です loader_info.partition_desc = PLATFORM_OtaGetOtaInternalPartitionConfig(); 生成されたバイナリと SB3 をマージすると、同じエラーが発生します。何を調べることをお勧めしますか? Re: KW45 First Time Programming こんにちは、 test_ota_partition関数は、 fwk_platform_ota.hで定義されているOtaPartition_t構造体を利用します。AN14003 で説明されている他の手順で使用される OTA 操作を管理するために使用されます。 この構造は、オフセット、サイズ、セクターとページのサイズ、フラッシュが内部か外部かなどのパラメータを含む、Over-the-Air (OTA) 更新パーティションの特性を記述します。 アプリケーションノート AN14003 のコメントで概説されているように、Test_ota_partition が使用されている箇所では内部フラッシュを使用することが示されているSO、内部フラッシュを使用するにはパラメータを初期化し、true にする必要があります。 これは、すべてのお客様が独自に実装する必要があるものです。また、定義を含む構造体を添付しました( fwk_platform_ota.hから取得)。 typedef struct { uint32_t start_offset; /*!< Offset of firmware update partition in flash device. The physical address is translated by flash driver */ uint32_t size; /*! Size of firmware update storage expressed in bytes */ uint32_t sector_size; /*! Sector size of flash used for OTA, usually 4kB for external flash but varies for internal flash */ uint32_t page_size; /*! Page size of flash device : minimal program size*/ bool internal_flash; /*! true if internal flash, false for SPI NOR Flash */ uint32_t spi_baudrate; /*! SPI baudrate concerns only external flash if flash config is not used KW45 case */ } OtaPartition_t; よろしくお願いいたします。 ルイス Re: KW45 First Time Programming ルイス: 私はアプリケーションノートを実装しようとしており、このカスタム ボードの機能を検証するためだけにデフォルトのキーを使用します。an14003の13ページのTest_ota_partitionは、OTAPの例でも、提供されているコードの残りの部分でも定義されていません。この変数は何を意味するのでしょうか? Re: KW45 First Time Programming こんにちは、 最終目標が、SDKs の例を使用して KW45B41Z-EVK と同じカスタム KW45 ベースの PCB を使用することなのか、それともカスタム アプリケーション用なのかを確認する必要があります。 これは、チップに焼き付ける必要があるヒューズに干渉するからです。 NBU イメージを KW45 デバイスに更新するには、2 種類のキーを KW45 ヒューズに書き込む必要があります。デフォルトでは、KW45B41Z-EVK ボードに RoTKTH と SB3KDK が提供されていますが、工場出荷時のチップではヒューズ内のキーは null です。 したがって、工場チップの場合、お客様は[ AN14003 量産中にシリアルワイヤデバッグを介してアプリケーションおよび無線ファームウェア用にKW45フラッシュをプログラミングする]の指示に従って、最終目標に関連するヒューズを焼き切る必要があります。 KW45B41Z-EVKと同じ開発用ボードを使用する場合は、KW45B41Z-EVKボードの同じキー値を直接使用できます(AN14003の5.2.1章の図9に記載)。ボードを別の最終製品またはカスタム最終アプリケーションに使用する場合は、独自のキーを作成し、.xipを使用してsb3ファイルを生成することをお勧めします。最終製品専用の新しいNBUイメージのファイル 次に、NBU を更新します。KW45B41Z-EVK と同じように開発用にボードを使用する場合は、SDK フォルダー内にある同じ sb3 ファイルを使用して NBU を更新できます。別の最終製品またはカスタム エンド アプリケーションにボードを使用する場合は、AN14003 の第 4 章に記載されている手順に従って、NBU イメージをアップロードするための独自の sb3 ファイルを作成する必要があります。 このドキュメントに記載されているヒューズの焼損方法は元に戻すことができないことに注意してください。KW45 のヒューズにプログラムされたキーは変更できなくなります。したがって、ヒューズを変更する場合は注意することをお勧めします。 よろしくお願いいたします。 ルイス Re: KW45 First Time Programming ヒューズはまだ燃えていません。KW45 は布製です。チップ上の NBU の更新はこれまで行われたことがありません。 Re: KW45 First Time Programming Hello あなたが言及したメモリアドレスはROM-Boot [表16 KW45リファレンスマニュアル]を参照しています。KW45では、ブートROMのみがNBUフラッシュにアクセスできます。 ROMブートプロセスフローの詳細については、AN14003の図2を参照してください。 カスタム PCB にファブリックの KW45 チップを使用しているので、AN14003 で説明されているプロセスに従って、ファブリックの KW45 チップのヒューズがすでに焼損しているかどうかを確認させていただけますか? ヒューズがすでに切れていた場合、第 5.2.1 章 [AN14003] に記載されているデフォルトの KW45B41Z-EVK キー [SBKDK および RoTKTH] が使用されたかどうかを確認できますか?または、ボードにカスタム生成されたキーを使用します。 また、確認ですが、チップ上で以前に NBU の更新を実行したことがありますか? よろしくお願いいたします。 ルイス Re: KW45 First Time Programming このカスタム ボードでは、LPUART0 TX ピンと RX ピンにヘッダーを介してアクセスできることを明確にします。
查看全文