Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Code Warrior ver 8 Palm 开发工具,作者 metrowerks 有人觉得我那套老旧的 Metrowerks 出品的 Code Warrior 8 开发工具还有用吗?Windows 和 Mac 系统均配有相应的用户手册。此外,我还收藏了一些其他第三版 Palm 开发书籍以及一台 Palm 设备。他们需要找到一个好归宿。 Re: Code Warrior ver 8 Palm dev tools by metrowerks 感谢您对 CodeWarrior 的关注,虽然可能可以找到或分享旧版本的 CodeWarrior,但 CodeWarrior 8 是一个不再受支持的旧版产品。先前版本的页面和内容仅供历史参考,因此对 v11.1 之前的任何 CodeWarrior 版本的支持都非常有限。由此造成的不便,我们深表歉意。 目前维护的版本是 CodeWarrior v11.1,它支持各种 8 位设备,并且可以在 Windows 10/11 上运行。 我们建议您使用 v11.1 版本,您可以从这里下载: CodeWarrior for MCUs (Eclipse IDE) v11.1 顺祝商祺! Re: Code Warrior ver 8 Palm dev tools by metrowerks   亲爱的路易斯, 感谢您的回复。 我是 Raffaele Mazzarelli,AQS 公司技术维修部门经理。AQS 是一家意大利公司,专门从事工业电子产品维修,特别是光伏逆变器维修。 我们目前正在调查影响 Santerno ES821 控制板的技术问题,该控制板包含两个数字信号处理器: 摩托罗拉/飞思卡尔 DSP56F807PY80E 德州仪器 TMS320VC33PGE 主要问题在于板的寿命运行计时器,它无法正确保存运行时间信息。 我们已经投入了大量时间和资源来诊断这个问题,包括硬件调查、内存分析以及涉及两个处理器的测试。 遗憾的是,我们尚未确定生命周期定时器是由摩托罗拉 DSP56F807、德州仪器 TMS320VC33 管理,还是通过这两个处理器之间的交互管理。 我们尤其希望获得以下方面的技术支持: DSP56F807 的内部非易失性存储器组织结构。 能够访问和分析其固件和存储的运行参数。 CodeWarrior Development Studio for DSC 8.3 及兼容的调试工具的可用性。 任何有助于确定摩托罗拉处理器是否负责存储或管理生命周期计时器的技术信息。 我还要强调,如果恩智浦半导体或合格的技术合作伙伴能够提供这项服务,我们愿意将 ES821 控制板实物寄送进行技术检验。 如果需要,我们还可以讨论提供一个功能齐全的板,以便与故障电路板进行比较。 我们很乐意安排将货物运送至经授权的技术机构,但需事先就检验程序和相关费用达成一致。 我们的目标是找出这一反复出现问题的根本原因,并为仍在服役的工业设备开发可靠的维修方案。 请问NXP是否有专家、技术部门或授权合作伙伴可以帮助我们? 我们非常感谢您的支持。 此致, 拉斐尔·马扎雷利 技术维修部经理 AQS – 意大利
View full article
Rise time and Fall time requirement for SR150 Hello Team, We are using SR150 based Murata UWB module LBUA0VG2BP-741 with STM32N657 MCU in our design. We have set highest drive strength ("Very High Speed") from MCU side. We are below rise time and fall time with clock and data signals. For Clock (20% to 80%) As per requirement rise time : 2.15ns and fall time : 2ns We are getting as per below  1. Rise time : 3.584ns  2. fall time : 4.937ns For Data  (20% to 80%) As per requirement rise time : 0.6ns and fall time : 0.55ns We are getting as per below  1. Rise time : 3.509ns  2. fall time : 4.38ns  Is there any way to configure UWB module clock and data pins to achieve the required rise time and fall time?  Could you please guide us if this rise time and fall time will impact communication or not? I have attached waveform for reference. Your quick response is highly appreciated. Thanks Re: Rise time and Fall time requirement for SR150 The SR150 GPIOs pullup/pulldown state are configured during the manufacturing phase of SR150, the defaults setting are written in OTP memory. An override state is possible by the firmware. Which only available when firmware is loaded in SR150. You may need to contact with dedicated FAE for detailed information Re: Rise time and Fall time requirement for SR150 Hello Team, No. In our design, the MCU is the SPI master and generates the SPI clock, while the SR150 operates as the SPI slave. We would like to understand whether there is any possibility of the SR150 incorrectly sampling SPI data due to timing, while operating as a slave device.  Also, is there any possibility to configure SR150 pins such as internal pull up?   Thanks.  Re: Rise time and Fall time requirement for SR150 The SR150 supports SPI-bus Master/Slave interface, up to 16.66 Mbits/s For clock speed control, do you mean control the SPI bus clock with SR150? Re: Rise time and Fall time requirement for SR150 Hello Team, We would like to understand whether there is any possibility of the SR150 incorrectly sampling SPI data due to timing, while operating as a slave device.  Thanks Re: Rise time and Fall time requirement for SR150 Hello, Hope you are doing well. Sorry for the inconvenience this might cause you but as the information of these products it's under NDA (Non-Disclosure Agreement) the information it's not public. I apologize for the inconveniences, but as your question is about a Module/Kit from one of our Trimension UWB Partners, you would need to go directly with them to receive support for their Module/Kit. All the support should come directly from the UWB Partner, in this case from Murata. The documentation and software is distributed by the corresponding UWB Module partner. By selecting a module, you will be guided to our partner’s page where you can access datasheets, application notes, and the required enablement software.   I apologize again for the inconveniences. Best Regards, Ricardo
View full article
PN7642EV/C100 vs PN7642EV/C102 First question, I am planning to use PN7642EV/C102 in a new design. I would like to add PN7642EV/C100 as an alternate part since it is in stock at main stream distributors and to reduce potential long term supply chain issues. It looks to me like the only difference between these PNs is the FW version they are shipped with. If this is the case then populating PN7642EV/C100 and updating to the latest FW is equivalent to doing the same with PN7642EV/C102. Is this an accurate assumption? Second question, for this application we will be reading basic NFC tags, Google wallet and Apple wallet. I understand there are many certifications and permissions needed to read Google and Apple wallets but as far as the HW is concerned are the C100 and C102 variants capable of doing this? Re: PN7642EV/C100 vs PN7642EV/C102 Thank you for the quick response. Wrt the ECP capability, I can see from the datasheet that the PN7642 is ECP capable but my question is whether or not, from a hardware perspective, this is sufficient for apple wallet compatibility. Re: PN7642EV/C100 vs PN7642EV/C102 Hello @adamdoyle15 Hope you are doing well. PN7642 should be ECP capable. Also, as you mention, the main difference between those variants is that C102 comes out of the box with FW v3.00.  Regards, Eduardo. Re: PN7642EV/C100 vs PN7642EV/C102 Hi, ECP support is mainly done in software; there should be no distinction between HW variants. Regards, Eduardo.
View full article
S32 Design Studio version v.3.5 license Hello, this is the NXP support team. My S32 Design Studio version v.3.5 license expires on October 19, 2026. Could you please help me extend the license? Activation code: 30E0-0F7D-F883-9AFB Thank you for your support.
View full article
[OSM-iMX937/952] 原理图审查 在我们的新项目中,iMX937 和 iMX952 将采用共享电路板设计。 能否帮忙审核一下iMX937和iMX952的原理图? 请参考附件。 以下问题希望向恩智浦半导体(NXP)确认: (1)根据 EVK 和检查清单的描述,NXP iMX95 电路中存在 C604 和 C603。因此,在这个项目中可以直接移除它们吗? (2)为了减少元器件数量,直接移除了电路图第 4 页上的附加 ADC VREF 和 VDD_DDR 电容。根据文档,这些设计是为 NXP iMX95 设计的,而不是为 iMX937/952 设计的。 谢谢。 Re: [OSM-iMX937/952] Schematic review iMx937 和 iMx952 都是相当新的产品,因为它们都处于预生产阶段。请联系专用的现场应用工程师 (FAE) 获取详细数据表和用户手册。 Q1:所有支持 8.0 GT/s 发射器的平台都必须实现 176 nF 至 265 nF 的 CTX 值。平台运营于 仅使用 2.5 或 5.0 GT/s 可能会将该范围增加到 75 nF 至 265 nF。对于下拉电容,无需赘述,因为可能并不需要。 I.mX937 === 1 个 PCIe Gen 3.0 x1 通道(2.5G)多路复用器) I.mX952 === 1 个 PCIe Gen 3.0 x1 通道(1G SGMII 多路复用器) i.mX95 === 2 个 PCIe Gen 3.0 x1 插槽 Q2:第5页已经有一些用于DDR的电容了。不确定第4页是否重复。由于产品改进 (PI) 的考虑,可能需要向内存供应商索取 LPDDR5 设计指南以获取更详细的信息。 对于 VREFH_ADC0,1 个 0.01 µf + 0.1 µf 的电容可能是一个可行的方案,但由于噪声滤波器的原因,可能不会被删除。
View full article
RW612: Severe LE Coded PHY Starvation During Concurrent Dual-PHY (1M + Coded) Scanning Hi NXP Community, We are developing an ASTM F3411 Remote ID receiver on the RW612  under #SDK 26.09 with controller firmware 18.99.8.p141. We have identified a severe controller-side starvation issue affecting LE Coded PHY whenever dual-PHY scanning is active. When delegating simultaneous 1M and Coded scanning to the controller (60 ms interval with 15% 1M and 85% Coded duty), Coded PHY reception collapses to 7%, and drops to 5% under full system load with concurrent Wi-Fi TX/RX. Isolation tests demonstrate that the issue is strictly caused by combining both PHYs in the controller's scan parameters: Solo Coded scan (85% duty, windowed): 98% reception rate (47/48 packets). Dual-PHY scan (1M 15% + Coded 85%): 7% reception rate (29/391 packets). Host sequential time-slicing (2000 ms Coded / 300 ms 1M): Recovers Coded reception to 98% in isolation, and sustains 54% under full concurrency (raw Wi-Fi injection at 2 packs/s, Wi-Fi monitor, and local BT4/BT5 advertising) compared to the 5% baseline. Host buffers and queues remain completely healthy with zero drops and zero corruptions. The loss is isolated to the CPU2 radio firmware scheduler when handling multi-PHY scan parameters. Is this a known scheduling bug in the CPU2 controller firmware (rw61x_sb_ble_a2.bin)? Is host-managed sequential single-PHY time-slicing the officially recommended workaround for monitoring both 1M and Coded PHY on the RW612? Product: WiFi RW6XX Protocol: Bluetooth Re: RW612: Severe LE Coded PHY Starvation During Concurrent Dual-PHY (1M + Coded) Scanning Hello @ecg3  Could you share your configuration and test steps of Dual-PHY scan? And share hci logs and OTA logs for us review. Best Regards Shaun Re: RW612: Severe LE Coded PHY Starvation During Concurrent Dual-PHY (1M + Coded) Scanning Hello @shaun_wu , Thank you for following up. I tested the RW612 (MCUXpresso SDK 26.09, EdgeFast Open host, FW 18.99.8.p141, idle Wi-Fi) running extended passive scanning against an advertiser 1 meter away broadcasting LE Coded extended advertising (ASTM F3411 Remote ID, 500 ms interval, tracked via an 8-bit payload counter) alongside an nRF52840 OTA sniffer. I compared a dual-PHY scan (Scanning_PHYs 0x05, 60 ms interval, 8.75 ms 1M window, 50.6 ms Coded window) against a Coded-only reference scan (Scanning_PHYs 0x04, identical 50.6 ms Coded window). While the Coded-only scan successfully received 94% of on-air packets (105 of 112), enabling dual-PHY caused Coded reception to drop sharply to 13% (only 12 of 94 packets reported). The RW612 controller continued reporting legacy 1M packets normally, and the few Coded packets it delivered were fully intact (Data Status 0), indicating the missing packets are simply dropped or skipped by the controller. I have attached the complete logs for both runs (raw UART, complete HCI btsnoop from HCI_Reset with no lost packets, and synchronized OTA pcapng captures). Because the RW612 and PC clocks have a minor offset (~0.4–0.9 s), please correlate the HCI and sniffer traces using the payload counter rather than timestamps (for example, in the dual-PHY capture, btsnoop frame 531 matches sniffer frame 2998 with counter 157; filtering by BD address 58:ce:2a:6b:d5:8b isolates the stream in both). Best regards
View full article
RW612:并发双PHY(1M+编码)扫描期间严重的LE编码PHY资源不足 NXP社区的各位好, 我们正在基于RW612开发一款符合 ASTM F3411 标准的远程 ID 接收器,该接收器采用 #SDK 26.09 和控制器固件 18.99.8.p141 。我们发现,当双 PHY 扫描处于活动状态时,LE 编码 PHY 会出现严重的控制器端资源不足问题。 当同时将 1M 和编码扫描委托给控制器(60 毫秒间隔,1M 占比 15%,编码占比 85%)时,编码 PHY 接收率下降到7% ,在系统满负荷且同时进行 Wi-Fi TX/RX 时下降到5% 。 隔离测试表明,该问题完全是由控制器扫描参数中两个 PHY 的组合引起的: Solo Coded 扫描(85% 占空比,窗口化): 98%接收率(47/48 个数据包) 。 双 PHY 扫描(1M 15% + 编码 85%): 7%接收率(29/391 个数据包) 。 主机顺序时间切片(2000 毫秒编码/300 毫秒 1M):在隔离状态下将编码接收恢复到98%,在完全并发(每秒 2 个数据包的原始 Wi-Fi 注入、Wi-Fi 监测和本地 BT4/BT5 广播)下保持54% ,而基线为 5%。 主机缓冲区和队列完全正常,无丢包或损坏。数据丢失仅限于 CPU2 无线电固件调度器在处理多 PHY 扫描参数时出现的问题。 这是 CPU2 控制器固件 (rw61x_sb_ble_a2.bin) 中已知的调度错误吗? 对于在 RW612 上同时监控 1M 和 Coded PHY,主机管理的顺序单 PHY 时间片轮转是否是官方推荐的解决方法? 产品:WiFi RW6XX 协议:蓝牙 Re: RW612: Severe LE Coded PHY Starvation During Concurrent Dual-PHY (1M + Coded) Scanning 你好@ecg3 能否分享一下您的双PHY扫描配置和测试步骤?请将HCI日志和OTA日志分享给我们查看。 顺祝商祺! 肖恩 Re: RW612: Severe LE Coded PHY Starvation During Concurrent Dual-PHY (1M + Coded) Scanning 你好@shaun_wu , 感谢您的跟进。我使用 RW612(MCUXpresso SDK 26.09 , EdgeFast Open 主机,固件版本 18.99.8.p141 , Wi -Fi 空闲)对 1 米外广播 LE 编码扩展广播(ASTM F3411 远程 ID,500 毫秒间隔,通过 8 位有效载荷计数器跟踪)的广播器进行了扩展被动扫描测试,同时还使用了 nRF52840 OTA 嗅探器。我将双 PHY 扫描( Scanning_PHYs 0x05 ,间隔 60 毫秒, 1M 窗口 8.75 毫秒,编码窗口50.6毫秒)与仅编码的参考扫描( Scanning_PHYs 0x04 ,编码窗口相同,均为50.6 毫秒)进行了比较。 仅对编码数据包进行扫描时,成功接收到了 94% 的空中数据包(112 个数据包中的 105 个),但启用双 PHY 后,编码数据包的接收率急剧下降至 13%(94 个数据包中仅报告了 12 个)。RW612控制器继续正常报告传统的 1M 数据包,并且其传输的少量编码数据包也完全完整(数据状态为 0),表明丢失的数据包只是被控制器丢弃或跳过了。 我已附上两次运行的完整日志(原始 UART 日志、从 HCI_Reset 开始的完整 HCI btsnoop 日志(无丢包)以及同步的 OTA pcapng 捕获日志)。由于 RW612 和 PC 时钟存在轻微偏移(约 0.4–0.9秒),请使用有效载荷计数器而非时间戳来关联 HCI 和嗅探器跟踪(例如,在双 PHY 捕获中, btsnoop 帧 531 与计数器为 157 的嗅探器帧 2998 匹配;通过 BD 地址 58:ce:2a:6b:d5:8b 进行过滤,即可在两者中分离出该数据流)。 顺祝商祺!
View full article
S32プラットフォーム上のS32 Design Studioバージョン3.4のライセンスが期限切れになりました。 私のS32 Design Studio(S32プラットフォーム用)v.3.4の有効期限が切れました。 アクティベーションコードの有効期限を延長していただけますか? S32デザインスタジオ バージョンv.3.4 注文番号: S32DS-3-4_188376977 発注番号 ライセンス総数: 101 アクティベーションコード:7EEF-99B6-BDC8-8692 Re: S32平台S32 Design Studio 3.4版本的许可证已过期。 こんにちは、 お客様のS32DSライセンスが延長されました。以前のコードを使用して、S32DSを再度有効化してください。 回复: S32平台S32 Design Studio 3.4版本的许可证已过期。 よろしくお願い申し上げます。
View full article
S32K312 BCTU – 先进先出水印回调功能正常,但最后一次转换回调未被触发 NXP社区的各位朋友,大家好! 我正在使用 S32 Design Studio 和 S32K3 RTD 7.0.1 对 S32K312 MCU 进行开发。 我已经配置 BCTU,使其使用软件触发器触发一系列 ADC 转换。我正在测试 BCTU FIFO1 水印回调和 BCTU 最后转换回调。 当前配置: MCU:S32K312 驱动程序:S32K3 RTD 7.0.1 ADC实例:ADC0 BCTU转换列表:4个ADC通道(0、2、4、3) 触发信号源:BCTU软件触发信号 中断:BCTU_IRQn 已启用 通知:FIFO1 水印和最后转换回调 观察到的行为: 当我启用 FIFO1 水印通知时,水印回调成功触发,我可以从 FIFO1 读取 ADC 转换结果。 但是,当我启用 BCTU 最后转换通知时,相应的回调函数并未触发信号。 调试过程中,我观察到: 执行进入 Bctu_0_Isr()。 驱动程序检查已启用的 BCTU 中断源。 对于最后一次转换通知,条件 if((*Reg & Mask) != 0U) 的计算结果为 false。 在中断处理期间检查时,BCTU MSR 寄存器中的 LIST0_Last 位保持为 0。 因此,最后一次转换回调函数不会被执行。 问题: 为什么 FIFO1 水印回调能够正常工作,而 BCTU 最后转换回调却无法触发? 究竟是什么硬件状况导致 MSR.LIST0_Last 变为 1? 最后一次转换中断是否需要在 BCTU 转换列表、触发信号配置或中断使能设置中进行额外配置? FIFO1 水印回调和 BCTU 最后转换回调能否同时用于同一个转换列表? LIST0_Last 状态标志是由硬件自动清除还是由 RTD 中断处理程序自动清除?如果是这样,那么是在哪个阶段? 我应该监测哪些 BCTU 寄存器来验证最后一次转换事件是否正确生成? 请问您能否帮我理解一下,为什么 FIFO 水印中断能够正常工作,而 BCTU 最后转换中断却没有按预期生成或处理? 如有需要,我可以提供我的 BCTU 配置、寄存器值和 ISR 调试观察结果的屏幕截图。 感谢您的支持。 #s32k312 #adcbctu #bctuswconv #listlastconv Re: S32K312 BCTU – FIFO Watermark Callback Working, but Last Conversion Callback Not Triggered 您好, 如果记忆没错的话,只有当 ADC 转换结果目标设置为 ADCnDR 时,才能生成上次转换通知。 参考手册在 LIST_IEN 描述中也有说明。   BR,彼得  
View full article
多核项目设置额外的 MPU 区域 我一直在开发一个项目,该项目本质上是两个 SDK 示例的结合体。我一直在使用 RT1170-EVKB SDK,版本为 26.09.00。该项目的想法是采用多核示例和 LVGL 示例,让 M7 核心运行图形,然后与运行程序的 M4 核心进行通信。为此,我采用了 SDK 示例: 我的基础项目是 freertos_message_buffers(包括主缓冲区和辅助缓冲区)。然后我通过从 lvgl_guider_cm7 项目中复制和粘贴代码和驱动程序文件,慢慢地添加图形。 我保留了 lvgl_guider_cm7 mcux_config.h文件内容相同,以便它能够使用 PXP 和 VGLite。为了实现这一点,需要将帧缓冲区放置在非缓存位置。SDK 示例中使用的共享内存也需要放置在非缓存中。发生这种情况时,屏幕上会出现瑕疵(不应该出现在那里的物体上出现细线)。 我可以通过移除 __USE_SHMEM 预处理器来解决这个问题,但显然这会导致多核通信失败。我认为这是由于 BOARD_EarlyConfigMPU 函数引起的。函数内部有一个部分的内容如下: #elif defined(__MCUXPRESSO) #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t nonCacheStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t size = (uint32_t)(&__top_rpmsg_sh_mem) - nonCacheStart; #else extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t size = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #endif 本节根据 __USE_SHMEM 预处理器定义了共享内存或常规非缓存的非缓存。函数后面部分对 MPU 区域进行了如下声明: volatile uint32_t i = 0; ... while ((size >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % size)); BOARD_EARLY_ASSERT(size == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } 现在我希望能够在 MPU 中定义这两个区域,以便 LVGL 能够正常工作而不会出现瑕疵,并且 rpmsg 消息缓冲区能够进行通信。我的记忆区域如下: 我尝试修改上面的代码,使其能够同时定义两个 MPU 区域,如下所示: #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #endif 这样一来,常规的非缓存区域始终会被定义,而共享内存区域仅在需要时才会被定义。我按如下方式修改了 MPU 区域定义: volatile uint32_t i = 0; ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % nonCacheSize)); BOARD_EARLY_ASSERT(nonCacheSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #if (__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(rpmsgShmemStart % rpmsgShmemSize)); BOARD_EARLY_ASSERT(rpmsgShmemSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 16 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #endif 为此,我在 board.h 中为额外的 MPU 区域创建了一个宏。就像这样: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ 进行这些修改后,LVGL 可以无瑕疵地绘制图形,但多核通信仍然失败。我在运行多核通信的 M4 线程中设置了一个断点。有时它会在启动时触发信号,通知它已收到消息,但消息数据不正确,因此不会执行与消息数据关联的代码。断点触发信号几次后,将不再触发。 我是否遗漏了什么才能让这个项目运行起来,例如 MPU 区域定义等等……? Re: Multicore Project setup of an additional MPU region 这些更改仅应用于主核心,因为主核心运行 BOARD_EarlyConfigMPU,而辅助核心运行 BOARD_ConfigMPU,辅助核心的函数已经具有我更改主核心的行为。以下是辅助核心在硬件初始化时运行的部分代码片段。 #elif __CORTEX_M == 4 void BOARD_ConfigMPU(void) { #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #if defined(__USE_SHMEM) #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #endif 然后在函数的后面部分: uint32_t i = 0; /* Only config non-cacheable region on system bus */ assert(nonCacheStart >= 0x20000000); ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(nonCacheStart % nonCacheSize)); assert(nonCacheSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 0 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #if defined(__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(rpmsgShmemStart % rpmsgShmemSize)); assert(rpmsgShmemSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 1 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_RPMSG_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #endif 这两个项目的预处理器中都定义了 __USE_SHMEM。以下是辅助核心的内存配置: 我是否遗漏了什么,或者我的修改是否错误?我是否需要在主项目设置的“管理链接器脚本”部分添加一些额外的内容?有机会的话,我会上传一个包含 EVK-B 板上运行的项目的 .zip 文件,以便您可以查看/重现该问题。 Re: Multicore Project setup of an additional MPU region 嗨@CMoran , 你的理解很有道理,但是你提到的变化是否同时适用于 CM7 和 CM4 内核,这一点还不清楚。每个核心都有 board.h 的定义,它们使用各自的 MPU 配置在初始硬件初始化期间进行设置。如果您提到的更改仅针对主核心进行,则核心对内存区域的处理方式可能不一致,从而导致这些意外行为。 请验证更改是否已应用于两个核心,以确保 MPU 设置一致,并确保已为两个项目的预处理器定义设置 __USE_SHMEM。 Re: Multicore Project setup of an additional MPU region 这是 .zip 文件。其中包含 m7 和 m4 项目。我保留了修改前的样子,因为修改后也没起作用。在这个例子中,如果你打开一个终端并按下中间的按钮,m7 和 m4 内核都会打印一条消息。如前所述,屏幕上移动的设置图标包含许多瑕疵。 从 m7 项目中移除 __USE_SHMEM 预处理器将修复设置图标中的瑕疵,但多核通信将会失败。 添加我上面应用的修改后,设置图标也会修复,但多核通信将会失败。 本演示中使用的屏幕是 RK055HDMIPI4MA0。 Re: Multicore Project setup of an additional MPU region 遗憾的是,在创建新的内存区域定义之前: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ 我只是重复使用了预定义的非缓存内存区域: #define BOARD_MPU_REGION_NONCACHE (10) /* Noncacheable space in application */ 我的结果也一样。我已经将新的内存区域定义更改为10 ,以匹配非缓存区域。核心之间始终无法通信。 我用断点检查了两个核心上 rpmsg 共享内存的起始位置和大小,它们的起始位置 (0x20340000) 和大小 (0x10000) 都正确。我已将两个核心上的 ARM_MPU_RASR() 函数的第 4 个参数更改为1 ,以表明该区域是“可共享的”。还是没找到办法。当您或团队成员有空时,我会在另一个回复中发布我的项目代码。我已经想不出还能尝试什么了。 Re: Multicore Project setup of an additional MPU region 嗨@CMoran , 知道了。不过,回到你最初的回复: 您提到您创建了一个新的内存区域定义: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ 但是 ARM_MPU_RBAR() 的定义使用了 MPU_RBAR_REGION_Msk,其定义为 15: #define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) CM7 将区域数量定义为 16 个,编号为 0-15。 因此,这样做实际上是将区域 0 设置到该区域。 Re: Multicore Project setup of an additional MPU region @CMoran ,你好! 项目构建完成后,请分析生成的 .ld 文件中的内存区域。从文件中可以看出,LVGL 帧缓冲区和多核消息缓冲区位于不同的内存区域,由于它们是不连续的物理内存,因此无法合并: LVGL 帧缓冲区的 NCACHE_REGION 位于 0x81000000(16 MB,位于 同步动态随机存取存储器(SDRAM) 中) rpmsg_sh_mem 位于 0x20340000(64 KB,OCRAM),用于多核消息缓冲区 也就是说,MPU 区域 7 目前覆盖 0x20300000–0x2037FFFF (512 KB) 作为可缓存的普通内存,该范围包括 rpmsg_sh_mem 区域,这意味着共享内存最终可能是可缓存的,从而导致您看到的内核间通信错误。减小 Region 7 的大小,以确保 rpmsg_sh_mem 降级到 Region 3(该区域本身不可缓存),这可能是一个简单的修复方法,可以确保消息缓冲区的正常功能,而无需对现有驱动程序进行 MPU 驱动程序级别的更改。 Re: Multicore Project setup of an additional MPU region 嗨@EdwinHz 我花了一点时间测试了一下你的建议。我将 MPU 区域 7 (OCRAM2) 的值从 512 KB 改为 256 KB,如下所示: /* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_OCRAM_B, 0x20300000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB); 移除 __USE_SHMEM 预处理器后,rpmsg_sh_mem 将降级到 MPU 区域 3,而该区域已被定义为不可缓存。我创建的演示程序现在已经按预期运行了。
View full article
S32平台S32 Design Studio 3.4版本的许可证已过期。 我的 S32 设计工作室(适用于 S32 平台)v.3.4已到期 请问您能否延长我的激活码的有效期? S32 设计工作室版本 v.3.4 订单号:S32DS-3-4_188376977 采购订单号 许可证总数: 101 激活码:7EEF-99B6-BDC8-8692 Re: S32平台S32 Design Studio 3.4版本的许可证已过期。 你好, 您的S32DS许可证已延期。请使用您之前的激活码重新激活S32DS。 回复: S32平台S32 Design Studio 3.4版本的许可证已过期。 谢谢
View full article
The license for S32 Design Studio version 3.4 on the S32 platform has expired. My S32 Design Studio (for S32 platform) v.3.4 has expired. Could you please extend the validity period of my activation code? S32 Design Studio Version v.3.4 Order Number: S32DS-3-4_188376977 Purchase order number Total number of licenses: 101 Activation code: 7EEF-99B6-BDC8-8692 Re: S32平台S32 Design Studio 3.4版本的许可证已过期。 Hi,  your S32DS license has been extended. Please activate S32DS again with your old code.  回复: S32平台S32 Design Studio 3.4版本的许可证已过期。 thank you
View full article
S32K312 BCTU – FIFOウォーターマークコールバックは機能しているが、最終変換コールバックがトリガーされない こんにちは、NXPコミュニティの皆さん、 私はS32 Design StudioとS32K3 RTD 7.0.1を使ってS32K312 MCUを扱っています。 BCTUをソフトウェアトリガーでADCコンバージョンのリストをトリガーするように設定しました。私はBCTU FIFO1ウォーターマークコールバックとBCTU最終変換コールバックの両方をテストしています。 現在の構成: MCU:S32K312 ドライバ:S32K3 RTD 7.0.1 ADCインスタンス: ADC0 BCTU変換リスト:4つのADCチャネル(0、2、4、3) トリガーソース:BCTUソフトウェアトリガー 割り込み: BCTU_IRQn が有効 通知:FIFO1ウォーターマークと最終変換コールバック 観察された行動: FIFO1のウォーターマーク通知を有効にすると、ウォーターマークのコールバックが正常にトリガーされ、FIFO1のADC変換結果を読み取ることができます。 しかし、BCTUの最終変換通知を有効にしても、対応するコールバックがトリガーされません。 デバッグ中に以下のことが観察されました。 実行は Bctu_0_Isr() に入ります。 ドライバは有効になっているBCTU割り込みソースをチェックします。 条件 if((*Reg & Mask) != 0U) は、最終変換通知に対して false と評価されます。 割り込み処理中に検査した場合、BCTU MSRレジスタのLIST0_Lastビットは0のままです。 その結果、最終変換コールバックは実行されません。 質問: FIFO1ウォーターマークコールバックは正しく動作するのに、BCTU最終変換コールバックがトリガーされないのはなぜですか? MSR.LIST0_Lastが1になる原因となるハードウェアの状態は具体的にどのようなものですか? 最終変換割り込みには、BCTU変換リスト、トリガー設定、または割り込み有効化設定における追加設定が必要ですか? FIFO1のウォーターマークコールバックとBCTUの最終変換コールバックの両方を同じ変換リストに使うことは可能ですか? LIST0_Lastステータスフラグは、ハードウェアまたはRTD割り込みハンドラによって自動的にクリアされますか?もしそうなら、どの時点でですか? 最後の変換イベント情報が正しく生成されていることを確認するために、どのBCTUレジスタを監視すべきでしょうか? なぜFIFOウォーターマークの割り込みは正しく動作しているのに、BCTUの最終変換割り込みは期待通りに生成・処理されないのか、教えていただけますか? 必要に応じてBCTUの設定、レジスタ値、ISRデバッグの観測結果のスクリーンショットも提供できます。 再開まで今しばらくお待ちください。 #s32k312 #adcbctu #bctuswconv #listlastconv Re: S32K312 BCTU – FIFO Watermark Callback Working, but Last Conversion Callback Not Triggered こんにちは、 記憶が正しければ、最後の変換通知はADC変換結果の宛先がADCnDRに設定されている場合にのみ生成されます。 リファレンス・マニュアルのLIST_IEN説明にも記載されています。   BR、ペトル  
View full article
マルチコアプロジェクトにおける追加MPU領域の設定 私は基本的に2つのSDKsのサンプルを組み合わせたプロジェクトを作っています。私はRT1170-EVKB SDKのバージョン26.09.00を使っています。このプロジェクトのアイデアは、マルチコアの例とLVGLの例を取り、M7コアがグラフィックスを実行し、その後プログラムを実行するM4コアと通信することです。そのために、SDKsの例を挙げました: freertos_message_buffers(プライマリとセカンダリの両方)をベースプロジェクトとして使用します。その後、lvgl_guider_cm7プロジェクトのコードやドライバーファイルをコピー&ペーストして、ゆっくりとグラフィックを追加しています。 私はlvgl_guider_cm7 mcux_config.hを保持しています同じファイルにしてPXPとVGLiteを使ったようにします。そのためには、フレームバッファをキャッシュ以外の場所に配置する必要があります。SDKの例で使われている共有メモリも非キャッシュに配置する必要があります。こうなると、ディスプレイにアーティファクト(本来あるべきでないオブジェクトに小さな線が入る現象)が発生します。 __USE_SHMEMプリプロセッサを外すことで直せますが、当然ながらマルチコア通信が失敗します。原因はBOARD_EarlyConfigMPU関数にあると考えています。関数の中には、次のような部分があります。 #elif defined(__MCUXPRESSO) #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t nonCacheStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t size = (uint32_t)(&__top_rpmsg_sh_mem) - nonCacheStart; #else extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t size = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #endif このセクションでは、__USE_SHMEMプリプロセッサに基づいて、共有メモリまたは通常の非キャッシュのいずれかの非キャッシュを定義します。関数のさらに下では、MPU領域を次のように宣言しています: volatile uint32_t i = 0; ... while ((size >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % size)); BOARD_EARLY_ASSERT(size == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } 今度は、MPU内の両方の領域を定義して、LVGLがアーティファクトなしで動作し、rpmsgメッセージバッファが通信できるようにしたいと考えています。私の記憶領域は以下の通りです: 私が試みたのは、上記のコードを修正して両方のMPUリージョン定義を実行することでした。例えば: #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #if defined(__USE_SHMEM) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #endif この方法だと、通常の非キャッシュ領域は常に定義され、共有メモリ領域は使用される場合にのみ定義される。MPUのリージョン定義を次のように修正しました: volatile uint32_t i = 0; ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(nonCacheStart % nonCacheSize)); BOARD_EARLY_ASSERT(nonCacheSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 10 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #if (__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ BOARD_EARLY_ASSERT(!(rpmsgShmemStart % rpmsgShmemSize)); BOARD_EARLY_ASSERT(rpmsgShmemSize == (uint32_t)(1 << i)); BOARD_EARLY_ASSERT(i >= 5); /* Region 16 setting: Memory with Normal type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 1, 0, 0, 0, 0, i - 1); } #endif この作業を行う際に、board.h 内に追加の MPU 領域用のマクロを作成しました。こんな感じで: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ これらの変更を加えたことで、LVGLはアーティファクトなしで描画できるようになったが、マルチコア通信は依然として失敗する。マルチコア通信を動かすM4Threadにブレークポイントを設けました。時には最初にメッセージを受信したことを通知してトリガーされますが、メッセージデータが誤っているため、そのメッセージデータに関連するコードは実行されません。ブレークポイントが数回トリガーされると、それ以降は二度とトリガーされなくなります。 このプロジェクトを実行するために、MPU領域の定義など、何か見落としている点はありますか? Re: Multicore Project setup of an additional MPU region 変更はプライマリコアにのみ適用されました。プライマリコアはBOARD_EarlyConfigMPUを実行し、セカンダリコアはBOARD_ConfigMPUを実行するため、セカンダリコアの機能には、プライマリコアに変更を加えた動作が既に含まれています。以下は、セカンダリコアがハードウェア初期化時に実行する処理の一部です。 #elif __CORTEX_M == 4 void BOARD_ConfigMPU(void) { #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_NCACHE_REGION; extern uint32_t __top_NCACHE_REGION; uint32_t nonCacheStart = (uint32_t)(&__base_NCACHE_REGION); uint32_t nonCacheSize = (uint32_t)(&__top_NCACHE_REGION) - nonCacheStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #if defined(__USE_SHMEM) #if defined(__CC_ARM) || defined(__ARMCC_VERSION) ... #elif defined(__MCUXPRESSO) extern uint32_t __base_rpmsg_sh_mem; extern uint32_t __top_rpmsg_sh_mem; uint32_t rpmsgShmemStart = (uint32_t)(&__base_rpmsg_sh_mem); uint32_t rpmsgShmemSize = (uint32_t)(&__top_rpmsg_sh_mem) - rpmsgShmemStart; #elif defined(__ICCARM__) || defined(__GNUC__) ... #endif #endif そして関数の後半では次のようになります。 uint32_t i = 0; /* Only config non-cacheable region on system bus */ assert(nonCacheStart >= 0x20000000); ... while ((nonCacheSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(nonCacheStart % nonCacheSize)); assert(nonCacheSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 0 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_NONCACHE, nonCacheStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #if defined(__USE_SHMEM) i = 0; while ((rpmsgShmemSize >> i) > 0x1U) { i++; } if (i != 0) { /* The MPU region size should be 2^N, 5<=N<=32, region base should be multiples of size. */ assert(!(rpmsgShmemStart % rpmsgShmemSize)); assert(rpmsgShmemSize == (uint32_t)(1 << i)); assert(i >= 5); /* Region 1 setting: Memory with device type, not shareable, non-cacheable */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_RPMSG_SHMEM, rpmsgShmemStart); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 2, 0, 0, 0, 0, i - 1); } #endif どちらのプロジェクトも、プリプロセッサで__USE_SHMEMが定義されています。以下は、セカンダリコアのメモリ構成です。 他に何か見落としている点があるのでしょうか?それとも、私の変更方法が間違っているのでしょうか?メインプロジェクトの設定にある「リンカースクリプトの管理」セクションに何か追加する必要はありますか?機会があれば、EVK-Bボード上で動作するプロジェクトの.zipをアップロードして、問題を確認したり再現したりできると思います。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 あなたの理解は理にかなっていますが、あなたが言及した変更がCM7とCM4の両方のコアに適用されたかどうかは明確ではありませんでした。各コアにはboard.hの定義があり、そこで、それぞれがMPUの独自の構成を使用して、初期ハードウェア初期化時にセットアップを行います。ご指摘の変更がプライマリコアのみに適用された場合、コアがメモリ領域を均等に扱わない可能性があり、その結果、このような予期せぬ動作が発生すると考えられます。 変更が両方のコアに適用され、MPU設定が一致していることを確認してください。また、両方のプロジェクトのプリプロセッサ定義で__USE_SHMEMが設定されていることも確認してください。 Re: Multicore Project setup of an additional MPU region こちらが.zipファイルですその中には、M7およびM4プロジェクトが含まれている。修正しても結局うまくいかなかったので、修正前の状態のままにしておきました。この例では、ターミナルを開いて中央のボタンを押すと、m7コアとm4コアの両方からメッセージが表示されます。画面上を移動する設定アイコンには、説明されているように多数の不具合が発生しています。 m7プロジェクトから__USE_SHMEMプリプロセッサを削除すると、設定アイコンの不具合は解消されますが、マルチコア通信が失敗します。 上記で適用した変更を加えることで設定アイコンも修正されますが、マルチコア通信は失敗します。 このデモで使用されているスクリーンはRK055HDMIPI4MA0です。 Re: Multicore Project setup of an additional MPU region 残念ながら、新しいメモリ領域定義を作成する前に: #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ 私は単に、キャッシュ以外の用途で定義済みのメモリ領域を再利用していただけです。 #define BOARD_MPU_REGION_NONCACHE (10) /* Noncacheable space in application */ そして、私も同じ結果になった。非キャッシュ領域に合わせて、新しいメモリ領域の定義を10に変更しました。コア同士の通信はうまくいかなかった。 ブレークポイントを使用して両方のコアでrpmsg共有メモリの開始位置とサイズを確認しましたが、両方とも正しい開始位置(0x20340000)とサイズ(0x10000)でした。両方のコアのARM_MPU_RASR()関数の4番目のパラメータを1に変更し、その領域が「共有可能」であることを示すようにしました。相変わらず成果は出ていない。あなたかチームメンバーの方に時間があれば、私のプロジェクトのコードを別の返信に投稿しましたので、ご覧ください。試せばいいアイデアが尽きかけています。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 わかった。最初の返信に戻りますが: あなたは、メモリ領域の新しい定義を作成したと述べました。 #define BOARD_MPU_REGION_SHMEM (16) /* rpmsg shared memory */ しかし、ARM_MPU_RBAR() の定義では、MPU_RBAR_REGION_Msk が使用されており、これは 15 と定義されています。 #define MPU_RBAR_REGION_Msk (0xFUL /*<< MPU_RBAR_REGION_Pos*/) CM7では、地域の数を16と定義しており、0~15の番号が付けられている。 つまり、実際にはリージョン0を設定しているのです。 Re: Multicore Project setup of an additional MPU region こんにちは、 @CMoran さん。 プロジェクトをビルディングし、その結果生まれた.ldのメモリ領域を分析した後、LVGLのフレームバッファとマルチコアメッセージバッファが、非連続した物理メモリであるためマージできない別々のメモリ領域に配置されている領域が見えます。 LVGLフレームバッファ用のNCACHE_REGION(アドレス0x81000000、16MB、SDRAM内) マルチコアメッセージバッファ用のrpmsg_sh_mem(アドレス0x20340000、64KB、OCRAM内) とはいえ、MPUリージョン7は現在、キャッシュ可能なノーマルメモリとして0x20300000〜0x2037FFFF KB(512KB)をカバーしており、この範囲にはrpmsg_sh_mem領域も含まれます。これにより、共有メモリがキャッシュ可能になり、あなたが見ているようなコア間通信エラーが発生する可能性があります。リージョン7のサイズを縮小して、すでにキャッシュできないリージョン3にrpmsg_sh_memが落ちるようにすることは、既存ドライバのMPUレベルの変更なしにメッセージバッファの適切な機能を確保する簡単な解決策かもしれません。 Re: Multicore Project setup of an additional MPU region こんにちは、 @EdwinHzさん あなたの提案を少し試してみました。MPUのリージョン7(OCRAM2)を512KBから256KBに変更しました。 /* Region 7 setting: Memory with Normal type, not shareable, outer/inner write back */ MPU->RBAR = ARM_MPU_RBAR(BOARD_MPU_REGION_OCRAM_B, 0x20300000U); MPU->RASR = ARM_MPU_RASR(0, ARM_MPU_AP_FULL, 0, 0, 1, 1, 0, ARM_MPU_REGION_SIZE_256KB); __USE_SHMEM プリプロセッサを削除した後、rpmsg_sh_mem は MPU 領域 3 にフォールスルーしますが、これは既にキャッシュ不可として定義されています。私が作成したデモは、意図したとおりに動作するようになりました。
View full article
I.MX8 NPUのScarthgapとWrynoseの性能差 こんにちは、NXPさん。 NXPが提供する`mobilenet_v1_1.0_224_quant.tflite`のベンチマークテストを実施しました。VX NPUデリゲートを用いたモデル。以下の結果は、Scarthgap 6.6.23および Wrynose 6.18.37 で繰り返しベンチマークを実行した際の、定常状態の `Inference (avg)` 実行時間です。 Wrynoseの平均推論時間は、Scarthgapの結果よりも約27%長い。 この差は想定内ですか?確認すべきNPU、デリゲート、またはベンチマークの設定はありますか? ベンチマークコマンドは以下のとおりです。 ```bash ./benchmark_model--graph=mobilenet_v1_1.0_224_quant.tflite --external_delegate_path=/usr/lib/libvx_delegate.so 「`」 敬具 ガブリエル・ゴスデン Re: I.MX8 NPU performance difference between Scarthgap and Wrynose こんにちは、 i.MX の8M Plus EVKでも同様の性能差を再現できました。同じMobileNetモデルとテスト構成を用いて、Scarthgapで約2.96ms、Wrynoseで3.55msと約20%の推論時間増加を測定しました。 私のテストでは、両方のリリースで完全なモデルが正常に委任されており、関連するNPU/MLクロック周波数も同じレートで設定されていることが確認されました。プロファイリングによって、パフォーマンスの差はVXデリゲートの実行パス内に留まっていることも確認しました。 この挙動は再現可能であり、利用可能な結果はCPUフォールバックや低いNPUクロック周波数ではなく、ソフトウェア実行スタックに関連していることが示されています。
View full article
FS26 standby Hi, NXP expert, I have encountered a problem related to FS26: Testing revealed that the FS26 cannot enter standby mode. Single-step execution continues, but the FS26 fails to enter standby mode. A reset occurs whenever the Sbc_fs26_SetOperatingMode() interface is run at full speed. The hardware wake signal has been removed, and no other signals are connected to the reset pin. Small Engine Driver Re: FS26 standby Hi Chenxu From which state did you switch to standby state? Could you please provide the command you issued? Re: FS26 standby Hi, thank you for your help, the problem is solved. Testing revealed that when the wake-up time is less than 5ms, reading the M_WIO_FLG register returns 0, indicating that the wake-up source cannot be read. Could you please help answer this question? Thank you. Re: FS26 standby HI CHENXU Please submit a new ticket for the new topic! https://support.nxp.com/s/?language=en_US
View full article
Request for timing model (.v) for LPPDR4 simulation using HyperLynx. Hi, I am using MIMX8ML8CVNKZAB for a project and trying to simulate the LPDDR4-interface using HyperLynx. Hyperlynx request a timing model file (*.v) for the memory controller. Can you please provide me with the timing model for MIMX8ML8CVNKZAB. Best regards, Buddika Re: Request for timing model (.v) for LPPDR4 simulation using HyperLynx. Hello, We don't provide special Verilog Design File for our chip, we just follow JEDEC spec, and Hyperlynx provide many standard .v file for different DDR type. Use the default timing is enough, for example: Best regards.
View full article
IC COD COD(ウェハーの位置)の確認にご協力ください。 MC9S12XDP512MAG Re: IC COD こんにちは、Weijun Ni ご連絡ありがとうございます。 残念ながら、COD/COA情報はコミュニティ内で共有することは許可されていません。 https://support.nxp.com/s/?language=en_US からチケットを送信してください。そちらでサポートいたします。 ご理解いただきありがとうございます。 ベッキー
View full article
MIMXRT1176DVMABのための最小システムデザインガイド 親愛なるNXPサポートチームへ、 私はQuectel RG255CGL00AB-4M2-SGASA_A モデムを中心に構築されたネットワーク製品のために、 MIMXRT1176DVMAB を基にしたカスタムPCBを設計しています。最初のバージョンは順調に動作しており、現在i.MX RT1176を使用した次期バージョンの開発を進めています。 MCUはMacとQuectelモデムの間に位置し、Mac向けのUSBネットワークインターフェースとインターネットトラフィックの転送を提供します。また、モデムの起動・回復、デバイス識別、トラフィックの制限と使用状況の計定、診断、安全なファームウェアアップデート、リモートフリートマネジメントも、補助アプリを必要とせずに処理します。 以下の場所を教えていただけるか、案内していただけませんか: 電源ユニット、クロック、起動設定、リセット、外部フラッシュ、プログラミング/デバッグインターフェースを網羅した簡潔な 最小システムのハードウェアデザインガイド です。 の 回路図シンボルとPCBフットプリントのCADファイル(KiCad互換フォーマットが望ましい)。 カスタムPCB上でMCUを実装するための関連する参考回路図やアプリケーションノートなどがあれば教えてください。 EVKB回路図には初期設計には不要なペリフェラルが多く含まれているため、重要な回路の明確な参照が特に役立ちます。 お時間とご協力に感謝いたします。 Re: Minimum-System Design Guide for MIMXRT1176DVMAB こんにちは、 @Onyeka さん。 まずは MIMXRT1160/1170プロセッサのハードウェア開発ガイドから始めることをお勧めします。そこには基板レイアウトの推奨事項や設計チェックリストの情報が載っています。さらに、一部のピンが使用されない場合、ガイドには未使用のピンの取り扱いに関する推奨事項を記載したセクションが含まれています。 CADモデルについては、 i.MX RT1170 製品ページの購入/Parametricセクションで特定の部品番号を検索すると見つかります。 よろしくお願いします パブロ
View full article
IC COD 请帮忙确认晶圆位置(COD) MC9S12XDP512MAG Re: IC COD 你好倪伟军 感谢您的联系。 遗憾的是,社区不允许分享死亡/死亡原因信息。 请提交工单至 https://support.nxp.com/s/?language=en_US ,我们将竭诚为您提供帮助。 谢谢您的理解 贝基
View full article