Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
能否使用 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
查看全文
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]组。该小组负责处理与许可证相关的问题
查看全文
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
查看全文
[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(查看链接了解更多)
查看全文
IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 背景: 当前根据补丁<8MP_LVDS_patch>配置uboot的lvds显示,使用1280x800的单通道屏显示是正常的;基于这个基础需要实现1920x1080的双通道显示,已进行如下配置: 1、配置lvds的屏参: timing_lvds: timing_lvds { clock-frequency = <141140000>; hactive = <1920>; vactive = <1080>; hfront-porch = <94>; hback-porch = <92>; hsync-len = <2>; vback-porch = <18>; vfront-porch = <16>; vsync-len = <2>; hsync-active = <1>; vsync-active = <1>; de-active = <1>; }; 2、写入ldb的寄存器配置: //CH1 #define CH1_DATA_WIDTH_24BIT (1 << 7) #define CH1_BIT_MAPPING_JEIDA (1 << 😎 #define CH1_BIT_MAPPING_SPWG (0 << 😎 media_blk_write(priv, LDB_CTRL, LDB_CH0_MODE_EN_TO_DI0 | CH0_DATA_WIDTH_24BIT | CH0_BIT_MAPPING_JEIDA | LDB_CH1_MODE_EN_TO_DI0 | CH1_DATA_WIDTH_24BIT | CH1_BIT_MAPPING_JEIDA); 3、根据公式,计算出PLL值: PLL_1443X_RATE(987980000U, 823, 5, 2, 20971), 显示有logo画面,但屏幕显示存在彩色竖线,这会是什么情况,请帮忙排查下,谢谢;期待您的回复! i.MX 8M | i.MX 8M Mini | i.MX 8M Nano i.MX8ULP Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  由于内核和uboot里的bmp显示不是相同的功能,所以目前我怀疑是bmp显示相关的函数有问题,请尝试替换一下video_bmp_display函数。 int video_bmp_display(struct udevice *dev, ulong bmp_image, int x, int y, bool align) { struct video_priv *priv = dev_get_uclass_priv(dev); int i, j; uchar *start, *fb; struct bmp_image *bmp = map_sysmem(bmp_image, 0); uchar *bmap; unsigned long width, height; unsigned long pwidth = priv->xsize; unsigned colours, bpix, bmp_bpix; enum video_format eformat; struct bmp_color_table_entry *palette; int hdr_size; int ret; if (!bmp || !(bmp->header.signature[0] == 'B' && bmp->header.signature[1] == 'M')) { printf("Error: no valid bmp image at %lx\n", bmp_image); return -EINVAL; } video_bmp_get_info(bmp, &width, &height, &bmp_bpix); hdr_size = get_unaligned_le16(&bmp->header.size); debug("hdr_size=%d, bmp_bpix=%d\n", hdr_size, bmp_bpix); palette = (void *)bmp + 14 + hdr_size; colours = 1 << bmp_bpix; bpix = VNBITS(priv->bpix); eformat = priv->format; if (bpix != 1 && bpix != 8 && bpix != 16 && bpix != 32) { printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n", bpix, bmp_bpix); return -EINVAL; } /* * We support displaying 8bpp and 24bpp BMPs on 16bpp LCDs * and displaying 24bpp BMPs on 32bpp LCDs */ if (bpix != bmp_bpix && !(bmp_bpix == 8 && (bpix == 16 || bpix == 24 || bpix == 32)) && !(bmp_bpix == 24 && (bpix == 16 || bpix == 32))) { printf("Error: %d bit/pixel mode, but BMP has %d bit/pixel\n", bpix, colours); return -EPERM; } debug("Display-bmp: %d x %d with %d colours, display %d\n", (int)width, (int)height, (int)colours, 1 << bpix); unsigned long bmp_stride_bytes = ((width * bmp_bpix + 31) / 32) * 4; unsigned long dst_bytes_per_pixel = bpix / 8; if (!dst_bytes_per_pixel) dst_bytes_per_pixel = 1; if (align) { video_splash_align_axis(&x, priv->xsize, width); video_splash_align_axis(&y, priv->ysize, height); } if ((x + width) > pwidth) width = pwidth - x; if ((y + height) > priv->ysize) height = priv->ysize - y; bmap = (uchar *)bmp + get_unaligned_le32(&bmp->header.data_offset); start = (uchar *)(priv->fb + (y + height) * priv->line_length + x * (bpix / 8)); /* Move back to the final line to be drawn (BMP 自下而上存储) */ fb = start - priv->line_length; switch (bmp_bpix) { case 1: case 8: { unsigned long src_bpp_bytes = 1; unsigned long dst_line_bytes = width * (bpix / 8); if (!dst_line_bytes) dst_line_bytes = width; for (i = 0; i < height; ++i) { schedule(); for (j = 0; j < width; j++) { write_pix8(fb, bpix, eformat, palette, bmap); bmap++; fb += (bpix / 8) ? (bpix / 8) : 1; } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= dst_line_bytes + priv->line_length; } break; } case 16: if (CONFIG_IS_ENABLED(BMP_16BPP)) { unsigned long src_bpp_bytes = 2; for (i = 0; i < height; ++i) { schedule(); for (j = 0; j < width; j++) { *fb++ = *bmap++; *fb++ = *bmap++; } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= width * 2 + priv->line_length; } } break; case 24: if (CONFIG_IS_ENABLED(BMP_24BPP)) { unsigned long src_bpp_bytes = 3; for (i = 0; i < height; ++i) { for (j = 0; j < width; j++) { if (bpix == 16) { /* 16bit 565RGB format */ *(u16 *)fb = ((bmap[2] >> 3) << 11) | ((bmap[1] >> 2) << 5) | (bmap[0] >> 3); bmap += 3; fb += 2; } else if (eformat == VIDEO_X2R10G10B10) { u32 pix; pix = (u32)(*bmap++) << 2U; pix |= (u32)(*bmap++) << 12U; pix |= (u32)(*bmap++) << 22U; *fb++ = pix & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = pix >> 24; } else if (eformat == VIDEO_RGBA8888) { u32 pix; pix = (u32)(*bmap++) << 8U; /* blue */ pix |= (u32)(*bmap++) << 16U; /* green */ pix |= (u32)(*bmap++) << 24U; /* red */ *fb++ = (pix >> 24) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = 0xff; } else { *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = 0; } } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= priv->line_length + width * (bpix / 8); } } break; case 32: if (CONFIG_IS_ENABLED(BMP_32BPP)) { unsigned long src_bpp_bytes = 4; for (i = 0; i < height; ++i) { for (j = 0; j < width; j++) { if (eformat == VIDEO_X2R10G10B10) { u32 pix; pix = (u32)(*bmap++) << 2U; pix |= (u32)(*bmap++) << 12U; pix |= (u32)(*bmap++) << 22U; pix |= ((u32)(*bmap++) >> 6) << 30U; *fb++ = pix & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = pix >> 24; } else if (eformat == VIDEO_RGBA8888) { u32 pix; pix = (u32)(*bmap++) << 8U; /* blue */ pix |= (u32)(*bmap++) << 16U; /* green */ pix |= (u32)(*bmap++) << 24U; /* red */ bmap++; /* alpha (忽略) */ *fb++ = (pix >> 24) & 0xff; *fb++ = (pix >> 16) & 0xff; *fb++ = (pix >> 8) & 0xff; *fb++ = 0xff; /* opacity */ } else { *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; *fb++ = *bmap++; } } bmap += bmp_stride_bytes - width * src_bpp_bytes; fb -= priv->line_length + width * (bpix / 8); } } break; default: break; }; /* Find the position of the top left of the image in the framebuffer */ fb = (uchar *)(priv->fb + y * priv->line_length + x * (bpix / 8)); ret = video_sync_copy(dev, start, fb); if (ret) return log_ret(ret); return video_sync(dev, false); } Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi,@Zhiming        早上好,由于手上事情较多,回复的比较晚,很抱歉!        我试了gateworks.bmp,显示效果不太好;如下列logo.png所示;查阅uboot驱动没有VIDEO_FONT_16X32这个配置选项;我做了一个验证,用1920x1080的logo图,做成1280x800的logo,分别放在uboot和kernel上面,uboot存在切斜角度的锯齿情况;而kernel显示是完全正常的;感谢您对问题的跟进! Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  这个问题还是和素材分辨率有关,拉高素材分辨率,锯齿感会少很多。附件里得logo分辨是296x72,但是实际上在屏幕得显示范围,肯定不是296x72个像素点,所以会被拉伸。你可以试试同级目录下的tools/logos/gateworks.bmp(600x93)文件,看看横向锯齿感会不会少很多。字体的话,可以试试打开VIDEO_FONT_16X32这个选项,更适用于高分辨率屏幕。 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  你目前使用的logo图(上面右边图片里的)能传一份上来吗?默认的NXP logo也是双通道1080p的情况下显示的吗? Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 你好,感谢回复!情况如下: 1、默认的NXP logo显示也有锯齿效果,如附件显示 2、有更换1920x1080的logo图,在uboot下倾斜部分存在锯齿,其余部分正常显示;在kernel下文件过大,不能显示 3、转换为1280x800的logo图,在uboot下效果依旧,kernel下显示正常 4、换成1280x800的单通道屏,uboot和kernel显示都正常 单通道显示是正常的,但双通道更换logo图,uboot显示会有异常 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  你在替换logo之前,默认的logo显示以及字体有问题吗?我仔细看了上面的图,看上去像是素材本身分辨率和屏幕不匹配,不知道你那里有没有分辨率更高的图片显示,测试看看高分辨率是什么情况? 另外,内核阶段如果显示相同的logo素材也是这样吗? Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 早上好,zhiming 按照内核的 lvds寄存器写入;我在uboot中也进行了配置;但效果没有改善:logo倾斜部分还是存在锯齿;请问还有其余操作可以优化吗;期待你的回复!? Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  对应内核的这一段配置,uboot补丁里没有这段配置,因为当时只测试了单通道。你需要把值写入uboot补丁里的lvds_ctrl寄存器。 https://github.com/nxp-imx/linux-imx/blob/lf-6.12.y/drivers/phy/freescale/phy-fsl-imx8mp-lvds.c#L113 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 感谢跟进,logo图现象如下所示:涉及到字体和图案的倾斜部分,会存在锯齿现象 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 你好,uboot没有找到对应phy文件:"fsl,imx8mp-lvds-phy",应该在哪个地方写入寄存器呢呢;<8MP_LVDS_patch>补丁也没有这个驱动文件 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  你可以参考linux lvds phy驱动里的设置,设置LVDS_CTRL的这三位,驱动能力应该会好很多。 phy_write(phy, priv->devdata->lvds_ctrl, CC_ADJ(0x2) | PRE_EMPH_EN | PRE_EMPH_ADJ(0x3)); Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 感谢回复!logo图像也有部分锯齿现象,换成1280x800单通道屏,logo显示是正常的;我调整各种panel时钟和PLL值,都不能改善;请问有什么建议吗 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, LOGO部分有异常吗?如果是字的话,应该是和lvds控制器无关,和uboot里的显示字体优化有关。 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 你好,lvds屏显示logo还有个现象:logo部分字母存在锯齿现象,应该怎么优化呢;期待您的回复 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 感谢指导,是这个问题点 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi, 代码里有这一行,val |= CH_EN,这里只enable了channel0,BIT0,同时需要设置BIT2。 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 你好,感谢回复;将LDB_CH1_MODE_EN_TO_DI0改动为LDB_CH1_MODE_EN_TO_DI1,显示效果依旧 Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 Hi @DADAXIN  你试试把LDB_CH1_MODE_EN_TO_DI0 改成LDB_CH1_MODE_EN_TO_DI1 Best Regards, Zhiming Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 嗨,志明 感谢您的回复以及对问题的跟进,最近工作比较繁忙,回复比较晚请见谅;我进行了替换操作 1、当前5.10.72对应的uboot2021版本,替换后会报没有video_format定义;而在6.6.52对应的uboot2024版本是有的,我同步了这部分配置: +++ b/include/video.h @@ -56,6 +56,15 @@ enum video_log2_bpp { VIDEO_BPP32, }; + +enum video_format { + VIDEO_UNKNOWN, + VIDEO_RGBA8888, + VIDEO_X8B8G8R8, + VIDEO_X8R8G8B8, + VIDEO_X2R10G10B10, +}; + 2、进一步编译,报这一部分的错,不清楚怎么解决;希望能得到你的进一步回复,感谢!!... Re: IMX8MP uboot下配置双通道lvds,显示存在彩色竖线 HI @DADAXIN @Zhiming_Liu       您好,我与你的现象一致(锯齿),请问下,修改了这个函数(video_bmp_display)以后,显示乱码了,请问您还修改了哪里吗
查看全文
[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后,系统计数器被禁用,计数值重置为零并选择基本频率。 一旦启用计数器,它将在所选时钟的每个上升沿增加相应的值。 顺祝商祺!
查看全文
mcxn947用のflexio qspi こんにちは、nxpさん nor flash を使用するには、flexio を使用して qspi インターフェースをエミュレートする必要があります。ISP モードの動作と同様にフラッシュを直接プログラムする方法があるかどうかを知りたいです。 リファレンス・マニュアルを簡単に確認しましたが、MCX では flexio 上の qspi との直接のやり取りはできず、この機能をサポートできるのは flexspi のみであるようです。 この機能を可能にする、nxp が提供する既存のツールはありますか? flexio を使用して qspi をエミュレートすることに関しては、AN14175 も確認しました。 割り込みモード flexio qspi と edma モード flexio qspi の違いは何ですか。それぞれのパフォーマンスと各モードのCASEは何ですか。 ブートROM|ブート|フラッシュ 通信と制御(I3C | I2C | SPI | FlexCAN | イーサネット | FlexIO) コアとメモリ MCX N Re: flexio qspi for mcxn947 こんにちは@TomC818 ISP が FlexSPI で行うように、FlexIO-QSPI 経由で NOR フラッシュをプログラムできますか? いいえ、直接ではありません。ISP は、FlexIO エミュレートされた QSPI 経由ではなく、FlexSPI 経由のみで外部フラッシュ プログラミングをサポートします。 MCX の ROM ブートローダー (ISP) は、FlexIO をプログラム可能なインターフェースとして認識またはサポートしません。   BR ハリー
查看全文
[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 我正在查看这个主题,很快就会提供反馈。
查看全文
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 跟踪并设置正确的时钟频率,这将允许您捕获跟踪输出。
查看全文
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 トレースを有効にし、正しいクロック周波数を設定して、トレース出力をキャプチャできるようにします。
查看全文
S32K322でCRPを有効にする(ブートローダー+アプリ) こんにちは、NXPサポートチームの皆様、 ターゲット: S32K322 (2MB PFlash、295KB RAM) CRP (コード読み取り保護のみ) を有効にする方法について助けが必要です。 参考文書。 実行時に CRP を無効/有効にするにはどうすればよいですか? よろしくお願いします。 Re: Enable CRP in S32K322 (bootloader + app ) こんにちは、ダニエル。 あなたが提供してくれたソースリンクには、必要なコンテンツが含まれているようです。 ありがとう。試してみたら更新します。 Re: Enable CRP in S32K322 (bootloader + app ) こんにちは@AbdNxpさん、 いいえ、それは違います。 このThreadを参照してください: https://community.nxp.com/t5/S32K/S32K344-アプリケーションデバッグ認証モード/td-p/2014871 他のドキュメントへのリンクがあります。 BR、ダニエル Re: Enable CRP in S32K322 (bootloader + app ) こんにちは、ダニエル。 コード読み取り保護が必要です。J -linkを接続してコード フラッシュからコードを読み取ろうとすると、デバッガーはアプリケーションを読み取ることができません。 最初の返信で言及した解決策はこの要件を満たしますか? Re: Enable CRP in S32K322 (bootloader + app ) こんにちは@AbdNxpさん、 各アプリケーション コアには独自のメモリ保護ユニット (MPU) が搭載されており、コア レベルでのメモリ アクセス権限を制御できます。 システム レベルでは、メモリとペリフェラルのアクセス制御は、拡張リソース ドメイン コントローラ (XRDC) によって管理されます。 XRDC は、RTD MCAL パッケージで提供されるリソース マネジメント (RM) モジュールを使用して構成できます。 さらに、XRDC の構成方法と使用方法を示す RTD サンプル プロジェクトも用意されています。 BR、ダニエル
查看全文
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、 能否共享代码,以便我进行测试?
查看全文
交互式内核配置 评估板: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
查看全文
IMX8QM のセカンダリ ブート コンテナ セット IMX8QM でセカンダリ ブート コンテナー セットを使用しようとしています。ブート デバイス上のセカンダリ ブート コンテナー セットのオフセット ポジショニングを確認するにはどうすればよいでしょうか?ブートデバイスは eMMC です。また、起動中にセカンダリ ブート コンテナー セットを使用するにはどうすればよいですか?
查看全文
自定义 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 中共享完整的日志文件格式。 你在使用电路板支持包吗?什么版本?
查看全文
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
查看全文
nfclib 在 PN5190 上使用简化 api 读取标签 您好, 我正在从头开始为我们的设备开发新固件,所以我无法访问原始资源,目前我正在开发 PN5190 前端但我无法读取任何卡,到目前为止我已经将库移植到了 esp32 我可以检索芯片的版本并读取/写入任何寄存器所以通信看起来还可以,IRQ 似乎也能正常工作,我采取的步骤是: 1-init 简化 API(包括 SPI 总线、nfclib、OSAL(未使用操作系统)和通过 NFClib 配置引脚) 2-配置我要使用的技术,并调用简化的 api 演示 问题出现在我调用 dwStatus = phnfClib_Activate ( wT echnologyMask , & PeerInfo , N ULL )的时候;无论现场是否有兼容卡或者什么都没有,这个函数都会返回 PH_NFCLIB_STATUS_PEER_ACTIVATION_FAILED,但是我能检测到该字段正在生成(需要时可以关闭)。 我还测试了 LPCD 示例,我能够输入 SW LPCD 然后设备就会检测到卡的存在,看来我在读卡时错过了一些小步骤,谁能指出缺少了什么?(可能需要先校准或者需要更改某些寄存器 ) PN5190 预先致谢。 Re: nfclib reading a tag using simplified api on PN5190 嗨,爱德华多, 我终于找到了问题所在,它与 phDriver_Timer.c 中的定时器端口问题有关。在函数 phStatus_t phDriver_TimerStop(void)中要求停止单次定时器时,不知何故导致 nfclib 出现内部问题,但没有显示错误,现在读取正常。 Re: nfclib reading a tag using simplified api on PN5190 您好, 请看看 PN5190 NFC读取器库中的 nfcrdlib_SimplifiedAPI_ISO 示例项目,你可以将其用作实现的参考。该演示主要初始化 OSAL、配置 SPI 接口、初始化库并启动简化 API 演示线程,该线程首先将激活我的配置为 ISO,然后执行卡片激活 (phnfclib_Activate)。请使用此演示作为参考。 能否请您确认已根据AN11019《天线设计指南》为您的定制设计进行了适当的天线匹配和调谐? Eduardo。 Re: nfclib reading a tag using simplified api on PN5190 你好@EduardoZamora 我知道恩智浦只支持恩智浦生态系统,但我认为我的问题与库的使用有关,而不是移植平台。既然我可以与芯片通信,引脚可以配置,中断也可以工作,我想基本的端口已经完成了(我是否遗漏了什么?),我的问题与使用/配置库或芯片时遗漏的步骤有关。在 nfclib 提供的示例中,它似乎打算不经任何配置就直接运行。 我已经使用icode slix和mifare经典卡测试了该设备,两者的结果相同(无法激活卡),该设备使用了自定义 PCB,但是在早期开发期间使用了 PNEV5190BP 开发板来测试功能。事实上,该产品已投入生产,但我被要求在不使用旧固件的情况下,从头开始做一个新的更新,而原来的开发人员已经不在了。 关于LPCD演示示例,此功能旨在在由于存在卡(或对象)而修改字段时唤醒设备,但它不会尝试连接或读取卡(本来不打算这样做)。 先行致谢。 Re: nfclib reading a tag using simplified api on PN5190 你好@Saydev 希望你一切顺利。 请注意,我们的支持仅限于使用我们的 NFC读取器库和我们产品组合中支持的 MCU,将该库移植到第三方平台超出了我们的范围。 只是为了确认一下,你在使用我们的 PNEV5190BP 开发板,还是基于这个前端的定制开发板? 您要使用的是什么卡?当您提到 LPCD 示例能够检测到卡的存在时,这是否意味着您也可以通过该演示激活卡并与之通信? 要了解必须修改库的哪些部分才能与其他微控制器一起使用,我将向您推荐以下指南:NFC读取器库移植 FRDM_K64F、使用NFC读取器库和LPC55S69以及NFC读取器库移植到 i.MX RT1050-恩智浦社区,并确保在移植到设置中使用的微控制器时遵循类似的流程。 Eduardo。
查看全文
S32DSライセンスの更新 こんにちは。S32DS ライセンスの有効期限が切れそうですが、どうすれば更新CANますか?アクティベーションコード: 5361-52DF-167C-F6B9 Re: S32DS license update ピーター様 動作しています。ありがとうございます! よろしくお願いします、 イーウェイ Re: S32DS license update こんにちは、 ライセンスが延長されました。 よろしくお願いいたします。 ピーター Re: S32DS license update ピーター様 私の S32DS は「S32 Design Studio for Arm」で、バージョンは 2.2 です。 よろしくお願いします! イーウェイ Re: S32DS license update こんにちは、 ライセンスをリクエストする S32DS の正確なバージョンは何ですか? よろしくお願いいたします。 ピーター Re: S32DS license update こんにちは、 ライセンスの有効期限が切れています。更新してください。よろしくお願いします。 S32 Power Architecture 用 Design Studio v2.1 アクティベーションID: A4E2-CE89-8A37-4B5E 評価日数: 13 機能バージョン: 2.1 機能のステータス: 評価 (13 日間) 回复: S32DS license update こんにちは。私のS32DS v2.2のライセンスの有効期限が間もなく切れます。更新するにはどうすればよいでしょうか?アクティベーションコードは1F6D-7D64-6C38-A53Cです。 延期にご協力をお願いします。ありがとうございます。
查看全文
MKE02z 将 SWD_CLK 用作 GPIO 的问题 你好。 我用 MKE02Z32VLD2(44 引脚)定制了一个 PCB,需要使用 SWD_CLK 和 SWD_DIO 作为 GPIO,它们分别是 PTC4 和 PTA4。 MCU 在上电时停止。如果我不连接 PTC4,单片机就能正常工作,因此我怀疑问题出在上电过程中的瞬态电压上,它在 PTC4 上产生了噪声,然后才用下一段代码启用 PTA4 和 PTC4 作为 GPIO: SIM->SOPT&= ~(uint32_t)SIM_SOPT_SWDE_MASK; MCU 将此解释为连接调试器的尝试失败,因此 MCU 停止运行。 问题是我真的不知道如何解决。在此之前,我在 PTB4 引脚上遇到过类似问题,该引脚默认为 NMI,但我需要将其用作 GPIO。MCU 停止运行,因此我在下一个主题中找到了解决方案: https://community.nxp.com/t5/Kinetis-Microcontrollers/powering-up-issue-on-MKE02Z-GPIO/m-p/544613#M33261 但就我而言,我不知道如何解决这个问题。谁能帮帮我? 谢谢。 Kinetis E系列MCU Re: MKE02z issue using SWD_CLK as GPIO 很高兴听到这个消息。如有任何新问题,欢迎创建新帖。 Re: MKE02z issue using SWD_CLK as GPIO 嗨,塞莱斯特。 正如你所建议的那样,我添加了一个 33k 的下拉电阻,并在启动开始时把代码放到主电阻器里(我把它放在了主界面,而不是一开始的时候),代码在独立组网 (SA) 模式下运行良好。 我已经将 PORT_PUEL[PTCPE4]清零。 非常感谢! 巴勃罗
查看全文
在 Linux 系统下 i.MX8 上 RESET PCIe 设备的方法 我们的 i.MX8QM 使用 PCIe A 和 PCIe B 连接两个 PCIe 网卡。其中,PCIe A 上的网卡工作正常,而 PCIe B 上的 PCIe 网卡在驱动程序初始化过程中偶尔会出现链路训练失败。但是,它可以在每次设备重启后成功完成初始化。由于链路训练失败的可能性很低,我们打算在发生此类故障时RESET PCIe B。RESET完成后,我们将重新加载驱动程序以触发信号设备初始化和链接训练。请与我们联系具体的实现方法。谢谢! Linux Re: Methods to reset PCIe devices on i.MX8 under Linux system 试试这个命令 " echo 1 > /sys/总线/pci/rescan " i
查看全文