Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
处理器间通信:rpmsg_char + tinycbor 我正在开发 i.MX8MMSoC,希望使用TinyCBOR库的rpmsg_char通道管理两个内核之间的通信。我找不到任何恩智浦的 rpmsg_char 驱动程序,只有标准的imx_rpmsg_tty,虽然它运行良好,但我"怀疑" ,与 rpmsg_char 相比,它的开销更大。 您对选择有什么看法?您有什么意见或建议吗?" 谢谢 核心与内存 Re: Inter-Processor communication: rpmsg_char + tinycbor 你好@gigi1291 希望你一切都好。 实际上,在我们的电路板支持包中你可以找到 rpmsg_char.c驱动程序,但遗憾的是,我们没有与 SDK 集成的示例。 您可以将适用于 cortex M 的 MCUXpresso SDK 中的多核示例作为参考。 顺祝商祺! 萨拉斯
查看全文
High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hi, I'm experiencing significantly higher CPU usage after upgrading my application from Qt5 to Qt6 on an i.MX6 SoloX platform using the Vivante GPU with a Yocto-based BSP. With Qt5, the application typically consumed around 40% CPU, but after migrating to Qt6, the usage has nearly doubled to ~80%. This issue is reproducible even with official Qt6 example applications. I have verified that the application is utilizing the OpenGL backend, so hardware acceleration appears to be in use. Is this elevated CPU usage expected behavior with Qt6 on the i.MX6SX platform? Are there any known optimizations, GPU driver configurations, or Qt6-specific settings that could help reduce CPU load? Any guidance or suggestions would be greatly appreciated. Regards, Manoj S Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hello  Vivante support Qt6 but your linux version is not supported by NXP you should go with your vendor. Regards Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hi, We are using yocto scarthgap version, the machine is var-som-imx6. The kernel version is v6.1.138, and the Qt version is v6.8.3. The kernel-moduleimx-gpu-viv version is v6.4.11.p2.4.  Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU This looks like ai generated slop.  And the link you provide is just some religious subreddit. Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Yes, elevated CPU usage with Qt6 on the i.The MX6 SoloX platform is a known issue. Qt6 introduces a more demanding rendering pipeline, and the Vivante GPU on SoloX has limited capabilities, which can lead to higher CPU load even with OpenGL acceleration. Suggested optimizations: - Use Qt Quick Compiler to precompile QML. - Enable framebuffer compression and Vivante GPU tuning via BSP. - Consider lazy loading and scene graph caching strategies. - Use Qt Quick Controls 2 instead of legacy controls for better performance. More insights are discussed in this NXP community thread. Best Regards, Thomas Henry Re: High CPU Usage with Qt6 on i.MX6SX Using Vivante GPU Hello, Which yocto are you using? since 6.6.52 works with QT6, don.t try to update since the gpu version works according to the qt you have installed. Regards
查看全文
Fetch source code error Hello NXP, I want to build the image for S32G with version BSP33, I use the follow command to fetch the source: repo init -u https://github.com/nxp-auto-linux/auto_yocto_bsp -b release/bsp33.0 repo sync I get the error message: curl: (6) Could not resolve host: source.codeaurora.org\n' Syncing: 88% (8/9), done in 1m28.689s Syncing: 133% (12/9) 2:09 | 1 job | 0:35 meta-linaro @ sources/meta-linaroThe following projects failed and could not be synced: - sources/meta-alb - sources/meta-linaro - sources/meta-qoriq error: Unable to fully sync the tree error: Downloading network changes failed. Failing repos (network): sources/meta-alb sources/meta-alb sources/meta-linaro sources/meta-linaro sources/meta-qoriq sources/meta-qoriq error: Checking out local projects failed. Failing repos (checkout): sources/meta-alb sources/meta-linaro sources/meta-qoriq Try re-running with "-j1 --fail-fast" to exit at the first error. I think the reason is source.codeaurora.org no longer to access now. So how do I modify the default.xml in .repo/manifests to download the source code for BSP33? Re: Fetch source code error Hello, @sinjhe  You are welcome, if any other issues, welcome raising new posts, we are happy to support. BR Chenyin Re: Fetch source code error Hello chenyin, It works, thank you. Re: Fetch source code error Hello, @sinjhe  Thanks for your post. Since the source.codeaurora.org cannot provide service for building the old version BSP, I suggest referencing the following document for building it with updated repo settings https://community.nxp.com/t5/S32G-Knowledge-Base/Supplement-for-Building-Older-AUTO-Linux-BSPs/ta-p/2105913 Sorry for your inconvenience. BR Chenyin
查看全文
SAF85xx Hi,  Thank you for your reply.  For the SAF85xx, I have another question for error reporting. I would like to know whether error reporting is existed or not regarding the stack overflow and A53/M7 core overrun. In case of stack overflow and core overrun, I couldn't find in digital reference manual. Could you please send me your reply? Thanks. Re: SAF85xx Hi This part is special part you can submit it from as below picture showing 
查看全文
S32 Design Studio 3.6.2 generates invalid driver code Here are the relevant details: S32 Design Studio for S32 Platform Version: 3.6.2 Build id: 250529 (Update 2) Target processor: S32K148 Autogenerated driver: Adc_Ip The autogenerated code that seems invalid: /** * @brief ADC Ip Config for the ADC0 configuration variant . */ const Adc_Ip_ConfigType AdcHwUnit_0 = { ADC_IP_CLK_FULL_BUS, /* ClockDivide */ ADC_IP_CLK_EIGHTH_BUS, /* CalibrationClockDivide */ ADC_IP_CLK_ALT_1, /* InputClock */ 1U, /* SampleTime */ (boolean)FALSE, /* AvgEn */ ADC_IP_AVG_4_CONV, /* AvgSel */ ADC_IP_RESOLUTION_12BIT, /* Resolution */ ADC_IP_TRIGGER_SOFTWARE, /* TriggerMode */ #if (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) ADC_IP_PRETRIGGER_SEL_PDB, /* PretriggerSel */ ADC_IP_TRIGGER_SEL_PDB, /* TriggerSel */ #endif /* (ADC_IP_ENABLE_SIM_SOURCE_SELECTION == STD_ON) */ (boolean)FALSE, /* DmaEnable */ ADC_IP_VOLTAGEREF_VREF, /* VoltageRef */ (boolean)FALSE, /* ContinuousConvEnable */ #if (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) (boolean)FALSE, /* SupplyMonitoringEnable */ #endif /* (ADC_IP_SUPPLY_MONITORING_ENABLED == STD_ON) */ (boolean)FALSE, /* CompareEnable */ (boolean)FALSE, /* CompareGreaterThanEnable */ (boolean)FALSE, /* CompareRangeFuncEnable */ 0U, /* CompVal1 */ 0U, /* CompVal2 */ 4U, /* UsrGain */ 0U, /* UsrOffset */ 1U, /* NumChannels */ AdcIpChansConfig_0, /* ChannelConfigs */ #if (ADC_IP_AIEN_INTERRUPT_ENABLE == STD_ON) &NULL_PTR /* ConversionCompleteNotification */ #endif /* (ADC_IP_AIEN_INTERRUPT_ENABLE == STD_ON) */ }; (The line that fails to compile: &NULL_PTR) The compiler (correctly) fails to compile this code with error: lvalue required as unary '&' operand Is this an user error on my part? If not, is a fix available or will become available? Thanks Durga Choudhury Re: S32 Design Studio 3.6.2 generates invalid driver code Hi @durga_choudhury  It is good to hear that it is not impacting your progress. I will still make sure the team is aware, just in case it helps improve future versions of the tool or documentation. Re: S32 Design Studio 3.6.2 generates invalid driver code Hello @VaneB  Thank you very much for your help in this matter. This is more of a code formality issue for us ("was the auto-generated code altered in any way?") than a show stopper. This is not blocking us. Regards Durga Choudhury Re: S32 Design Studio 3.6.2 generates invalid driver code Hi @durga_choudhury  Thanks so much for your feedback. I took a look at the generated code and, as you pointed out, there is an error when assigning NULL_PTR to the Conversion Complete Notification. I will share this information with the appropriate team for further investigation. In the meantime, here are a couple of quick suggestions that might help: You can manually remove the "&" symbol from the ADC configuration struct. Please note that this character will be reinserted each time the code is updated in ConfigTools. Alternatively, you could assign a dummy handler where the interrupt is disabled. BR, VaneB
查看全文
RTSP server crash on i.MX8MP Verdin after 2 streams disconnect (EGL / libdrm / gstreamer issue) Hello, I am working on an RTSP streaming application running on a Toradex Verdin i.MX8MP module using the NXP Yocto BSP (imx-gpu-viv for EGL). The application uses GStreamer with the NXP hardware-accelerated pipeline (vpuenc_h264) to serve multiple H.264 streams via gst-rtsp-server. Issue: When two or more RTSP clients are connected and two disconnect (one after the other), the application crashes inside eglTerminate() while tearing down the pipeline. The backtrace shows that the crash happens inside drmFreeDevice() in libdrm, which is called indirectly from eglTerminate(). In GDB, the device pointer in drmFreeDevice sometimes contains a small integer value (e.g., 0x21) instead of a valid pointer, which triggers an invalid memory access. The crash only occurs when using gldeinterlace (OpenGL-based deinterlacing) in the pipeline with glupload and gldownload. If I switch to CPU-based deinterlacing (deinterlace element), the crash does not happen. It uses DMABuf. The application uses 4 cameras, and one client connects to one stream. 2 clients cannot connect to the same camera stream. It seems to be related to GstGLDisplayEGL. This suggests that eglTerminate is being called with an already-freed or corrupted DRM device pointer, possibly due to improper cleanup of GPU resources in multi-stream scenarios. In the images, you can see the backtrace for 2 clients disconnecting: First client disconnects and there is one call for drmFreeDevice Second client disconnects and there are 2 calls for drmFreeDevice          Graphics & Display Re: RTSP server crash on i.MX8MP Verdin after 2 streams disconnect (EGL / libdrm / gstreamer issue) I found a workaround: I set media reusable and shared. I used this commit that was missing from gstreamer1.0 tag 1.24.0 More info here Re: RTSP server crash on i.MX8MP Verdin after 2 streams disconnect (EGL / libdrm / gstreamer issue) Hello, You need contact Toradex, since this not happens with the MX8MP EVK. Regards
查看全文
iMXRT1051 ではデフォルトの弱い TMR3_IRQHandler() をオーバーライドできません 新しいTMR3_IRQHandler()が呼び出される/リンクされることができません SDK_2_13_0_MIMXRT1052xxxxB/ボード/evkbimxrt1050/ドライバ例/qtmr/タイマー MCUXpresso FreeRTOS 環境での例に基づくコードの追加。 TMR3_IRQHandler() を実装し、'weak' をオーバーライドしました。 startup_mimxrt1052.cpp だが、デフォルトの「弱い」ものでも と呼ばれる。弱いオリジナルをコメントアウトすると、リンクエラーが発生します。 TMR3_IRQHandler()。 MCUXpresso プロジェクトを新しい TMR3_IRQHandler() 実装を認識するように構成するにはどうすればよいですか? Re: Can't Override default weak TMR3_IRQHandler() w/iMXRT1051 他のNXP開発者がFreeRTOSでIRQハンドラーを追加する方法を学べるように、このThreadを維持します。 私のハンドラーのプロトタイプは次のようになります。 void TMR3_IRQHandler(void) 以下の方法でも予選を試みましたが、うまくいきませんでした。 __attribute__ ((裸))void TMR3_IRQHandler(void) Re: Can't Override default weak TMR3_IRQHandler() w/iMXRT1051 こんにちは@thartai 、 この質問は既にサポート チケットで提起されていることに気づきました。サポート プロセスを単一のチャネルで維持するために、そこで会話を継続します。 BR ハビブ
查看全文
LPSPI 读取额外字节 你好 我对 S32K144 上的 LPSPI 模块很头疼。我想发送一些字节并接收一些不同长度的字节。这行得通,唯一的不同是我必须发送一个额外的虚拟字节。假设我想要 Tx 2 字节和 Rx 2 字节,我总共需要 Tx 5 字节。我只需要发送 4 字节即可写入/读取 4 字节,我错过了什么? 这就是我的功能: void Spi_Transceive(uint8_t txLen, uint8_t *txBuf, uint8_t rxLen, uint8_t *rxBuf, uint8_t module, uint8_t pcs) { uint16_t total = rxLen + txLen - 1; uint32_t totalBytes = 0; const uint32_t tcr_base = LPSPI_TCR_FRAMESZ(7) | // 8-bit frames LPSPI_TCR_PCS(pcs) | LPSPI_TCR_CPOL(0) | LPSPI_TCR_CPHA(1) | LPSPI_TCR_PRESCALE(0) | LPSPI_TCR_WIDTH(0) | LPSPI_TCR_CONTC(1); LPSPI2->CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK; LPSPI2->SR = 0xFFFFFFFFu; LPSPI2->FCR = LPSPI_FCR_TXWATER(0) | LPSPI_FCR_RXWATER(0); while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)) ; LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(1); LPSPI2->TDR = (uint8_t)txBuf[0]; totalBytes++; for (uint8_t i = 1; i < txLen; i++) { if (totalBytes == total) { LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(0); } while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)) ; LPSPI2->TDR = (uint8_t)txBuf[i]; totalBytes++; while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)) ; (void)LPSPI2->RDR; } if (rxLen > 0) { while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)) ; LPSPI2->TDR = 0x00; // NOP while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)) ; (void)LPSPI2->RDR; } else { return; } for (uint8_t i = 0; i < rxLen; i++) { if (totalBytes == total) { LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(0); } while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)) ; LPSPI2->TDR = 0x00; // NOP totalBytes++; while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)) ; rxBuf[i] = (uint8_t)LPSPI2->RDR; } } 下面是初始化过程: PCC->PCCn[PCC_LPSPI2_INDEX] = 0; /* Disable clocks to modify PCS ( default) */ PCC->PCCn[PCC_LPSPI2_INDEX] = PCC_PCCn_PR_MASK /* (default) Peripheral is present. */ | PCC_PCCn_CGC_MASK /* Enable PCS=SPLL_DIV2 (40 MHz func'l clock) */ | PCC_PCCn_PCS(6); LPSPI2->CR = 0x00000000; LPSPI2->IER = 0x00000000; LPSPI2->DER = 0x00000000; LPSPI2->CFGR0 = 0x00000000; LPSPI2->CFGR1 = LPSPI_CFGR1_MASTER_MASK | LPSPI_CFGR1_SAMPLE(1) | LPSPI_CFGR1_AUTOPCS(0) | LPSPI_CFGR1_PCSPOL(0b0000); LPSPI2->TCR = LPSPI_TCR_CPHA_MASK | LPSPI_TCR_PRESCALE(2) | LPSPI_TCR_PCS(0) | LPSPI_TCR_FRAMESZ(7) | LPSPI_TCR_CONT(1); LPSPI2->CCR = LPSPI_CCR_SCKPCS(4) | LPSPI_CCR_PCSSCK(4) | LPSPI_CCR_DBT(8) | LPSPI_CCR_SCKDIV(8); LPSPI2->FCR = LPSPI_FCR_TXWATER(3); LPSPI2->CR = LPSPI_CR_MEN_MASK | LPSPI_CR_DBGEN_MASK;    Re: LPSPI read extra byte 谢谢您的帮助,彼得。 Re: LPSPI read extra byte 您好, 清除 TCR 中的 CONTC 位。 参见所附的 main.c我在 S32K144_Project_LPSPI 演示中使用的文件。 它提供了正确的框架。我测试了以下序列 BR, Petr Re: LPSPI read extra byte 你好,Petr, 感谢您的支持。第一次读取尝试总是永远停留在 while RDF 屏蔽循环中。即使是你的代码知道为什么吗? if (rxLen == 0) { LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(0); while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)) // Stuck here on 1st read ; (void)LPSPI2->RDR; } Re: LPSPI read extra byte 您好, 每次写入 TDR 时,都应递增总字节数。每次写入 TDR 时,都应读取 RDR。清除 CONT 后,您应该最终阅读 RDR。试试下面这个,但我没有测试过。 void Spi_Transceive(uint8_t txLen, uint8_t *txBuf, uint8_t rxLen, uint8_t *rxBuf, uint8_t module, uint8_t pcs) { uint16_t total = rxLen + txLen; uint32_t totalBytes = 0; const uint32_t tcr_base = LPSPI_TCR_FRAMESZ(7) | // 8-bit frames LPSPI_TCR_PCS(pcs) | LPSPI_TCR_CPOL(0) | LPSPI_TCR_CPHA(1) | LPSPI_TCR_PRESCALE(0) | LPSPI_TCR_WIDTH(0) | LPSPI_TCR_CONTC(1); LPSPI2->CR |= LPSPI_CR_RTF_MASK | LPSPI_CR_RRF_MASK; LPSPI2->SR = 0xFFFFFFFFu; LPSPI2->FCR = LPSPI_FCR_TXWATER(0) | LPSPI_FCR_RXWATER(0); if (txLen>0) { LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(1); while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)); LPSPI2->TDR = *txBuf++; totalBytes++; while(totalBytes < txLen) { while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)); LPSPI2->TDR = *txBuf++; totalBytes++; while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)); (void)LPSPI2->RDR; } if(rxLen==0) { LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(0); while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)); (void)LPSPI2->RDR; } } if (rxLen>0) { if(txLen==0) LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(1); while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)); LPSPI2->TDR = 0x00; // NOP totalBytes++; if(txLen>0) { while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)); (void)LPSPI2->RDR; } while(totalBytes < total) { while (!(LPSPI2->SR & LPSPI_SR_TDF_MASK)); LPSPI2->TDR = 0x00; // NOP totalBytes++; while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)); *rxBuf++ = LPSPI2->RDR; } LPSPI2->TCR = tcr_base | LPSPI_TCR_CONT(0); while (!(LPSPI2->SR & LPSPI_SR_RDF_MASK)); *rxBuf++ = LPSPI2->RDR; } } BR, Petr
查看全文
S32K344 LPCMP Hi, Since there are no official example projects for the S32K344 LPCMP peripheral, I’ve created a minimal setup myself. I’m using CMP1_IN0 and CMP1_IN1 as input channels, and I expect to observe a signal on CMP1_OUT. However, I’m not seeing any output activity on CMP1_OUT. I suspect something might be missing in the configuration or initialization. I have attached my project  Re: S32K344 LPCMP Thank you for your interest in our products and for contributing to our community. You need to check the following box to enable CMP output pin in Cmp driver. We hope this resolves your issue.
查看全文
Need a EthernetDual.tar.gz apk source to enable Dual ethernet support in Android 10 Hi, I am trying to enable both Ethernet ports on my i.MX8MP custom board. I successfully enabled both Ethernet ports in Android 10, but I am not able to use them simultaneously. When I remove eth0, eth1 works, and when I remove eth1, eth0 works. I followed the guide “How to Enable Dual Ethernet on Android 11.pdf”, which mentions that the EthernetApplication needs to be replaced. I am looking for that file could you please provide it? Thanks & Regards, Subash P Android i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Need a EthernetDual.tar.gz apk source to enable Dual ethernet support in Android 10 Hi @Zhiming_Liu  Thank you for your response. Re: Need a EthernetDual.tar.gz apk source to enable Dual ethernet support in Android 10 Hi, Please check private message Best Regards, Zhiming
查看全文
Android Tag Writer NTAG 424 DNA I'm using TagWriter to configure an SDM image, but the CMAC offset is incorrect no matter how I set it. I'm also using it according to the documentation, but it's still incorrect. Could you please explain this to me? Re: Android Tag Writer NTAG 424 DNA Hello, I would like to ask why when I use tag info to check the card information, the first time I swipe the card, it shows NXP, but after I change the data, it shows suspected pirated. And sometimes when I swipe other cards, they show NXP, and sometimes they show pirated. Re: Android Tag Writer NTAG 424 DNA Hello @umi2025 Could you please describe what is the procedure you have followed? Please, refer to TagWriter User Manual; Chapter 4 describes the procedure for enabling and configuring the Mirroring features by using this app. Additionally, I will recommend using RFIDDiscover, which is a tool for testing and configuring the tags and cards based on our devices. It is also recommended using PEGODA Contactless Smart Card Reader | NXP Semiconductors together with this tool. Something important to remark is that RFID Discover is secured under NDA and must be requested from the Secure Resources. Regards, Eduardo.
查看全文
Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hi, I am working with the S32G274ARDB2 image, where I have enabled Xen hypervisor support as per the guidelines in the Linux BSP 38.0 User Manual. After building the image, I observed the following output from the `lsblk` command in the Xen environment: NAME                 MAJ:MIN   RM   SIZE     RO     TYPE     MOUNTPOINTS mmcblk0          179:0          0    14.8G     0       disk |-mmcblk0p1    179:1           0    64M      0       part |-mmcblk0p2   179:2          0   980M     0       part      / |-mmcblk0p3   179:3          0   980M     0       part `-mmcblk0p4   179:4          0   980M     0       part I would like to understand how to manage the number of `mmcblk0` devices (partitions) exposed to Xen. Specifically, I need guidance on the following:   1. How can I restrict the number of `mmcblk0` partitions visible to Xen or specific domains (e.g., Dom0 or DomU)? 2. Is it possible to add or control the number of `mmcblk0` partitions dynamically within Xen, and if so, what configurations or tools should I use? 3. Are there specific device tree settings, Xen configuration files, or U-Boot commands that I should modify to achieve this control?   Any references to relevant documentation, configuration examples, or steps to achieve this would be greatly appreciated. Please let me know if additional details about my setup are required.   Thank you for your support. Re: Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hello @hulk101, Were you able achieve your goal with the information I provided? If so, please select my last reply as an accepted solution, if not, please let me know if you encounter any errors. Thanks!  Re: Controlling mmcblk0 Devices in Xen on S32G274ARDB2 Hello @hulk101, Xen is not an NXP product and therefore I cannot offer you much support about it. However, here is some information that you might find useful. Dom0 has default access to all hardware resources, this includes SD/eMMC partitions (mmcblk0p1, mmcblk0p2, mmcblk0p3, ...), although it might be possible to restrict access to Dom0 I would not recommend it since Dom0 is intended to create all other domains (like Domu). DomU does not have access to all hardware resources by default, for example for partitions, you can dynamically attach them by running: xl block-attach domu1 phy:/dev/mmcblk0p3 xvdb w or to detach them: xl block-detach domu1 xvdb You can also add those commands in the configuration files of the configuration file of domu1. Please note that the commands might change slightly depending on the partitions needed and the domain names. This way the partition will appear in domu1 in: /dev/xvdb There are some configuration you can perform in the device tree, however for the requirements you have it does not seem that it would be the correct approach, however, please check https://wiki.xenproject.org/wiki/Device_tree. Let me know if you have more questions. 
查看全文
IMX95 19 x 19ボードのLPDDR4x構成 こんにちは、 現在、imx95-19*19 と ddr5 evk がありますが、カスタムボードは imx95-19*19 と lpddr4x です。   以下の変数を変更して、ddr5 を搭載した imx95-19*19 マシン [imx95-19x19-lpddr5-evk.conf] を ddr4x をサポートするように変更しました。   //odi_board を mx95lp5 から mx95lp4x に変更 OEI_ボード = "mx95lp4x"   //dddrタイプをlpddr5からlpddr4xに変更する DDR_TYPE = "lpddr4x"   //DDR5ファームウェアをDDR4Xファームウェアに変更しました DDR_FIRMWARE_NAME = " lpddr4x_dmem_v202409.bin \ lpddr4x_dmem_qb_v202409.bin \ lpddr4x_imem_v202409.bin \ lpddr4x_imem_qb_v202409.bin \     1.これらの変更を加えたWICのフラッシュが、imx95を初めて起動するのに十分であり、動作するために必要な他の変更がないかどうかをCAN確認してください。 2.flash.binを使用する必要があるかボードが起動している場合は、WIC イメージをフラッシュするだけで済みますか?この方法を使用する具体的な利点  
查看全文
GMAC_Ip_GetTransmitStatus 関数で予期しない「ビジー」ステータスが発生しました RTD の例「Eth_InternalLoopback_S32K344」で、GMAC_Ip_GetTransmitStatus 関数 (Eth_43_GMAC_TxConfirmation(EthConf_EthCtrlConfig_EthCtrlConfig_0) によって呼び出される) が予期せず GMAC_STATUS_BUSY を返し続ける問題をデバッグしています。コードを分析した結果、ビジー状態の原因となっている特定のチェックを特定しました。 if (((Bd->Des3 & GMAC_TDES3_LD_MASK) != 0U) && ((Bd->Des3 & GMAC_TDES3_OWN_MASK) == 0U)) { // 成功CASE - 記述子が所有されておらず、最後の記述子 } else { Status = GMAC_STATUS_BUSY; // このパスは実行中です } S32K1 用 S32 SDK Re: Unexpected "Busy" Status in GMAC_Ip_GetTransmitStatus Function​ こんにちは@JhonYF 、 ご辛抱いただきありがとうございます。私は次の設定を使用して自分の側で動作を確認しました。 ハードウェア: S32K344EVB-T172 RTD バージョン: 3.0.0 例: Eth_InternalLoopback_S32K344 サンプル プロジェクトに次のようないくつかの調整を加えました。 PLL を有効にし、S32K3 リファレンス マニュアルの推奨事項に合わせてクロック設定を更新します。 EMAC クロック ソースを FIRC (48 MHz) に切り替えます。 システム クロックとペリフェラルのゲーティングを検証します。 ただし、この問題を解決した重要な変更は、emac_mii_rmii_tx_clk ピンの構成でした。内部ループバック モードの場合でも、EMAC モジュールには有効な外部 RMII クロックが必要です。このクロックがない場合、初期化は DMA タイムアウトで失敗し、Eth_43_GMAC_GetPhysAddr() は FF:FF:FF:FF:FF:FF を返します。 SO、次の点を確認してください。 ピン構成はカスタム ボード レイアウトと一致します。 RMIIクロックが存在し、安定している 前に EMAC の初期化。 よろしくお願いいたします。 パベル Re: Unexpected "Busy" Status in GMAC_Ip_GetTransmitStatus Function​ こんにちは@JhonYF 、 設定と観察結果を共有していただきありがとうございます。あなたの説明に基づくと、あなたの実施形態は期待どおりに動作するはずです。確認のため、ボード上の動作をもう一度確認します。 近々休暇を取る予定です。SO、返信が少し遅れる場合がございますのでご了承ください。ご理解とご協力をよろしくお願いいたします。 よろしくお願いいたします。 パベル Re: Unexpected "Busy" Status in GMAC_Ip_GetTransmitStatus Function​ こんにちは@PavelL 、 詳細な更新情報をありがとうございます。問題をさらに診断するための質問を以下にまとめます。 私はカスタム ボード(公式の NXP 評価ボードではありません)でRTD 3.00 を使用しています。 すべてのRMII関連ピン(RMII_LINK_STA、TX/RX、CLKなどを含む)がハードウェアで正しく設定されている MAC クロックは、GMAC のモジュール クロック構成で参照されているFIRC_CLK (48 MHz)から供給されます。 注: MDIO 通信が正常に機能していない ことがわかりました 。これはループバック テストにとって重要ですか? よろしくお願いいたします。 Re: Unexpected "Busy" Status in GMAC_Ip_GetTransmitStatus Function​ こんにちは@JhonYF 、 詳細を共有していただきありがとうございます。問題をより良く理解するために、以下の点を明確にしていただけますか。 S32K3 RTD のどのバージョンを使用していますか? カスタム ボードを使用していますか、それとも公式の NXP 評価ボードを使用していますか? 内部ループバックの場合でも、特にクロック信号については正しいピン構成が必要であることに注意してください。関連するすべてのシステム クロックが適切に設定されていることを確認することが重要です。残念ながら、一部の RTD の例は、S32K3 リファレンス マニュアルに記載されているクロック構成の推奨事項に完全に従っていないことがわかりました。 よろしくお願いいたします。 パベル
查看全文
需要帮助在 i.MX RT1170 上为 S25FL128LAGMFM010 编写 flex spi 或非配置 你好 我正在使用 i.MX RT1170 和外置或非闪存 S25FL128LAGMFM010。 我使用 MCUXpresso 安全配置工具生成了一个 fcb.bin,这个二进制文件与我的板完美搭配。但是,当我使用 flexspi_nor_config.c在 MCUXpresso 集成开发环境中(手动生成/修改),我在调试过程中遇到问题并得到错误信息,请参见附件中的错误信息。 看来,.c我在 MCUXpresso 中进行的配置与工作中的 fcb.bin 不匹配。 我需要以下方面的支持 如何正确编写或对齐 flexspi_nor_config.c 文件用我正在运行的 fcb.bin 的参数? 有办法将 fcb.bin 转换为 flexspi_nor_config.c 吗?直接用于项目? 有 flexspi_nor_config.c 的参考文件吗是否与 S25FL128LAGMFM010 有关? 如能提供任何指导或配置示例,将不胜感激。 提前感谢! Re: Need help writing flex spi nor config for S25FL128LAGMFM010 on i.MX RT1170 你好@sanjana291、 非常感谢您关注我们的产品并使用我们的社区。 关于 " 我使用 MCUXpresso 安全配置工具生成了一个 fcb.bin,这个二进制文件可以完美地与我的板配合使用。但是,当我在 MCUXpresso IDE(手动生成/修改)中使用 flexspi_nor_config.c 时,我在调试过程中会遇到问题并出现错误,请找到错误附件。" 我认为 qspiflash_config(在 flexspi_n or_config.c 文件中)需要基于 MCUXpresso 安全配置工具生成的 fcb.bin 进行修改。 请尝试根据 fcb.bin 修改 qspiflash_config,尤其要注意 lookupTable 的配置。 我们可以看到 fcb.bin 中的前 4 个字节是 ascii " FCFB "。您可以观察 bin 文件和 qspiflash_config .NET 文件之间的对应关系。 希望它能帮到你。 敬上 MayLiu
查看全文
采用 RTD 版本 5.0.0 的 S32K312EVB-Q172 评估板 你好,@nxp团队、 我在 S32 Design Studio 中使用的是 RTD 版本 5.0.0 的 S32K312EVB-Q172 评估板。 我需要这个 RTD 版本和板的基于 AUTOSAR 的 CAN 示例代码。 能否提供示例项目或共享下载链接? 用户接口
查看全文
QuadSPI外部フラッシュからアプリケーションを起動する正しい手順 皆様、 マイクロコントローラが外部 QSPI フラッシュ メモリからアプリケーション コードを起動できるようにするアプリケーション ファームウェアの開発で問題が発生したため、このメールを書いています。具体的には、カスタム MK81 プロトボードで次の例を再現しようとしています。 1. frdmk82f_led_demo_qspi 2. frdmk82f_led_demo_qspi_alias 3. frdmk82f_hello_world_qspi 4. frdmk82f_hello_world_qspi_alias さらに、次の文書に記載されている手順に従いました: MCUブートローダQuadSPIユーザーガイド それにもかかわらず、私は目標を達成することができませんでした。 実を言うと、私の目的に合致する正しい手順がどれなのかを理解するのは非常に難しいです。マターの事実として、readme ファイルと上にリンクされている pdf ドキュメントでは、異なる手順が示されています。簡単なアプリケーション(例えば、外部 QSPI フラッシュから LED 点滅 () を表示しますか? ご説明が明確であることを願っております。ご連絡をお待ちしております。 敬具 ウラジミール・ジトリ Re: Right procedure to boot application from QuadSPI External Flash こんにちは@Vladimir_Zitoli 、 このThreadで言及されているドキュメントと例が、入手可能な唯一の公式ドキュメントです。例やドキュメントについてご質問がございましたら、遠慮なくお知らせください。 BR ハビブ Re: Right procedure to boot application from QuadSPI External Flash 親愛なるハビブ様 残念ながらQCBは正しいです。マターの事実として、エイリアス領域を使用せずにアプリケーションを起動するためにこれを使用しました。MBOOTQSPIUG に記載されている手順は完全ではなく、エイリアス領域を使用した外部ブートに関して多くの重要なポイントが欠落しているようです。エイリアス領域を使用した正しい外部ブート手順を導くドキュメント (サンプル コード、ユーザーガイドなど) をさらに共有していただけると助かります。 敬具、 ウラジミール・ジトリ Re: Right procedure to boot application from QuadSPI External Flash こんにちは@Vladimir_Zitoli 、 例のイメージをフラッシュにアップロードできない理由は、現在別のフラッシュ メモリを使用しているためです。これを念頭に置くと、問題はフラッシュの構成方法、具体的には QCB にあり、これはデバイスによって異なります。QCB 構成の例が記載されている Kinetis Bootloader QuadSPI ユーザー ガイドの第 3.3.2 章を確認することを強くお勧めします。 例 led_demo_qspi_alias_a000 をリファレンスとして使用し、この例にはリンカー ファイルとブートローダーへの必要な変更がすでに含まれているため、ヘッダーと QCB をそれに応じて変更するようにしてください。 BR ハビブ Re: Right procedure to boot application from QuadSPI External Flash 親愛なるハビブ様 ご返信とご協力ありがとうございます。 私は次の qspi フラッシュ部品番号を使用しています: MT25QL128ABA8E12。データシートが添付されています。 ご連絡をお待ちしております。 敬具 Re: Right procedure to boot application from QuadSPI External Flash こんにちは@Vladimir_Zitoli 、返信が遅くなり申し訳ありません。 led_demo_qspi_alias_a000 の例を開始点として使用し、それに基づいて UART3 を使用するためのカスタム コードを追加していることを理解しています。 この例には、FRDM ボードの QSPI フラッシュにリンクされたイメージを生成するために必要な構成がすでに含まれています。この時点では、リンカー ファイル内の何も変更する必要はありません。 現在カスタム ボードを使用していることを念頭に置き、より適切なサポートを提供するために、現在使用している外部 FLASH を教えていただけますか?FRDM のものと同じですか? BR ハビブ Re: Right procedure to boot application from QuadSPI External Flash 親愛なるハビブ様 ご返信よろしくお願いします。 残念ながら、文書に記載されている手順に従う際にいくつかの困難に遭遇しました。 まず、どの段落が私の目標に最も適しているかわかりません。このドキュメントでは、アドレス 0x68000000 を使用する方法と 0x04000000 を使用する方法の 2 つの異なるアプローチについて概説し、次のような追加のヒントも紹介しています。 段落7: QuadSPIイメージのQuadSPIクロックを変更する 付録B: ダイレクトブートモードでKinetisブートローダーを再入力する これらの手順が私のユースCASEでは必須かオプションかは不明です。 これを踏まえて、私はパラグラフ 8 (QSPI エイリアス領域からアプリケーションに対処する) に進むことにし、led_demo_qspi_alias_a000 の例を開始点として使用しました。しかし、例に含まれているリンカー ファイルがドキュメントで提案されているものと異なることに気付きました。 さらに、カスタム コード (具体的には LPUART3 ペリフェラルを使用して「Hello World」メッセージを送信する) を追加しようとしたときに、コンパイル中に次のエラーが発生しました。 frdmk82f_led_demo_qspi_alias_a000 内の '_pvHeapStart' への未定義の参照 この問題の原因を明確にし、セットアップを正しく完了するにはどうすればいいのかアドバイスをいただけませんか? どうぞよろしくお願いいたします。 よろしくお願いします、 ウラジミール・ジトリ Re: Right procedure to boot application from QuadSPI External Flash こんにちは@Vladimir_Zitoliさん、 FRDM-KL82 Freedom 開発プラットフォームを利用する Kinetis ブートローダー QuadSPI ユーザー ガイドを参照することをお勧めします。 以下のページから直接アクセスできます。 BR ハビブ
查看全文
MPC5746R JTAGパスワード 問題1: 以下のように関数 void debug_lock() で Jtag をロックしましたが、他の関数で JTAG のロックを解除するにはどうすればよいでしょうか? 問題2: Lauterbach は sys.option.KEYCODE で MPC5746R を接続できますが、フラッシュをプログラムできません。誰か例を挙げてもらえますか? void debug_lock()  { /****************************/ /* プログラムパスワード */ /****************************/ /* JTAGパスワードをプログラムする */ flash_program(0x00400120, JTAG_PASSWORD_0, JTAG_PASSWORD_1); flash_program(0x00400128, JTAG_PASSWORD_2, JTAG_PASSWORD_3); flash_program(0x00400130, JTAG_PASSWORD_4, JTAG_PASSWORD_5); flash_program(0x00400138, JTAG_PASSWORD_6, JTAG_PASSWORD_7); /* プログラム PASS グループ 0 のパスワード */ flash_program(0x00400140, PASSWORD_PG0_0, PASSWORD_PG0_1); flash_program(0x00400148, PASSWORD_PG0_2, PASSWORD_PG0_3); flash_program(0x00400150, PASSWORD_PG0_4, PASSWORD_PG0_5); flash_program(0x00400158, PASSWORD_PG0_6, PASSWORD_PG0_7); /* プログラム PASS グループ 1 パスワード */ flash_program(0x00400160, PASSWORD_PG1_0, PASSWORD_PG1_1); flash_program(0x00400168, PASSWORD_PG1_2, PASSWORD_PG1_3); flash_program(0x00400170, PASSWORD_PG1_4, PASSWORD_PG1_5); flash_program(0x00400178, PASSWORD_PG1_6, PASSWORD_PG1_7); /* プログラム PASS グループ 2 パスワード */ flash_program(0x00400180, PASSWORD_PG2_0, PASSWORD_PG2_1); flash_program(0x00400188, PASSWORD_PG2_2, PASSWORD_PG2_3); flash_program(0x00400190, PASSWORD_PG2_4, PASSWORD_PG2_5); flash_program(0x00400198, PASSWORD_PG2_6, PASSWORD_PG2_7); /* プログラムPASSグループ3のパスワード */ flash_program(0x004001A0, PASSWORD_PG3_0, PASSWORD_PG3_1); flash_program(0x004001A8, PASSWORD_PG3_2, PASSWORD_PG3_3); flash_program(0x004001B0, PASSWORD_PG3_4, PASSWORD_PG3_5); flash_program(0x004001B8, PASSWORD_PG3_6, PASSWORD_PG3_7); /****************************/ /* プログラムパス DCF */ /****************************/ /* パスワードグループ 0 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100100); /* LOCK0_PG0 */ DCF_プログラム(0x00000000, 0x00100104); /* LOCK1_PG0 */ DCF_プログラム(0x00000000, 0x00100108); /* LOCK2_PG0 */ DCF_プログラム(0x40000000, 0x0010010C); /* LOCK3_PG0 [DBL=1] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100110); /* LOCK0_PG1 */ DCF_プログラム(0x00000000, 0x00100114); /* LOCK1_PG1 */ DCF_プログラム(0x00000000, 0x00100118); /* LOCK2_PG1 */ DCF_program(0x00000000, 0x0010011C); /* LOCK3_PG1, [DBL=0] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100120); /* LOCK0_PG2 */ DCF_プログラム(0x00000000, 0x00100124); /* LOCK1_PG2 */ DCF_プログラム(0x00000000, 0x00100128); /* LOCK2_PG2 */ DCF_program(0x00000000, 0x0010012C); /* LOCK3_PG2, [DBL=0] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100130); /* LOCK0_PG3 */ DCF_プログラム(0x00000000, 0x00100134); /* LOCK1_PG3 */ DCF_プログラム(0x00000000, 0x00100138); /* LOCK2_PG3 */ DCF_program(0x00000000, 0x0010013C); /* LOCK3_PG3, [DBL=0] */ /****************************/ /* プログラム検閲 DCF */ /****************************/ DCF_program(0x00000000, 0x001000B0); /* != 0x55AA で検閲が有効 */ /****************************/ /* プログラムのライフサイクル */ /****************************/ /* お客様への納品から OEM 生産までのライフサイクルを前進させる */ flash_program(0x00400218, 0x55AA50AF, 0x55AA50AF);/* CustomerDelを無効にする*/ flash_program(0x00400220, 0x55AA50AF, 0x55AA50AF);/* OEMProductionを検証する*/ } Re: MPC5746R JTAG PASSWORD こんにちは、 スクリプトは消去を開始できません。これは通常、デバッガーのフラッシュ初期化が正しくないことが原因です。 flash.list をチェックして、ブロックが正しく初期化されているかどうか、また書き込みが保護されていないかどうかを確認します。 デバイスの消去には、Lauterbach に組み込まれているスクリプトを使用することもCANます。TAB ドロップダウン メニュー MPC5xxx で見つかります。 ただし、一般的にサードパーティ ツールの使用に関するCASEの場合は、Lauterbach サポートに連絡することをお勧めします。 添付されているのは、MPC5746R デバイスのフラッシュ消去用の私の簡単なスクリプトです。 よろしくお願いいたします。 ピーター Re: MPC5746R JTAG PASSWORD このスクリプトを実行すると、Lauterbachは「FLASH消去エラー」を表示します。 関数void debug_lock(): void debug_lock()  { /****************************/ /* プログラムパスワード */ /****************************/ /* JTAGパスワードをプログラムする */ flash_program(0x00400120, JTAG_PASSWORD_0, JTAG_PASSWORD_1); flash_program(0x00400128, JTAG_PASSWORD_2, JTAG_PASSWORD_3); flash_program(0x00400130, JTAG_PASSWORD_4, JTAG_PASSWORD_5); flash_program(0x00400138, JTAG_PASSWORD_6, JTAG_PASSWORD_7); /* プログラム PASS グループ 0 のパスワード */ flash_program(0x00400140, PASSWORD_PG0_0, PASSWORD_PG0_1); flash_program(0x00400148, PASSWORD_PG0_2, PASSWORD_PG0_3); flash_program(0x00400150, PASSWORD_PG0_4, PASSWORD_PG0_5); flash_program(0x00400158, PASSWORD_PG0_6, PASSWORD_PG0_7); /* プログラム PASS グループ 1 パスワード */ flash_program(0x00400160, PASSWORD_PG1_0, PASSWORD_PG1_1); flash_program(0x00400168, PASSWORD_PG1_2, PASSWORD_PG1_3); flash_program(0x00400170, PASSWORD_PG1_4, PASSWORD_PG1_5); flash_program(0x00400178, PASSWORD_PG1_6, PASSWORD_PG1_7); /* プログラム PASS グループ 2 パスワード */ flash_program(0x00400180, PASSWORD_PG2_0, PASSWORD_PG2_1); flash_program(0x00400188, PASSWORD_PG2_2, PASSWORD_PG2_3); flash_program(0x00400190, PASSWORD_PG2_4, PASSWORD_PG2_5); flash_program(0x00400198, PASSWORD_PG2_6, PASSWORD_PG2_7); /* プログラムPASSグループ3のパスワード */ flash_program(0x004001A0, PASSWORD_PG3_0, PASSWORD_PG3_1); flash_program(0x004001A8, PASSWORD_PG3_2, PASSWORD_PG3_3); flash_program(0x004001B0, PASSWORD_PG3_4, PASSWORD_PG3_5); flash_program(0x004001B8, PASSWORD_PG3_6, PASSWORD_PG3_7); /****************************/ /* プログラムパス DCF */ /****************************/ /* パスワードグループ 0 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100100); /* LOCK0_PG0 */ DCF_プログラム(0x00000000, 0x00100104); /* LOCK1_PG0 */ DCF_プログラム(0x00000000, 0x00100108); /* LOCK2_PG0 */ DCF_プログラム(0x40000000, 0x0010010C); /* LOCK3_PG0 [DBL=1] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100110); /* LOCK0_PG1 */ DCF_プログラム(0x00000000, 0x00100114); /* LOCK1_PG1 */ DCF_プログラム(0x00000000, 0x00100118); /* LOCK2_PG1 */ DCF_program(0x00000000, 0x0010011C); /* LOCK3_PG1, [DBL=0] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100120); /* LOCK0_PG2 */ DCF_プログラム(0x00000000, 0x00100124); /* LOCK1_PG2 */ DCF_プログラム(0x00000000, 0x00100128); /* LOCK2_PG2 */ DCF_program(0x00000000, 0x0010012C); /* LOCK3_PG2, [DBL=0] */ /* パスワードグループ1 - プログラムロック */ DCF_プログラム(0x00000000, 0x00100130); /* LOCK0_PG3 */ DCF_プログラム(0x00000000, 0x00100134); /* LOCK1_PG3 */ DCF_プログラム(0x00000000, 0x00100138); /* LOCK2_PG3 */ DCF_program(0x00000000, 0x0010013C); /* LOCK3_PG3, [DBL=0] */ /****************************/ /* プログラム検閲 DCF */ /****************************/ DCF_program(0x00000000, 0x001000B0); /* != 0x55AA で検閲が有効 */ /****************************/ /* プログラムのライフサイクル */ /****************************/ /* お客様への納品から OEM 生産までのライフサイクルを前進させる */ flash_program(0x00400218, 0x55AA50AF, 0x55AA50AF);/* CustomerDelを無効にする*/ flash_program(0x00400220, 0x55AA50AF, 0x55AA50AF);/* OEMProductionを検証する*/ } Re: MPC5746R JTAG PASSWORD こんにちは、 問題1: 以下のように関数 void debug_lock() で Jtag をロックしましたが、他の関数で JTAG のロックを解除するにはどうすればよいでしょうか? debug_lock() が何であるかはわかりませんが、デバイスの検閲を解除するには、検閲 DCF に 0x55AA の DCF レコードを追加するだけです。 問題2: Lauterbach は sys.option.KEYCODE で MPC5746R を接続できますが、フラッシュをプログラムできません。誰か例を挙げてもらえますか? うーん、これは奇妙だ。プログラミング スクリプトでリセットを実行していますか?一部のデバイスでは、リセットを実行するとキーが失われるという問題が発生しました。 このスクリプトを試してください。リセットを削除しました。 検閲がどのように機能するかについては、PASS AN を参照してください。このデバイスでも同様です。 https://www.nxp.com/docs/en/application-note/AN12092.pdf よろしくお願いいたします。 ピーター
查看全文
s32ds 3.6 linux ADKP 选项? 客户是 CNH。S32G3 + S32DS 3.6 有人提到 Linux S32 Design Studio 支持挑战/响应调试。为此,我安装了最新的 S32 Design Studio - 3.6.2。但是,我没有看到选择 "挑战/响应 "的选项,而只有密码可以在 "调试配置"--"安全调试 "部分中使用。 我是不是漏掉了什么?我们需要安装其他东西吗? -兰迪-克拉科拉 优先级:高 S32DS 资料来源直接客户 Re: s32ds 3.6 linux ADKP options? 嗨,Randy, Challenge&Response 选择目前在 Linux 上的 S32 DesignStudio 中禁用,因为 S32 调试器还不完全支持用例。请在此 jira 项目中提出变更请求以申请此功能 -Design Studio 目标访问
查看全文
S32K310 K341 RTD600 C40_Ip_Cfg.hブロックサイズがHSE SRMと一致しない お客様: 中国武漢三環社、カーシートコントローラにS32K310を採用 こんにちは、チーム RM758225-RM00286 HSE-Bファームウェアリファレンス・マニュアル - V2.5(2.5).pdfから、S32K310、K341 ABスワップメモリ範囲の状況が特殊であることがわかります。 K3 RM メモリにはブロック 1 はありませんが、HSE RM には AB_SWAP 用のブロック 1 があります。 HSE RM に含まれているように、S32DS RTD600 関連ドライバ:C40_Ip_Cfg.h にも Block1 が含まれている必要があると考えられます。 RTD600、C40_Ip_Cfg.hの追加にご協力くださいK310、K341 フラッシュ ブロック 1 関連のアドレスと SXXX 番号が含まれています。ありがとうございます。 RTD Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@alexmarin ご指摘の通り、 K394、K374、K364(ブロック2はフルメモリでは使用不可、ABスワップでは使用可能)、K336、K356(ブロック3はフルメモリでは使用不可、ABスワップでは使用可能)です。RTDでも同じ問題が発生します。 こんにちは@ZhengLinさん このCASEについて何かコメントはありますか?これは AE と HSE 内部でも提起されています。 https://community.nxp.com/t5/S32K3-Internal-Community/S32K310-K341-RTD600-C40-Ip-Cfg-h-ブロックサイズがHSE-SRMと一致せず/mp/2158886#M14368 HSE 側が対応できない場合は、RM ドキュメントに変更を加えることはCANでしょうか?ありがとう よろしくお願いいたします。 kerry Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@kerryzhou 、 alexmarin の回答に基づいて、デザインチーム/ドキュメント チームから確認を得て、A/B スワップのメモリ レイアウトを Soc RM に追加してください。その後、コードを変更するためのチケットを SW チームに作成します。 よろしくお願いいたします。 ニ Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM もう 1 つ、フル メモリ レイアウトでブロックが無効になっているすべてのファントムの RTD 実装を確認してください。同じ問題が発生すると思われます: K394、K374、K364 (ブロック 2 はフル メモリでは使用不可、AB スワップでは使用可能)、K336、K356 (ブロック 3 はフル メモリでは使用不可、AB スワップでは使用可能)。 Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは、 S32K3 HSE の SW アーキテクト、Alex Marin です。 AB スワップとフル メモリ レイアウトに関する必要な詳細はすべて HSE B RM に記載されていると考えています。 当社は SOC RM を所有していないため、そこに AB スワップ メモリ レイアウトの説明を追加することはできません。 歴史的に、SOC RM にはすべてのバリアントの Full mem レイアウトのみが含まれていました。おそらくそれは変わる必要がある。 最後に、ここでは HSE チームにアクション項目は見当たりません、と申し上げます。 敬具 アレックス Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@Nhi_Nguyen 、 ご返信ありがとうございます! HSE パッシブ領域では、パッシブ領域を操作するための HSE サービスは必要ありません。HSE は AB スワップ サービスを実行するだけで済みますが、OTA では、アクティブ領域でフラッシュ ドライバを使用してパッシブ領域に書き込む必要があり、そのためには RTD を使用する必要があります。SO、RTD にパッシブ領域のフラッシュ アドレスを追加して、HSE 用に追加する必要があると考えられます。 こんにちは@ZhengLinさん Zheng Lin さん、HSE チームへのチケットの発行にご協力ください。その後、HSE チームが RTD チームに、K310 と K341 について、パッシブ フラッシュ アドレス ブロック 1 のドライバ コードを追加するようリクエストする必要があります。 本当にSOありがとう! よろしくお願いいたします。 kerry Re: S32K310 K341 RTD600 C40_Ip_Cfg.h Block size unmatch to HSE SRM こんにちは@kerryzhou 、 RTD の観点から見ると、次の場合にのみこの要求をサポートできます。 - RTD ドライバ コードは HSE RM ではなく RM に基づいています。SO、ブロック 1 (0x00480000 - 0x004FFFFF) が S32K310 でサポートされ、ブロック 1 (0x00500000 - 0x005FFFFF) が S32K341 でサポートされ、Excel ファイルとメモリの章を含む RM からの情報が変更されることをデザイン チームから確認してください。つまり、ブロック 1 は A/B スワップ HSE だけでなく、すべての人が使用CANます。 - HSE のドキュメントから、次のような情報が得られました。 ブロック 1 (0x00480000 - 0x004FFFFF) は S32K310 でサポートされ、ブロック 1 (0x00500000 - 0x005FFFFF) は S32K341 でサポートされ、パッシブ パーティションです。上記の説明から、A/B スワップはアクティブ パーティションとパッシブ パーティションを交換してパッシブ パーティションにアクセスするサービスを提供するようです。私はHSEで働いていないSO、このトピックにHSE_FWタグを追加してHSEチームに問い合わせてCAN。分析後、HSEがRTDのブロック1を使用する必要がある場合は、RTDチームにリクエストできます。 よろしくお願いいたします。 ニ
查看全文