Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
系统控制器固件 101 - 入门 使用评估套件时,你会获得一个包含在 BSP 中的系统控制器固件 (SCFW) 二进制文件。此 SCFW 二进制文件是为特定开发板量身定制的,你可能需要修改一些板级依赖项以适配你的特定硬件。 本文件旨在提供有关SCFW移植流程的概述,详细信息请参阅《系统控制器移植指南》(sc_fw_port.pdf)。 系统设置 SCFW 是在 Linux 主机上构建的。设置系统的步骤如下: 从 ARM 官网下载 GNU ARM 嵌入式工具链:6-2017-q2-update(2017 年 6 月 28 日版本): 选择一个目录解压该文件,例如: mkdir ~/gcc_toolchain cp ~/Downloads/gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2 ~/gcc_toolchain/ cd ~/gcc_toolchain/ tar xvjf gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 将 TOOLS 环境变量设置为包含工具链的目录,在上面的示例中为 “~/gcc_toolchain”,也可以修改 .bash_profile 来导出此环境变量: export TOOLS=~/gcc_toolchain/ 构建过程还需要 srec_cat,它通常包含在 srecord 包中,在 Ubuntu 上可以执行: sudo apt-get update sudo apt-get install srecord 现在你可以切换到移植工具包目录(例如 scfw_export_mx8qm)并构建 SCFW。 系统控制器固件移植工具包 SCFW移植套件包含源文件和目标文件,这些文件将允许您修改SCFW以使其与您的开发板兼容。 你可以从 i.MX 软件和开发网页获取最新的系统控制器固件移植工具包: 获取移植工具包后,解压它: tar xvzf imx-scfw-porting-kit-1.1.tar.gz‍ 您将看到以下的文件结构: 移植工具包包含在 packages 目录下,README 文件中包含提取移植工具包的说明,主要步骤如下: cd packages/ chmod a+x imx-scfw-porting-kit-1.1.bin ./imx-scfw-porting-kit-1.1.bin‍‍‍ 您将被提示接受最终用户许可协议: 接受协议后,移植工具包将被提取到一个新文件夹中,文件夹结构如下: 所有关于 SCFW 的文档都在 doc/pdf 目录下,也有 html 格式可供选择,建议阅读 sc_fw_port.pdf。 不同 SoC 变体(QM A0、QM B0 和 QXP B0)的移植工具包在 src 目录下,以 tar.gz 格式打包,其他所有文件都是用于不同软件包(如 Linux、QNX、FreeRTOS、U-boot、ARM 可信固件等)的 SCFW 库。 如果你要处理多个 SoC 变体(同时处理 QXP 和 QM),建议将所有移植工具包提取到一个目录中,这样你就可以从该目录为任何变体进行构建,执行以下命令: cd imx-scfw-porting-kit-1.1/ cd src/ find scfw_export_mx8*.gz -exec tar --strip-components 1 --one-top-level=scfw_export_mx8 -xzvf {} \;‍‍‍ 将创建一个 scfw_export_mx8 文件夹,从这里你可以为任何受支持的变体构建 SCFW。或者,你也可以只提取你感兴趣的变体的包并使用它。 cd scfw_export_mx8/‍ 所有构建文件夹都包含 SCFW 的构建结果,而 platform 目录则存储 SCFW 的源代码。 所有特定于开发板配置的代码都在 “platform/board/mx8 _ ” 目录下,其中 derivative 是 i.MX8 芯片系列(如 QXP 或 QM),board name 是 SCFW 包所针对的开发板名称。 将 SCFW 移植到你的开发板的第一步是为你的 i.MX8 衍生产品和开发板创建一个文件夹,你可以选取一个现有的开发板示例并重命名该文件夹,这将为你提供一个入门项目,例如: cp -r platform/board/mx8qm_val/ platform/board/mx8qm_myBoard/‍‍‍‍‍‍‍‍‍‍ 在此示例中,该开发板将被称为 “myBoard”,它适用于 i.MX8QM B0 设备。要为该开发板构建 SCFW,只需执行: make qm R=B0 B=myBoard‍‍‍‍‍‍‍‍‍‍‍‍ 如果目标是 i.MX8QXP,只需选取一个基于该设备的开发板,并将命令改为 “make qx”。 更多信息(如构建选项和详细的启动信息)可以在《SCFW 移植指南》(sc_fw_port.pdf)中找到,该文档的第 2 章是对移植过程的清晰介绍。 概述和有用信息 PMIC 配置概述和 board.c 的常见修改 需要修改的主要文件(如果不是唯一的话)是 “board.c” 文件,它位于 “platform/board/mx8X_board/” 目录下。board.c 文件包含大多数与开发板相关的信息,如 SCU UART 端口、PMIC 初始化程序、PMIC 温度报警设置,你还可以修改它来配置 LDO 电压并与 PMIC 进行总体通信。board.c 文件中的所有函数都由 SCU 本身执行,这使你能够访问用于与 PMIC 通信的 I2C 接口。 由外部电源(例如 PMIC LDO)供电的 SoC 资源(如 AP 内核和 GPU)通过 board_set_power_mode 进行开关,资源到特定 PMIC 电源的映射在 board_get_pmic_info 中进行,例如,在我们的 i.MX8QM 验证板上,使用 A53 子系统由 PF100 PMIC 卡上第三个 PMIC(PMIC_2_ADDR 地址从 PMIC_0 开始)的 SW2 供电,由 PF8100 PMIC 卡上第一个 PMIC (PMIC_0_ADDR) 的 SW5 供电。 case SC_SUBSYS_A53: pmic_init(); if (pmic_card == PF100) { pmic_id[0] = PMIC_2_ADDR; pmic_reg[0] = SW2; *num_regs = 1; } else {/* PF8100_dual Card */ pmic_id[0] = PMIC_0_ADDR; pmic_reg[0] = PF8100_SW5; *num_regs = 1; } break; ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 由外部电源(AP 内核、GPU 等)供电的 SoC 资源的电压由 board.c 文件中的 board_set_voltage 管理。资源到电源的映射如上面的示例所示,在 board_get_pmic_info 中进行。 有八个 “板载资源” (SC_R_BOARD_R0,... SC_R_BOARD_R7)b 可用,这些资源允许你定义 SCU 可以管理的开发板上的组件,例如,开发板上由某个 PMIC LDO 供电的传感器可以映射到一个板载资源,并且可以修改 board.c 文件来开关该传感器以及修改其电压。 修改板载资源的电压可以通过修改 board_trans_resource_power 处的电压来完成(见下文),或者如果需要在运行时更改电压,可以修改 board_set_control 函数,以便在对该资源进行杂项调用(详见《杂项服务 101》)时更改电压。例如,要更改 SC_R_BOARD_R7 上的电压,你可以在 board_set_control 中使用以下情况: case SC_R_BOARD_R7: if (ctrl == SC_C_VOLTAGE) { /* Example only PMIC_X_ADDR and PMIC_SUPPLY need to match an actual device */ pmic_interface.pmic_set_voltage(PMIC_X_ADDR, PMIC_SUPPLY, val, step); } else return SC_ERR_PARM; break;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 每当应用程序调用以下函数时,SCU 将执行上面的代码: sc_misc_set_control( ipc, SC_R_BOARD_R7, SC_C_VOLTAGE, voltage_val);‍‍‍‍‍‍‍‍ 板载资源的开关在 board.c 文件的 board_trans_resource_power 中进行。例如,在 NXP 的验证板上,板上的 PTN5150 通过板载资源 0 进行管理,其开关管理如下: case BRD_R_BOARD_R0 : /* PTN5150 (use SC_R_BOARD_R0) */ if (pmic_ver.device_id == PF100_DEV_ID) { if (to_mode > SC_PM_PW_MODE_OFF) { pmic_interface.pmic_set_voltage(PMIC_2_ADDR, VGEN6, 3300, SW_RUN_MODE); pmic_interface.pmic_set_mode(PMIC_2_ADDR, VGEN6, VGEN_MODE_ON); } else { pmic_interface.pmic_set_mode(PMIC_2_ADDR, VGEN6, VGEN_MODE_OFF); } } else {/* PF8100_dual Card */ if (to_mode > SC_PM_PW_MODE_OFF) { pmic_interface.pmic_set_voltage(PMIC_1_ADDR, PF8100_LDO1, 3300, REG_RUN_MODE); pmic_interface.pmic_set_mode(PMIC_1_ADDR, PF8100_LDO1, RUN_EN_STBY_EN); } else { pmic_interface.pmic_set_mode(PMIC_1_ADDR, PF8100_LDO1, RUN_OFF_STBY_OFF); } } break;‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 每当从应用程序端调用以下函数时,SCU 将执行上面的代码: sc_pm_set_resource_power_mode(ipc, SC_R_BOARD_R0, SC_PM_PW_MODE_ON/OFF);‍‍‍‍‍‍‍‍ board_config_sc 用于标记 SCU 需要的资源,例如用于与 PMIC 通信的 I2C 模块和焊盘,board.c 函数工作所需的任何资源都应在此函数中标记为不可移动,例如,要保留 SCU I2C 模块,需添加以下行: rm_set_resource_movable(pt_sc, SC_R_SC_I2C, SC_R_SC_I2C, false);‍‍‍‍‍‍‍‍‍ 以下焊盘属于 SCU,应用程序无法访问它们: - SC_P_SCU_PMIC_MEMC_ON - SC_P_SCU_WDOG_OUT - SC_P_PMIC_EARLY_WARNING - SC_P_PMIC_INT_B - SC_P_SCU_BOOT_MODE0 到 SC_P_SCU_BOOT_MODE5 board_system_config 是早期资源管理发生的地方,该函数仅在图像中设置了 alt_config 标志时被调用,并且它可以创建分区并为其分配资源。更多详细信息可在资源管理服务 101 中找到。 board_get_pcie_clk_src 定义了 PCIe 使用的时钟,它可以是 BOARD_PCIE_PLL_EXTERNAL 或 BOARD_PCIE_PLL_INTERNAL。 board_print 对于调试你的更改非常有用,其语法如下: board_print(3, "Debug printout %d\n", val);‍‍‍‍‍‍‍ 其中第一个参数是调试级别,从那里开始它的工作方式与标准 printf 相同。只有当 SCU 是在相应的调试级别下构建时,输出才会在 SCU 调试输出上可见,在上面的示例中,需要按以下方式构建 SCFW 才能看到输出: make qm B=myBoard‍‍‍‍ DL=3 or higher (debug level goes from 0 to 5)‍‍‍‍‍‍‍ 用法示例 以下工具展示了如何发出系统控制器固件请求,并提供了一种通过 QNX 和 Linux 上的命令行界面发出此类请求的方法 适用于 Linux 和 QNX 的系统控制器固件命令行工具 系统控制器固件 101 i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus
記事全体を表示
LS1043ARDB - How to update DPAA1 FMan microcode (ucode) image on SD card Follow these steps to update the DPAA1 FMan ucode image on the SD card.  Obtaining DPAA1 FMan ucode image Clone the qoriq-fm-ucode repository. $ git clone https://github.com/NXP/qoriq-fm-ucode.git $ cd qoriq-fm-ucode $ git checkout LSDK- . For example, $ git checkout LSDK-19.06 The prebuilt FMan ucode images, fsl_fman_ucode_ls1043_r1.1_ .bin , are at qoriq-fm-ucode/. In the binary file, ls1043_r1.1 refers to the LS1043A silicon revision 1.1. See qoriq-fm-ucode/readme for a description of the ucode version numbers. SD card start block number for DPAA1 FMan ucode image Image  SD card start block number DPAA1 FMan ucode image 0x04800 = 18432 Refer Flash layout for new boot flow with TF-A for complete listing of the SD card start block numbers for all LSDK firmware images. Programming DPAA1 FMan ucode image to SD card Option 1: Load image on SD card plugged into Linux host via dd command Plug the SD card into the Linux host. Run the following command on the Linux host: $ sudo dd if=fsl_fman_ucode_ls1043_r1.1_ .bin  of=/dev/sdX bs=512 seek=18432 conv=fsync Use the command cat /proc/partitions to see a list of devices and their sizes to make sure that the correct device names have been chosen. The SDHC storage drive in the Linux PC is detected as /dev/sdX, where X is a letter such as a, b, c. Make sure to choose the correct device name, because data on this device will be replaced. If your Linux host machine supports read/write SDHC card directly without an extra SDHC card reader device, the device name of SDHC card is typically mmcblk0.                                                   Remove the SD card from the Linux host machine. Plug the SD card into LS1043ARDB and boot the board to Ubuntu using the SD card. You can boot the board using the SD card either by: setting the switches: SW3[1:8] = 10110011, SW4 [1:8] =00100000 , SW5 [1:8] = 00100010, or boot switching to SD card => cpld reset sd In boot log, you’ll see: Board: LS1043ARDB, boot from SD You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image on the SD card is updated. Fman1: Uploading microcode version 106.4.18 If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_tiny.itb stored on the SD card. Option 2: Load image on SD card plugged into board from the TFTP server Boot LS1043ARDB from NOR flash. Ensure that the switches are set to boot the board from NOR bank 0. For booting from NOR bank 0, switch settings are as follows: SW3[1:8] = 10110011 SW4[1:8] = 00010010 SW5[1:8] = 10100010 Boot from NOR bank 0: => cpld reset For LS1043ARDB, in boot log, you'll see: Board: LS1043ARDB, boot from vBank 0 Set up Ethernet connection When board boots up, U-Boot prints a list of enabled Ethernet interfaces. FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5 Set server IP address to the IP address of the host machine on which you have configured the TFTP server.  => setenv serverip Set ethact and ethprime as the Ethernet interface connected to the TFTP server. See LS1043ARDB Ethernet and FMC port mapping for the mapping of Ethernet port names appearing on the chassis front panel with the port names in U-Boot and Linux.                        => setenv ethprime For example: => setenv ethprime FM1@DTSEC4 => setenv ethact For example: => setenv ethact FM1@DTSEC4 Set IP address of the board. You can set a static IP address or, if the board can connect to a dhcp server, you can use the dhcp command.  Static IP address assignment: => setenv ipaddr => setenv netmask Dynamic IP address assignment: => dhcp Save the settings. => saveenv Check the connection between the board and the TFTP server. => ping $serverip Using FM1@DTSEC4 device host 192.168.1.1 is alive Load FMan ucode image from the TFTP server Flash the FMan ucode image: => tftp 0xa0000000 fsl_fman_ucode_ls1043_r1.1_ .bin Program the FMan ucode image to SD card: => mmc write 0xa0000000 0x04800  Address  0x04800 is the SD card block number for the FMan ucode image.  ReferFlash layout for new boot flow with TF-A for the complete flash memory layout. Here, blk_cnt refers to number of blocks in SD card that need to be written as per the file size. For example, when you load FMan ucode from the TFTP server, if the bytes transferred is 37560 (92b8 hex), then blk_cnt is calculated as "37560/512 = 73 (49 hex)" + "few sectors for rounding up so that last block is not missed". So, if you round up by 5 (5 hex) sectors, for this example, mmc write command will be: => mmc write 0xa0000000 0x04800 4E You can boot the board using the SD card either by: setting the switches: SW3[1:8] = 10110011, SW4 [1:8] =00100000 , SW5 [1:8] = 00100010, or boot switching to SD card => cpld reset sd In boot log, you’ll see: Board: LS1043ARDB, boot from SD You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image on the SD card is updated. Fman1: Uploading microcode version 106.4.18 If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_tiny.itb stored on the SD card. QorIQ LS1 Devices Re: LS1043ARDB - How to update DPAA1 FMan microcode (ucode) image on SD card I think it will be good to have also a section where you show how we write the sd card from u-boot in case we do not have a card reader on the host
記事全体を表示
i.MX6DQ 寄存器编程辅助工具 重要提示:如果您有任何疑问或想要报告有关 DDR 工具或支持文档的任何问题,请在i.MX 社区中创建支持工单。请注意,任何私人消息或直接邮件不会被监控,也不会收到回复。 这些是与MX6DQ SoC中MMDC DDR3和LPDDR2初始化相关的寄存器的详细编程辅助工具。最后一张表格格式化寄存器设置以便与ARM RealView ICE一起使用。它还可以与DDR压力测试的Windows可执行文件一起使用。此编程辅助工具用于NXP内部的电路板。 i.MX6 双核 i.MX6 四核
記事全体を表示
用于 PHY 寄存器操作的以太网工具 大多数以太网 PHY 支持多功能,并提供更灵活的配置能力,通过配置其寄存器可对时序进行微调或启用功能。以太网 PHY 寄存器工具提供了一种通过 MDC/MDIO 接口简单读写 PHY 寄存器的方法。这有助于开发或问题调试。  工业控制
記事全体を表示
i.MX8MP RAW 捕获最大几何尺寸 NXP社区的各位好, 我们正在尝试在 i.MX8MP 上使用特定的图像传感器。 我们正在尝试将 RAW12 捕获从 MIPI 推送到 RAM。看来唯一的方法是通过如下所述的 ISI 模块: 问题在于,关于几何限制的文档含糊不清,我们正在尝试确定 i.MX8MP 是否适合我们的应用。 图像的高度和宽度在 ISI 中使用 CHNL_IMG_CFG[WIDTH/HEIGHT] 寄存器定义。这些条目是 13 位的,理论上将我们限制在 8191 x 8191 的几何尺寸。 宽度似乎受到硬件的限制,因为行缓冲区实际上只能容纳 2K 像素,但文档概述了通过组合其他通道的行缓冲区来实现 4K 的方法。文档中没有说明是否可以达到 8191 像素的线宽寄存器限制。我们可以绕过 ISI 处理,我们的目标是直接将 RAW MIPI 捕获的数据推送到 RAM 中。 此外,与宽度限制不同,高度限制似乎并非由物理硬件引起。 是否有任何证据表明我们可以支持 CHNL_IMG_CFG[HEIGHT] 寄存器 13 位最大值所定义的 8191 行高度? 任何支持都将不胜感激。我已阅读过其他类似帖子,例如以下这些: https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/mp/2158946 https://community.nxp.com/t5/i-MX-Processors/I-MX8MP-ISI-maximum-supported-width/mp/1224069 但是,目前尚未确认是否支持 8191 宽度,我想知道这方面是否有任何更新。 此外,高度限制也没有明确规定。 谢谢 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP Maximum Geometry for RAW Capture i.MX8MP 的 ISI 驱动程序限制在 2K 分辨率,但如果使用链式缓冲区,ISI 可以支持高达 4K 的分辨率,但不支持 8191 像素宽。在 i.MX8MP 上,单个摄像头最高可支持 4K@30Hz 的分辨率。 Re: i.MX8MP Maximum Geometry for RAW Capture 感谢您的回复。 所以宽度限制与我最初的发现相符。 请问ISI模块的高度限制是多少?我们能否通过 ISI 实现 8191 车道高度? 谢谢 Re: i.MX8MP Maximum Geometry for RAW Capture 请参考驾驶员说明,最大高度为 8191。 #define MXC_ISI_MIN_WIDTH 1U #define MXC_ISI_MIN_HEIGHT 1U #define MXC_ISI_MAX_WIDTH_UNCHAINED 2048U #define MXC_ISI_MAX_WIDTH_CHAINED 4096U #define MXC_ISI_MAX_HEIGHT 8191U https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/media/platform/nxp/imx8-isi/imx8-isi-core.h
記事全体を表示
s32k322 启动问题 HI 我们 我们遇到了 一个 异常 在 开发 与 的 S32K322 微控制器进行开发时 使用 热电阻 版本 6.0.0.为了 消除 来自 上层 应用程序 代码的 干扰 , 我们 创建 了一个 空白 的 S32K322 项目, 对其进行了 编译 , 并 成功地 将其 刷 新 到 目标 板 上 。但是, 我们 观察 到 , 当 在 启动 代码 中 执行 禁用 WDG0 (看门狗 0 ) 的 汇 编代码时, 芯片 会 立即 触发信号 HardF a ult 异常。经 调查、 我们 发现 我们发现 内存 内存 地址 范围 0x404800 至 0x414000 是 全部 充满了 全部被 0xFFFFFFFF.有意思的是 当 当 装配 代码 的 停用 WDG0 的汇编代码 删除、 数据 数据 中的 内存中的 内存 区域 返回 恢复正常。 正常。我们 我们将 非常感谢 感谢 任何 协助 提供 提供 a 解决方案 或 进一步 故障排除 建议 顺祝商祺! 李永祥 Re: s32k322 boot issue 你好,我是@danielmartynek、 MCU 上未安装 HSE_FW,Project_Settings/Startup_Code/startup_cm7.s 中的 Reset_Handler 是 MCU 的入口。这个问题在我们所有的 s32k322 MCU 上都存在。 顺祝商祺! 李永祥 Re: s32k322 boot issue 你好,我是@李永祥、 MCU 上是否安装了 HSE_FW? 你还有更多可以重现问题的 MCU/板吗? 谢谢 Re: s32k322 boot issue 你好@丹尼尔-马蒂内克 补充说明:一旦我们删除了禁用 WDG0 的代码,MCU 就能正常启动。但是,连接调试器仍然经常会触发硬故障——我们怀疑监视程序可能超时,但我们不能 100% 确定。希望这有助于分析。 顺祝商祺! 李永祥 Re: s32k322 boot issue 你好,@丹尼尔-马蒂内克 感谢您的回复,以下是 S32DS 使用 RTD6.0.0 生成的空白项目。 顺祝商祺! 李永祥 Re: s32k322 boot issue 你好,我是@李永祥、 你能否将空白项目和二进制一起分享以便我对其进行测试? 谢谢! BR,丹尼尔 Re: s32k322 boot issue 填充 0x 404800 到 0x 414000 范围的 0x FFFFFFF 也会导致 init_data_ bss 加载错误,len 将被识别为 0x ffffffff,MCU 启动将失败。 Re: s32k322 boot issue 感谢您的答复!看门狗由 Project_Settings/Startup_Code/startup_cm7.s 中的启动代码关闭,而不是由我的逻辑关闭。当 MCU 执行 "ldr r0, =0x40270000 "时,MCU 将陷入硬故障。 Re: s32k322 boot issue 看门狗可能会保护被误删的内存区域。启用看门狗可使 MCU 处于保护之下 Re: s32k322 boot issue 你好@YongxiangLi, 你所观察到的出乎意料。 我这边无法复现这种现象,这正是预期的结果。 默认情况下,SWT_0 WDOG 处于禁用状态(CR [WEN] = 0),除非启用了 HSE_FW 并且在启动配置字中配置了 APP_SWT_INIT。 SWT_0 模块默认也已启用时钟,因此访问它应该不会引起任何问题。 PRTN1_COFB0_CLKEN[28] PRTN1_COFB0_STAT[28] 在执行该例程之前,请检查所有相关的 ME_ME 和 SWT 寄存器。 此外,请阅读以下 ID 寄存器文档,以排除任何相关问题: SIUL2 MCU ID 寄存器 #1 (MIDR1) SIUL2 MCU ID 寄存器 #2 (MIDR2) BR,丹尼尔
記事全体を表示
llcecan问题 嗨,NXP 小组: 测试硬件:S32G274 软件版本:bsp38 can setting: ip link set llcecan(0~3)type can \ bitrate 500000 \ sample-point 0.8 \ dbitrate 2000000 \ dsample-point 0.7 \ fd on 测试用例: 1: Vector v1640 can1 可以连接到 s32g 的 can0~can3, can2 可以连接到 s32g 的 llce_can0~llce_can3 2: vector1640 发送 can 数据,s32g 接收 can 数据。 3: 检查发送和接收的数据帧是否一致。 测试结果: 1:数据帧在 llce_can0~llce_can3 中丢失,但在 can0~can3 中没有丢失。 参考图像如下 图 1:我们可以看到 v1640 can1 共发送了 1,823,705 帧,而在图 2 中,s32g274 can0~can3 收到了 1,823,705 帧而没有任何帧损失。 我们可以看到,v1640 can2 发送的帧总数为 1 845 947,而 s32g274 llce_can0~llce_can3 接收的帧总数约为 1 845 887。损失 60 帧。 当 CPU 负载相对较高时,丢帧情况就会恶化。是否有可能增加 LLCE_CAN_MAX_RX_MB,以减少 CPU 负载。同时,如何解决丢帧问题?是否有任何优化项目? Re: llcecan question 你好,@张博文 感谢您的回复。 为了进一步调查这个问题,我首先希望在本地 RDB2 上重现这个问题。 您能否澄清以下问题? 1.您的测试使用的是哪个版本的 LLCE FW? 2。你有没有用其他版本的 BSP 测试过?如果是这样,结果也一样吗? 3.是否只有在通过所述的 8 个 CAN 通道进行基准测试时才会出现丢帧现象?请问您是否只对 LLCE CAN 接口进行过压力测试?有没有简化的测试设置可以重现该问题? 4.测试的负载是多少?发现帧丢失时的吞吐量值是多少?测试期间 CPU 的平均负载是多少? BR 切宁 Re: llcecan question 您好, 感谢您的回复。 在我将 LLCE_CAN_MAX_RX_MB 修改为 64 和 128 后,CPU 负载并没有减少,或者减少得不明显,因此很难观察到。 而 llcecan 的丢帧现象依然存在 Re: llcecan question 你好,@张博文 谢谢您的帖子。 从共享的描述来看,似乎是在系统负荷较高时丢失了帧。 我建议尝试更改 LLCE_CAN_MAX_RX_MB 中的 值。 drivers/net/can/llce/llce_can_common.c的新值,如 32 或 64,然后重建内核进行另一次测试,检查测试中是否仍存在问题。 BR 切宁 Re: llcecan question 您好, 感谢您的回复。 1.LLCE FW 版本为 HHFF_2A [REL_LLCE1_0_6|BLD_RDC2303221606]。 2.只对 bsp38 进行了测试。 3.仅对 llcecan 进行了无帧丢失的压力测试。但是,在同时对所有 8 个 can 通道进行压力测试时,出现了丢帧(4 通道 llce 测试和 8 通道 can 测试使用的软件相同)。 4. canoe 总线负载为 55% ,8 通道 can 测试期间的平均 CPU 负载为 60% ,4 通道 llce 测试期间的平均 CPU 负载为 37% Re: llcecan question 你好,@张博文 感谢您的回复。 1.请您帮助检查是否有更简单的方法来重现该问题? 2。我知道目前它只发生在 8 通道测试中,我能知道你的板上是否只有 4+4 CAN 接口吗?是否只能在 LLCE 上进行测试才能重现该问题?(说LLCE 接口上有 4 个以上通道) 在 RDB2 上,只有 2 个 FlexCAN,但有 16 个 LLCE CAN,如果能提供简化的测试方法,将非常有帮助。 BR 切宁 Re: llcecan question 您好, (1) 我在开发板上运行了我们的项目程序。我不方便把整个文件发给你进行测试。您可以直接使用 canoe 将 llcecan0 连接到 llcecan3,而无需运行任何程序,以每秒 8000 帧的速度进行流媒体测试。 (2) 它只能以每秒 8000 帧的速度流式传输 4 个频道的 llcecan。即使发送 1000 万帧,也不会出现丢帧现象
記事全体を表示
NXP FS45 SBC RTD Requese 我目前正在使用 SBC FS45 开发汽车控制软件,主控芯片是 S32K342。我想知道是否有基于 EB Tresos 配置的 FS45 RTD 软件包? Re: NXP FS45 SBC RTD requese 我们只有带示例的 FS6500/FS4500 通用 SW 驱动程序 嵌入式软件:FS65/FS45 软件驱动程序 | 恩智浦半导体
記事全体を表示
S32K3_ADC 校准失败 您好,NXP 我配置了 ADC0 和 ADC1,然后发现 ADC0 在验证时偶尔会失败。验证失败的原因是什么?根据我的理解,如果验证失败,就会直接输出失败。目前,我看到它停留在 CALBISTREG[C_T_BUSY]。当我的应用程序运行很长时间后,我检查寄存器,发现该状态保持不变。 敬上, xianlong Re: S32K3_ADC_Calibration fail 您想用 ADC 传输哪种信号?电机控制或某种安全信号 Re: S32K3_ADC_Calibration fail 您好,@db16122 感谢您的关注。它只是收集一些电压信号,与电机控制无关。您是否有任何相关经验可以分享? 最美好的祝愿, xianlong Re: S32K3_ADC_Calibration fail 你好@武仙龙 在您的图片中,MCR 为 0xA100 0E03 ,因此"PWDN" 位为 1   不过,在进行下一步操作之前,应将"PWDM" 设置为 0b。 我不确定这是否就是 ADC 验证失败的原因,使其处于 "忙 "状态。 Re: S32K3_ADC_Calibration fail 你好,@Senlent 我调查了底层代码,这种状态是可以解释的。当 ADC 因某种原因无法校准时,ADC 模块的硬件状态机将保持在 "校准 "状态。软件完成校准过程后,将禁用 ADC 模块,重新配置时钟,然后再次启用模块。软件返回的标准是 ADC 状态寄存器,但目前寄存器的值是校准。软件返回超时,然后将不再为该 ADC 模块供电。 现在的主要问题是,为什么 ADC 模块的硬件状态机仍处于校准状态?而且这个问题是偶发的,只要改动一点代码,问题就很难再现。 敬上, xianlong Re: S32K3_ADC_Calibration fail 根据 TSAMP 设置,该值为 00b,即 22 个周期。由于 ADC 校准可能需要一些时间,也许您可以改用 32 个周期的 11b。请查看 S32K3 清单 20260104。 顺便说一句,ADC 校准是一直失败还是偶尔会失败?是否有可能因某处的噪声而改变 ADC 校准参考电压? Re: S32K3_ADC_Calibration fail 你好@武仙龙 对此,我也没有太多想法。我建议您阅读本文件的以下章节: 章节:3.6.9 ADC 校准建议 https://community.nxp.com/t5/S32K/S32K3%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E6%A3%80%E6%9F%A5%E5%88%97%E8%A1%A8-Check-list-%E5%88%86%E4%BA%AB/m-p/2020858 关于 ADC 自检的一些建议。 请检查上述每项建议,看看是否有需要优化的地方。 Re: S32K3_ADC_Calibration fail 你好, @ db16122 @Senlent 感谢您的帮助。 目前,通过测试尚未找到根本原因。当我直接断开 VREFH 引脚并调用校准函数 Adc_Calibrate 时,校准会失败。但是,校准失败将设置 TEST_FAIL 寄存器,ADC 状态将变为 IDLE。它不会卡在校准状态。 虽然问题的原因不明,但检查清单中的措施应能避免这一问题。 敬上, xianlong
記事全体を表示
[不正行為] 投稿者: @RishavKaaraTech / 掲示板: TapLinx-SDK / 報告者: bedhcyqo bedhcyqo は、 @RishavKaaraTech が投稿した 「RFIDDiscover ツールを入手したが、その使い方はわからない」という 投稿を以下の理由で報告しました。 理由:嫌がらせ 詳細: 購入アンビエン 代金引換 購入非ジェネリックのアンビエンをオンラインで購入 アンビエンシドニーでは処方箋なしで ジェネリックアンビエン格安 アンビエン処方箋不要のオンライン薬局 購入プロアンビエン どこで次のアンビエンを購入する 今はダメ アンビエン セイウチ バルプロ酸アンビエンの相互作用ジェネリック アンビエンブルガリアでは処方箋なしで http://sp-journal.ru/article/19339 "> 一般的なアンビエン対アンビエン アンビエンの購入方法 アンビエンリトアニアでは処方箋なしで https://www.rapidservice.com.ec/es/content/ambien-cheap-non-prescription "> ジェネリックアンビエン 安い アンビエンを購入したい 購入モントリオールのアンビエン 購入モントリオールのアンビエン アンビエンネブラスカ州では処方箋なしで入手可能 アンビエンジェネリック写真 オーストラリアでアンビエンを安く購入 安いアンビエン アメリカ 安いオーストラリアでのアンビエン アンビエンを次に注文する場所 アンビエンの購入価格 アンビエンをオンラインで購入する 割引アンビエン cr 購入アンビエンCRオンライン アンビエン処方箋なしでオンラインで購入 購入無料の翌日配送薬局アンビエン valiumアンビエンの相互作用ジェネリック ジェネリックアンビエン 安い 処方箋なしでアンビエンを購入する 次にアンビエンを購入する場所 アンビエンの注文方法 アンビエンのジェネリック %E2%オーストラリアで安いアンビエン どこで次のアンビエンを購入する 割引アンビエン cr プロアンビエンを購入する 購入バイアグラ インド ジェネリック アンビエン 投稿リンク: https://community.nxp.com/t5/TapLinx-SDK-TagWriter-and/RFIDDiscover-tool-acquired-but-how-to-use-it/mp/2164324#M205 投稿者: @RishavKaaraTech |作成者に電子メールを送信する 報告者: bedhcyqo |メールによる報告 報告された投稿には3件の返信があります。
記事全体を表示
SPT 限制:无法为 RT1189 添加多个可执行图像 您好, 我正在使用 i.MX RT1189 EVK,有一个由引导加载程序和在 CM7 内核上运行的应用程序组成的两阶段设置。由于 RT1189 bootROM 在 CM33 内核上执行,所以我使用 CM33 触发器应用程序来启动 CM7 内核并启动引导加载程序。使用安全配置工具 (SPT),我最初只加载了CM33触发器应用程序作为主可执行文件,并在 “其他映像” 选项卡下添加了引导加载程序。签署图像后,该设置如期运行。 不过,当我试图将应用程序固件作为附加可执行文件加入时,却发现该工具不支持多个可执行文件映像。将应用程序二进制视为 “数据” 是可行的,但我担心的是数据条目不带有可执行签名,我们需要安全、经过身份验证的执行。有没有使用 SPT 添加多个可执行图像的方法?另外,如果应用程序作为数据添加,是否可以附加签名?我知道合并图像是一种选择,但这种方法并不适合我们目前的实施。 SPT-TOOLKIT#iMXRT1189 #CM7 Re: SPT Limitation: Unable to Add Multiple Executable Images for RT1189 嗨,Kan、 我使用的是 SPT v25.12。我期待您的答复,并感谢您的支持。 Re: SPT Limitation: Unable to Add Multiple Executable Images for RT1189 你好@anand_s、 您使用的是哪个 SPT 版本?请具体说明一下好吗? 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: SPT Limitation: Unable to Add Multiple Executable Images for RT1189 你好@anand_s、 感谢您提供的信息!对于 SPT 来说,它只会在添加多个图像时对第一张图像进行签名,如果你需要对它们全部签名,也许你必须首先在 nxpimage 工具的帮助下将它们合并为一个图像,例如 nxpimage utils 二进制图像导出。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 -------------------------------------------------------------------------------
記事全体を表示
Changing CAN interface configuration on KW47-EVK while using serial terminal Most available example applications use UART as the serial interface for terminal communication. This approach is commonly chosen because a terminal provides a simple and efficient method for interacting with the application during development and debugging. The KW47-EVK supports two CAN/CAN-FD interface; as well as two UART interfaces accessible through the onboard USB-to-UART bridge.  The corresponding SoC peripheral instances are CAN0 and CAN1 for the CAN/CAN‑FD interfaces, and LPUART0 and LPUART1 for the UART interfaces. Since the LPUART1 serial interface and the CAN1 interface are routed to the same pins (PTC2 and PTC3) at the board level, and both functions can be enabled through header configuration, external isolation is required to ensure correct operation and prevent interference from other onboard components. If CAN1 must be enabled and your application also requires a serial terminal interface, then LPUART0 must be used as the serial interface.To enable both CAN1 and LPUART0 on the KW47‑EVK, follow the steps below: Changes required on hardware CAN Node A CAN Node B Pin name Board jumper Pin name Board jumper CANH J21 - 1 CANH J21 - 1 CANL J21 - 2 CANL J21 - 2 GND J21 - 4 GND J21 - 4 P12V J21 - 3 P12V J21 - 3  Note: Plug in the 12V power supply on J9 to supply the P5V_CAN. LPUART0 interface connection Functionality Board jumper Connection configuration LIN_RX JP11 2 - 3 LIN_TX JP12 2 - 3 UART_RX_USB selector JP16 2 - 3 UART_TX_USB selector JP17 2 - 3 CAN_RX_1 selector JP56 1 - 2 CAN_TX_1 selector JP57 1 - 2   Changes required on software Note: These steps assume you are using a FlexCAN SDK example application. If your application requires enabling CAN1 instead of the default CAN0, update the following configuration in your project’s source code: 1. In board.c, modify the LPUART instance, kCLOCK_Lpuart1 -> kCLOCK_Lpuart0: /* Initialize debug console. */ void BOARD_InitDebugConsole(void) { uint32_t uartClkSrcFreq = 0U; /* Set LPUART0 clock source */ CLOCK_SetIpSrc(kCLOCK_Lpuart0, kCLOCK_IpSrcFro192M); uartClkSrcFreq = CLOCK_GetIpFreq(kCLOCK_Lpuart0); DbgConsole_Init(BOARD_DEBUG_UART_INSTANCE, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, uartClkSrcFreq); } 2. In board.h, modify the LPUART instance definitions: BOARD_DEBUG_UART_BASEADDR LPUART1 -> LPUART0 BOARD_DEBUG_UART_INSTANCE 1U -> 0U BOARD_DEBUG_UART_CLK_FREQ kCLOCK_Lpuart1 -> kCLOCK_Lpuart0 /* The UART to use for debug messages. */ #define BOARD_USE_LPUART #define BOARD_DEBUG_UART_TYPE kSerialPort_Uart #define BOARD_DEBUG_UART_BASEADDR (uint32_t) LPUART0 #define BOARD_DEBUG_UART_INSTANCE 0U #define BOARD_DEBUG_UART_CLK_FREQ (CLOCK_GetIpFreq(kCLOCK_Lpuart0)) 3. In hardware_init.c, modify the CAN instance to CAN1 at FlexCAN functional clock configuration: void BOARD_InitHardware(void) { BOARD_InitPins(); BOARD_BootClockRUN(); BOARD_InitDebugConsole(); /* FRO192M is configured as CAN1 functional clock in this example but other clock options may be available */ CLOCK_SetIpSrc(kCLOCK_Can1, kCLOCK_IpSrcFro192M); CLOCK_SetIpSrcDiv(kCLOCK_Can1, kSCG_SysClkDivBy1); } 4. In app.h, modify the EXAMPLE_CAN definition to CAN1: #define EXAMPLE_CAN CAN1 #define USE_CANFD (1) #define RX_MESSAGE_BUFFER_NUM (0) #define TX_MESSAGE_BUFFER_NUM (1) 5. In pin_mux.c, modify pin multiplexing configuration to enable CAN1 and LPUART0 pins respectively. You can copy and paste the below code to replace BOARD_InitPins function: void BOARD_InitPins(void) { /* Clock Config: Peripheral clocks are enabled; module does not stall low power mode entry */ CLOCK_EnableClock(kCLOCK_PortA); CLOCK_EnableClock(kCLOCK_PortC); const port_pin_config_t porta16_pin11_config = {/* Internal pull-up/down resistor is disabled */ (uint16_t)kPORT_PullDisable, /* Low internal pull resistor value is selected. */ (uint16_t)kPORT_LowPullResistor, /* Fast slew rate is configured */ (uint16_t)kPORT_FastSlewRate, /* Passive input filter is disabled */ (uint16_t)kPORT_PassiveFilterDisable, /* Open drain output is disabled */ (uint16_t)kPORT_OpenDrainDisable, /* Low drive strength is configured */ (uint16_t)kPORT_LowDriveStrength, /* Normal drive strength is configured */ (uint16_t)kPORT_NormalDriveStrength, /* Pin is configured as LPUART0_RX */ (uint16_t)kPORT_MuxAlt6, /* Does not invert */ (uint16_t)kPORT_InputNormal, /* Pin Control Register fields [15:0] are not locked */ (uint16_t)kPORT_UnlockRegister}; /* PORTA16 (pin 11) is configured as LPUART0_RX */ PORT_SetPinConfig(PORTA, 16U, &porta16_pin11_config); const port_pin_config_t porta17_pin12_config = {/* Internal pull-up/down resistor is disabled */ (uint16_t)kPORT_PullDisable, /* Low internal pull resistor value is selected. */ (uint16_t)kPORT_LowPullResistor, /* Fast slew rate is configured */ (uint16_t)kPORT_FastSlewRate, /* Passive input filter is disabled */ (uint16_t)kPORT_PassiveFilterDisable, /* Open drain output is disabled */ (uint16_t)kPORT_OpenDrainDisable, /* Low drive strength is configured */ (uint16_t)kPORT_LowDriveStrength, /* Normal drive strength is configured */ (uint16_t)kPORT_NormalDriveStrength, /* Pin is configured as LPUART0_TX */ (uint16_t)kPORT_MuxAlt6, /* Does not invert */ (uint16_t)kPORT_InputNormal, /* Pin Control Register fields [15:0] are not locked */ (uint16_t)kPORT_UnlockRegister}; /* PORTA17 (pin 12) is configured as LPUART0_TX */ PORT_SetPinConfig(PORTA, 17U, &porta17_pin12_config); const port_pin_config_t portc2_pin39_config = {/* Internal pull-up/down resistor is disabled */ (uint16_t)kPORT_PullDisable, /* Low internal pull resistor value is selected. */ (uint16_t)kPORT_LowPullResistor, /* Fast slew rate is configured */ (uint16_t)kPORT_FastSlewRate, /* Passive input filter is disabled */ (uint16_t)kPORT_PassiveFilterDisable, /* Open drain output is disabled */ (uint16_t)kPORT_OpenDrainDisable, /* Low drive strength is configured */ (uint16_t)kPORT_LowDriveStrength, /* Normal drive strength is configured */ (uint16_t)kPORT_NormalDriveStrength, /* Pin is configured as CAN1_RX */ (uint16_t)kPORT_MuxAlt11, /* Does not invert */ (uint16_t)kPORT_InputNormal, /* Pin Control Register fields [15:0] are not locked */ (uint16_t)kPORT_UnlockRegister}; /* PORTC2 (pin 39) is configured as CAN1_RX */ PORT_SetPinConfig(PORTC, 2U, &portc2_pin39_config); const port_pin_config_t portc3_pin40_config = {/* Internal pull-up/down resistor is disabled */ (uint16_t)kPORT_PullDisable, /* Low internal pull resistor value is selected. */ (uint16_t)kPORT_LowPullResistor, /* Fast slew rate is configured */ (uint16_t)kPORT_FastSlewRate, /* Passive input filter is disabled */ (uint16_t)kPORT_PassiveFilterDisable, /* Open drain output is disabled */ (uint16_t)kPORT_OpenDrainDisable, /* Low drive strength is configured */ (uint16_t)kPORT_LowDriveStrength, /* Normal drive strength is configured */ (uint16_t)kPORT_NormalDriveStrength, /* Pin is configured as CAN1_TX */ (uint16_t)kPORT_MuxAlt11, /* Does not invert */ (uint16_t)kPORT_InputNormal, /* Pin Control Register fields [15:0] are not locked */ (uint16_t)kPORT_UnlockRegister}; /* PORTC3 (pin 43) is configured as CAN1_TX */ PORT_SetPinConfig(PORTC, 3U, &portc3_pin40_config); } Run your demo application Connect a USB cable between the host PC and the KW47-EVK board J14. Open a serial terminal on PC for each board with the following settings: 115200 baud rate 8 data bits No parity One stop bit No flow control Download the program to the target board Either press the reset button on your board or launch the debugger in your IDE to begin running the demo.
記事全体を表示
CAN UDSアップデートのためのS32K144統合ブートローダ構成 こんにちは、 私は、S32 Design Studio を使用して、S32K144 EVB 上の NXP Unified Bootloader ソース コードを操作しています。私の目的は、MCU にブートローダを統合し、UDS を使用して CAN 経由でアプリケーション ファームウェアを更新することです。ブートローダーをフラッシュする前に、ソース ファイルまたは構成を変更する必要があるかどうかを確認したいと思います。たとえば、CAN ID やボーレートなどの CAN パラメータを設定したり、S32K144 EVB の HAL/ドライバー移植ファイルを変更したりしますか?または、ブートローダーを何も変更せずにそのまま EVB にフラッシュして評価することはできますか? ブートローダをプログラミングした後、それが正しく実行されていることを確認し、CAN 経由でアプリケーションのフラッシュをテストしたいと思います。ブートローダ モードを強制する方法、ブートローダの実行を確認する方法 (UART ログ、CAN 応答、デバッガなど経由)、ブートローダがアプリケーションにジャンプする方法など、推奨される検証手順について説明していただけますか? さらに、正しいアプリケーション フラッシュ開始アドレス、リンカー設定、ベクター テーブルの場所、必要なスタートアップ コードの変更など、ブートローダーで動作するようにアプリケーション プロジェクトを構築する方法に関するガイダンスも必要です。最後に、S32K144 を使用した UDS フラッシュに使用される一般的な PC 側ツールと、CAN 経由で統合ブートローダをテストするための推奨 CAN インターフェース ハードウェアについて知りたいと思います。 Re: S32K144 Unified Bootloader Configuration for CAN UDS Update こんにちは@padmaja 、 残念ながら、コミュニティで共有されている統合ブートローダーは非公式のデモ版のみ提供されています。 現状のまま 保証もサポートもありません。現在、このデモをサポートするリソースがありません。ドキュメントを通じてご質問にお答えするよう努めますが、フォローアップが表示された場合は、代わりにサポート ページにお問い合わせください。 アプリケーションを MCU にフラッシュし、ECU-BUS 機能のテストを開始できます。CAN ID、ボーレートなどを変更する必要はありません。両方を参照できます 統合ブートローダ – ユーザーガイドとUDS ブートローダ実装ガイド。 Open Bus Toolを使用する前に、CANブートローダをMCUにダウンロードする必要があります。これは、S32DSを使ってプロジェクトをコンパイルすることで実行できます。また、コミュニティ投稿「 HOWTO: S32 Design Studioを使用してマイクロコントローラに個別のelf/srec/hexファイルをダウンロードする」に記載されているように、elf/binaryファイルをアップロードすることもできます。 Open Bus Toolを使用すると、CANバス経由でアプリケーションをダウンロードできます。PEAK CANバスインターフェースをサポートしています。APPプロジェクトは統合ブートローダパッケージに含まれています。 ツールで読み込む必要があるJSONファイルも存在します。このJSONファイルには、フラッシュドライバ(flash_api.bin)とAPPファームウェア(APPファームウェアのフォーマットはS19/hex/binary)に関する情報が含まれています。 よろしくお願いします、 ジュリアン
記事全体を表示
LED code example does not work I was following this example on my s32k116: https://www.nxp.com/design/design-center/training/TIP-GET-TO-KNOW-THE-USER-FRIENDLY-MBDT-D0609 I did exactly what was shown in the video to get the LED working. My code builds too. But the LED wont turn on when I turn the potentiometer. I have attached a picture of the board for reference. Kindly guide me on where I might be going wrong Re: LED code example does not work Hello, Please note that the video you mentioned uses another evaluation kit (S32K144EVB) and the pins might not be the same for S32K116. Did you check the schematic to see the pins used by the potentiometer and the LED? As a recommendation, try to use the FreeMASTER tool to visualize the data on the board. You have to add data store memory blocks to save the data from the ADC and the state of the LED. Please set them to Volatile (in order to see them in FreeMASTER).  Another variant is to use the S32 Design Studio to directly debug the application, by placing breakpoints at specific lines and see the values read from the potentiometer. Best regards, Sorin Bancila  Re: LED code example does not work I tried doing that but when I try to start a session on freemaster, it cannot detect the board information. And I set the block state ("pot_adc") as Volatile which is why is shows up as a symbol when I go to the symbol table preview . Here is the screenshot. I am not sure why the board is not responding
記事全体を表示
2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 全球飞思卡尔杯官方规则! 2014 年新内容——联赛推出: 根据地区的不同,现在将有三个联赛。全球比赛将仅使用普通联赛车辆。 股票联赛 -使用认可的部件进行比赛,允许较少的定制 自定义联赛 -限制较少且配备自定义硬件的比赛 创新联盟 -不止于竞速。完成目标或任务即可获得积分,赢得胜利。 说明 您可以使用操作菜单栏以 PDF 格式查看此文档。 此规则适用于全球挑战。在此处查找您所在地区的规则 目前,全球挑战赛仅对普通(未修改)挑战者开放。 如果您对这些规则有任何疑问,请在下方评论区留言。如果您对区域规则有任何疑问,请在您所在区域的群组中提问。 第 1 部分:团队要求 地区冠军球队必须参加“普通”(未修改)联赛才有资格。 团队规模最多为四人。 一个团队只能有一名研究生。 汽车将仅由学生设计和制造。 希望参与者、顾问和观众表现出良好的体育精神。任何不当行为或作弊行为都可能导致取消资格。 第二部分:活动注册 参加全球挑战赛的参赛者必须获得邀请。每个地区冠军队伍都会收到一份邀请。 地区冠军队伍中的一人必须在地区决赛结束后两周内为整个队伍报名参加全球挑战赛。 第 3 节:设备要求 每支队伍应使用如下所述的相同基本零件套件。为了保证公平的比赛环境,以下要求已到位。您必须使用经批准的控制器和电机驱动板。如果赛车模型的任何标准部件损坏,则应使用相同的替换部件。 机械的 参赛时必须使用原始且未经改动的设备。 外轮胎胎面和轮辋 驱动 - 直流电机 驱动电机传动比 Servo Motor 允许的修改和限制: 您不得更改轮距(车轮之间的距离) 车辆的任何部件尺寸不得超过 250 毫米/9.85 英寸(宽)x 400毫米/15.75英寸(长)x 305毫米/12英寸(高) 您可以在底盘上钻孔并安装辅助部件,假设它包含在上述尺寸范围内。 您可以改变伺服电机和相关连杆的方向。 您可以为汽车添加“外壳”,但在检查期间必须是可拆卸的。 您可以调整或移除弹簧、连杆和其他非必要部件。 您可以将胎面粘到轮辋上。 电气 电池(单独购买) 7.2V,<=3000mAh,可充电镍镉电池或镍氢电池  每次只能使用一 (1) 块电池为车辆及其连接硬件供电 您必须使用下面其中一个经过批准的电路板来控制您的汽车。 控制系统 FRDM系列电路板 FRDM-KL25Z包含在内,但不是强制使用。 TRK系列 基于 Kinetis 的 TWR - 系列 高压电机控制和接口 TFC-屏蔽 包含 TFC-SHIELD,但不是强制使用。 Landzo 技术的双电机控制板。 允许的修改和限制: 一个处理器 – 不允许使用辅助处理器或其他可编程设备。 汽车必须使用光学传感器来导航 DC-DC升压电路不得超过电池电压。 所有电容器的总容量不应超过 2000 uF。 传感器限值 您可以使用额外的相机。 最多十六 (16) 个传感器 传感器数量示例:  红外发射器/接收器对为 1 个传感器 CCD 传感器是 1 个传感器 提供的线扫描相机是 1 个传感器 两个后轮上的霍尔效应传感器是2个传感器 安装在一个车轮上的编码器是1个传感器 显示器(允许)不算作传感器 第四部分:车辆检验 比赛前,裁判将对所有参赛作品进行技术检查。这包括第 3 部分列出的车辆规格、尺寸和设备要求。 所有车辆必须在指定时间或之前进入检查区。 一旦进入检查区,您就不能触摸赛车,直到被叫去比赛! 如有违反,组委会可取消相应队伍的参赛资格。 第五节:计时赛流程 比赛顺序将通过随机抽签决定。 当您的团队被叫到时,您可以将您的车从检查区域移走。您将有两 (2) 分钟的时间来准备汽车。 已批准的调整 -您可以: 通过板载接口配置参数。(开关、旋钮等) 改变相机的角度 更换电池  不允许的调整 - 您不得: 重新编程你的处理器 通过有线或无线通信配置参数。 任何时候都只能有一名队员在赛道上。(不包括测试时间) 2 分钟时间到之前,您必须向裁判发出“准备就绪”的信号,然后才能启动车辆。 裁判确认“就绪”后,车辆应在30秒内驶离起跑区。 每个队伍有三次机会完成一圈。将记录第一个(不是最好的)完成时间。 示例: 尝试 1 – 车辆在弯道上行驶过快并偏离轨道。沒有記錄時間。 第二次尝试——车辆成功绕轨道行驶。时间被记录下来。 尝试 3 – 因第一次(尝试 2)已被记录,因此被判失败。 每次尝试后,您有两分钟的时间对车辆进行批准(见上文)的调整。 尝试结束后,车队应将车辆送回检查区。 赛事显示屏将在每场团体赛结束后公布成绩。 第六部分:比赛日程安排 练习时间 - 在决赛之前,将提供测试赛道。此时可以进行最终校准。这将通过团队时段和/或“空闲时间”来组织。 2.将练习跑道重新配置为最终跑道。 车辆检验(参见第 4 部分) 计时赛 颁奖典礼 第 7 部分:活动人员 组委会——由资深评委和飞思卡尔活动组织者组成的委员会。负责协调活动当天的活动,并调解和解决任何争议。 裁判- 负责赛道活动。包括赛道管理,例如车辆启动和停止,以及计时和记分。裁判员由教职员工、学生和/或飞思卡尔及行业员工组成。 评委——负责解释并强制执行比赛规则。评委由飞思卡尔员工和行业赞助商成员组成。 赛事人员不得协助任何特定队伍。沟通应向所有队伍公开,不得泄露任何可能损害比赛公平性的信息。 第 8 节:犯规、失败和取消资格 本规则由飞思卡尔和活动组委会负责解释。 犯规,是一种轻微犯规,会导致罚时。 失败,则不记录当前尝试时间。允许后续尝试。 取消资格是一种严重违规行为,会导致所有时间都不被记录。 裁判将判定赛车是否冲出赛道并判罚时间。 下列任何一种情况都将被视为犯规,并会导致加时处罚: 比赛开始后,赛车未能在 30 秒内离开起跑区 [+1 秒]。 赛车越过终点线后未能在 2 米/6 英尺处停下或离开赛道 [+1 秒]。 下列任何一种情况都将被视为失败并且不会给予时间: 三个或更多车轮离开赛道表面。 赛车队未能在规定的两 (2) 分钟内做好准备。 选手在技术检查后未经裁判同意触碰赛车。 赛车离开起跑区后120秒内未能完成比赛。 在开始和结束之间的任何时间触摸汽车。 “开始”——一旦车辆越过起跑线。 “完成”——一旦车辆越过终点线。 有下列情况之一者,视为取消资格:   任何可能影响或阻碍车辆的赛道外设备或行为。 检查后随时 进行不允许的 修改。 比赛场地上有多名队员。 比赛期间有任何作弊行为。 未通过技术检验。 在切实可行的条件下,尽量保证公平、公正。争议将由飞思卡尔、组委会成员和评委投票解决。 第 9 节:计时/计分 将使用电子门和/或手持计时器来记录时间。 当赛车的第一部分冲出起跑线/终点线时,时间开始和结束。 犯规将导致赛车的单圈时间被加长。 取消资格和失败将导致没有分数。 第十节 赛道参数 在决赛前一天,将提供一条采用与最终赛道相同材料制成的测试赛道,用于校准和设计修改。 直到比赛当天,参赛者才会知道最终赛道的实际布局。 赛道宽度不得小于 600 毫米/23.65 英寸。 材料和尺寸规格可以在社区中找到。 赛道表面为哑光白色,赛道每条边缘都有一条连续的黑线(25 毫米/1 英寸宽)。 赛道可以90°交叉角相交。 赛道可以有上坡、下坡和隧道。 如有必要,飞思卡尔可能会更改这些规则和条件。飞思卡尔保留随时自行取消、暂停和/或修改飞思卡尔杯比赛的权利。这些官方规则是用英语制定的。如果这些官方规则以任何其他语言提供且文本存在冲突,则以英语文本为准。 Freescale 和 Freescale 徽标是飞思卡尔半导体公司在美国和其他国家的商标或注册商标。所有其他产品或服务名称均为其各自所有者的财产。©飞思卡尔半导体公司,2014 年 飞思卡尔杯内容 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 由于赛道的布局事先并不清楚,所以我无法透露全球总决赛期间是否会有隧道。确保您的车辆符合规则允许的尺寸(高度、宽度和长度),以便您能够顺利进入隧道(如果有)。 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi FlavioStiffan 今年的全球大赛会有隧道吗? 根据2014 年马来西亚飞思卡尔杯比赛规则,隧道也不会被纳入全球比赛项目。谢谢。 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,做信号调节是可以的。只要您没有其他 MCU 部件并且您通过授权板控制伺服器和电机就可以了。请确保您使用 BOM(物料清单)和示意图记录您的额外开发,以防技术检查期间出现任何问题。 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 好的,谢谢您的回答,关于模拟放大器,它将用于调节来自传感器或摄像机的信号,我提到的模拟比较器将用于相同的目的。例如,我们有一个红外传感器,其输出电压为 0 至 250 mV,我们想将信号放大到 3.3V 左右,或者希望比较器仅检查传感器是否在白色区域或黑线...诸如此类。 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好JoseManuelSandovalChavez我认为规则对可以使用的内容已经说得很清楚了。对于电路的 MCU 和电机控制部分,只允许使用经批准的电路板。关于小型模拟放大器,它与什么相关?它的功能是什么? 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, FlavioStiffan,所以只是为了确保这意味着在比赛中我们不能使用我们自己用模拟元件构建的电机控制板和 FRDM 板,所以为了控制直流电机,我们只能使用提到的两块板(TFC-SHIELD 和 Landzo 技术的双电机控制板)对吗? 此外我还有一个问题,我们可以使用自己构建的小型模拟电路吗?例如,用运算放大器构建的模拟放大器或用运算放大器构建的模拟比较器 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,Jose Manuel,对于全球飞思卡尔杯挑战赛,我们要求学生只使用经批准的电路板。您无法开发自己的定制板。这是为了公平起见,也为了避免团队在技术检查时遇到困难,因为团队的定制板被“隐藏”或无法访问以验证板子是否符合规则(例如:没有第二个处理组件或任何其他受限制的组件)。这些规则每年都会进行审查,因此请继续关注 2015 赛季的任何变化。 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,已停用的用户,我有一个问题,对于库存联盟,当它提到“批准的组件”时,具体是什么意思?这是否意味着在比赛中我们只能使用“机械”和“电气”部分列出的组件?例如,对于“高压电机控制和接口”,是否意味着我们只能使用上述两个板中的一个(Landzo 技术的 TFC-SHIELD 和双电机控制板)或者我们可以为电机控制阶段构建自己的板? 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 已停用用户 约翰,看看这些问题。您是否有 Landzo 双电机控制板的链接?您能确认所用控制板的限制吗? 谢谢! 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,我对这些规则有一些疑问。 关于第 3 节的电气限制“您必须使用下面其中一个经批准的电路板来控制您的汽车。”。 问题 1:规则是否说我们不能使用自制的最小系统板(使用 kinetis MCU,链接)或一些自制的高压控制板(链接)? --- 关于“一个处理器 - 不允许使用辅助处理器或其他可编程设备”这一行。 Q2:一些传感器,如相机,具有内置电路,可以在硬件中进行二值化(链接),或者带有 fifo 芯片的相机(链接)。 规则中提到的“其他可编程设备”是否包括这些相机? 或者“可编程设备”仅仅指 MCU 或 FPGA 设备? ---- 关于“Landzo 技术的双电机控制板”。 Q3:那是这个吗? 非常感谢! 回复:2014年飞思卡尔杯全球规则 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,约翰,下一届全球比赛什么时候举办?
記事全体を表示
eIQ Neutron NPU 实验室指南 这些实验室指南提供了详细的分步说明,介绍了如何制作量化的 TensorFlow Lite 模型,以及如何使用eIQ 工具包中的中子转换工具,将模型转换为可在 MCX N 设备上的 eIQ 中子核处理器上运行的格式。《eIQ Neutron NPU for MCUs 实验室指南——第 1 部分——Mobilenet》文档重点介绍了如何使用 eIQ Toolkit GUI 方法转换模型,随后将转换后的模型导入 eIQ MCUXpresso SDK 示例中。建议您首先完成这个实验。根据 MCUXpresso SDK 的下载方式,存在两个版本:一个版本可从MCUXpresso SDK Builder 网站下载为 zip 文件,另一个版本可从NXP GitHub 仓库下载。 《eIQ Neutron NPU for MCUs 实验室指南 - 第 2 部分 - 人脸检测.pdf》文档重点介绍了如何使用 eIQ 工具包的命令行工具将模型转换为 eIQ Neutron NPU 格式,并将转换后的模型集成到 Face Detect demo 中,该演示可在 Application Code Hub 中找到。这两个实验室均设计为在 FRDM-MCXN947 上运行,但相同的概念也适用于其他 MCX N 系列开发板,以及搭载 eIQ Neutron 神经处理单元的其他设备,如 i.MX RT700。另外,请务必查看入门社区帖子,以获取有关 eIQ Neutron 神经处理单元的更多详细信息。 ---更新于 2025 年 4 月,适用于 eIQ Toolkit 1.15 MCXN NPU|ML
記事全体を表示
LS1088A DDRサイズ Hello, LS1088aプラットフォームでDDR4サイズの問題が発生しています。ボードには4GBのDDR4があります。起動時に、ボードに4GBのDDR4があることが確認されます。しかし、freeコマンドでカーネルを確認すると、RAMが2GBであることを示しています。U-Boot 構成から "mcmemsize" 変数を削除しました。 u-bootとカーネルでDDRサイズが一致しない理由がわかりますか? 添付の写真で違いがわかります。 Re:LS1088A DDRサイズ はい、そうなるでしょう。 Re:LS1088A DDRサイズ 返信ありがとうございます。 「mcmemsize」を削除すると、ネットワークのパフォーマンスが低下しますか? Re:LS1088A DDRサイズ 紛失したDDRは2つの部分に分けることができます。 1) NXP専用ソフトウェア、ファームウェアコンポーネントで使用されるDDR 2) カーネルのさまざまなセグメントで使用される DDR。   最初の部分では、 1) u-boot は使用されるまでメモリを使用しますが、カーネルが起動すると、u-boot はメモリからスワップアウトされます。 2) TF-Aは66MBを使用 3) MC は 512M から 2G までの任意の場所で使用できます (u-boot コマンドの引数 'mcmemsize' に依存します)。パラメーター mcmemsize は、管理複合システムによって使用されるシステム DDR の量を定義します。この変数が定義されていない場合、コンパイル時の値 0x70000000 または 1.75GB がデフォルトになります。通常、デフォルトは許容されるため、ユーザーはこの変数を設定する必要はありません。   TF-A+MCは約1.8G   カーネル予約=(18620Kカーネルコード、2476K rwdata、8844K rodata、5888K init、993K bss、406712K予約済み、327680K cma予約済み) = 771213K = 0.7G   /proc/meminfo の MemTotal は kB 14232028で、失われたメモリは約 16-13.6=2.4G(TF-A+MC+カーネル) です予約済み)   root@TinyLinux:~# cat /proc/meminfo MemTotal:       14232028 kB MemFree:        13596760 kB Mem利用可能: 13478276 kB
記事全体を表示
EIQ 時系列生成モデルは、PowerQuad DSP または Neutron N1-16 NPU を使用して高速化されます。 質問: PowerQuad DSP または Neutron N1-16 NPU を使用して EIQ 時系列生成モデルを高速化するにはどうすればよいですか? 図に示すように、別のライブラリ ファイルを追加する必要がありますか、それとも生成されたモデルの静的ライブラリにはすでに PowerQuad DSP または Neutron N1-16 NPU アクセラレーションが含まれていますか? 想定される回答:PowerQuad DSPまたはNeutron N1-16 NPUアクセラレーションを使用したドキュメントまたはプロジェクトをご提供ください。TSSで更新可能な関連プロジェクトはありますか? マクネン NPU|ML Re: eiq time series 生成模型使用PowerQuad DSP or Neutron N1-16 NPU加速 こんにちは@xiaobai_226 アクセラレータのサポート。  PowerQuad : NXP ハードウェア IP は、FFT 計算を高速化するのに役立ちます。選択したターゲットにこのハードウェア モジュールが含まれている場合は、デフォルトで表示され、有効になります。 Neutron NPU : NXP ハードウェア IP はディープラーニング モデルの予測を高速化するのに役立ちます。これは、選択したデバイスにこのハードウェア モジュールが含まれている場合にサポートされます。 BR ハリー Re: eiq time series 生成模型使用PowerQuad DSP or Neutron N1-16 NPU加速 こんにちは、ハリー TSS によって生成されたライブラリ ファイルには、すでに加速プロセッシングユニットが組み込まれているということをおっしゃっているのでしょうか?.lib 以降TSSによって生成されたファイルには、プロセッシングユニットが含まれているかどうかが明示的に示されておらず、SDKの例とTensorFlow for NPUの両方でNPUは.aの形式で提供されることを考えると、ファイルでは、TSS で生成されたファイルに加速ユニットが含まれているかどうかは不明のままです。テストに使用する評価ボードは MXCN947EVK です。
記事全体を表示
使用直接内存寻址进行 CRC 评估 大家好 我使用的是 S32K358 MCU、MBD Toolbox v1.6.0 和 Matlab R2024a。 我知道工具箱不支持 Crc 模块,所以我配置了 .mex然后,我编写了一个 Matlab 函数,以便作为自定义代码手动调用"Crc_SetChannelCalculate" 函数。 这样做效果很好,我可以正确评估数组等数据流的 CRC。 现在我想做的是,直接使用内存地址作为数据输入,对内存区域进行 CRC 评估。如果我使用 S32DS IDE(在 Matlab 之外)手动编写代码"" ,代码看起来像这样: //--- 代码开始 uint32 CrcResult; uint8 *data; data = (uint8 *)0x40A1F0; // 为开始计算而选择的任意地址 CrcResult = Crc_SetChannelCalculate(CRC_LOGIC_CHANNEL_2, data, 16, 0, TRUE); //用这种方式我计算 16 字节的 CRC,起始值 = 0,直接从地址 0x40a1f0 开始在闪存中读取 //--- 当然,在此之前,我用适合我的应用的属性初始化了逻辑通道 CRC_LOGIC_CHANNEL_2。 这段代码运行良好,但我无法在 Matlab 上已翻译 " 它,因为我没有找到合适的方法来进行直接内存寻址(而且,如果我没错的话,Matlab 不支持这种可能性)。" 请问谁有办法解决这个问题? 感谢您的帮助和支持。 丹尼尔
記事全体を表示
フリートスK5ステータスに関する質問 こんにちはチーム フリートスのK5ステータスについてお聞きしてもよろしいでしょうか? 私はIDEs(DS3.6.4)にfreertosを追加しました。RTD0.8.0 CD3(K5用) しかし、私の側では機能していないようです。 以下のようにデモを呼び出しました。 ただし、以下のエラーは修正されませんでした... 「アップデート」後、freertos のフォルダが見つかりませんでした。 K5フリートステータスについてお尋ねしてもよろしいでしょうか? 私のアプローチが間違っている場合は、修正方法を教えてください。 ありがとう。 RTOS S32_CONFIG_TOOL 出典: 直接お客様 出典: NXP社内 Re: Question about freertos K5 status はい、debug_flash はコードが MRAM からロードされ実行されることを意味します。すべて正常に動作するはずですが、問題が発生した場合はお知らせください。 Re: Question about freertos K5 status はい、debug_flash はデフォルトで有効になっています。つまり、コードは MRAM からロードされ、実行されます。 すべて正常に動作するはずですが、何か問題が発生した場合はお知らせください。 Re: Question about freertos K5 status こんにちは@Nguyen_Duy_Dat ご返信ありがとうございます。 うまく動作しているようです。 そして、debug_flash と Clock 構成が正常に動作していることを確認しました。 これは正しいですか? ありがとう。 Re: Question about freertos K5 status こんにちは@Luke_Chun 、 最新の freeRTOS 0.8.0 バージョンを使用しているようですが、これは RTD 0.8.0 CD3 とは 互換性がありません 。代わりに RTD 0.8.0 (2025 年 12 月リリース) をインストールしてください。 よろしくお願いいたします。 ダット
記事全体を表示