Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
imx-automotive-14.0.0_2.3.0 版本问题 我正在尝试在 ubuntu 22.04 桌面中版本 " imx-automotive-14.0.0 _2.3.0 "。当我启动安卓版本时(我运行了这个命令 "./imx-make.sh-j4 2 > & 1 | tee build-log.txt ")。版本已启动,运行了几分钟并终止。我附上 build-log.txt 文件供你参考。请帮助我解决这个问题。提前感谢您 Re: imx-automotive-14.0.0_2.3.0 build issue 如果你不做任何改动,你能成功版本 android 14 吗?建议你在不做任何修改的情况下版本 android 14,至少改善你的版本环境没问题 Re: imx-automotive-14.0.0_2.3.0 build issue 你好, ,我已经安装了libbpf-dev,但在构建时仍遇到问题。我正在附上版本日志文件。请帮我解决这个问题。 我所做的其他更改 1) 在此路径下 /home/sdv/Music/imx-automotive-14.0.0_2.3.0/android_build/vendor/nxp-opensource/kernel_imx/scripts/ 文件link-vmlinux.sh 内、注释的代码。 #if ![ -x"$(命令 -v${PAHOLE})" ]; then # echo>& 2"BTF:${1}: pahole (${PAHOLE}) is not available" # 返回 1 #fi 2) 在此路径中,/home/sdv/Music/imx-automotive-14.0.0_2.3.0/android_build/out/target/product/mek_8q/obj/KERNEL_OBJ/ 在.config 文件中, 将CONFIG_DEBUG_INFO_BTF=y改为# CONFIG_DEBUG_INFO_BTF 未设置 将CONFIG_DEBUG_INFO_DWARF5=y改为# CONFIG_DEBUG_INFO_DWARF5 未设置 Re: imx-automotive-14.0.0_2.3.0 build issue 你好, ,因为它说需要 libbpf 头文件,所以你需要安装 libbpf-dev。 致敬, Zhiming Re: imx-automotive-14.0.0_2.3.0 build issue 你好, 我已经安装了必要的代码包并开始版本。之后,我得到了一个错误信息:"libbpf:BTF header not found pahole: .tmp_vmlinux.btf:无效参数 LD .tmp_vmlinux.kallsyms1 NM .tmp_vmlinux.kallsyms1.syms KSYMS .tmp_vmlinux.kallsyms1.S AS .tmp_vmlinux.kallsyms1.S LD .tmp_vmlinux.kallsyms2 NM .tmp_vmlinux.kallsyms2.syms KSYMS .tmp_vmlinux.kallsyms2.S AS .tmp_vmlinux.kallsyms2.S LD vmlinux BTFIDS vmlinux FAILED: load BTF from vmlinux:Invalid argument make[4]:*** [/home/sdv/Music/android_build/vendor/nxp-opensource/kernel_imx/scripts/Makefile.vmlinux:37:vmlinux] 错误 255 make [4]:*** 删除文件 'vmlinux' m ake [3]:*** [/home/sdv/music/android_build/vendor/vendor/nxp-opensource/kernel_imx/M akefile: 1237:vmlinux] 错误 2 make [2]:*** [/HOME/SDV/music/android_build/vendor/vendor/nxp-opensource/kernel_imx/Makefile: 1237:vmlinux] 错误 2 make File: 252: __sub-make] 错误 2 make [2]:离开目录 '/home/sdv/music/android_build/out/target/product/mek_8q/obj/kernel_obj 'make [1]:*** [Makefile: 252: __sub-make] 错误 2 make [1]:离开目录' /HOME/SDV/Music/android_build/vendor/vendor/vendor/vendor/vendor/vendor/nxmasic/music/Android_build/vendor/vendorp-openSource/kernel_imx ' 制作地址:*** [/home/ SDV/music/Android_build/device/nxp/common/build/kernel.mk: 197:/HOME/SDV/音乐/Android_build/out/target/product/mek_8q/obj/kernel_obj/kernel_obj/arch/arch/arch/arch/arch/arc/arch/arch/arch/错误 2 make:Leaving directory '/home/sdv/Music/android_build'".因此,我取消了 "生成 BTF 类型信息 "选项。 我再次启动了新的版本,但是版本运行了几分钟并停止了。我附上了构建日志文件以供参考。请帮助我解决这个问题。预先表示感谢。 Re: imx-automotive-14.0.0_2.3.0 build issue 嗨 @VarunK1 请参考用户指南安装必要的主机软件包。 致敬, Zhiming
View full article
RPMsg-Lite rpmsg_lite_alloc_tx_buffer は A55 がサスペンドされるとブロックまたはエラーが発生します こんにちは、 i.MX93 上の Cortex-M33 と Cortex-A55 間の RPMsg-Lite 通信で問題が発生しています。 A55 がサスペンド モードに入ると、M33 側での rpmsg_lite_alloc_tx_buffer() への呼び出しは、正確な状況に応じて無期限にブロックされるか、ハード エラーが発生します。関数 rpmsg_lite_is_link_up() は引き続き true を返すため、この状態が明確に検出されません。 根本的な問題は、vq->vq_ring.availがマッピングされたままであるが、vq->vq_ring.avail->idxにアクセスすると、障害またはハングを引き起こします。A55 が停止し、通信が信頼できなくなったことを検出する安全なメカニズムは存在しないようです。 これにより、M33 側の堅牢性を確保することが難しくなります。理想的には、A55 が中断されたときに、rpmsg_lite_alloc_tx_buffer() がクラッシュしたり無期限にブロックしたりすることなく、安全にエラーを返すかタイムアウトするようにします。 このCASEを安全に処理するための推奨事項や回避策はありますか? また、この状況に対処するための更新が予定されていますか? よろしくお願いいたします。 パトリス Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 前に言ったように、そのアドレスは SRAM ではありません。共有 SRAM を CAN: SDKs 内の sai_low_power_audio の例を参考にしてください。 ここで、SRAM を指しているリンカー ファイルをCANます。 よろしくお願いいたします。 サラス。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 ご提案のとおり、vdev vrings を設定してみました。 reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; ethosu_mem: ethosu_region@88000000 { compatible = "shared-dma-pool"; reusable; reg = <0x0 0x88000000 0x0 0x8000000>; }; vdev0vring0: vdev0vring0@aff00000 { reg = <0 0xaff00000 0 0x8000>; no-map; }; vdev0vring1: vdev0vring1@aff08000 { reg = <0 0xaff08000 0 0x8000>; no-map; }; vdev1vring0: vdev1vring0@aff10000 { reg = <0 0xaff10000 0 0x8000>; no-map; }; vdev1vring1: vdev1vring1@aff18000 { reg = <0 0xaff18000 0 0x8000>; no-map; }; rsc_table: rsc-table@2021e000 { reg = <0 0x2021e000 0 0x1000>; no-map; }; vdevbuffer: vdevbuffer@87f00000 { compatible = "shared-dma-pool"; reg = <0 0x87f00000 0 0x100000>; no-map; }; ele_reserved: ele-reserved@87de0000 { compatible = "shared-dma-pool"; reg = <0 0x87de0000 0 0x100000>; no-map; }; }; M33 コードでは次のようになります。 #define VDEV0_VRING_BASE (0xAFF00000U) #define VDEV1_VRING_BASE (0xAFF10000U) A55 がサスペンド状態でない場合、通信は正常に動作しますが、A55 がサスペンド モードの場合、M33 は常に rpmsg_lite_alloc_tx_buffer でクラッシュします。 あなたの側でこれをテストしましたか?これは動作するはずですか? お時間を割いてご協力いただきありがとうございました。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは! ご説明ありがとうございます。しかし実際には、Variscite デバイス ツリーで使用されるアドレスも DRAM 用です。 SRAMで試すことができます。 よろしくお願いいたします。 サラス。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 実際、私は以下を定義する Variscite DTS を使用しています。 vdev0vring0: vdev0vring0@87ee0000 { reg = <0 0x87ee0000 0 0x8000>; no-map; }; vdev0vring1: vdev0vring1@87ee8000 { reg = <0 0x87ee8000 0 0x8000>; no-map; }; vdev1vring0: vdev1vring0@87ef0000 { reg = <0 0x87ef0000 0 0x8000>; no-map; }; vdev1vring1: vdev1vring1@87ef8000 { reg = <0 0x87ef8000 0 0x8000>; no-map; }; まだ試していませんが、あなたの解決策は本当に有望に見えます! ご返信よろしくお願いします。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 vdev0vring と vdevbuffer を DRAM ではなく SSRAM に変更してみることもCANます。 リファレンス・マニュアルに記載されているように、DRAM はディープ スリープ モードではクロック ゲーティングされます。 i.mx8ulp のデバイス ツリーでは、これらが DRAM に構成されていることがわかります。 よろしくお願いいたします。 サラス。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 誰かこのトピックについて説明してくれませんか? よろしくお願いします。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは、 はい、A55 がサスペンド モードのときは常に発生します。再現するのは本当に簡単です: A55 に定期的にメッセージを送信する (/dev/ttyRPMSG ttyRPMSG30 経由で受信可能)、またはデバッグ コンソールのキーを押すことによってトリガーされる M33 ファームウェアを使用します。 echo mem > /sys/power/state を使用して A55 をサスペンド モードにします。 M33がサスペンドモード後にメッセージを送信しようとするとすぐに、rpmsg_lite_alloc_tx_bufferで停止し、問題はvq->vq_ring.avail->idxへのアクセスに関連しているようです。トリガー。 関連する質問もあります。A55 Linux 側で、M33 がスリープ モードになっているかどうかを知ることは可能ですか? ありがとうございます。 Re: RPMsg-Lite rpmsg_lite_alloc_tx_buffer Blocks or Faults When A55 is Suspended こんにちは@PBouchand お元気でお過ごしのことと思います。 これは Cortex A55 がサスペンド状態のときにのみ発生するのでしょうか? 私の側でそれを再現する手順を共有していただけますか? よろしくお願いいたします。 サラス。
View full article
S32K358 MCU 上的睡眠和唤醒驱动器配置 您好, 我一直在使用 S32K358,并参考了 S32K3XX 的低电源管理单元示例,该示例演示了使用 GPIO 的睡眠和唤醒功能。不过,我还没能让它按照预期运行。 我怀疑可能是我的配置或执行出现了问题。如果您能查看我的配置和源文件,并告诉我它们是否正确或是否需要修改,我将不胜感激。 经过多次尝试,我仍然无法达到预期效果,因此我希望得到您的指导。 现附上我的配置和源文件,供您审阅。 IDE:S32DS 3.5.14 SW 版本:4.0 HW: S32K358 致以最诚挚的问候, Karmegan C Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 嗨,@karmegancjk、 当检测到唤醒且 S32K358 进入 RESET 序列时,RAM 内容是易失性还是非易失性? 32KB 的 SRAM 内容是非易失性的,或者说,32KB 的 SRAM 在待机时保持供电:   如果 RAM 内容需要非易失性,如何创建备用 RAM 内存并将 RAM 数据复制到备用 RAM 内存? 为了使用备用 RAM,必须修改链接器文件,分配单独的 32KB,放置备用部分,并调整链接器地址符号。如果之前的 RESET 是 POR,则还必须初始化待机 RAM 的 ECC。 我已经给你发了一条私信,里面有关于如何使用待机 RAM 和一般低功耗的演示。 待机模式是否类似于 S32K358 Cortex-M7 的睡眠模式或深度睡眠模式? 是的,待机模式类似于深度睡眠: 致以最诚挚的问候, Julián Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 你好,胡利安、 S32K358 通过 GPIO 实现休眠和唤醒功能。如上所述,当检测到上升沿时,控制器将按复位顺序进行 RESET。现在,我有一些疑问: 当检测到唤醒且 S32K358 进入 RESET 序列时,RAM 内容是易失性还是非易失性? 如果 RAM 内容需要非易失性,如何创建备用 RAM 内存并将 RAM 数据复制到备用 RAM 内存? 待机模式是否类似于 S32K358 Cortex-M7 的睡眠模式或深度睡眠模式? Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 嗨,@karmegancjk、 进入待机模式时,我使用的是唤醒通道 46 (PTC24)。我的理解是,如果在此引脚上检测到上升沿,则应触发唤醒中断。 外部唤醒信号支持上升或下降检测。 程序计数器是否从地址 0x00402000 开始恢复执行? 还是需要完全 RESET 微控制器才能恢复执行? 在以前的设备 (S32K1) 中,代码在 WFI 指令之后恢复执行,这意味着在 WFI 之后唤醒 ISR → 代码;S32K3 将在唤醒后始终执行 RESET 序列。这可能取决于配置的待机模式。 例如,正常待机退出执行 RESET 序列,然后初始化 sbaF 和 HSE 固件(如果已安装),然后在 reset_handler 恢复执行。 但是,快速待机退出可以跳过 sbaF 和 HSE 初始化,直接跳转到用户定义的启动地址。在此用户定义的启动地址之后,建议执行完全 RESET 以完全初始化设备(或者您可以再次返回待机状态,具体取决于应用程序的需求): 至于项目配置,似乎一切正常。 致以最诚挚的问候, Julián Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 您好, 我对 MCU 进入待机模式(睡眠或深度睡眠模式)时的行为有些疑问。在这种模式下,程序计数器是否会冻结,并在唤醒后从矢量地址 0x00402000 重新启动,还是从停止的位置继续执行? 请检查我的电源和唤醒驱动程序配置(.cfg 文件中)是否正确。文件)是正确的吗?我附上了我的项目中的配置文件供你参考。 Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 你好,朱利安, 我们使用的是基于 S32K358 MCU 的定制硬件。我有一个关于待机模式下唤醒功能的问题。 进入待机模式时,我使用的是唤醒通道 46 (PTC24)。我的理解是,如果在此引脚上检测到上升沿,则应触发唤醒中断。 不过,我不确定唤醒事件之后会发生什么。具体为: 程序计数器是否从地址 0x00402000 开始恢复执行? 还是需要完全 RESET 微控制器才能恢复执行? 另外,我没有使用任何中断控制 API 进行唤醒配置,所以我不确定唤醒中断是否得到正确处理或者是否需要 RESET。 请说明在这种情况下唤醒过程是如何进行的,以及预期的程序流程是怎样的? ,感谢您的支持。 致以最诚挚的问候, Karmegan C Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 嗨,@karmegancjk、 您使用的是 S32K3X8EVB 还是定制硬件? 请记住,S32K358 在 PMIC 握手时增加了退出待机的步骤。 如果你不使用握手,请在 DCMRWF1: 已解决:S32K3: 请求唤醒和 RESET 行为支持——恩智浦社区中设置 PMIC_PGOOD_HNDSHK_BYP 位 。 另外,您配置的是哪个 GPIO?请使用 S32K3 参考手册所附的 S32K358_IOMUX.xlsx 文件交叉检查 WKPU 信号是否正确。 致以最诚挚的问候, Julián Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU 嘿@karmegancjk , 我目前也在研究睡眠和唤醒序列,您能否分享一下您的工作代码供我参考?如果您能分享,那就太好了。
View full article
采用 PCIE 模式的 1G SGMII SerDes 配置 大家好 我对 S32G2 上的 SerDes 配置有疑问。 使用情况是串行接口 0 上的模式 1 Serdes0 第 0 巷:PCIE Serdes0 通道 1:GMAC SGMII 1G S32G2 Serdes RM 中没有关于 1G SGMII 和 PCIe 的说明。 尽管 S32G2 不支持 2.5G SGMII 和 PCIe(1.5 Enabling 2.5G SGMII with PCIe on SerDes lane 0)模式,但还是有关于该模式的描述。 最后,我在 S32G3 Serdes RM(1.6 Enabling 1G SGMII with PCIe on SerDes lane 0)中找到了关于在 SerDes 通道 0 上使用 PCIe 的 1G SGMII 的说明。 Q1.G2 和 G2 的配置步骤是否相同?那么,我可以在 G2 上按照 S32G3 Serdes RM 进行模式 1(1G SGMII + PCIE)配置吗? U-启动 中的 XPCS 驱动程序 如果使用扩展时钟 我在 xpcs_init_plls() 中为 "NOT_SHARED "和 "PCIE_XPCS_2G5 "找到了 "wait_power_good_state"。但是,PCIE_XPCS_1G 没有 wait_power_good_state 函数。 Q2.是遗漏了,应该添加,还是没有必要? Q3.对于 PCIE_XPCS_1G,除了等待 pgood 之外,顺序是否与 NOT_SHARED 相同?我想知道是否还需要下面的红框。 启用 1G SGMII 与 PCIE Vs.将 PHY 切换到 1G 速度 根据 S32G3 RM,使用 PCIe 的 1G SGMII 需要以下序列。 将 PHY 切换到 1G 速度的步骤如下。 Q4.模式 1 是否需要两种配置?我找不到 "使用 PCIE 启用 1G SGMII "的步骤。 谢谢! 顺祝商祺! 约翰-柳 Linux BSP
View full article
S32G2 Cortex-M7 Baremetal Programming Hello All. I wanted to know how to Boot Cortex-M7 onboard S32G2. And I want to run a baremetal application on it without any RTOS. How do I proceed, any reference documents for booting the M7 core and running a baremetal program on it? Thanks in advance. BR Arun Re: S32G2 Cortex-M7 Baremetal Programming Hello, @arun_belamge  Thanks for your reply. For only booting the board via M7 side, most of the examples shown in the RTD could be used, you may reference the beginning phase code from the example for details(for example, you may refer to the gmac example, but ignoring the network part, only focus on the booting phase steps/APIs) Besides, there is also a M7 bootloader example shown in the GoldVIP package, which is a full M7 bootloader sample for booting the S32G2. BR Chenyin Re: S32G2 Cortex-M7 Baremetal Programming Hello Chenyin. Thanks for the suggestion. Can you point me to any reference document which shows "How to boot only the Cortex - M7 core?".  Once I am able to boot the M7 core, I will try to directly access the hardware by using the low level APIs to run my program. Thank you! BR Arun Re: S32G2 Cortex-M7 Baremetal Programming Hello, @arun_belamge  Thanks for your reply. 1. From NXP formal software view, the only SDK that provided for M7 side is the RTD 2. If you are willing to program on your board with true baremetal way, you may directly trying the low-level APIs lie at the bottom level of MCAL I feel sorry that there is no such document provided for your reference, I suggest referencing the code/MCAL UMs directly. BR Chenyin  Re: S32G2 Cortex-M7 Baremetal Programming Hello Chenyin. Thanks for your response. From the document you shared, I can see that the example application runs on MCAL which I can use for running my Baremetal application, but I fear it will introduce a performance overhead.  Is there a way to directly work on the hardware (truly baremetal) without any high level abstraction layers involved? I am currently using the S32G274AEVB. Thank you! BR Arun Re: S32G2 Cortex-M7 Baremetal Programming Hello, @arun_belamge  Thanks for your post. It is supported running application without RTOS on S32G2. I suggest referencing the following document as a start once holding a reference board from NXP. https://www.nxp.com/webapp/Download?colCode=S32G-VNP-RDB2-SW-UG BR Chenyin 
View full article
DMA 半主循环问题 你好, 我设计了一个设置,每隔 25 µs 一个 PIT 触发信号 DMA,将数据从一个缓冲区传输到另一个缓冲区。每个大循环发生 10 次,因此整个大循环每 250 µs 完成一次,我可以使用逻辑分析仪确认这一点。 PIT --> DMA --> 主要循环中断 现在,我正在尝试将 DMA 配置为以主环路间隔的一半(即每 125 µs)触发信号中断。但是,中断仍然是每 250 µs 才触发一次,好像半大环中断功能不起作用。 为了帮助研究这个问题,我创建了一个示例项目供大家参考。如果你能帮忙弄清楚为什么半主循环中断没有按预期触发信号,我将不胜感激。 此外,我还有一个问题: " 数据包结束信号" 在 DMA 中是什么,通常如何使用? Re: DMA half major loop issue 您好, 如果您有周期触发信号并且仅启用 DMA 半主要中断,则第一次触发信号会在半间隔 (125us) 之后发生,但随后的中断将以 250us 的速率再次触发。同时启用半主要中断和主要中断,每 125us 就会中断一次。 "数据包结束信号" 功能应该禁用。 https://community.nxp.com/t5/S32-Design-Studio/Possible-bug-in-DMA-RTD-driver/td-p/1701972进行了一些讨论 BR, Petr
View full article
捕获 S32K142W 芯片的输入信号时存在微秒级延迟 亲爱的恩智浦专家们 问题背景: MCU: S32K142W; 应用背景: 将 FTM2 配置为捕获模式,以捕获用于 BLDC 电机控制的三相霍尔信号。 问题描述:在 ftm2_ch0uch1_irqHandler () 中断函数的输入处添加反向 GPIO 指令,发现捕获触发时间与捕获的信号相比最多可延迟 3.2us。我只将" FTM2_Ch0_Ch1_IRQHandler" 的中断优先级设置为最高优先级 0,如下所示 数字 CH1 通道(黄色波形):FTM2 捕获中断反转 IO 端口; CH2 通道(蓝色波形):信号发生器生成的周期性方波; 我的 FTM2 配置如下: 配置参考信息,请参考下图: FTM2 的具体配置信息: 期待您的回复,谢谢。 LF Re: There is a microsecond level delay when capturing the input signal of S32K142W chip 你好@_Leo_ 很高兴收到您的回复。 关于您的问题,答复如下: 1、S32 平台的 S32 Design Studio 版本: S32DS v3.4 2, SDK:S32SDK_S32K1XX_STM_4.0.3; 3,MCU:fs32k142wat0wlft; 4,对于霍尔信号的输入捕获例程,我根据恩智浦用户手册中的提示自行版本。有关具体配置,请参阅我的上一条信息。 5,测试的 PWM 信号特性: 频率: 20kHz ; 占空比: 50% ; 高电平电压:5V; 顺祝商祺! LF Re: There is a microsecond level delay when capturing the input signal of S32K142W chip 感谢您关注我们的产品并为我们的社区做出贡献。 您能否使用实时驱动程序 (RTD) 分享您的项目,并与 S32K14WEVB-Q064(或我们的任何其他开发板)兼容,以便从我们这边重现您的问题? 除了 ICU 配置外,还请添加必要的 PWM 设置,以便在单个板上测试所有问题。请提供任何必要的额外细节。 提前感谢您提供详细信息。
View full article
能否使用 fls_write 将数据从闪存复制到闪存? 你好, ,我想把代码闪存中的数据复制到代码闪存的另一个地方,这可能吗,还是说我需要先复制 ram 中的数据? Fls_Write(AREA_1_LOGICAL_ADDR, (const uint8_t *)AREA_2_LOGICAL_ADDR, AREA_SIZE); AREA_1_LOGICAL_ADDR = 0x0 AREA_2_LOGICAL_ADDR = 0x100000 AREA_2_LOGICAL_ADDR = 0x10000 闪存配置确定,并完成 EB tresos。 Sophie S32K3 Re: is it possible to copy data from flash to flash using fls_write ? 你好@sobo S32K3 设备支持 “边读边写” (RWW) 功能,该功能允许同时进行读写操作,但前提是这些操作发生在不同的闪存块中。 不支持通过指针直接访问闪存。闪存的读取、写入和擦除需要特定的顺序,这些顺序由 PFlash 控制器管理。该控制器执行对齐规则,并包含防止直接访问区域的保护机制。因此,闪存操作必须使用相应的应用程序接口,而不是原始指针取消引用。 BR、VaneB
View full article
S32DS 2018.R1 和 S32DS 3.4 许可证激活问题。 队员们好 我的客户报告说,如果他激活 S32DS R2018,已激活的 S32DS3.4 将丢失许可证。 您能帮忙看看吗?以下是账户和许可证信息。 账户:[email protected] 激活码: S32DS3.4: 7050-91E6-47CE-2FBB S32DS 2018:C27C-A46B-7DCD1-E14B br、 查尔斯 优先级:中等 S32DS Re: S32DS 2018.R1 and S32DS 3.4 license activate issue. 嗨,查尔斯、 请建议客户备份并删除 c:\ProgramData\FLEXnet\ 文件夹中的内容。文件夹默认为隐藏。可信存储可能已损坏。从账户方面看,没有任何可疑之处。 删除 FlexNet 的内容后,首先激活适用于 ARM v2018.r1 的 S32DS,然后激活 S32DS v3.4。 Re: S32DS 2018.R1 and S32DS 3.4 license activate issue. 嗨,吉日、 我要求客户在他的账户下捕获许可证,请看下图。 S32DS 2018.r1 S32DS3.4 请帮忙看看。 br、 查尔斯 Re: S32DS 2018.R1 and S32DS 3.4 license activate issue. 嗨,查尔斯、 这些密钥用于不同的账户。在使用 S32DS v3.4 的账户中没有预设 S32DS v2018,在第二个账户中也没有 S32DS v3.4。您确定您发布的密钥是正确的吗? Re: S32DS 2018.R1 and S32DS 3.4 license activate issue. @charleszhao 请将此请求通过邮件发送至[email protected]组。该小组负责处理与许可证相关的问题
View full article
Internal RTC Kw45 LOC Hello NXP, I am using kw45 LOC with wireless uart sdk example for BLE options I did configuration by connecting J2 for power board with external coin cell after power off the board from RTC I observed RTC is retaing the time value and it works with external coin cell battery but it is consuming lot of power almost in 1 day coin cell is getting exhausted can NXP how to optimize the power of the board for long coin cell durability as my aim to use RTC it should retain value after power off from USB supply. Thanks  Chetan Re: Internal RTC Kw45 LOC Hello, Could you help us share details about the modification implementation on J2, Could you help us confirm what did you mean by using power board in J2? And can you help us sharing a photo of your setup? Could you help us bring details about the coin cell battery you are using, including part number and Voltage output? In KW45B41Z-LOC Board User Manual Chapter 2.1 power supplies, indicates the options for an external battery (coin cell) in BT2 and BT1 are "CR2032 and CR2450" these 2 options are provided for more battery lifetime. Best Regards Luis Re: Internal RTC Kw45 LOC Hello  I am using Wireless uart sdk example of kw45 Loc board and I am using external battery coin in BT2 and I tested removing coin battery and tested gave power from USB and board is working. I am confirming in J2 I have shorted 1 and 3 as well as 2 and 4 pin. Thankyou  Chetan Re: Internal RTC Kw45 LOC Hello Chetan, Could you help us share details about the power board connected with external Coin cell in J2 and what voltage is using the coin cell battery?  If you could share your setup will be highly appreciated. Could you help us confirm if you are using a coin cell battery in BT2 of KW45-LOC too? Could you help us testing using the example in the board using a coin cell battery in BT2, without the external coin cell in J2, and confirm that it is working? BT2 is shown in Chapter 1.6.3 Figure 4 KW45B41Z-LOC Board User Manual Did you implement software changes in the Wireless_UART example? Also, could you help us confirm which SDK version are you using? Best Regards Luis
View full article
[SE050E][世纪系统][工业路由器]关于 ImportExternalObject APDU 专家们好 客户是世纪系统(网址如下),该公司的主要产品是VPN路由器、物联网网关和移动路由器。 https://www.centurysys.co.jp/   他们指的是4.9 导入外部对象" of AN13483,其中有一条关于使用 ImportExternalObject APDU 的警告:"请勿在未与 NXP 联系的情况下使用该 APDU,以避免潜在问题。"   以下是他们的使用案例和要求: 1。要使用的安全元件 这是 SE050E2HQ1/Z01Z3Z。   2.用例 (1) 安全固件更新。   (2) 具体而言,为了简化批量生产操作,我们希望在外部(在安全的环境中)生成产品组通用的主私钥,并在制造过程中将其安全地导入(配置)到每个目标板上的 SE050E2。   (3) 在目标板上,SE050E2 使用这个导入的主私钥来解密固件加密 AES 密钥,该密钥是用主公钥加密的。解密后的 AES 密钥会返回主机 CPU,然后由主机 CPU 对固件本身进行解密。   (4)通过这种方法,我们希望避免管理设备专用的公钥数据库。   *关于我们调查现状的注意事项:虽然我们目前主要考虑 " 共享主私钥方法," 我们也在考虑一种内部为每台设备生成密钥对并管理公钥的方法。尽管我们认识到运营挑战,但从网络安全和认证的角度来看,我们并没有完全排除这种挑战(JC-STAR等)。我们将继续同时考虑这一方法。   这次调查的主要目的是清楚地了解 SE050E2 在现阶段技术上可行和不可行的选项和限制因素。我们还没有确定"共享主私钥的方法。"因此,这不是一个紧急事项。   3.要导入的对象类型(共享密钥方法) (1) 我们想使用EC密钥对(椭圆曲线加密密钥对)作为上述用例的主私钥。(由于 RSA 密钥对体积较大,我们将选择 ECC)。 (2) 我们正在考虑通过安全通道(如 SCP03)导入该 EC 密钥对(私人密钥部分)。   [补充信息] 开发阶段:我们目前正处于技术开发阶段,以确定是否可以使用 SE050E2 实现上述安全固件更新方法。实际开发工作定于明年或更晚些时候进行。 先决条件:在开发和批量生产期间,必须使用我们产品的启动加载程序 U-Boot 进行初始固件写入。因此,采用 SE050E2 的先决条件是 SE050E2 可以在 U-启动 环境中使用(至少,必须有支持密钥导入和解密等必要功能的驱动程序和移植信息可用)。 在这种使用情况下,使用 ImportExternalObject APDU 是否存在任何潜在问题? 预先感谢您的意见! 顺祝商祺! 坎 Re: [SE050E][Century Systems][Industrial Router]Regarding ImportExternalObject APDU 你好,Kan、 ImportExternalObject APDU 专用于导入使用基于 EC 密钥的身份验证上下文安全封装的对象。此机制适用于特定设备的配置,其中每台设备都有自己唯一的 EC 密钥对。 由于您的方法涉及将相同的主密钥导入多个设备,因此此APDU不适合。 如果你想使用这个 APDU,需要为每台设备构造这个 ImportExternalObject APDU,因为每个设备都有不同的 ec 密钥。 还有几点: 1. edgelock2go.com 可用于为您的设备配置主密钥。你可以在 edgelock2go 创建设备组,在设备组中添加多个设备(及其uuid),这个 aes 主密钥可以分配给设备组,从而分配给设备组中的所有设备。然后,EdgeLock2Go 可以为您或设备特定的导入/外部对象 APDU 生成配置脚本。你也可以在 edgelock2go 中追踪设备 您可以查看 edgelock2go.com 和这两份文件:AN12691(EdgeLock2 GO)和 AN13255(EdgeLock 2GO 快速入门指南)。 2。我们以前的一些客户在 u-boot 环境中使用了安全元件,并使用了专为内存受限设备设计的 nano 软件包:GitHub-nxplugnTRUST/nano-p ackage 它具有基本功能,例如:带有 NIST P256、NIST P384、AES 加密/解密(ECB、密码块链接(CBC)、CTR)等的 ECDSA 和 ECDH(查看链接了解更多)
View full article
[i.MX8ULP]Linux时钟源精度 HI 我们正在开发一款采用 i.MX8ULP 处理器的产品,我们的一位用户注意到时间漂移非常糟糕(这取决于单位,有些单元 " 在大约一小时内只有 " 快几秒钟,但有些设备很容易以每分钟一秒的速度加快) 我已经在我们的 i.mx8ULP EVK 上进行了复制,运行最新的电路板支持包(LF_v6.12.20-2.0.0),使用 chrony 来测量偏差(需要互联网) imx8ulpevk login: root # stop ntpd/timesyncd to avoid interfering... (why are both running?!) root@imx8ulpevk:~# systemctl disable --now ntpd root@imx8ulpevk:~# systemctl disable --now systemd-timesyncd # run chronyd as a container for simplicity. # tmpfs ensures drift state is not preserved accross restarts root@imx8ulpevk:~# docker run --net=host --name ntp -d simonrupf/chronyd Unable to find image 'simonrupf/chronyd:latest' locally latest: Pulling from simonrupf/chronyd d69d4d41cfe2: Pull complete 5f93ef52bdbb: Pull complete 3a84ecea1ef1: Pull complete Digest: sha256:6c2a693438b6c663f151516ccce21b409f0891df673a34cadf133c74b35b7b6b Status: Downloaded newer image for simonrupf/chronyd:latest 15a0cdd35648868fe8592e98f7d653a6e9fd5abec5ff8c335b6edffc69617fe8 # (here need to wait a bit for the Frequency error to be computed # based on measurements stability. If it doesn't compute it helps # to run something like `chronyc burst 4/10`) root@imx8ulpevk:~# docker exec ntp chronyc tracking Reference ID : 2D4D1467 (v4.ntp.admtan.jp) Stratum : 3 Ref time (UTC) : Tue Jul 22 07:26:57 2025 System time : 0.343799949 seconds fast of NTP time Last offset : +0.068965137 seconds RMS offset : 0.129153565 seconds Frequency : 12426.411 ppm fast Residual freq : +0.000 ppm Skew : 100.904 ppm Root delay : 0.018474324 seconds Root dispersion : 0.001048955 seconds Update interval : 2.0 seconds Leap status : Normal 因此,这里有趣的一行是 "频率"(Frequency),描述为"。"频率 "是指如果没有 chronyd 的校正,系统时钟出错的速度。单位是 ppm(百万分之一)。例如,1 ppm 的值意味着,当系统时钟认为它前进了 1 秒时,它实际上相对于真实时间前进了 1.000001 秒。" 在这种情况下,这意味着 12426.411 * 10^-6 * 3600 = ~45 秒将在 1 小时内过得太快,但重启后似乎会发生变化 那么,有几个问题: - arch_sys_counter 的时钟从何而来?这是电路板上的一颗晶体精度低的问题吗?(... 如果是这样,我们就从 EVK 复制了这个缺陷......) -我注意到有两个时钟源可用,切换到 imx-tpm 要稳定得多(要么是 `echo imx-tpm > /sys/devices/system/clocksource/clocksource/clocksource0/current_clocksource0/current_clocksource `或者在启动参数中设置 `clocksource=imx-tpm`),有什么理由不是默认值吗?我正在考虑发送一个补丁,将 32 位计数器的默认值从 200 提高到 500(需要高于 400 才能优先于拱形系统计数器),但如果有任何理由的话,我想了解为什么要先选择一个较低的值。 谢谢 Re: [i.MX8ULP] linux clocksource precision 谢谢您的答复! > 它由一个内部 1 MHz LPO 驱动,其频率稳定性本身就受到限制,因此 arch_sys_counter 出现了精度问题。 啊!这有感知,谢谢 > 这是关于启用双 TPM 定时器的补丁。要进行测试,您需要重建 ATF 以生成新的 bl31.bin。 我这周休假,下周再检查(尤其是 IMX8ULP_TPM_TIMERS 的 atf 代码是在 lf-6.12.20-2.0.0 中添加的,而我们使用的是较早的分支,因此我需要先重新构建并验证)。 我们一直使用单个 tpm 实例运行,只选择了 imx-tpm 时钟源,我没有注意到这个问题: > 启用基于 TPM 的计时需要在两个 CPU 内核上实例化 TPM 定时器,以保留每个内核的事件处理功能 您能解释一下只启用一个 tpm 定时器有什么问题吗?"只是" 增加 cpu0 的负载,使系统时钟与时俱进?还是有其他弊端? 再次感谢您、 多米尼克 Re: [i.MX8ULP] linux clocksource precision 你好 内部团队也进行了同样的测试,证实 arch_sys_counter 的精度相对较差,而 imx-tpm 定时器的精度明显更高。如前所述,ARM 通用计时器包括一个系统计数器和一组每核计时器。 系统计数器是一种常开设备,它提供固定频率递增的系统计数。 系统计数值会广播给系统中的所有内核,让内核共同了解时间的流逝。 在 8ULP 上,系统计数器作为TSTMR模块实现。 它由一个内部 1 MHz LPO 驱动,其频率稳定性本身受到限制,因此在 arch_sys_counter 上观察到精度问题。 如果您的应用需要更严格的定时精度,则可以改用TPM作为时钟源。启用基于 TPM 的计时需要在两个 CPU 内核上实例化 TPM 定时器,以保留每个内核的事件处理功能。 这是关于启用双 TPM 定时器的补丁。要进行测试,您需要重建 ATF 以生成新的 bl31.bin。 make -j8 PLAT=imx8ulp CROSS_COMPILE=aarch64-poky-linux- bl31 IMX8ULP_TPM_TIMERS=1 而且你需要使用 imx8ulp-evk-tpm.dtb 设备树文件。 有任何问题,请告诉我。 顺祝商祺! Re: [i.MX8ULP] linux clocksource precision 谢谢,非常感谢! 我也会在我这边继续查找,如果有发现再报告。 Re: [i.MX8ULP] linux clocksource precision 你好 既然您能在 EVK 中重现该问题,让我与内部团队核实一下。 我将检查是否可以通过软件解决这个问题。 顺祝商祺! Re: [i.MX8ULP] linux clocksource precision 抱歉,我的意思只是为了更正我在原始帖子中给出的 " 重现步骤 ":如果没有--tmpfs 选项,将使用容器卷来保存 chrony 漂移文件,在我使用这样的文件运行的几次测试中,我观察到的 “频率” 值较低,所以我认为这会使测试变得更加困难。 需要明确的是,我们在板上运行 chrony(通常),如果有互联网连接,则没有问题,因为时钟可以调整/校正,但是在离线模式下,对于我们的一些客户来说,偏差太大了。 我不知道他们究竟是如何使用我们的板的,但是例如,即使他们不直接显示系统时间,也会使系统日志在离线几天/几周后何时出现问题变得更难分析,因为时间戳与预期的相差太远了——上面的每小时 45 秒的例子在一周内会漂移超过 2 个小时!相比之下,50ppm 的偏移量在同一周内最多只能漂移 30 秒(50*10^-6*3600*24*7) 因此,我希望改进这一点;看起来使用 tpm 时钟源更好,我正考虑将其作为默认的第一种解决方案,但我想了解为什么 arch_sys_counter 与(假定的)晶振频率相差如此之远,因为这可能会导致其他计时问题。 谢谢 Re: [i.MX8ULP] linux clocksource precision 你好 我们通常建议公差为 +/-50ppm 或更小,因此,这样就可以了。 顺祝商祺! Re: [i.MX8ULP] linux clocksource precision 你好 你是说这有助于解决时间问题?还是仍然存在? 顺祝商祺! Re: [i.MX8ULP] linux clocksource precision > root @imx8ulpevk:~# 容器 run--net=host--name ntp-d simonrupf/chronyd 刚刚纠正了这个问题,我复制了错误的命令但缺少了 /var/lib/chrony/ 的 tmpfs —— 它需要这样的东西来避免保留漂移文件(如果我理解正确的话,它会调整频率而不报告我们在chrony启动时看到的偏移量?那可能只是运气好) 容器 run--restart=always--net=host--name ntp-d--tmpfs /var/lib/chrony: rw,mode=1750,uid=100,gid=101 simonrupf/chronyd 使用 restart=always 容器将在 容器 启动时重启,这是在第一个 容器 命令中,因为默认情况下它是套接字激活的,启用 do.ckerservice 会使容器在 启动 时 全新运行。 Re: [i.MX8ULP] linux clocksource precision 您好, ,感谢您的快速回复! 我们在24MHz和32768Hz上使用的晶体的容差为+/-20ppm,所以我很惊讶我们在板的系统计数器上看到类似的(约5000-15000ppm)偏差。 谢谢 Re: [i.MX8ULP] linux clocksource precision 你好 感谢您在 EVK 中对此进行测试,这个问题以前从未被报告过。 关于您的问题 通用计时器为 Arm 内核提供了标准化的计时器框架。通用定时器包括一个 系统计数器和几组每个内核的定时器。 系统计数器是一种常开设备,它提供固定频率递增的系统计数。系统计数值会广播给系统中的所有内核,让内核共同了解时间的流逝。由 SCTR 实施。 系统计数器输入两个计数器时钟源,并将灰色编码的计数器值和中断信号(每个比较帧一个)输出到平台的中断控制器。 RESET后,系统计数器被禁用,计数值重置为零并选择基本频率。 一旦启用计数器,它将在所选时钟的每个上升沿增加相应的值。 顺祝商祺!
View full article
[RTD] S32K314 - FEE 管理效率 客户正在使用 RTD 4.0.0_HF04,他们希望提高 系统的 FEE 管理操作效率。他们有几个问题,尤其是关于区块更新期间 RESET 的漫长 Fee_Init 时间。目的是缩短初始化时间。 根据群组中是否使用子地址区管理& retirement(在 UM 中),应分配多少个群组才能有效运行? 如果不使用子地址区管理,那么非活动群集实际上只在交换时使用,对吗? 如果是这样,有两个群组就足够了吗? 此外,是否有可能在 Fee_Init 期间发生群集交换? 一般来说,在区块添加过程中, DataAddrIt 在 Fee_aClrGrpInfo 会减少,而 HdrAddrIt 会增加? 集群交换 是根据这两个变量确定的吗? 如果在 区块更新期间发生 RESET ,则 “ 管理集群和区块一致性”(在 UM 中) Fee_Init 是否 在 期间 运行 ? 有没有办法 跳过 这个操作或 加 快速度 ? RTD Re: [RTD] S32K314 - FEE management efficiency 你好@alexyang 1. 群组数量取决于是否使用子地址区管理。如果不使用,只有在交换时才会使用非活动群集,因此两个群集可能就足够了。不过,这取决于数据块的大小和更新频率。 在下列情况下,应在一个群集组中配置两个以上的群集: FeeNumberOfWriteCycles 超出闪存支持的擦除/写入周期。 目标是分配写入量,以达到所需的续航时间 请参阅 AUTOSAR_SWS_FlashEEPROMEmulation.pdf 中的 FEE [SWS_Fee_00103]示例。 群集交换可在 Fee_Init 进程中进行:(根据 FEE_UM)。 2.是的,在区块添加过程中, DataAddrIt 在 Fee_aClrGrpInfo 中减少,而 HdrAddrIt 中增加。 群集交换 根据这两个变量确定。 请参阅函数 Fee_ReservedAreaWritable -> 它计算活动群集中的可用空间,并确定空间是否足够用于写入块 3. 管理群集和区块一致性(在 UM 中) Fee_Init FeeBlockAlwaysAvailable  在 运行期间, 您可以尝试以下建议来加快 运行 速度: - 启用 该配置允许 FEE 驱动程序返回最后一个有效块实例,即使最近一次写入被中断也是如此 - FeeDataBufferSize: 增加 数据缓冲区的大小会影响 MemAcc_MainFunction 周期的次数。更大的数据缓冲区可提高 FEE 集群管理操作的性能,并加快启动阶段,因为 FEE 可在 MemAcc_MainFunction 的一个周期内读取更多数据 (根据 FEE_UM) - FeeSwapForeignBlocksEnabled 禁用: 建议在生产阶段不要使用该模式,因为它会增加集群交换的整体时间 (根据 FEE_UM) 。 Re: [RTD] S32K314 - FEE management efficiency @alexyang 我正在查看这个主题,很快就会提供反馈。
View full article
LPC551X 系列的指令跟踪 您好, 我目前遇到了一个问题,我很想在我们使用的 LPC5516 上启动并运行指令跟踪。 芯片组的用户手册指出支持该功能(第 1074 页): > 跟踪端口提供 Cortex-M33 CPU 指令跟踪功能。输出通过串行 线缆浏览器进行。 但这就是我目前所能发现的一切。由于 ETM 元器件(我本来希望用于此目的)没有在 CoreSIGHT ROM 表中列出,所以我对如何启动并运行它有点不知所措。 供参考:我目前正在使用带有 PyOCD 和 jLink 的 SEGGER J-Link BASE 压缩包。 LPC55xx Re: Instruction Trace on the LPC551X family 好的 谢谢那就是,LPC551X 不支持指令跟踪。但我建议恩智浦修改这里的措辞,因为ITM与指令追踪完全无关(这是ARM中的特殊内容),因此,MCU的数据表或用户手册对我来说就像是虚假的广告。 致以最诚挚的问候 Lilly Re: Instruction Trace on the LPC551X family 你好@lilly1337 LPC551x 支持通过串行线输出 (SWO) 实现的仪表跟踪宏单元 (ITM)。ITM 块提供了一种机制,通过 SWO 流从目标机向调试器传输数据。 这种通信是通过内存映射寄存器接口实现的。写入 32 个刺激寄存器中任何一个寄存器的数据都会转发到 SWO 数据流。 详细用法请参阅我上次附上的用户指南。   BR 爱丽丝 Re: Instruction Trace on the LPC551X family 您能给我提供更多具体指导跟踪的详细信息吗?据我所知(我也看了一下 MCUExpresso SWO 跟踪指南),你们支持各种跟踪,但不支持指令跟踪。就ARM CoreSIGHT而言,指令跟踪至少需要ETM或MTP。如何处理输出以及如何进一步处理输出,则由 TPIU(可包括 SWO)决定。 Re: Instruction Trace on the LPC551X family 你好@lilly1337 约翰说得对。 此外,如果您使用 MCUXpresso IDE,在 IDE 安装路径中还有 SWO 跟踪指南。您可以参考一下。 " 您可以将 MCUXpresso IDE 的 SWO Trace 功能与所有支持的调试解决方案一起使用。 但是, SWO 需要使用兼容的调试探头连接到目标 MCU,例如: • LinkServer LPC-Link2(独立组网 (SA) 版本或内置于许多 LPCXpresso 开发板和一 些 iMX RT EVK 板中)• Lin kServer MCU-Link/MCU-Link Pro(独立组网 (SA) 或内置于开发板中) • SEGGER J-Link — 所有独立组网 (SA) 版本,但详情请参阅 SEG GER 的网站 "   谢谢!   BR 爱丽丝 Re: Instruction Trace on the LPC551X family 您好! LPC5516 通过串行线输出 (SWO) 支持指令跟踪,这是一种不同于 ETM 的机制,这也是为什么在 CoreSight ROM 表中看不到 ETM 的原因。要使其与 J-Link 和 PyOCD 设置配合使用,首先必须确保物理 SWO 引脚已连接。然后,配置您的工具(J-Link Commander 或 PyOCD)以启用 SWO 跟踪并设置正确的时钟频率,这将允许您捕获跟踪输出。
View full article
LPC551Xファミリの命令トレース こんにちは、 現在、使用している LPC5516 で命令トレースを起動して実行したいのですが、問題に困っています。 チップセットのユーザーマニュアルには、サポートされていると記載されています (1074 ページ)。 > トレース ポートは、Cortex-M33 CPU 命令トレース機能を提供します。出力はシリアル経由 ワイヤービューアー。 しかし、これが私がSO発見できたすべてです。これに使用されると予想される ETM コンポーネントが CoreSight ROM テーブルにリストされていないため、これを起動して実行する方法が少しわかりません。 参考までに: 現在、私は PyOCD と JLink を搭載した SEGGER J-Link BASE compact を使用しています。 LPC55xx Re: Instruction Trace on the LPC551X family わかりました、ありがとうございます。すでに予想したとおり、LPC551X は命令トレースをサポートしていません。しかし、ITM は命令トレース (ARM 特有の機能) とはまったく関係がないため、NXP にはここでの文言を変更するよう推奨します。そのため、MCU のデータシートやユーザー マニュアルは虚偽の広告のように感じられるのです。 敬具 リリー Re: Instruction Trace on the LPC551X family こんにちは@lilly1337 LPC551x は、シリアル ワイヤ出力 (SWO) を介して実装される計装トレース マクロセル (ITM) をサポートします。ITM ブロックは、SWO ストリームを介してターゲットからデバッガーにデータを転送するためのメカニズムを提供します。 この通信は、メモリマップド レジスタ インターフェースを介して実現されます。32 個の刺激レジスタのいずれかに書き込まれたデータは、SWO ストリームに転送されます。 詳しい使用方法については、前回添付したユーザーガイドを参照してください。   BR アリス Re: Instruction Trace on the LPC551X family 命令トレースについて具体的に詳しく教えていただけますか?私が調べた限りでは (MCUExpresso SWO トレース ガイドも確認しました)、あらゆる種類のトレースをサポートしていますが、命令トレースはサポートしていません。ARM CoreSight の命令トレースに関しては、少なくとも ETM または MTP が必要です。出力で何が起こるか、そしてそれがどのようにさらに処理されるかは、TPIU (SWO をCAN) によって決定されます。 Re: Instruction Trace on the LPC551X family こんにちは@lilly1337 ジョンは正しい。 さらに、MCUXpresso IDE を使用する場合は、IDE インストール パスに SWO トレース ガイドがあります。参考にして頂ければ幸いです。 「 MCUXpresso IDEのSWOトレース機能は、サポートされているすべてのデバッグソリューションで使用できます。ただし、 SWO では、次のような互換性のあるデバッグ プローブを使用してターゲットMCUに接続する必要があります。 • LinkServer LPC-Link2(スタンドアロンまたは多くのLPCXpresso開発ボードと一部のiMX RTに内蔵) EVKボード • LinkServer MCU-Link / MCU-Link Pro(スタンドアロンまたは開発ボードに内蔵) • SEGGER J-Link – すべてスタンドアロン版ですが、詳細についてはSEGGERのWebサイトを参照してください。 ”   よろしくお願いします。   BR アリス Re: Instruction Trace on the LPC551X family こんにちは! LPC5516 は、ETM とは異なるメカニズムであるシリアル ワイヤ出力 (SWO) を介して命令トレースをサポートしており、これが CoreSight ROM テーブルに ETM が表示されない理由です。J-Link と PyOCD のセットアップでこれを動作させるには、まず物理的な SWO ピンがコネクテッドされていることを確認する必要があります。次に、ツール (J-Link Commander または PyOCD) を構成して SWO トレースを有効にし、正しいクロック周波数を設定して、トレース出力をキャプチャできるようにします。
View full article
S32K322 DMA 配置-读取源时出现总线错误 尊敬的各位, 我正在尝试将一些在 mpc57xx 和 S32K1xx 设备上运行了多年的代码移植到 S32K322。我正在设置 2 个连续的 DMA 通道,让它们互相打乒乓球。 问题是第一个通道的初始源读取导致 SBE 位被置位,我不知道为什么。 我在会导致第一个通道的 START 位请求服务的指令处设置了一个断点,并在下一个 sw 指令处设置了第二个断点。这两张图片分别显示了前后状态下两个通道的 DMA 配置。 第一个信道(TCD0)的目的是从 RAM(位于 0x2000a248)读取 4 字节的内存,并将该存储器的内容放入第二个信道的源地址(参见 TCD0 的 DADDR 是 0x40214020,这是 TCD1 的 SADDR 地址)。 因此,我希望 TCD1 SADDR 的内容成为 0x2000A248 处的内存内容。 如图所示,CITER 正在递减,但传输并未进行;TCD1 SADDR 没有改变,CH0_ES 位被置位。 数据缓存已关闭,因此 RAM 未被缓存。通道 0 和通道 1 的 DMA 复用器设置了 ENBL 位(地址 0x40280002 和 0x40280003 均为 0x80)。 有人知道我漏掉了什么吗? 这是一个裸机项目,没有 RTD 或其他任何功能。 感谢并致意 Andrew Re: S32K322 DMA Configuration - Bus Error on Source Read 好的 - 我成功地重现并解决了这个问题。 当从 RAM 中的地址读取初始源指针时,没有任何问题 - DMA 访问完全按照我的预期运行,我可以获得我选择的正确数据流。 但是,如果初始访问是 DTCM,就会出现问题。第一次读取信号源时,SBE 立即被设置。 这是因为在访问 DTCM 时,eDMA 必须使用后门地址,而不是相关变量的真实地址--因此,在 DTCM 中时,我需要将地址偏移 0x1000000,而在 RAM 中时则不需要。 仔细查看 AN13388 中的示例 5、6 和 7 以及参考手册所附的内存映射。 希望这能帮助遇到类似问题的人。 感谢丹尼尔的回复,让我有了更多的思考。 Re: S32K322 DMA Configuration - Bus Error on Source Read 亲爱的丹尼尔 我创建了一个基本项目,其中包括我们确切的时钟设置和 DMA 配置。 有趣的是,它*没有*显示我最初的帖子中的症状(因为它不会在第一次尝试进行传输时抛出 SBE 位)——但是,在两个链接的频道之间进行的 “乒乓” 产量的数据在输出缓冲区中不正确(尽管结果是一致的)。 考虑到您对时钟频率的意见,在向您发送这个项目之前,我会仔细检查一下时钟频率(仅供参考,内核速度应为 160MHz,其他频率为 80MHz 或 40MHz)。 谢谢您的帮助;如果我把项目发给您,会再联系您的。 此致, Andrew Re: S32K322 DMA Configuration - Bus Error on Source Read 你好,安德鲁、 如果您不想公开分享代码,请随时给我发私人信息。 不过,我一般建议创建支持票据,以便更好地跟踪和跟进。 你说得对,XRDC 就是为此目的而设计的,但默认情况下是禁用的。 XBIC 确实提供完整性检查功能,而且默认情况下已启用,但通常不会导致此问题。 无法预测的行为往往与系统时钟设置不正确有关。只有当时钟比率符合参考手册中指定的选项时,微控制器才能可靠地运行,例如,表 157 概述了高性能模式 (CORE_CLK @ 160 MHz) 的选项 A。 这一点非常重要,因为 eDMA、SRAM 和 XBIC 等模块必须在特定、确定的时钟频率下运行才能正常工作。 此致, 丹尼尔 Re: S32K322 DMA Configuration - Bus Error on Source Read 你好,丹尼尔、 我不能把代码原封不动地提供给您....,我必须把它嫁接到一个 "普通 "恩智浦项目中,然后把它发布给您--您有直接的地址吗? 据我所知,K3 上没有 AIPS 寄存器,因此我认为可以立即访问 RAM。我也没有启用 XRDC(我敢肯定它会拦截总线请求并停止它)。但是,在 DMA 访问 RAM(XBIC?) 感谢您的回复 Andrew Re: S32K322 DMA Configuration - Bus Error on Source Read 你好,@andrew_smith、 能否共享代码,以便我进行测试?
View full article
交互式内核配置 评估板:i.MX 8M Plus EVK (imx8mpevk) 主机:Ubuntu 22.04.5 LTS 我安装了 yocto 项目:6.6.52-2.2.1 版本 使用: $: mkdir ~/bin $: curlhttp://commondatastorage.googleapis.com/git-repo-downloads/repo> ~/bin/仓库 $: chmod a+x ~/bin/仓库 $: PATH=${PATH}:~/bin 然后: $: mkdir 6.6.52-2.2.1 $: cd 6.6.52-2.2.1 $: 仓库 init -u https://github.com/nxp-imx/imx-manifest-b imx-linux-scarthgap -m imx-6.6.52-2.2.1.xml $: 仓库同步 然后: $: machine=imx8mpeVK distro=fsl-imx-xwayland 来源。/imx-setup-release.sh-b bld-xwayland $: bitbake imx-image-full 然后使用 UUU 工具成功闪存到 imx8mpevk 我发现没有安装 WIFI 驱动程序。 AW-CM276MA (NXP 88W8997):Wi-Fi® 5 (802.11ac) 2 x 2 双频(2.4/5 GHz)和蓝牙® 5.1 因此,我正试图使用"...... "来安装它们: bitbake linux-imx -c menuconfig 我找到了驱动程序并启用了它们,还保存了 .config使用图形用户界面工具(见附图)。但是,我不知道如何应用这些更改并烘焙新图像。 我正在努力 RM00293 i.MX Linux 参考手册 修订版 LF6.12.20_2.0.0 — 2025 年 6 月 26 日 但这真的很让人困惑,如果能得到任何帮助,我将不胜感激 Re: Interactive kernel configuration 完整图像的 WiFi 驱动程序应该已经包含在内。有关如何启动 WiFi,请参阅UM11483。 驱动程序的路径应该如下 ./usr/lib/modules/6.12.3-lts-next-g37d02f4dcbbe/updates/moal.ko 至于如何申请,请参阅<2.1.2 部分。如何在移植指南的 Yocto Project > 中版本和加载内核 此致 哈维   Re: Interactive kernel configuration 你好 你可以通过显示如何在他们的板上配置内核的 variscite 查看这个链接。对你来说,区别应该只是层名称,但基线是: 更改后,运行 bitbake -c savedefconfig virtual/kernel​ 以 defconfig 格式保存更改 找到包含 linux 内核的层,应该是 meta-imx-bsp/recipes-kernel/linux 在其中创建一个文件目录 将 defconfig 复制到文件目录 创建 .bbappend文件,该文件指向 defconfig
View full article
IMX8QM のセカンダリ ブート コンテナ セット IMX8QM でセカンダリ ブート コンテナー セットを使用しようとしています。ブート デバイス上のセカンダリ ブート コンテナー セットのオフセット ポジショニングを確認するにはどうすればよいでしょうか?ブートデバイスは eMMC です。また、起動中にセカンダリ ブート コンテナー セットを使用するにはどうすればよいですか?
View full article
自定义 lx2160 板中的 i2c 总线问题 你好, 我在两条 i2c 总线 I2C3 和 I2C4 上遇到了一个问题,我无法执行任何 i2c 交易。我已经在设备树中启用了两个 i2c。还是没法把总线开上去。谁能帮帮我?我附上了我的设备树和 i2c 交易的结果。 LX2160A-RDB QorIQ LS2 设备 Re: i2c bus issue in custom lx2160 board 你好,Oswalag, ,我已经修改了 RCW 文件,现在 i2c 已经启动。感谢你们的支持。我将在此附上更新后的 rcw 文件内容。 Re: i2c bus issue in custom lx2160 board 还请检查一下您的 RCW,在您分享的最后一个文件中有一个错误 将这些字段用作 IIC 时,其值为 0b000。 Re: i2c bus issue in custom lx2160 board 你好, 但我正在修改和使用来自 /HOME/bs-user01/5gbbpc/flexbuild_lsdk2108_github/components/linux/linux/arch/arm64/boot/DTS/Freescale 中的设备树 Re: i2c bus issue in custom lx2160 board 您的问题可能与您的 dts 配置有关,请仔细检查并只包含您正在使用的配置。 您的日志中有警告:错误:设备树无效 请使用 LX2160ARDB 的那个作为参考: https://github.com/nxp-qoriq/u-boot/blob/lf_v2024.04/arch/arm/dts/fsl-lx2160a-rdb.dts Re: i2c bus issue in custom lx2160 board 您好, 我创建了自己的自定义 rcw 文件。敬请查看 . Re: i2c bus issue in custom lx2160 board 您好 , 对不起,我分享了错误的 rcw 文件。 在此附上正确的 RCW Re: i2c bus issue in custom lx2160 board 我也在共享 rcw 文件 Re: i2c bus issue in custom lx2160 board 你好 Oswalag, 我正在向你分享 uboot 和内核的启动日志。请看一看。我们使用的是带有 flexbuilder 的 NXP LSDK 21.08。 Re: i2c bus issue in custom lx2160 board 你好 请共享您正在使用的 RCW 配置,还要先在 u-启动 上测试 I2C,然后在 .txt 中共享完整的日志文件格式。 你在使用电路板支持包吗?什么版本?
View full article
S32K344 安全启动 HSE_verifyBootImage 问题 您好, 问题描述 我们正在使用恩智浦演示示例测试 S32K344 安全启动。 使用 S32K344_SecureBootBlinky 演示项目,我们生成应用程序 .bin锉刀 然后,我们使用 S32K344_Basic_SecureBoot 演示项目运行 HSE_VerifyBootImage()。 首次运行 HSE_VerifyBootImage()成功:验证正常。 但是,当第二次执行相同代码时,API 返回: HSE_SRV_RSP_GENERAL_ERROR 返回代码 = 0x33d6d4f1 问题 这种行为的根本原因是什么? 为什么第一次验证成功了,而第二次验证却失败了,出现了一般性错误? 连续多次调用 HSE_VerifyBootImage( 有没有限制? 恩智浦是否提供完整的 Basic_secureBoot 演示代码(不仅仅是 hse_verifyBootimage ()),还包括从 AppBL 流程启动? 环境 演示代码包:s32k3_HSE_demoExamples_1_0_ 0 目标 MCU:S32K344 感谢您的帮助。 顺祝商祺! Mark Re: S32K344 Secure Boot HSE_VerifyBootImage issue 我确信这样的代码可以工作: PFLASH_Unlock(PFLASH_BL0, PFLASH_SS0, PFLASH_S0); status = FLASH_EraseSector(0x400000); status = FLASH_Write (0x400000, data, sizeof(data)); 不过,正如我之前所写,代码必须从另一个闪存块或 RAM 运行。例如,如何移动一个触发信号闪存操作并等待命令完成的函数的一个选项是将其移至数据闪存块。您可以像这样在 linker 文件的 dflash 中创建自己的部分: .dflash_code_section : { *(.dflash_code_section) } > DFLASH 然后在 flash.c 中的 FLASH_ExecSeq() 函数前添加该属性: __attribute__((section(".dflash_code_section"))) tFLASH_STATUS FLASH_ExecSeq (register uint32_t mask) 这将迫使功能进入数据闪存。 然后请注意,FLASH_EraseSector() 将擦除 8KB 闪存。如果有你的代码(在默认的 S32K344_Basic_SecureBoot 示例中确实有),那么它将在 FLASH_ExecSeq() 返回后运行,因为你删除了你的代码。解决方法:移动代码,使其从下一个 8KB 扇区开始。第一区只保留 IVT。 问候, Lukas Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好,卢卡斯、 环境 演示代码软件包:s32K3_HSE_demoExamples_1_0_0 示例项目:s32k344_basic_secureBoot 我想擦掉 IVT 地址 (0x400000) 然后用 28 字节(IV + GMAC)对新 I VT 进行编程。 在这个项目中,我不知道如何将地址从 0x400000 删除到 0x4000100。 我使用了下面的代码并检查了内存。Erase 不起作用。 pFlash_unlock (PFLASH_BL0、PFLASH_SS0、PFLASH_S0);状态 = Flash_eraseBlock (PiVT); flash_Write () 功能后出现异常错误。 你能不能向我提供一些可以删除 这个项目中可以运行的地址 (0x400000) 的示例代码,我真的需要一个示例代码来证明 OTA 或安全启动可以在这个 S32K344 EVB 中运行。 感谢您的支持。 顺祝商祺! 马克     Re: S32K344 Secure Boot HSE_VerifyBootImage issue 1.您遇到了哪种错误? 2.代码从哪里运行?请注意,"边读边写 "仅在块之间支持。如果在 0 块上运行闪存操作,则必须从其他块或 RAM 执行代码。 3.你真的想删除整个区块吗?该命令(status = FLASH_EraseBlock(pIVT);)将擦除整个 0x40_0000 - 0x4F_FFFF 区域: 此致, Lukas Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好,卢卡斯、 非常感谢你们的帮助。事实上,我不知道如何禁用数据缓存,但我把 IVT_temp 移到了全局变量中,然后 HSE_SignBootImage() 函数返回成功。 但是,我现在遇到了另一个问题:我无法擦除从 0x400000 开始的闪存地址,而这正是 IVT 所在的位置。我按照 AppBL 的示例擦除和编程顺序进行了操作,只更改了地址,但在尝试擦除闪存时出现了错误。 下面是代码片段: (void)memcpy( & IVT_temp, (const void *)BLOCK0_BASE_ADDRESS, IVT_FIXED_LENGTH); srvResponse = HSE_SignBootImage((uint8_t *)&IVT_temp,BOOT_IMG_TAG_LEN,temp_addr_of_ivt_image); ASSERT(HSE_SRV_RSP_OK == srvResponse); ///* 将生成的 TAG 写入 FLASH 中 IVT 的末尾 */ PFLASH_Unlock(PFLASH_BL0,PFLASH_SS0,PFLASH_S0); status = FLASH_EraseBlock(pIVT); status = FLASH_Write( pIVT, & IVT_temp, IVT_FIXED_LENGTH); 您对如何清除 IVT 地址(0x400000)有什么建议或指导吗? 提前感谢您的支持。 顺祝商祺! Mark Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好@马克-范 好的,您正在尝试签署 IVT。您的代码是正确的,没有问题。我也在我的板上执行了它,它起作用了。该代码成功生成了 IV 和 GMAC。 这不是数据缓存问题吗?IVT_temp 是否在非高速缓存 SRAM 中?如果 DTCM 内存中有堆栈,则不要将堆栈中的数据用于 HSE 服务。HSE 无法在正常地址看到 DTCM,HSE(和其他总线管理器)只能看到 DTCM 的后门地址。 为了快速测试,请尝试完全禁用数据缓存。 此致, Lukas Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好,卢卡斯、 谢谢您的帮助。我实现了 RESET 功能,它运行良好。 但是,我注意到,在 S32K344_Basic_SecureBoot 演示项目中,IVT 似乎并没有对所有 28 字节(IV + GMAC)进行编程。我曾尝试自己实现该函数,但从 HSE_SignBootImage() 收到了 HSE_SRV_RSP_INVALID_PARAM 返回代码。 以下是我使用的代码: uint8_t temp_addr_of_ivt_image[28] = {0xFF}; (void)memcpy( & IVT_temp, (const void *)BLOCK0_BASE_ADDRESS, IVT_FIXED_LENGTH ); srvResponse = HSE_SignBootImage( (uint8_t *)&IVT_temp, BOOT_IMG_TAG_LEN, temp_addr_of_ivt_image ); 能否请您帮我检查一下我的代码或使用 HSE_SignBootImage() 的方法是否有问题? 谢谢! 致以最诚挚的问候, Mark              Re: S32K344 Secure Boot HSE_VerifyBootImage issue 是的,所有 28 字节都需要编程到闪存中。 RESET 可以由调试器或设备上运行的软件触发。 如果您有 Trace32,可以使用所附脚本。 脚本正在写入 MC_ME 寄存器: -MODE_CONF 设置 FUNC_RST 位以触发功能 RESET(您可以使用 DEST_RST 进行破坏性 RESET) - MODE_UPD 设置 UPD 位 -CTL_KEY 写入密钥,反向键开始模式过渡到 RESET 状态   如果使用不同的调试器,只需在调试器中执行相同的顺序即可。 如果您想通过软件触发信号 RESET,只需在软件中实现此功能即可。   此致, Lukas Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好,卢卡斯、 感谢您的答复。 我需要在 IVT 之后对所有 28 字节(IV + GMAC)进行编程吗? 我的 EVB (S32K344 BMU) 没有 RESET 引脚。有触发 MCU RESET 的简单方法吗? 顺祝商祺! Mark Re: S32K344 Secure Boot HSE_VerifyBootImage issue 你好@马克-范 没有任何限制,您可以多次调用 HSE_VerifyBootImage。它在我这边起作用。 示例 S32K344_Basic_SecureBoot 是一个完整的示例。该项目已经在启动配置词中设置了 BOOT_SEQ,因此从一开始就启用了安全启动: 当你第一次加载项目时,调试器会在入口点手动设置程序计数器 " "(即启动头文件和 BOOT_SEQ 现在没有效果)。因此,S32K344_Basic_SecureBoot 项目被执行。它执行安全启动的配置。下次 RESET 后,如果安全启动成功,将执行 S32K344_SecureBootBlinky。如果没有,它将进入 JTAG 恢复模式。要再次执行 S32K344_Basic_SecureBoot,必须将 BOOT_SEQ 更改为 1。 另一种选择是保留 BOOT_SEQ 0,然后在要开启安全启动时在闪存中手动进行更改。 此致, Lukas
View full article