Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
What`s the meaning of the 'P1' in the type of "LPC1769FBD100/P1" Hi All, Recently, I received a pack of LPC1769 chips. The strange thing is that the number at the end of it is P1, which seems a little special, and I have not been able to find out the specific meaning and manual of LPC1769 as a P1. Therefore, I came here specially to consult everyone and hope to get your help. Thanks~~~ LPC1769FBD100  大家好, 最近我收到一包LPC1769芯片,奇怪的是它的末尾编号是P1,似乎有些特殊,而且未能查到有关于LPC1769这款P1的具体含义以及手册。 所以,特地前来,咨询大家,希望得到大家的帮助。谢谢大家。 LPC1769FBD100  Note: Attached image was removed. LPC17xx Re: What`s the meaning of the 'P1' in the type of "LPC1769FBD100/P1" Hi @Kuroky_Rasum, P1 is an internal identifier and does not impact the functionality of the MCU. You can find more details in the following community post. Difference between LPC1769FBD100, 551 / LPC1769FBD100K / LPC1769FBD100/P1K - NXP Community Best Regards, Pablo
記事全体を表示
LPC1768+SSP0+GPDMA 的一些问题 为什么在 SSP0 中打开 DMACR 并将一些数据传输到 BUF 之后,DMACR 被 RESET 为零,SSP0DR 一直在变化,但是 BUF 数据保持不变。在中断期间我还尝试重新打开 DMACR,但是 BUF 数据仍然没有变化。 以下是代码配置: #define SPI_RX_LEN 5386 extern U8 SPIRXBUF[SPI_RX_LEN]; void DMAInit_SPI_RX(U8 *destAddr, U32 len) { U32 part1 = (len> 4095) ?4095 : len; U32 part2 = (len> 4095) ?(len - 4095) : 0;// 拆分传输(单通道最大 4095字节)   lpc_sc->pconp |= (1<< 29); // 使能gpdma时钟 LPC_GPDMA->DMACConfig |= (1<< 0);//使能 GPDMA LPC_GPDMA->DMACIntTCClear |= 0x01; // 清除通道0传输完成标志 LPC_GPDMA->DMACIntErrClr |= 0x01; // 清除通道0错误标志   // 链表项1:传输part1字节 lli[0].srcAddr= (u32)&lpc_ssp0->dr; // 源:spi0 数据寄存器 lli[0].destAddr= (U32)destAddr; // 目的:缓冲区起始 lli[0].control= (part1& 0x0FFF) // 传输大小(字节数) | (0x00<< 12) // 源突发大小 | (0x00<< 15) // 目的发大小 | (0x00<< 18) //源数据宽度 | (0x00<< 21) //目的数据宽度 | (0x00<< 26) //源地址不变(外设寄存器)。 | (0x01<< 27) //目的地址自增 | (1u<< 31); // 使能中断   // 链表项2:传输part2字节(若需要) if (part2> 0) { lli[0].nextLLI = (U32)&lli[1]; // 指向链表项2 lli[1].srcAddr= (u32)&lpc_ssp0->dr; lli[1].destAddr= (U32)(destAddr + part1); // 缓冲区偏移 lli[1].control= (part2& 0x0FFF) // 传输大小(字节数) | (0x00<< 12) // 源突发大小 | (0x00<< 15) // 目的发大小 | (0x00<< 18) //源数据宽度 | (0x00<< 21) //目的数据宽度 | (0x00<< 26) //源地址不变(外设寄存器)。 | (0x01<< 27) //目的地址自增 | (1u<< 31); // 使能中断 lli[1].nextLLI= 0; // 结束链表 } else { lli[0].nextLLI = 0; }   // 配置 DMA 通道 0 LPC_GPDMACH0->DMACCConfig = 0; LPC_GPDMACH0->DMACCLLI = (U32)&lli[0]; // 链表起始地址 LPC_GPDMACH0->DMACCSrcAddr = lli[0].srcAddr;// 源地址(spi0 dr) LPC_GPDMACH0->DMACCDestAddr = lli[0].destAddr; // 目的地址 LPC_GPDMACH0->DMACCControl = lli[0].control; // 控制字 LPC_GPDMACH0->DMACCConfig = (0x01<< 15) //中断错误 | (0x01<< 14) //终端计数中断 | (0x02<< 11) // 传输类型:外设到内存 | (0x00<< 6) //目的外设:存储器 | (0x01<< 1) // 源外设:SSP0 RX(参考手册) | (0x01<< 0); // 通道使能   GPDMAEnabe(); }     void DMA_IRQHandler(void) { if(LPC_GPDMA->DMACIntTCStat& 0x01) // 通道0传输完成 { LPC_GPDMA->DMACIntTCClear = 0x01; // 清除标志 //SSPSlave_Init(); // run_lamp_glitter; // lpc_ssp0->dmacr |= (1<< 0); // LPC_GPDMACH0->DMACCConfig |= (0x01<< 0); LPC_GPDMA->DMACConfig |= (1<< 0);//使能 GPDMA 时间++; } if(LPC_GPDMA->DMACIntErrStat& 0x01) // 通道0错误 { LPC_GPDMA->DMACIntErrClr = 0x01; // 清除标志 } } void SSPSlave_Init(void) { lpc_sc->pconp |= (1<< 21); /* 打开 ssp 电源 */ /***************************************************************** * 初始化 SSP 的通讯方式,设置数据长度为 8bit,帧格式为 SPI,SCK 为低有效、 * 数据在sck 的第二个时钟沿采样,设置位速率。 ******************************************************************/ LPC_SSP0->CR0 = (0x00)<< 😎 | /* 设置spi位速率*/ (0x01<< 7) | /* CPHA 时钟输出相位 */ (0x00<< 6) | /* CPOL 时钟输出极性 */ (0x00<< 4) | /* FRF 帧格式 00=SPI,01=SSI, */ /* 10=Microwire,11=保留 */ (0x07<< 0); /* DSS 数据长度,0000-0010=保留 */ /* 0011=4位,0111=8位,1111=16位*/ lpc_ssp0->cpsr = 2; /* 时钟分频寄存器*/   LPC_SSP0->CR1 = (0x00<< 3) | /* SOD 从机输出禁能,0=允许 */ (0x01<< 2) | /* MS 主从选择,1=从机 */ (0x01<< 1) | /* SSE SSP使能,1=使能 */ (0x00<< 0); /* LBM 回写模式 */   sysTimeDlay(5); lpc_ssp0->dmacr |= (1<< 0);   } LPC17xx Re: LPC1768+SSP0+GPDMA some problem 你好@Lee_Lee 我认为 DMA 正在 "读取空的 SSP FIFO",但由于访问宽度不正确,数据没有正确写入内存。 您目前的配置是 (0x00<< 18)// 源数据宽度(0x00<< 21)// 目的数据宽度 但在 LPC 中: SSP 的 DR 寄存器是一个 16 位寄存器 Harry_Zhang_0-1765963833177.png 即使使用 8 位 SPI 模式,对 SSP0->DR 的 DMA 访问仍必须是 16 位访问。 DMA 实际上没有将数据正确写入内存 结果是 BUF 保持不变。 因此,我认为您可以尝试将源代码和 des 宽度改为 16。 BR 哈利
記事全体を表示
What could be the reason for the ABIST2_EXT self-test failure of the S32K3X4EVB-T172? I am using the S32K3X4EVB-T172 for development. I tried using Sbc_fs26_PerformAbist2Check to check: SBC_FS26_MOR_VPRE = 0 SBC_FS26_MOR_VCORE = 1 SBC_FS26_MOR_LDO1 = 2 SBC_FS26_MOR_LDO2 = 3 SBC_FS26_MOR_TRK1 = 4 SBC_FS26_MOR_TRK2 = 5 SBC_FS26_MOR_VREF = 6 SBC_FS26_MOR_VEXT = 7 However, I found that only Sbc_fs26_PerformAbist2Check(SBC_FS26_MOR_VEXT) makes ABIST2_PASS of FS_DIAG_SAFETY1 show as 0 / ABIST2 Fail or not executed, but I don't know why? OTP.png OTP2.png OTP3.png Could the issue be due to an incompatible OTP configuration of the FS26 part number PFS2613AMDA2AD used in the S32K3X4EVB-T172, or is it a faulty FS26 IC? OTP4.png Re: What could be the reason for the ABIST2_EXT self-test failure of the S32K3X4EVB-T172? I confirmed on EVB that it's the OTP that's causing it, same as I said before. If the OTP turns off the VMON behind it, you don't need to configure the bit of the corresponding channel. Re: What could be the reason for the ABIST2_EXT self-test failure of the S32K3X4EVB-T172? Yes, when executing ABIST2 self-tests, only ABIST2_EXT fails and shows ABIST2_PASS = 0, which may be a failure or not executed, but I can't think of a reason, but all other ABIST2 self-tests work and show 1 for PASS = ABIST2_PASS.
記事全体を表示
HashDataDefSrv 返回参数无效 你好,@lukaszadrapa ,我正在使用 HseResponse = HashDataDefSrv(HSE_HASH_ALGO_SHA2_256,(uint32_t) sizeof(test)、test,&image_hash_length,image_hash,HSE_SGT_OPTION_NONE); 函数来计算存储为 const uint_8 [] 的图像的 HASH,但我得到的返回结果是 Parameter Invalid(参数无效)。于是我决定在一个更小的数组上测试哈希值,但也遇到了类似的问题。 请帮助解决这个问题! 此外,在使用 HSE 和 RTD 3.0.0 时,我还发现了一个小问题、即:- 当我在没有任何断点的情况下运行代码时,我的 HSE 应用程序接口总是响应 NOT_OK(not ok 意味着除了 HSE_OK 或 HSE_SUCCESS 之外的任何其他意思),但当我手动跳过这些应用程序接口时,我得到的是 HSE_SUCCESS Re: HashDataDefSrv returns Paramter Invalid 你好@lukaszadrapa 我试过你的解决方案(禁用 D_CACHE_ENABLE),但没有用。 而你却只字未提我的附加问题。 Re: HashDataDefSrv returns Paramter Invalid 你好@R_S002 第一步,您是否可以尝试禁用项目中的数据缓存?这是 HSE_SRV_RSP_INVALID_PARAM 错误的常见原因 。用于与 HSE 通信的所有数据对象必须强制使用非高速缓存内存。禁用数据缓存可以快速确认是否存在这种情况。 此致, Lukas Re: HashDataDefSrv returns Paramter Invalid 如果不是数据缓存造成的,我需要这两个问题的更多细节。 关于哈希服务,您能否在将其发送给 HSE 之前截取一张服务描述符的截图? 关于第二个问题,您能否检查一下 HSE 返回的错误代码是什么?如果步进代码时能正常工作,则可能是某种时间问题或一致性问题。在执行这些 HSE 服务时,您是否尝试过禁用中断? Re: HashDataDefSrv returns Paramter Invalid hi@lukaszadrapa 我一回到办公室就会提供服务描述符 第二个问题返回 HSE_SRV_RSP_NOT_SUPPORTED。您能更准确地说明"禁用中断" 吗? Re: HashDataDefSrv returns Paramter Invalid R_S002_0-1764847866495.png 你好@lukaszadrapa HASH 函数执行前的图像 Re: HashDataDefSrv returns Paramter Invalid 我在板上做了非常快的测试,我能看到同样的问题。我从未遇到过散列问题,让我检查一下是怎么回事。我今天没时间,下周再检查。 此致, Lukas Re: HashDataDefSrv returns Paramter Invalid 好吧,很可能是 pHashLength 导致的。该指针指向的变量必须初始化为哈希缓冲区的大小。不能为零。HSE 服务 API 参考手册说: " 输入/输出:指向存储以字节为单位的哈希长度的 uint32_t 位置的指针。 在调用此服务时,此参数应包含主机提供的缓冲区大小。 主机提供的缓冲区大小。请求完成后,应存储 返回值的实际长度。如果缓冲区 小于散列大小,散列将被截断" 因此,请检查该参数的内容。 Re: HashDataDefSrv returns Paramter Invalid 能否举例说明您是如何尝试并验证 HASH 函数的? Re: HashDataDefSrv returns Paramter Invalid 下面是我过去用过的一个简单例子: int main(void) { hseSrvResponse_t HseResponse; uint8_t hash_result[64] = {0U}; uint32_thash_length = 64U; /* 检查 Fw 安装状态*/ WaitForHSEFWInitToFinish(); /* 使用的测试向量:https://www.di-mgt.com.au/sha_testvectors.html*/ /* 输入信息:一百万 (1,000,000) 次重复字符"a" (0x61)。*/ /* SHA-512 */ /* 预期结果:*/ /* e718483d0ce76964 4e2e42c7bc7bc15b463 8e1f98b13b204428 5632a803afa973eb de0ff 244877e60a 4cb0432c577c31b eb009c5c2c249a2e 4edb2c49a2e 4ead0f2477e60a 4c0432c5c2c49a2e 4edb2c49a2e 4ead0f2477ea 60a 4c0432c5c2c49a2e 4ead9a2e 17ad8cc09b */ HseResponse = HSE_HashDataBlocking ( MU0, HSE_ACCESS_MODE_ONE_PASS, 0, HSE_HASH_ALGO_SHA2_512, 0x408000U、/* 使用附带的 cmm 脚本将 100 万个 "a "字符编程到此地址 */ 1000000, /* 数据长度 100 万 */ hash_result, & hash_length ); for (;;) { } } 要散列的数据是通过外部脚本编程到闪存中的。
記事全体を表示
S32K3 SAF - sCheck_ExecuteStartupTests 运行到 HardFault Execption 您好,技术支持、 客户分享了 一个问题,即在启动时调用 sCheck_ExecuteStartupTests(),之后在执行 ECC 测试时会跳转到硬故障异常。 您能帮忙检查一下这一点吗? MCU: S32K314 SAFETY_SW Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好@marcuslim, 对于每个 sCheck 测试,都必须遵循 sCheck UM 章节中描述的所有条件: L1 CACHE ECC 测试 在这种情况下,很可能是内存部分的位置和适当的 MPU 设置有误,这对正确执行该测试非常重要。 更多详情,请参阅 sCheck UM 章节: 内存分配(将内存分配到具有正确的可缓存或不可缓存 MPU 属性的部分至关重要) ,您还可以在 SAF 演示示例中探索链接器文件和 MPU 设置。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 Cusotmer 将恩智浦示例中的 sCheck_ExecuteRuntimeTests() 替换为 sCheck_ExecuteStartupTests(),结果遇到了类似的错误。 能否请您明确说明我可以在哪里检查? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim 不,你不能通过在专用的用于运行时测试的循环中替换 sCheck 启动测试来使用。 启动测试只应在应用程序启动过程开始时执行一次。 此外,SAF 演示示例不支持 K314,因此,如果您重复使用了某些链接器文件,它很可能不会遵循 K314 设备的内存映射,需要进行更新。 SAF 不容易内置,需要认真学习 sCheck 手册并了解软件功能安全概念。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户反馈: 不过,我们目前遇到了与 ECC 检查有关的问题。您可能已经注意到,恩智浦示例中也出现了类似的 ECC 检查问题。 内置SAF软件包非常具有挑战性,因此,我们将感谢恩智浦专家在这方面的支持。 您能否就我们需要遵循和验证的与链接器相关的具体要点或要求提出建议,以便正确内置 ECC 检查? 提前感谢您的帮助。 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好,Marcus, ,所有信息都应该从 sCheck UM 中清楚地了解到,至少我通常不会遇到这类问题,所以 SAF 团队认为 sCheck UM 在这方面是清楚的。 您能否询问客户 sCheck UM 到底有哪些不清楚的地方,以便我们改进? 谢谢, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户将 *(.ramcode_no_cacheable) 从 int_sram_no_cacheable 移至 int_sram,结果运行正常。 如有任何意见,请随时提出。 根据 表 55.sCheck 模块中的 MemMap 部分, 以下部分必须放在特定的闪存区域中: s32_saf_const_flash_0 → 代码闪存 0 s32_saf_const_flash_1 → 代码闪存 1 s32_saf_const_flash_2 → 代码闪存 2 s32_saf_const_flash_3 → 代码闪存 3 不过,在我的系统中,我使用的是 A/B 交换因此,在任何时候都只有 闪存 0 和 闪存 1 被应用程序激活/使用。 放置 s32_saf_const_flash_2 和 s32_saf_const_flash_3 和 32_saf_const_flash_3 可能会干扰未使用的闪存区域(例如,为其他闪存组或 OTA 更新预留的闪存区域)。 我的问题是 是否有办法配置 sCheck,使其只在 Flash 0 和 Flash 1 上执行测试? 或者 是否有安全的方法来测试所有四个闪存块(闪存 0-3),而不影响 A/B 交换使用的非活动库的内容? 的内容? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 除了上一篇文章中提出的问题外,客户还分享说,在执行sCheck_ExecuteStartupTests和sCheck_ExecuteRuntimeTests 之后,系统始终报告同一组与 ECC 相关的错误: scheck_err_dcache_ecc_cm7_0 scheck_err_icache_ecc_cm7_0 SCHECK_ERR_ITCM_M7_0_ECC SCHECK_ERR_DTCM_M7_0_ECC 在每次测试执行过程中,这些错误都会反复出现。 能否请您协助我们调查并确定这种行为的根本原因? 敬上, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 将 *(.ramcode_no_cacheable)从 int_sram_no_cacheable 移至 int_sram 起作用可能有点巧合。 我怀疑如果客户将 HFNMIENA 设置为 0,则在触发信号时可能会造成麻烦。 请检查一下 MPU_CTRL.HFNMIENA 的值是多少。 如果该值为零,则已针对即将发布的 1.0.6 版本进行了以下修复: [ASFT-19327] [sCheck] 不支持 Arm M7 HFNMIA - 恩智浦 JIRA sCheck 闪存测试不能仅缩减为 Flash_0 和 Flash_1,但已对即将发布的 1.0.6 版本进行了更改,无需将特定的闪存部分放入链接器文件中,而是使用配置的闪存地址,其中地址的内容不会被修改,这也可以解决 A/B 交换客户的问题。 https://jira.sw.nxp.com/browse/ASFT-19738 此致, 拉多斯拉夫 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好@marcuslim ,我认为有一个共同的根源。 内存部分需要根据可缓存/不可缓存 MPU 属性正确放置,上一篇文章中提到的 HFNMIENA 位也会造成问题。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户尝试重新定位 *(.ramcode_no_cacheable)。 到 int_sram_noo_cacheable 而不是 内存 并将 HFNMIENA = 0。 此外,还对 MPU 进行了适当配置,以允许从不可缓存 RAM 区域执行代码。 经过进一步调查,发现在 sCheck_Tcm_RunEccTest 中的函数 sCheck_Tcm_MemTestEccCorrError 和 sCheck_Tcm_MemTestUncorrError 函数将被执行。 这两个函数都调用 sCheck_ErrRead(pParams,&result)。 但是,当 sCheck_Tcm_MemTestEccCorrError 成功完成、 scheck_tcm_memtestuncorrerRror 在 调用 scheck_errRead(PParams,& 结果)(附图中的第 1 点)时会 触发 HardFaul t, 系统随后卡在 BusFault 处理程序 (所附图像中的第 2 点) 中。 能否请您帮助调查一下这一点? Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 对不起我错了,你的 SAF 版本中的正确设置应为 HFNMIENA = 1,以避免在异常中更改 MPU 设置,这可能会进一步导致缓存之后刷新一些变化。这就解释了为什么 TCM correctable 可以通过,而 Uncorrectable 不能通过,因为它使用异常来测试正确的反应。 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 客户反馈: >>>>>>>> 配置HFNMIENA = 1 后,我发现sCheck_ExecuteStartupTests()可以正常运行。此时,我不再观察到任何与 ECC 相关的错误。我将进行额外的压力测试,以进一步验证这种行为。 但是,当调用 sCheck_ExecuteRuntimeTests() 并随后调用 sCheck_Tcm_MemTestUncorrError() 时,系统会在设置 INVSTATE(无效状态)标志的情况下触发信号 UsageFault 异常。 请问sCheck_ExecuteStartupTests()和sCheck_ExecuteRuntimeTests()之间是否存在任何设计上的差异或特定的使用条件,会导致这种行为? 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 您好@marcuslim, 如果启用了 FPU,这可能表明存在参数问题,我们需要进一步调查。 您能否尝试禁用 FPU 并重新进行测试? 现在结果如何? 启用 FPU 后,能否在 Watch 窗口的异常跟踪中使用这些变量: sCheck_ErrRead_ExceptionContext.bAbortFlag sCheck_DetectedFaults[0] 并再次粘贴截图? FCCU NCF_2 通道的配置反应是什么? , Radoslav。 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 请在此提供所需的信息: 要点 1:禁用 FPU - 同样的错误。 要点 2:启用 FPU 第 3 点:FCCU NCF_2 反应 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 你好,马库斯、 最新截图显示,它产生的是内存管理故障,而不是使用故障(如原帖所示)。因此,我认为我们需要澄清我们面临的例外情况是什么。 请检查/共享 MPU 配置。 你能检查一下异常是否由"LDRD R0,R1,[R1]\n" 指令(来自 sCheck_Lib_ARMv7M.c 或其他指令)引起的吗? 亲切的问候, Radoslav Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨,拉多斯拉夫、 附上客户的 MPU 配置和链接器文件。他希望我们对其进行审查。 此致, 马库斯 Re: S32K3 SAF - sCheck_ExecuteStartupTests run to HardFault Execption 嗨 @marcuslim, 我看到他们重复使用了 RTD 示例 systemInit () 中的 MPU 配置。 请注意,这只是 RTD 的短截线,未经验证,即使对于某些 RTD 驱动程序来说也可能不够,更不用说 SAF 了。 同样,对于链接器文件,我可以看到来自RTD链接器文件的来源,以及额外的SAF和SCST内存部分。 关于 MPU 配置,我强烈建议使用 RTD Platform 插件配置 MPU。 在 SAF 演示示例中,我们还提供了 K344 的 MPU 配置示例(不是 K314,但只需修改 TCM 的正确内存大小)。 但它也只是 SAF Demo 设置的示例代码(短截线),未经过验证的交付内容。 按照人工智能的要求,他们的 MPU 配置应该代表这种设置: 地区 RBAR 地址 大小 类型/缓存政策 可共享 门禁系统 说明 0 0x00000000 覆盖整个地址空间(RASR = 0x1004003F ) 强烈订购,无缓存 是 无访问 背景区域阻挡一切 1 __INT_ITCM_START 来自链接器 正常,无缓存 无 RW/RW 用于 CM7 的 ITCM 2 __ROM_CODE_START 来自链接器 正常,WB/WA(内侧& 外侧) 无 RO/RO 主程序闪光 3 __ROM_DATA_START 来自链接器 正常,WB/WA 是 RO/RO 数据闪存 4 0x1B000000 8 KB ( 0x160B0019 ) 正常,WB/WA 是 RO/RO UTEST 地区 5 __INT_DTCM_START 来自链接器 正常,无缓存 无 RW/RW CM7 的 DTCM 6 __INT_SRAM_START 来自链接器的大小 ( __RAM_CACHEABLE_SIZE ) 正常,WB/WA 无 RW/RW 可高速缓存 SRAM(禁用子区域 6 和 7) 7 __RAM_NO_CACHEABLE_START 来自链接器 正常,无缓存 是 RW/RW 非缓存 RAM 区域 8 __RAM_SHAREABLE_START 来自链接器 正常,无缓存 是 RW/RW 可共享内存 9 0x40000000 6MB 强烈订购,无缓存 是 RW/RW AIPS0-2 外围空间(禁用第 6/7 分区) 10 0x40600000 S32K314 已禁用 — — — AIPS3;仅在 S32K39x 上有效 11 0x67000000 128 MB 强烈建议 是 RW/RW QSPI RX 12 0x68000000 128 MB 正常,WB/WA 无 RW/RW QSPI AHB 映射区域 13 0xE0000000 默认 ARM PPB 大小 强烈建议 是 RW/RW 私人外围总线(SCB、NVIC 等) 14 __ROM_CODE_START + 0x400000 S32K314 为 0 — — — 附加程序闪光灯(仅对其他衍生产品有效) 15 0x44000000 S32K314 为 0 — — — ACE 区域仅在 S32K388 上活跃 这是 K344 的 SAF 演示示例中的 MPU 配置: 简单比较这两个 MPU 配置 + 链接器文件可以看出: -这些内存部分的位置不正确:* (.s32_saf_const_flash_1) * (.s32_saf_const_flash_2) * (.s32_saf_const_flash_3) * (.s32_saf_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_saf_const_const_flash_4) * (.s32_flash_5)-看不到不可缓存的 SRAM 的可执行属性,但这不是 sCheck 所要求的,这可能是 SAF 示例 MPU 设置中的冗余属性——考虑到客户正在运行操作系统,我预计操作系统及其需要一些特定的 MPU 设置和内存部分 应用程序(只是猜测,并不是说这可能是某些问题的根本原因) 无论如何,客户应遵循 SAF 用户手册和 RTD 手册第 " 章内存分配 " 进行正确的 MPU 和链接器文件设置,重复使用恩智浦示例中的短截线不是一个好做法。 特别是当操作系统在 sCheck 测试期间运行时,还需要按照 sCheck 章节" Exclusive Areas(在 BSW Scheduler" 中定义的专属区)进行测试。eMcem 和 RTD 驱动程序中也有类似的排他性区域。 亲切的问候, Radoslav
記事全体を表示
多層スタック上のCLRC663レイアウト 皆さんこんにちは。 私は#CLRC663 を使用して 6 層 PCB を設計しています。アプリケーション ノート AN11019 (rev 1.5) を読むと、第 3.2 章「レイアウト推奨事項」に、CLRC663 評価ボードの下の GND プレーンに関する説明があります。GNDプレーンは基板の中間層にあります SW4301 - CLEV6630B v2.0 PCB では、マッチング回路の下に銅がありません。 前に述べたように、私は多層基板を持っており、マッチングコンポーネント(マッチングコンポーネントレイヤー1 - GNDレイヤー2)の下にGNDプレーンを配置CANかどうかを知りたいです。他のレイヤーの一致するコンポーネントの下にトレースを配置CANか?たとえばレイヤー 3 かレイヤー 6 でしょうか? それとも、スタックのすべての層で、対応するコンポーネントの下の銅をすべて削除する必要がありますか? コメントありがとうございます。 デビッド 接触型スマートカードリーダーIC Re: CLRC663 layout on a multilayer stack こんにちは、トーマス。 まず初めにご返信ありがとうございます。 マッチング回路の下に EMI 制御用の GND プレーンを配置する場合、残りの層の銅領域を削除する必要がありますか? 私のCASEでは 6 層スタックを使用していますが、マッチングが最初の層にあり、GND が 2 番目の層にある場合、他の 4 つの層の銅は削除しないほうがよいと思います。デモボードはそのように作られておらず、その理由は理解できません。 最善の手順について何かアイデアはありますか? 皆様に感謝 デビッド Re: CLRC663 layout on a multilayer stack こんにちは@dramos 通常、以下に示すように、最初の GND レイヤーをマッチング状態に維持します。これは主に EMI の理由によるものです。 matching_GND.jpg BR トーマス
記事全体を表示
S32K344 - LPUART 发送硬故障 您好, 我正在使用 FreeRTOS 开发 S32K 平台。我有两个任务(UartTask1 和 UartTask2)经常调用 debug_log(),通过 UART 发送信息。 记录结构: debug_log() 会格式化信息并将其排入 FreeRTOS 队列。 专用的 uart_log_task() 使用 Lpuart_Uart_Ip_AsyncSend() 出队并发送每条消息。 UART TX 的完成是通过设置 uart_tx_done 标志的回调来确认的。 在日志任务的 UART 传输后添加了一个小的 vTaskDelay() - 没有观察到队列溢出。 问题: 每次 UART 开始发送时,只能打印几个字符,有时是垃圾字符,然后系统就会出现 硬故障。 在 UART 传输过程中,而不是在传输之前, 。 主要发现: 当我隔离 UART 并在日志系统 (无队列、无多任务)之外测试 时, ,工作正常。因此,UART 驱动程序本身似乎没有问题。 问题 是什么原因导致多任务日志设置崩溃? 是否可能是共享/静态缓冲区(如 tx_data)在 TX 完成之前被覆盖或访问? 在 FreeRTOS 和多个任务中使用 Lpuart_Uart_Ip_AsyncSend(),是否有特定的注意事项? 如有任何帮助或建议,我们将不胜感激。 提前感谢! 我附上了代码片段和 lpuart 配置。 Re: S32K344 - LPUART Tx Send Hard Fault 您好, 尝试找出硬故障的原因。你可以参考:如何在 ARM Cortex-M (V7M) 微控制器上调试故障异常 (S32K3XX) 也许只是增加堆栈,堆大小会有所帮助。 BR, Petr
記事全体を表示
调试 iMXRT1011 项目时遇到的问题 我有一个基于 imxRT1011 处理器的简单定制板。我使用的是MCUXpresso IDE v24.12 和 Segger J-Link Ultra+。我对 iMXRT 开发很有经验,J-Link 在我的另一个项目中运行良好。 一切开始都很顺利,但不知何时,我失去了调试项目的能力。如果我使用串行启动加载器(通过安全配置工具)安装代码,则代码可以正常运行,但是如果我从调试器中刷新它,它就无法运行。 它似乎在 main() 之前的某个地方崩溃了。有时,我可以在ResetISR()中设置一个断点并步进。在这种情况下,如果我保持单步运行,一切正常,但如果我让它运行,它就会崩溃。有时会直接进入 0xdeadbeee,调试器无能为力。 可想而知,这非常令人沮丧。如有任何建议,我们将不胜感激。 i.MX RT101x Re: Problems debugging iMXRT1011 project 今天早上我又发现了一些奇怪的行为。 我在调用SystemInitHook()之前设置了一个断点。你可以在附图中看到该函数的反汇编过程。 在调用之前,SP 位于 0x20207ff8,这在我们的意料之中。对 SystemInitHook() 的调用是 bl 0x6001220c 如果我用 C 语言进入函数,调试器会在 0x60012210 处停止,SP 仍然是0x20207ff8。函数返回时,SP 也是 0x20207ff8,符合预期。 如果改用指令步进模式进入函数,则会执行 0x6001220c 处的推送指令,将 SP 降至 0x20207ff4。因此,当函数退出和后续代码崩溃时,SP 是错误的。 你能想出造成这种行为差异的原因吗?SystemInitHook() 正确吗?有推力却没有弹力? Re: Problems debugging iMXRT1011 project 如果我用高效密码学标准(SEC)刷新应用程序,它可以正常运行。如果我连接J-Link Commander,就可以成功停止和起飞。 在 IDE 中,我今天可以在ResetISR() 函数处设置断点。如果我单步执行 SystemInit() 函数,程序会崩溃。如果我单步进入 SystemInit() 函数,执行完该函数后再单步执行 SystemInitHook() 函数,程序也会崩溃。如果我执行同样的操作,直接单步执行 SystemInitHook() 函数,程序就不会崩溃。这就是我所说的,程序行为取决于调试器是单步执行还是单步执行。 堆栈崩溃时的示例:   线程 #1 57005(暂停:信号:SIGTRAP:跟踪/断点陷阱) _vfprintf_r() 在 0x600134a4 0x0 所以看起来它好像跳到了 0x0,但只有在代码自由运行时才会这样,在调试器中单步执行时不会这样。0x0 处没有代码 - ITC 未使用。 重复一遍,这是在 main() 之前,远在调用任何 RTOS 或类似系统之前。它在初始启动代码中崩溃了。 Re: Problems debugging iMXRT1011 project 您好@expertsleepers 谢谢您的澄清! 你刚才提到了这个问题: 有时会直接进入 0xdeadbeee,调试器无能为力。 如果我理解得很清楚这个 deadbee 问题只会出现在调试器上,如果你启动最新的软件,没有调试器,它能正常工作对吗? 如果使用 Segger 的 J-Link 指令器调试最新程序,抛开集成开发环境不谈,您会发现任何问题吗?我指的是连接调试器后使用 go 和 halt 操作。 您能分享一下最新 SW 版本的变化吗? 在监测程序计数器的同时进行分步调试,并堆放 SRAM。我不知道您使用的是否是 RTOS。 检查是否有跳转到无效地址的情况,例如从闪存跳转到 SRAM,反之亦然。 致以最崇高的敬意 迪亚戈 Re: Problems debugging iMXRT1011 project > 您的意思是,如果您提交回项目的前一阶段,调试是否会开始更好地工作? 是的。但是,在恢复到旧版本之后,我必须使用安全配置工具刷新主板一次,然后调试才会变得可靠。从那以后,我就可以像往常一样从 IDE 闪存了。 如果我回到最新的代码,我可以成功调试一次,但随后的尝试都失败了。 >将项目导入其他工作区或电脑后,是否还会出现此问题? 我在没有安装过的新机器上安装了 IDE v25.6,复制了项目,版本并尝试调试,结果是一样的。 Re: Problems debugging iMXRT1011 project 您好@expertsleepers 感谢您的耐心等待和提供更多信息! 你的意思是,如果将代码提交回项目的先前阶段,调试功能是否会运行得更好? 我想知道如何在我这边复制这个问题。在其他工作区或电脑上导入项目时,会重复出现这个问题吗? 一切顺利 迪亚戈 Re: Problems debugging iMXRT1011 project 这是一块非常简单的板,我用来测试一些外围设备。它基本上由 MCU、一个用于 XIP 的 QSPI 闪存、一些 SPI 和 I2C 外围设备以及一个 USB 端口组成。 也许我没有说清楚,在项目达到一定规模之前,项目在调试器下一直运行正常。几天来,我一直在愉快地工作,直到调试器突然开始失灵。 集成开发环境本身在我的另一个项目中继续正常运行,所以我并不担心集成开发环境本身。 Re: Problems debugging iMXRT1011 project 您好@expertsleepers 谢谢您的澄清,是的,我指的是 FCB 文件。 如果问题出在当前的应用程序设置上呢? 我想区分问题出在闪存设置、应用程序设置还是集成开发环境上。 如果您尝试运行 hello world 演示,结果会怎样?使用已在使用的相同 FCB。 能否提供更多有关项目的详细信息? 致以最崇高的敬意 迪亚戈 Re: Problems debugging iMXRT1011 project 我正在使用附件中的文件配置闪光灯。它们是从 SDK 示例中复制的,我检查过它们与我工作项目中的文件完全相同。 两块板上的闪存芯片相同,即华邦 W25Q64JVXGIQ。 这些文件是否定义了您所指的"FCB" ? Re: Problems debugging iMXRT1011 project 您好@expertsleepers 感谢您的联系! 或许是你IDE端的FCB的问题。你看过那份文件了吗?让我解释一下。 使用 SEC 工具时,SEC 工具不会写入图像,而是写入 " 极简主义的 " FCB。使用集成开发环境时,映像包含 FCB(如果我没记错的话是 qspi_config)。是否检查过 FCB/qspi_config 与您的映像匹配? 致以最崇高的敬意 迪亚戈 Re: Problems debugging iMXRT1011 project 为了排除我的自定义板出现问题,我获得了 MIMXRT1010 EVK。EVK 板上的行为是一样的。 Re: Problems debugging iMXRT1011 project 您好@expertsleepers, 我知道问题是在您修改代码后出现的。为了更好地支持您,能否请您分享一下与原始项目相比,您所做的具体修改? 特别是,我对与启动过程相关的任何更改感兴趣,例如: 更新 FCB。 调整内存区域。 是否在 XIP 和非 XIP 模式之间切换。 BR Habib Re: Problems debugging iMXRT1011 project 我没有更换 FCB,一直使用 XIP。 我确实更改了内存区域。我在 ResetISR() 中这样做 #define IOMUXC_GPR_GPR16 (*(unsigned int*)0x400AC040) #define IOMUXC_GPR_GPR17 (*(unsigned int*)0x400AC044) void ResetISR(void) { // 禁用中断 __asm volatile ("cpsid i"); __asm volatile ("MSR MSP,%0": :"r" (&_vStackTop) : ); // 重新配置柔性电路 IOMUXC_GPR_GPR17 = 0xE9; IOMUXC_GPR_GPR16 = IOMUXC_GPR_GPR16 | 0x4; Re: Problems debugging iMXRT1011 project 你好,@expertsleepers、 能否请您检查一下这个应用程序说明是否能帮助您解决问题? BR Habib Re: Problems debugging iMXRT1011 project 在我的项目中,两个预处理器符号都设置为 1。 xip_external_flash=1 xip_boot_header_enable=1 Re: Problems debugging iMXRT1011 project 你好,@expertsleepers、 在调试程序之前,能否使用串行下载器配置通过 MCUXpresso 执行一次大规模擦除? 这样做是为了验证已刷新的应用程序没有干扰调试器与 MCU 之间的任何通信。 BR Habib Re: Problems debugging iMXRT1011 project 您好@expertsleepers, 问题可能是在执行过程中对 FlexRAM 配置进行了操作,这可能会导致意外错误。因此,要正确使用 FlexRAM,我强烈建议查看本应用说明,其中介绍了如何在 i.MX RT 中使用 FlexRAM。 另一方面,也有可能是你在其他项目中没有使用 FlexRAM,而且配置正确,这不会导致任何问题。 最后,我建议您查看这些社区帖子,它们可能会帮助您解决问题: 使用 MCUXpresso IDE 重新定位代码和数据 - NXP Community 调试器连接问题的 RT 板恢复-恩智浦社区 BR Habib Re: Problems debugging iMXRT1011 project 我知道应用程序说明。正如你在我的帖子中看到的那样,我正在按照应用说明的建议,在RESET处理程序开始时更改FlexRAM配置。我的另一个项目也采用了完全相同的方法,一年多来一直运行良好。 Re: Problems debugging iMXRT1011 project 在此期间,我删除了重新分配 FlexRAM 的说明(在我上面的帖子中提到过),从而解除了对自己的封锁。 如果我让 FlexRAM 保持默认分配状态,就可以正常调试。 我重新分配 FlexRAM 的方式有问题吗?我在另一个项目中也是这样做的,而且效果一直很好。 Re: Problems debugging iMXRT1011 project 嗨,@expertsleepers、 如果我们根据我提供给您的应用说明查看 IOMUXC_GPR_GPR17 的配置,我可以看到您的配置如下: Habib_MS_0-1765918625792.png 不过,请注意以下几点: Habib_MS_1-1765918703735.png 您是否可以尝试其他配置,以更好地满足您的应用要求并符合说明条件? BR Habib Re: Problems debugging iMXRT1011 project 我会试试的。 您能解释一下,为什么 ROM 要求与此相关吗?既然在更换 FlexRAM 时我的应用程序已经在运行,那么在此之后会有哪些 ROM 代码在运行呢? 我能理解,如果更换熔丝中的 FlexRAM,这会影响启动加载程序。但我不是在更换熔丝,而是在软件中更换 FlexRAM。 Re: Problems debugging iMXRT1011 project 你好,@expertsleepers、 您能否尝试将该注释考虑在内,看看是否能解决问题? 另一方面,SDK(25.06 版)提供了一个配置 FlexRAM 的示例,名为 "flex_ram_access",我强烈建议大家分析这个示例,了解其工作原理,以便在代码中复制。 此外,您能否核实第 2.1.1.2 章中提到的要求是否符合我提供给您的应用程序说明中称为 "运行时配置 "的要求? BR Habib
記事全体を表示
S32 Design Studio v3.5 安装回滚问题 我正在尝试在公司设备(Windows 11)上安装 S32 Design Studio v3.5,一旦安装量达到 6%,它就会回滚并且安装失败。我遵循了以下社区帖子中提供的一些建议 S32 设计回滚安装错误 - NXP 社区 如"以管理员身份运行" 并启用完全控制"C:\Users\name\AppData\Local\Temp" 我附上日志供您参考,请帮助解决这个问题。 激活 | 安装 | 许可 | 安装程序下载 Re: S32 Design Studio v3.5 installation rollback issue "以管理员身份运行" 这个 exe 文件,似乎就能解决问题。如果没有帮助,我建议您咨询 IT 部门。
記事全体を表示
在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory 1、编译软件为V1.7.0 2、JAVA版本为:22.0.1 2024-04-16 3、增加imgbtn的新图片时,会出现如下问题 问题信息如下: "Compiling E:/UI_test/p1_prj-psh/p1_prj/lvgl-simulator/../custom/custom.c" "Linking simulator.exe" gcc: fatal error: cannot execute 'd:/nxp/gui-guider-1.7.0-ga/environment/mingw/bin/../libexec/gcc/mingw32/9.2.0/collect2.exe': CreateProcess: No such file or directory compilation terminated. mingw32-make: *** [default] Error 1 @Alex_Wang  Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi Alex,     非常感谢你的回复,此问题已解决! Best regards, Elisen Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi, @ElisenChen  编译报错问题原因:gcc命令行长度有32K的限制,您应用最后链接的时候,命令长度超过了限制。 解决办法:把.o先编译成静态库,然后使用静态库生成最后的可执行文件。下面对 \lvgl-simulator\Makefile的修改可以解决这个问题。 将Makefile中default替换以下内容: default: $(OBJS) $(GEN_OBJS)   @echo "Linking $(SIMULATOR_EXE)"   @ar -csr libgenerated.a $(GEN_OBJS)   @$(CC) -o $(BIN_DIR)$(SIMULATOR_EXE) $(OBJS) -L. -lgenerated $(LDFLAGS) Alex_Wang_0-1717039282765.png 非常感谢您提到的问题,我们会在GUI Guider 1.8.0修复这个问题。 Best regards, Alex Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi Alex,      感谢,期待你与团队的回复 Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi, @ElisenChen  我对您的工程进行了检查,工程看起来没有什么问题,我已交给GUI Guider开发团队进行分析,正在积极查找问题原因。当我删掉了您指的所有控件,复制控件(不要新建)使用是没有问题的,您可以进行尝试。可参考附件中的视频,如有任何更新,我会第一时间回复您。 Best regards, Alex (view in My Videos) Re: 在GUI GUIDER 1.7.0上经常出现collect2.exe': CreateProcess: No such file or directory Hi everyone,     如下问题是否有其他解法或是建议吗?
記事全体を表示
Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hello, At the AN4581 Application Note section 5.7 it is recommended to program the SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses to completely secure the device, but looking at both the IMX8MMRM and IMX8MMSRM, I wasn't able to find the exact location of those fuses (bank, word, bit). Where can I find this information? Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi @igorpadykov , I would appreciate if you could send me this information as well. Thanks in advance Dj Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi, Would it be possible for you to send me this information as well? Also is this diifferent between an imx8m nano  and a mini? Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also would like to have this information. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM hi @igorpadykov, I need information about the fuses for the imx8m mini. Could you be so kind to provide it to me? I need to disable the JTAG for security reasons. Best regrads, Julián Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM @igorpadykov could you also send me the info for the JTAG_HEO fuse? Thanks! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Can you also share this with me, please? Why isn't this just posted in a public app note, or the reference manual or security reference manual? Security through obscurity is not security. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Could you make this email public information? Why is this information not listed in the security reference manual? For the i.MX8M Nano this is listed in the security reference manual. But I cannot know whether the Mini uses the same fuses. Also, AN4581 also lists fuse DIR_BT_DIS to be of interest. But I cannot find any reference of it. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also want to disable JTAG on the imx8m-mini and I couldn't find any info of about it in Reference Manual, Rev. 2, 08/2019 Chapter 6.2 Fusemap. Could you also point me into the right direction. Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi rodrigo_travess additional info were sent via mail. Best regards igor
記事全体を表示
CST 4.0.1 的 Openssl 版本 您好, 我从恩智浦下载了CST 4.0.1(代码签名工具),在查看文档文件夹中的文档(特别是UG10106)时,我看到了第3.1.1 节、其中提到 CST 支持Ubuntu 22.04,需要OpenSSL 3.2.0。 不过,我当前的 Ubuntu 22.04 系统使用的是OpenSSL 3.0.2已安装。我担心升级到 OpenSSL 3.2.0可能会破坏现有的系统依赖关系。使用 CST 真的需要升级 OpenSSL 吗?如果是这样,有什么最安全的方法可以在不影响我的系统的情况下做到这一点? 我还附上了 UG10106 的屏幕截图以供参考。 谢谢! Kartheek Re: Openssl Version for CST 4.0.1 您好@kartheek! 感谢您联系恩智浦支持中心! CST 工具的推荐版本是 OpenSSL 3.2.0。 遗憾的是,我们尚未测试 OpenSSL 3.0.2 版本。如果该工具不能按预期运行,则应尝试安装用户指南中推荐的版本。 此致 查维拉
記事全体を表示
缺少编译器 S32 Studio 我在 S32 Studio 3.6.4 中找不到编译器用于 S32K3x8 EVB。 arm-none-eabi-gcc " @board /siul2_port_ip_cfg.args "-MMD-MP-MF "板/siul2_port_IP_CFG.D "-MT " board/siul2_port_IP_CFG.O "-o " board/siul2_port_IP_CFG.O "".。/板/siul2_port_IP_CFG.C " make:*** [generate/src/subdir.mk:26: generate/src/Igf_Port_Ip_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make:*** [generate/src/subdir.mk:26: generate/src/OsIf_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/tspc_port_IP_CFG.O] 错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/siul2_port_IP_CFG.O] 错误 127 Re: Missing compiler S32 Studio 你好,@Greavesinator85、 您使用的是哪个 RTD 版本?您的项目中似乎没有选择工具链。 示例项目也会出现这种情况吗?创建项目时,是否选择了"Create new S32DS application project" 选项? 您可以尝试在项目属性中手动添加工具链路径,但我建议您创建一个新项目,以避免与此相关的任何其他配置问题。 致以最诚挚的问候, Julián
記事全体を表示
LPC55S36 I3C 主站在读取长度超过从站数据大小时挂起 我连接了两块用于 I3C 通信的 LPC5536-EVK 板,其中一块配置为 I3C 主板,另一块配置为 I3C 从机。如果主站指定的读取长度超过从站提供的数据量,主站就会卡在读取函数I3C_MasterTransferBlocking 中。根据波形,信号似乎是正确的,因此我认为问题出在主控端。 在我提供的示例中,从属服务器的数据是 [0x01,0x02],长度仅为 2 字节。但是,主服务器将读取长度指定为 3。因此,在第 2 字节的末尾,Slave 将 T-Bit 作为 0 返回,以表示消息结束。 测试步骤: (1) RESET 从属板 (2) RESET 主板 有关 T 位的定义,请参阅《MIPI I3C 基本规范》v1.1.1。 第 5.1.2.3.4 节、SDR 目标返回(读取)数据的第九位为数据结束位 在 I2C 中,"从目标读取 "有一个问题,即只有控制器才能结束读取,因此目标无法控制其返回的数据量。相比之下,在 I3C SDR 中,目标可控制其返回的数据字数;但它也允许 I3C 控制器在必要时提前终止读取。 ... bell_huang_0-1753257005599.png bell_huang_1-1753257030765.png Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size 尽管用户无法确定i3c_masterTransferNonBlocking实际传输了多少字节,但对于我的应用程序来说,这似乎已经足够了。 Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size 我尝试改用I3C_MasterTransferNonBlocking。尽管它不会挂起,但用户无法知道Slave实际提供了多少字节。在我分享的示例中,它需要返回传输计数 = 2 这样的信息。 在你使用 lpcxpresso55s36_i3c_interrupt_b2b_transfer_master 示例进行测试时,尽管你将 dataSize 更改为 50,但之后代码仍会打印固定的32字节,这恰好与从属提供的传输数量相匹配。 在实际应用中,例如我在另一篇关于IBI 与待读通知的文章中提到的情况,在发生 IBI 并执行私人读取后,从属设备的传输计数是不可预测的,可能会发生变化。当主站使用大缓冲区调用读取传输函数时,传输函数需要返回实际传输的计数。 Re: LPC55S36 I3C Master Hangs When Read Length Exceeds Slave Data Size 你好@黄铃铃 我已经测试过了。 您是对的。 我检查了 I3C_MasterReceive 函数。 /* Check RX data */ if ((0UL != rxSize) && (0UL != (base->MDATACTRL & I3C_MDATACTRL_RXCOUNT_MASK))) { *buf++ = (uint8_t)(base->MRDATAB & I3C_MRDATAB_VALUE_MASK); rxSize--; if ((flags & (uint32_t)kI3C_TransferDisableRxTermFlag) == 0UL) { if ((!isRxAutoTerm) && (rxSize == 1U)) { base->MCTRL |= I3C_MCTRL_RDTERM(1U); } } } 它读取数据的大小取决于数据的大小。 我测试了 i3c 中断演示,它支持这一功能。 Harry_Zhang_0-1753346197214.png 我将dataSize设置为 50。 Harry_Zhang_1-1753346281166.png 它从来没有挂过。 您可以试试看。 BR 哈利
記事全体を表示
RW612 FlexSPI PORTB1 访问 我在外部 XIP 模式下使用 RW612 芯片组,代码从 FlexSPI 端口 A1 运行,我将 PSRAM(APS6404L)连接到 FlexSPI 端口 B1,我使用 SDK(25.06 版)提供的配置访问端口 B1。 在尝试读取 PSRAM ID 时,我在端口 B1(CLCK/CS)上看不到任何信号活动。 我拆下了 SPARM,以确保这些信号不是由有缺陷的部件保持的。 这是否与 APS6404 不使用 DQS 信号有关? 如何配置 PortB1不使用 DQS? 感谢您的帮助和时间。 Re: RW612 FlexSPI PORTB1 access 你好,罗曼、 感谢您的帮助,问题与总线运行时尝试配置 FlexSPI 时钟有关,我注释了以下几行: CLOCK_EnableClock(kCLOCK_Flexspi); BOARD_SetFlexspiClock(FLEXSPI, 5U, 3U); 现在 FlexSPI 端口 B1 正在运行,我可以使用 AHB 高速缓存从 PSRAM 中写入/读取数据。 感谢您的帮助,非常感谢。 Re: RW612 FlexSPI PORTB1 access 你好@khalidL. 您是否按下图所示在 MCU 设置中定义了 PSRAM 内存部分? RomanVR_1-1753912826626.jpeg 请务必按照项目的Application Code Hub 帖子中提供的步骤操作,如果问题仍然存在,请告诉我。 Re: RW612 FlexSPI PORTB1 access 你好,罗曼、 感谢你的帮助和时间,在将上面的例子内置到我的项目中的过程中,我遇到了以下问题,当我从主服务器调用函数 " __RAMFUNC (SRAM) status_t board_initpsram (void) " 时,代码会静默崩溃。 除了更改链接器文件(main_data.ldt,)之外,我还需要对我的项目进行其他更改才能内置示例main_txt.ldt 和 noinit_noload_section.ldt)然后复制 board.c文件?我认为代码崩溃的原因是 BOARD_InitPsRam 没有正确复制到 RAM 中。 再次感谢您的时间和帮助。 Re: RW612 FlexSPI PORTB1 access 这个例子适用于我的板,非常感谢你的帮助。 Re: RW612 FlexSPI PORTB1 access 你好@khalidL,希望你一切都好。 Application Code Hub 中有一个关于来自外部或非闪存的 XIP 的示例,请帮助我测试共享链接中的示例,并告诉我它是否符合您的项目要求。 要将项目导入 MCUXpresso IDE,请单击"Import from Application Code Hub" 选项。(请注意,本示例需要使用 2.16.00 版 SDK) RomanVR_0-1753821216871.png 进入应用程序代码中心窗口后,搜索示例的名称(来自外部 或非 闪存的 XIP,使用多端口 FlexSPI 模块配置外部 pSRAM),将其选中,然后单击 " Github 链接 " 然后等待 " N ext > " 按钮可以使用。 RomanVR_1-1753821257434.png 点击"Next>" 按钮后,按照步骤从 git 仓库导入项目。最后,当项目在工作区中可用时,您就可以在您的设置上对其进行闪存和测试了。 如果有帮助,请告诉我。
記事全体を表示
TEA2017 27-30V 550W Design, PFC Mosfet rapidly getting hot with DCM/QR/CCM Mode. Howdy. I'm working with a client project, 27-30V, 550W designed using TEA2017 PFC and LLC. Now originally we were using Fixed Freq 55khz for PFC and the mosfets temps were hotter than usual but still controllable via heatsinks, but now we are trying to make our PFC more efficient. Hence utilizing DCM/QR/CCM mode. Unfortunately in our design in DCM/QR/CCM mode the mosfets rapidly goes up to the failure Temps.  things we have tried but didn't work: 1: Using transistors for gate drivers to drive the pfc gate hard 2: Confirming Our switching is happening after rigning period and when the DrainPFC was falling. 3. Disabling LLC and connect load directly to Vboost to test/tune PFC (result: tea didn't switch pfc the Vboost stayed at 327V (SNSBoost at 2V)) We haven't changed much with our design or TEA settings, as we are trying to test DCM/QR/CCM. Any help/clue int he right direction will be very helpful. I have posted the PFC part of the schematic, and CONFIG_D is what we use. Re: TEA2017 27-30V 550W Design, PFC Mosfet rapidly getting hot with DCM/QR/CCM Mode. HI  1: You should confirm which component getting hot the inductor or others,then provide the heat dissipation solution. 2: You can also configure the circuit as attached excel calculate sheet then update your schematic.
記事全体を表示
MC9S12ZVM128 SRAM 双位 ECC 处理 我们正在使用 MC9S12ZVM128,想知道如何处理 SRAM 中的双位 ECC 错误。具体来说,系统是否可以通过使用以下方法执行软件重启来恢复正常运行 CPMUCOP = 0x01; CPMUARMCOP = 0x00;? Re: MC9S12ZVM128 SRAM double bit ECC handling 你好,喇嘛 感谢您的答复。这个问题我们现在已经很清楚了,我相信我们可以结束这个话题。 BR, Mark Re: MC9S12ZVM128 SRAM double bit ECC handling 您好, 让我来概括一下。 在 POR 期间,SRAM 将被初始化。如果检测到双位 ECC 错误: 内存访问受阻。 已通知启动器模块。 7.3.4内存初始化 ... 为避免出现虚假的 ECC 错误报告,允许在首次写入前进行读取的内存操作(如非对齐访问的读取-修改-写入操作)要求在执行首次读取-修改-写入访问之前,内存必须包含有效的 ECC 值。ECC 模块提供在开机阶段将整个内存内容初始化为零的逻辑。在初始化过程中,SRAM 的访问被禁用,RDY 状态位被清零。如果初始化过程完成,则可以访问 SRAM,并设置 RDY 状态位。 POR(上电复位) 它的作用:POR 是通过重新启动电源或由专用 POR 信号触发的全面硬件 RESET。 对 ECC 错误的影响 -SRAM 已清除:所有易失性存储器都丢失,包括损坏的数据。 -ECC 逻辑已 RESET:所有 ECC 错误标志或状态位都被清除。 -寄存器RESET为默认值:所有配置寄存器返回其默认状态。 - 影响:除非从闪存或外部资源重新加载相同的损坏数据,否则系统将重新启动,双位 ECC 错误将不会继续存在。 ________________________________________ COP(计算机正常运行)RESET 它的作用:当软件无法及时维修时,看门狗定时器会触发 COP RESET。 对 ECC 错误的影响 - SRAM 未清除 - ECC 错误持续存在:如果损坏的数据仍在 SRAM 中,ECC 逻辑可能会在重启后再次检测到相同的双位错误。 -寄存器可能保留值:某些寄存器可能会保留其值,具体取决于RESET配置。 ________________________________________ 建议 如果您想保证消除 ECC 错误状态,请使用 POR RESET。如果您正在调试软件故障或从软件故障中恢复,并希望保留内存以供分析,则 RESET COP 可能更合适。 因此,最好确保在 POR 之后检查并处理 RDY,而不使用 RAM。 如果 COP 重新启动了系统,则尝试写入该字,并检查 ECC 错误是否确定。 此致 拉吉斯拉夫
記事全体を表示
S32G399 PCIe 无法发送 TLP 数据包 如图所示,请帮帮我。目前,我正在使用 S32G399A 芯片,并通过 PCIe 接口将其连接到 FPGA。在这种配置中,S32G399A 行动 RC,FPGA 行动 EP。我现在遇到的问题是可以访问FPGA的配置空间,但是bar0的内存空间无法触发信号TLP。 下图显示了"dmesg" 在操作系统中打印的信息。在"出境" 部分,显示的是 6OB 和 4IB。应如何配置出站和入站,以及应在何处配置? LONGGANGSU_0-1756785984145.png 另外,原地址 基地址 目标地址分别代表什么? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 是的,根据测试,在当前的电路板支持包驱动程序下,RC 会根据 EP 的 BAR 设置自动将该区域映射到 32 位/64 位地址空间。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 您是说 PCIe 位宽与 EP 有关吗?如果 EP 端是 64 位,那么是否无需对 RC 端进行任何修改? Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 感谢您的回复。 S32G PCIe RC 支持 64 位地址访问 例如,我使用另一个 S32G 板作为 EP,修改了 EP 端的 BAR 的相应位,然后从 RC 端的输出启动 RC 后,映射的一个区域是 " 区域 0:4900000000(64 位,可预取)[size=1M] " 的内存,可以通过 64 位地址访问。 详细修改方法可查看自己的 PCIe EP 驱动程序/RM。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 请问,如何将 PCIe RC 模式配置为 64 位宽? 目前,我使用 32 位宽度与 FPGA 通信。 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 让我在这里继续支持它。 从显示的日志来看,有 6 个 OB 窗口和 4 个 IB 窗口。 1.OB 窗口和 IB 窗口的数量通常取决于硬件 IP,您认为这些窗口的数量是否足够? 关于 iatu 的配置,您可以查看驱动程序/pci/controller/dwc 下的驱动程序进行设置。 2。原始地址可以是来自内存功能域的请求中的地址,基本地址可以是主机地址空间中该区域的参考点,而目标地址是 PCIe 功能域中的起点。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets @cehnyin_h Re: S32G399 PCIe cannot send TLP packets 您好,@LONGGANGSU 感谢您的回复。 我发现这个问题也是通过其他渠道提出的,请直接向那里求助。 BR 切宁 Re: S32G399 PCIe cannot send TLP packets 你好,@龙岗素 谢谢你的帖子。 1。看来你在用电路板支持包,哪个版本? 2。哪些串行器用于连接设备,使用 PCIe x1? 3.所提到的快照是指哪份文件? BR 切宁
記事全体を表示
NXPの日本語技術記事をまとめた「コンテンツ・マップ」を公開 (日本語ブログ) 2025年よりNXP Japanから日本語の技術記事をたくさんユーザーに届けよう!との想いの下、これまでに多数の技術記事(Tech Blog)を公開してまいりました。 これらの情報をより体系的にご活用いただけるよう「コンテンツ・マップ」(PDF)を公開しています。 *2026/5/11更新 計94個のコンテンツ Keita_Nagashima_0-1778477033130.png 図1.「コンテンツ・マップ」イメージ図(中身は逐次更新します) コンテンツ・マップとは? 本コンテンツ・マップは、NXP製品に関する技術情報をカテゴリ別に整理したもので、Yocto Linux、EdgeAI、Security、PMIC、Interface、NXPへの技術質問方法など、幅広い分野にわたる記事を網羅しています。各記事へのリンクも掲載しており、目的の情報にスムーズにアクセスできる構成となっています。 ・読みたいコンテンツの右端をクリックいただきますと、該当記事に飛ぶことができます。 Keita_Nagashima_1-1757990032973.png 図2.記事へのリンク   「Yocto Linux」、「エッジAI」、「I3C, I 2 C」、「セキュリティ」、「Zephyr」などのトピックについては、実装例やトラブルシューティングのヒントを含む実践的な内容が充実しています。これらは、開発現場での課題解決や新規プロジェクトの立ち上げ時に役立つ情報として、多くの技術者の皆様に活用いただいております。 コンテンツもメイントピック毎に色分けしており、ユーザーの状況に合わせたコンテンツを選択いただけます。 Keita_Nagashima_2-1757990241495.png ・基礎コンテンツ:  一般知識、基礎知識、プロトコルの解説など ・手順コンテンツ:  実際に動かしてみる、環境構築など ・応用コンテンツ:  深い技術知識、デバッグ手法、応用手順など *難易度も目安として★の数で表示しています。      図3.カテゴリ分け 今後について 今後もコンテンツ・マップを本ページに公開・更新することを検討しております。より多くの方々にNXPの技術情報を活用いただけるよう努めてまいります。技術者の皆様はもちろん、教育機関や学生の方々にも参考になる内容となっておりますので、ぜひご覧ください。ブックマークも是非♪ 更新時には、SNSでもご案内いたします。   Facebook_Logo_Primary.png   logo-black.png   Instagram_Glyph_Gradient.png   現在コンテンツ・マップに掲載の「今後のプラン」は、ほんの一部であり、他にも作成予定のコンテンツが多数ございますため、今後の更新にもご期待ください。 2025年よりNXP Japanから日本語の技術記事をたくさんユーザーに届けようとの想いの下、これまでに多数の技術記事(Tech Blog)を公開してまいりました。これらの情報をより体系的にご活用いただけるよう「コンテンツ・マップ」(PDF)を公開しています。 実装例やトラブルシューティングのヒントを含む実践的な内容が充実しており、開発現場での課題解決や新規プロジェクトの立ち上げ時に役立つ情報として、多くの技術者の皆様に活用いただいております。 (読了:5分) introduction 日本語ブログ
記事全体を表示
Installing a Zephyr SDK version The Zephyr SDK is a set of build tools for building Zephyr applications. It includes GCC and CMake, and each Zephyr release is tied to a specific Zephyr SDK version. This version is noted in the SDK_VERSION file in the Zephyr repository. Using the recommended Zephyr SDK version is important—mismatched versions can cause build errors. For example, Zephyr v4.1 specifies Zephyr SDK v0.17.0. If you use Zephyr SDK v0.17.2 (meant for Zephyr v4.2) with Zephyr v4.1, you’ll encounter build errors. If you need to build apps for Zephyr v4.1, install Zephyr SDK v0.17.0. You can install multiple Zephyr SDK versions and switch between them at build time (see instructions below). Full vs. Minimal Install Full Install: Includes all toolchains for every supported SoC architecture. Recommended for beginners but requires more disk space and download time. Minimal Install: Lets you choose only the toolchains you need. Saves space and time. For Minimal install, run the setup.cmd script to select which tools to install.  On NXP boards, select: Register Zephyr SDK CMake package Install host tools aarch64-zephyr-elf (64-bit ARM) arm-zephyr-eabi (32-bit ARM, including NXP MCUs) optional  xtensa-nxp… (Cadence Tensilica DSP cores) Installing Zephyr SDK These steps cover installing the Zephyr SDK using the MCUXpresso Installer, West from CLI, or manual download. Installing with MCUXpresso Installer The MCUXpresso Installer started supporting packs for Zephyr with Zephyr v4.2.  Each pack installs the matching Zephyr SDK version (e.g., v4.2 pack installs SDK v0.17.2).  This option Installs a minimal set of tools for NXP development. dereksnell_0-1763125437139.png The MCUXpresso Installer does not support older Zephyr SDK versions. For v0.17.1 or earlier, use West or manual install. Installing with West CLI Zephyr Project added Zephyr SDK installation to West. For CLI, Activate your Python Virtual Environment, then run: west sdk install --version 0.17.0   If --version is omitted, West uses the version in the SDK_VERSION file of the Zephyr repo. By default, installs the Full package. For minimal, add -i . Installing by Manual Download Download the Zephyr SDK from the https://github.com/zephyrproject-rtos/sdk-ng/releases. Choose Full or Minimal for your host OS. Extract to your user folder (default location for West and MCUXpresso): Windows: C:\Users\ \zephyr-sdk-0.17.0 Ubuntu: /home/ /zephyr-sdk-0.17.0 Selecting Zephyr SDK Version Multiple Zephyr SDK versions can coexist. West uses the latest by default, but you can override it: VS Code: When importing examples, select the Zephyr SDK version in the wizard. dereksnell_1-1763126099481.png CLI: Set the environment variable ZEPHYR_SDK_INSTALL_DIR  before building.  This command sets that variable in Ubuntu: export ZEPHYR_SDK_INSTALL_DIR="/home/ /zephyr-sdk-0.17.0" Or in Windows: set ZEPHYR_SDK_INSTALL_DIR= C:\Users\ \ zephyr-sdk-0.17.0   Return to Zephyr Knowledge Hub    
記事全体を表示