Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
How to use SecureElement SE05x: Using SE050 via OpenSSL (Japanese blog) In the previous article, we described the procedure for setting up the "Plug and Trust Middleware" library for SE05x (Secure Element) on a Raspberry Pi and FRDM-IMX93 (development board for i.MX 93) . How to use Secure Element SE05x: Setting up Plug and Trust Middleware on Raspberry Pi (Japanese blog) How to use Secure Element SE05x: Setting up Plug and Trust Middleware on the FRDM-IMX93 development board (Japanese blog) By using Secure Element and "*Plug and Trust Middleware," you can apply protection features to all applications that perform authentication using OpenSSL (e.g., Eclipse Mosquitto ™ , etc.) without modifying the application itself . This article explains practical ways to use SE05x in conjunction with OpenSSL. (Estimated time: 10 minutes *Assuming Plug and Trust Middleware is already set up) *Plug and Trust Middleware also includes integration with OpenSSL, which is widely used on Linux. Hardware, software, and versions used in writing this article Hardware: Raspberry Pi 3 Model B+ EdgeLock ® SE050 Development Kit ( OM-SE050ARD-E ) Five jumper wires (male-to-female or female-to-female) or an Arduino to Raspberry Pi adapter board ( OM-SE050RPI ) software: Raspberry Pi OS 12 64-bit SE-PLUG-TRUST-MW_04.07.01 *After unzipping, you can access the documentation from simw-top/doc/index.html (hereafter, "documentation" refers to this HTML file). The OpenSSL provider within the middleware is also available on GitHub, where you can find command examples and other information. https://github.com/NXPPlugNTrust/se05x-openssl-provider   Summary of this article OpenSSL has an interface called `provider` (or `engine` in earlier versions) since version 3.0, which allows you to replace parts of OpenSSL's operation with customized code. Plug and Trust Middleware provides a provider/engine to replace the cryptographic processing performed by OpenSSL with cryptographic processing using SE05x. The corresponding process is described in section "8.2" of the documentation. Please refer to "Introduction on OpenSSL provider". If a provider is not used (see the diagram on the left below) , the key, including the private key, is placed on the file system, and OpenSSL reads it and performs the processing. (*Since the key is stored on the file system, there is a high risk of key leakage.) When using a Provider (see the diagram on the right below) , it will look like this: OpenSSL instructs the Plug and Trust Middleware Provider to perform cryptographic processing. The Provider reads the Key file, and upon recognizing that it is in the format of a reference key, it retrieves the Key ID from the reference key and instructs the SE05x to perform encryption using the Key with that ID. (If a regular key file that is not a reference key is recognized, the process returns to the left.) picture1.png In this article, Creating a reference key to use the key pair pre-installed on the SE05x at the time of shipment. Enabling the OpenSSL Provider Example of the steps for signing and verifying using these methods. I will explain this.   Retrieving the object list within SE05x Similar to the Plug and Trust Middleware setup, we will enable venv and perform operations in an independent Python environment (virtual environment). Enable venv from the Plug and Trust Middleware deployment directory using the following command. cd simw-top/pycli/ source venv/bin/activate The following command will display a list of objects within SE05x. ssscli connect se05x t1oi2c none ssscli se05x readidlist ssscli disconnect The execution result will be as follows: (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli connect se05x t1oi2c none (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli se05x readidlist sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! Key-Id: 0X7fff0201 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0X7fff0202 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0X7fff0204 NIST-P (Public Key) Size(Bits): 256 Key-Id: 0X7fff0206 BINARY Size(Bits): 144 Key-Id: 0x7fff020b HMAC Size(Bits): No Info available Key-Id: 0Xf0000000 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000001 BINARY Size(Bits): 3760 Key-Id: 0Xf0000002 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000003 BINARY Size(Bits): 3760 Key-Id: 0Xf0000012 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000013 BINARY Size(Bits): 3736 Key-Id: 0Xf0000020 NIST-P (Public Key) Size(Bits): 256 Key-Id: 0Xf0000100 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000101 BINARY Size(Bits): 4392 Key-Id: 0Xf0000102 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000103 BINARY Size(Bits): 4392 Key-Id: 0Xf0003394 AES Size(Bits): 256 (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli $ ssscli disconnect   SE05x factory-programmed user identification information (keypair, certificate) Details of the displayed list of objects can be found in AN12436: SE050 configurations . The following are key pairs and their certificates that do not have a designated purpose and can be used freely by users. Key-Id: 0Xf0000100 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000101 BINARY Size(Bits): 4392 Key-Id: 0Xf0000102 NIST-P (Key Pair) Size(Bits): 256 Key-Id: 0Xf0000103 BINARY Size(Bits): 4392 0Xf0000101 and 0Xf0000103 are certificates corresponding to the key pairs 0Xf0000100 and 0Xf0000102, respectively. Let's try using the key pair 0Xf0000100. OpenSSL treats key pairs as files, but there's no point in protecting the private key with SE050 if you're going to extract and use the private key. Therefore, it is obtained in a format that does not include the private key, called a reference key, which will be described later. The following commands will create a directory for storing keys and retrieve the keys. mkdir se050_keys cd se050_keys/ ssscli connect se05x t1oi2c none ssscli refpem ecc pair 0xf0000100 reference_key_0xf0000100.pem ssscli get ecc pub 0xf0000100 public_key_0xf0000100.pem ssscli disconnect For comparison purposes, we will also generate a key pair and public key without using the SE050 as described below. Please execute the following command. openssl ecparam -genkey -name prime256v1 -out keypair.pem openssl ec -in keypair.pem -outform PEM -pubout -out public_key.pem About the Reference Key Let's display the contents of the reference key and public key obtained using the following command. openssl ec -text -noout -in reference_key_0xf0000100.pem openssl ec -text -noout -pubin -in public_key_0xf0000100.pem The execution result will be as follows: (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl ec -text -noout -in reference_key_0xf0000100.pem read EC key Private-Key: (256 bit) priv: 10:00:00:00:00:00:00:00:00:00:00:00:00:00:00: 00:00:00:f0:00:01:00:a5:a6:b5:b6:a5:a6:b5:b6: 10:00 pub: 04:e7:e0:f5:77:d7:b7:6f:0c:e6:93:7c:61:bf:85: 5e:80:37:76:9a:01:e3:e4:18:60:67:7a:3f:ab:bd: 9b:b6:53:64:4d:40:9b:07:c6:18:c9:5a:74:b9:c7: c8:d4:ae:2e:49:ae:68:63:de:64:77:6d:1e:1c:94: 4b:bb:70:10:0b ASN1 OID: prime256v1 NIST CURVE: P-256 (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl ec -text -noout -pubin -in public_key_0xf0000100.pem read EC key Public-Key: (256 bit) pub: 04:e7:e0:f5:77:d7:b7:6f:0c:e6:93:7c:61:bf:85: 5e:80:37:76:9a:01:e3:e4:18:60:67:7a:3f:ab:bd: 9b:b6:53:64:4d:40:9b:07:c6:18:c9:5a:74:b9:c7: c8:d4:ae:2e:49:ae:68:63:de:64:77:6d:1e:1c:94: 4b:bb:70:10:0b ASN1 OID: prime256v1 NIST CURVE: P-256 As can be seen above, the `pub` field of the reference key contains the same public key as the public key file, but the private key portion starting with `priv` contains a series of zeros, indicating that it does not actually contain the private key. The `priv` field in the Reference key does not contain the private key itself, but rather indicates where the private key is stored within SE050. In this case, it indicates that it is stored at 0xf0000100. For formatting information, see document "8.1.2.2". It is described in "EC Reference key format". Enabling the OpenSSL Provider There are several ways to use the OpenSSL Provider, but here we will enable it by reading a config file. The config file is located in simw-top/demos/linux/common/ and there are several versions of it. openssl11_sss_se050.cnf ----- OpenSSL 1.1.1 and SE050 openssl_sss_se050.cnf ----- OpenSSL 1.0.0 and SE050 openssl30_sss_se050.cnf ----- OpenSSL 3.x and SE050 You can check the OpenSSL version with the following command. openssl version If you're using a Raspberry Pi, it should be version 3.0. Apply the configuration using the following command. Replace with the middleware deployment location. export OPENSSL_CONF= /simw-top/demos/linux/common/openssl30_sss_se050.cnf   Signature generation and verification using SE050 + OpenSSL provider Use the following command: Use the reference key to generate a signature using the private key with ID:0xf0000100 within SE05x. Signature verification using the reference key and the public key with ID:0xf0000100 within SE05x. Signature verification using a client key We will do this. openssl pkeyutl -sign -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -out signature_with_provider.txt -digest sha256 openssl pkeyutl -verify -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -sigfile signature_with_provider.txt -digest sha256 openssl pkeyutl -verify -pubin -inkey public_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -sigfile signature_with_provider.txt -digest sha256 The execution result will be as follows: (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -sign -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -out signature_with_provider.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Performing ECDSA sign using SE05x (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -verify -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -sigfile signature_with_provider.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Performing ECDSA verify using SE05x Signature Verified Successfully (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -verify -pubin -inkey public_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -sigfile signature_with_provider.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Not a key in secure element. Performing ECDSA verify operation using host software Signature Verified Successfully Since the OpenSSL provider is enabled, messages related to the OpenSSL provider will be displayed. The following display shows that SE05x is actually using the object specified by the reference key to generate and verify the signature. If it is not displayed, please check the OPENSSL_CONF settings. sssprov-flw: Performing ECDSA sign using SE05x sssprov-flw: Performing ECDSA verify using SE05x When verifying a signature using a file containing only the public key, the following message is displayed, indicating that SE050 is not being used. sssprov-flw: Not a key in secure element. Performing ECDSA verify operation using host software For comparison, we will perform the same operation using a key pair and public key generated outside of the SE050. openssl pkeyutl -sign -inkey keypair.pem -rawin -in public_key.pem -out signature.txt -digest sha256 openssl pkeyutl -verify -inkey keypair.pem -rawin -in public_key.pem -sigfile signature.txt -digest sha256 openssl pkeyutl -verify -pubin -inkey public_key.pem -rawin -in public_key.pem -sigfile signature.txt -digest sha256 The execution result will be as follows: (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -sign -inkey keypair.pem -rawin -in public_key.pem -out signature.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Not a ref key sssprov-flw: Not a key in secure element. Performing ECDSA sign operation using host software sssprov-flw: Get random data from SE05x (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -verify -inkey keypair.pem -rawin -in public_key.pem -sigfile signature.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Not a ref key sssprov-flw: Not a key in secure element. Performing ECDSA verify operation using host software Signature Verified Successfully (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -verify -pubin -inkey public_key.pem -rawin -in public_key.pem -sigfile signature.txt -digest sha256 App :INFO :If you want to over-ride the selection, use ENV=EX_SSS_BOOT_SSS_PORT or pass in command line arguments. sss :INFO :atr (Len=35) 01 A0 00 00 03 96 04 03 E8 00 FE 02 0B 03 E8 00 01 00 00 00 00 64 13 88 0A 00 65 53 45 30 35 31 00 00 00 sss :WARN :Communication channel is Plain. sss :WARN :!!!Not recommended for production use.!!! sssprov-flw: Not a key in secure element. Performing ECDSA verify operation using host software Signature Verified Successfully When a key pair is specified, the following is displayed, indicating that signature generation is performed using the private key in the key pair file, not SE050. sssprov-flw: Not a ref key However, since the OpenSSL Provider provides a random number generation function, the following is displayed during signature generation, and random numbers are generated using SE050. sssprov-flw: Get random data from SE05x For comparison, the following is the result of using a reference key with the OpenSSL provider disabled. (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ export OPENSSL_CONF= (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -sign -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -out signature_without_provider.txt -digest sha256 (venv) shinji@raspberrypi:~/SE-PLUG-TRUST-MW_04.07.01/simw-top/pycli/se050_keys $ openssl pkeyutl -verify -inkey reference_key_0xf0000100.pem -rawin -in public_key_0xf0000100.pem -sigfile signature_without_provider.txt -digest sha256 Signature Verification Failure The priv portion of the reference key is interpreted as the private key, and the signature is generated accordingly. The signature generation is successful, but the signature verification will naturally fail because the private key being used does not correspond to the public key. In this case, we applied SE050 protection to a process that uses OpenSSL commands. An example of applying SE050 protection to an application using the OpenSSL library is described in the following article. Connecting to Azure IoT Hub using the Eclipse Mosquitto client ========================= We are currently unable to respond to comments left in the " Comment " section of this post . We apologize for the inconvenience, but please refer to " Technical Questions to NXP - How to Contact Us( Japanese Blog) " when making inquiries.(If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) In the previous article, we described the procedure for setting up the "Plug and Trust Middleware" library for SE05x (Secure Element) on a Raspberry Pi and FRDM-IMX93 (development board for i.MX 93) . How to use Secure Element SE05x: Setting up Plug and Trust Middleware on Raspberry Pi (Japanese blog) How to use Secure Element SE05x: Setting up Plug and Trust Middleware on the FRDM-IMX93 development board (Japanese blog) By using Secure Element and "*Plug and Trust Middleware," you can apply protection features to all applications that perform authentication using OpenSSL (e.g., Eclipse Mosquitto ™ , etc.) without modifying the application itself . This article explains practical ways to use SE05x in conjunction with OpenSSL. (Estimated time: 10 minutes *Assuming Plug and Trust Middleware is already set up) *Plug and Trust Middleware also includes integration with OpenSSL, which is widely used on Linux. Security Technology Focus Japanese Blog
View full article
DMA 模式下 UART 通信失败(S32k311) 嗨,@nxp团队、 我在S32K311目标硬件的 DMA 模式下使用 UART 通信,但主站和从站之间甚至连一次传输都没有。双方都在使用 512 字节的缓冲区。但是,在微控制器方面,回调被触发并引发了 LPUART_UART_IP_EVENT_ERROR,而且 UARTState 的状态始终显示为超限状态。 我尝试过的波特率从 100 kbps 到 900 kbps 不等。 注:为确保波特率不是问题,我还测试了单次传输和基于周期的传输。然而,系统总是会进入超限状态。 能否请您检查一下我的配置?为了供你参考,我附上了配置屏幕截图以及 UART 模块设置。 为此,我为两个 USRT 通道的 TX 和 RX 创建了 4 个 DMA 通道。       Re: UART communication failed in DMA mode(S32k311) 感谢@Julián_AragónM的回复 事实上,由于版本兼容性问题,我无法在我的系统上加载给出的示例。不过,我会尝试添加 RM 模块并进行测试。 我的 S32 IDE 版本是 3.6.3RTD 版本为 6.0.0. Re: UART communication failed in DMA mode(S32k311) 你好,@jagannath、 我看到您还输入了一个内部案例,我已在该案例中回复了您的问题,但为了以防万一,我也将在此回复: 能否告知您使用的 RTD 和 S32DS 版本? 从图片中可以看出,"Rm" 模块并没有包含在项目中。要使用 DMA,必须添加"Resource Manager" 驱动程序,启用 Dma Mux 支持,并配置相应的 DMA MUX 通道: Snag_aff8e3.png 您可以参考社区中已有的例程:示例 S32K312 UART 发送& 接收使用 DMA DS3.5 RTD300。 致以最诚挚的问候, Julián Re: UART communication failed in DMA mode(S32k311) @nxp 如果您需要更多细节, 请 告诉我。 Re: UART communication failed in DMA mode(S32k311) 你好,@jagannath、 来自 RTD 3.0.0此后,DMA 支持从 MCAL 层移至 Rm 模块。RM 模块不支持 IP 层。因此,用户应将 RM 模块直接添加到高级层。 查看 S32K3XXRM 的 DMAMUX 映射 excel 文件附件,可以看到 LPUART0 被分配到 DMAMUX0,而 LPUART3 被分配到 DMAMUX1。 DMA 复用源字段已禁用,无法编辑. 我不明白这种说法。从您的图像中,我可以看到第一个 Dma Mux 源容器是可用的,但您将它们配置为 "REQ_DISABLED"。您必须将 LPUART 通道与 DMA MUX 信号源连接成类似这样: dmamux1.png dmamux0.png 至于我分享的示例,是的,您不能直接导入,因为该项目是在 RTD 3.0.0 中开发的、当您使用 RTD 6.0.0 时。不过,您可以将配置文件和主文件复制到工作区,以测试 UART + DMA。 致以最诚挚的问候, Julián Re: UART communication failed in DMA mode(S32k311) Hii@Julián_AragónM 我已添加 RM 模块,但DMA Mux Source 字段被禁用,无法编辑。这是我的配置与给出的示例配置之间的唯一区别。然而,我得到的结果与之前的错误一样。 我附上了配置示例的截图以及我的配置MEX 文件。 S32 集成开发环境版本:3.6.2 RTD 版本:6.0.0 能否请您在方便时尽早查看一下? Re: UART communication failed in DMA mode(S32k311) Hii@Julián_AragónM S32 集成开发环境版本:3.6.2 RTD 版本:6.0.0 注意: 由于 MCAL 通常在基于 AUTOSAR 的架构中使用,因此我们的项目目前不使用任何 AUTOSAR 模块,因此也不打算包含 MCAL 模块。我们的要求是在不使用 MCAL RM 驱动程序的情况下实现基于 DMA 的通信。请确认是否可以不依赖 MCAL (RM) 运行 DMA 模式? Re: UART communication failed in DMA mode(S32k311) 感谢@Julián_AragónM提供迄今为止的详细信息。 目前,当我向 MCU 发送数据时,会触发信号,但事件始终是 " LP UART_UART_IP_EVENT_ERROR "。正因为如此,我无法退出这个问题。我根据示例和社区帖子尝试了几种方法,但遗憾的是,到目前为止没有一种方法能解决问题。 我在这里附上了我的整个工作区。能否请您帮助审查一下,以确定是否存在任何问题?如果可能的话,希望您也能在自己的系统上试运行一下。 提前感谢您的支持。 Re: UART communication failed in DMA mode(S32k311) 你好,@jagannath、 对不起,我的回复晚了! 关于第一个问题,我在你的项目中看到 UART 缓冲区没有被声明在非缓存区内。为了避免启用 数据缓存 时可能出现的一致性问题,用户应确保用作 TCD 源和目标的缓冲区分配在不可缓存区域,或者尝试使缓存地址失效: Snag_57e873a.png #pragma GCC section bss ".mcal_bss_no_cacheable" uint8_t tx_data[15]; uint8_t rx_data[15]; #pragma GCC section bss 关于第二个问题,你能检查中断和处理程序吗?调用 uart 传输函数时,返回的是什么? 致以最诚挚的问候, Julián Re: UART communication failed in DMA mode(S32k311) Hii@Julián_AragónM 感谢您的支持。我们现在的情况要好得多--在添加 RM 模块并修正配置后,DMA 传输已开始工作。不过,似乎仍有一些数据丢失/覆盖问题,如下所述: 1.在第一次(新)传输过程中,前20字节和最后约10字节的数据总是丢失。 主设备每 100 毫秒定期发送 512 字节的数据。 MCU 缓冲区的大小也是 512 字节。 MCU 报告 接收到了 512 字节 ,但 前大约 20 字节(有时还有最后大约 10 字节)缺失,而从 第 21 字节开始的剩余字节 是 正确的。 2.在第二次及其后的传输过程中: 缓冲区内容的片段显示如下: 索引0 至 83→ 包含0xAA(默认值) 索引84 至 116→有效数据 索引117 至 308→0xAA(默认值) 索引308 至 340→有效数据 索引340 至 372→0xAA(默认值) 3.传输 4/5 次后,数据传输完全停止,但不会出现奇偶校验/成帧/超限等错误。 这种模式一直持续,几次传输后,数据传输完全停止。 能否请您帮助确定导致这种行为的原因? 谢谢!         Re: UART communication failed in DMA mode(S32k311) 非常感谢@Julián_AragónM的支持。现在问题已经解决,一切正常。非常感谢你们的帮助。 谢谢
View full article
LPC54018 崩溃问题 我的客户在使用 LPC54018J2M 时遇到了一个问题。 情况描述如下 客户通过I2C将新版本编程到以太备份代码块来更新固件后,重启后,启动代码首先检查以太备份代码中是否有更新的固件。如果有,它就会覆盖以太 CODE,然后执行它。 闪存布置 |-------------------------------------| 0x10000000 - 0x1000FFFF | 启动 CODE(64k) 10000| |-------------------------------------| 0x10010000 - 0x100fffff | Ether CODE(960k) f0000| |-------------------------------------| 0x10100000 - 0x101effff | Ether Back Up CODE(960k) f0000| |-------------------------------------| 0x101f0000 - 0x10200000 | 已保留 (64k) 10000| |-------------------------------------| 对于少数设备,固件更新完成后,软件会正常运行一段时间。然而,一段时间后,代码突然卡住了。在这种情况下,即使尝试重新编程或擦除也无法恢复系统,必须更换集成电路。 对于异常集成电路,我们使用 JTAG 进行了进一步测试。最初,示例代码程序无法正常运行,IC 在闪烁后会立即卡住。 upload_44c1df325efcbfd1bf742fc095949c9e.png 对于客户软件,启动代码会检查闪存,然后在 SPIFI 初始化期间卡住。 但是,通过 JTAG 对 SDK_2.x_LPC54018J2M(版本 24.12)中的示例代码进行编程后,集成电路可以正常工作,后续编程也能按预期进行。 对于异常集成电路,直接重新编程客户代码并不能恢复正常运行。有必要先对示例代码进行编程,以便从异常状态中恢复。 客户代码目前是基于 SDK 2.11 开发的。 恢复正常运行的示例代码来自 SDK 24.12。 我还建议客户尽可能升级到新版本,但这可能需要一些时间。 因此,我想在这里讨论可能导致这个问题的原因——它是否与SDK版本有关,或者是否需要调整内存配置。 尽管我们目前可以通过JTAG恢复设备,但我们希望找到一种方法来完全防止此问题发生。 LPC54xxx Re: LPC54018 Crash Issue 你好@ZRay 谢谢您的帖子! 它可能与 LPC54XX 设备上的勘误表有关,勘误 表 lpc540xx_lpc54s0xx 中的功能问题描述 3.8 RO M.1:启动时外围设备引脚保持配置或驱动状态 另外,我建议您查看 MCUXpresso SDK发行说明,另一项建议将始终使用可用的最新版本的SDK。 您提到的示例代码是否执行了引脚配置?
View full article
バス障害 IMPRECISERR こんにちは、 私はNXP i.MXRT1064 EVKに取り組んでおり、内部 ADCを使用してオーディオ ノイズ センサの出力を読み取っています。 ADCピン: GPIO_AD_B1_02 (ADC1チャネル/ADC1_IN7) プログラムはほとんどの場合正常に動作しますが、予期しないタイミングでランダムに BusFault/HardFault が発生します(添付のスクリーンショットを確認してください)。障害は一定の時点で発生しないため、再現が困難です。この障害はなぜ発生するのか、またこの障害を解決するにはどうすればよいでしょうか。 評価ボード Re: Bus Fault IMPRECISERR こんにちは@Subhasri 、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 提供された情報に基づいて、BusFault/HardFault の正確な根本原因を特定することは困難です。 以下の点を確認することをお勧めします。 1: メモリとスタックの使用量 スタック オーバーフローまたは範囲外のメモリ アクセスがあるかどうかを確認します。 2:キャッシュとDMAの一貫性 ADC を DMA で使用する場合は、DMA バッファがキャッシュ不可能なメモリに割り当てられていることを確認してください (たとえば、AT_NONCACHEABLE_SECTION_ALIGN を使用)。 3:最小限のテストケースを使用して問題を切り分ける アプリケーション コードの一部を一時的に無効にして、段階的に確認してみることをお勧めします。 たとえば、オーディオ ノイズ センサのみを読み取るか、内部 ADC 出力を使用するかして、問題が再現できるかどうかを確認します。 よろしくお願いいたします。 メイリュー
View full article
[过滤器:垃圾邮件] nismkiki 的帖子主题与 " flipkart " 相符 " ekart ",板 " 电源管理单元 "。 [过滤器:垃圾邮件] nismkiki 的帖子主题与 " flipkart " 相符 " ekart ",板 " 电源管理单元 "。 帖子主题: 如何在 flipkart 投诉 主题文本"flipkart" 匹配过滤模式"flipkart" 。 职位机构: 请拨打 Ekart 物流免费帮助热线电话-0769-9595-414 进行投诉。Ekart Logistic 还设置了 24 小时营业 正文"Ekart" 匹配过滤模式"Ekart" 。 用户[id=258406,login=nismkiki]的发帖因以下最终用户面临的错误而被拒绝: 消息主题包含 flipkart,这在本社区是不允许的。请在发送您的帖子前删除这些内容。 邮件正文包含 Ekart,这在本社区是不允许的。请在发送您的帖子前删除这些内容。
View full article
使用 FLEXIO_SPI 从站进行奇数数据传输 我正试图让 MBDT 示例 s32k3xx_spi_async_interr_s32ct 在 s32k396_bga_dc1 + MB 上工作,使用 lpspi2(主设备)+ flexio_spi_0(从设备),但得到的结果非常奇怪。 lpspi2 配置为带外部缓冲器的异步模式。无 DMA。 flexio_spi_0 配置为在带 DMA 的异步模式下使用 IB。 尝试模仿默认 K344 我的 SPI 配置与 S32 DS 示例 Spi_Transfer_S32K396 相结合。 lpspi2 运行正常。如果我将 sout 循环到 sin,那么就会像预期的那样循环回完全相同的值。 但从属模式下的 flexio_spi_0 表现非常糟糕,只能随机更新。输入和输出表现都很奇怪。在两次更新之间,它会不断重复相同的值,直到突然更新。有时,它甚至表现得很好。我找不到任何一致的模式,也不知道是什么原因导致了这种行为。 在修正 LPSPI2 引脚布局并调整缓冲区大小以匹配后,同样的配置在 S32DS 示例 Spi_Transfer_S32K396 中也能正常工作。 I/O 完成时的回调在两者上都会像时钟一样被调用。但是,当定期运行仅传输 1 字节时,进出/传出 flexio_spi_0 的数据表现不佳。 附上我正在使用的 mex 文件。 板的接线方式就像 通道 CLK DI do CS LPSPI2 P23-15 P23-13 P27-8 P23-9 FLEXIO_SPI_0 P13-7 P18-12 P10-8 P17-4 P23-15<-> P13-7 P23-13<-> P10-8 P27-8<-> P18-12 P23-9<-> P17-4 如果我调整模型优先级,以便在主传送之前触发信号从属传输,那么它的效果会好一些,但远非可靠。 最终目标是在flexio_spi上自动定期重复主交易,从计时串行设备收集测量值。每次传输少于 13 位,因此除了 flexio 硬件模块提供的缓冲区外,根本不需要任何缓冲区。但首要目标是理解数据并让数据可靠地流动起来。
View full article
i.MXRT1021 HAB 我正在努力添加 HAB,首先使用板和示例:blinky、uart 和 bee。我将图像与 BEE 更改一起构建,最后删除了禁用 BEE 的行。我还有一张 Blinky + uart 组合的图片,但没有附上。 使用 MCUXpresso 安全配置工具版本 25.09,我在一个 EVK 上放了熔丝以匹配为 XIP BEE 用户密钥生成的随机密钥。在此过程中,我也使用 2048 作为密钥大小来生成验证密钥。 加载图像并熔丝以匹配所需设置不会使 LED 闪烁,并且在 Bee_init 上似乎停止。我错过了哪些步骤?我尝试在串行启动加载程序和选择的内部启动模式下运行代码,但两者都不起作用。 我附上了基本设置的图片,如果有助于调试,我可以把生成和使用的密钥和验证密钥发给你。我不确定你是否想在同一篇论坛帖子中附上密钥来构建图像,但可以提供使用的密钥,因为它显然只是用来获取目标设备的进程。 另一方面,最终图像将具有所需的 dcd 设置,但我的假设是,只要密钥、身份验证密钥和网络安全设置正确,向该工具生成的图像中添加 dcd 数据就不会产生实际效果。 i.MX RT102x Re: i.MXRT1021 HAB 你好,@joshgentrycargt、 如果启用了 XIP 加密模式,ROM 启动时 BEE 已初始化,为什么还要在应用代码中再次调用BEE_Init?如果要这样做,请先调用 BEE_Deinit()。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请打开一个新主题并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: i.MXRT1021 HAB uart 连接导致它尝试从该选项启动。这基本上阻止了它的运行。我一直追溯到最初的闪烁,并以此为例。BEE 的例子让我觉得完全没有必要。我能够使用我设置的熔丝/网络安全设置对单独的板进行编程,而且它起作用了(dcd 也能正常工作)。
View full article
[乱用] 投稿者: @JohnKlug / ボード: imx-processors / 報告者: thzuyfoc thzuyfoc は、 @JohnKlug が投稿した 「Could not invoke dnf for external kernel module in Yocto kirkstone」という 投稿について、以下の理由で報告しました: 理由:誤解を招く、または虚偽の情報 詳細: 投稿リンク: https://community.nxp.com/t5/i-MX-Processors/Could-not-invoke-dnf-for-external-kernel-module-in-Yocto/mp/1627964#M203740 投稿者: @JohnKlug |メール著者 報告者: thzuyfoc |メールレポーター 報告された投稿には 2 件の返信があります。
View full article
关于为 SEMA 实施 S32K324 双核心的问题 你好,团队 客户正在使用 Daul 核心实施 324 系统。 对于旋转锁,客户正在考虑采用 SEMA42。 我的问题是,对于 SEMA42 来说,XRDC 是必须的吗? 我对使用 SEMA42 实现自旋锁感到困惑,需要在 Core0 和 Core1 之间进行功能域分离,这意味着 XRDC 配置是必要的,或者不需要。 您能核实一下我的问题吗? 谢谢。 优先级:中等 RTD 资料来源直接客户 Re: Question of S32K324 dual core implementation for SEMA 嗨,@Luke_Chun、 1.对于 SEMA42,是否必须使用 XRDC? => 是的,必须这样做。 2。我对使用 SEMA42 实现自旋锁感到困惑,需要在 Core0 和 Core1 之间进行功能域分离,这意味着 XRDC 配置是必要的,或者不需要。 => XRDC 配置是必要的。 顺祝商祺! 丹 Re: Question of S32K324 dual core implementation for SEMA 嗨,丹、 感谢您的解答。 Autoever 希望使用 SEMA42 并配置 XRDC。他们刚刚配置了两个功能域,如下所示,所有外设和存储器都可以通过这两个功能域进行评估。 - 域_0:Core_0、HSE、eDMA_AHB、EMAC_AHB - 域_1:只有核心_1 请查看下面 Rm 模块中的配置,如果发现任何错误或丢失的配置,请告诉我。 我还附上了 arxml 文件。 顺祝商祺! 雅各 Re: Question of S32K324 dual core implementation for SEMA 非常感谢,丹! 请结案。 顺祝商祺! 雅各 Re: Question of S32K324 dual core implementation for SEMA 你好,@james-lee、 我检查了他们的 xrdc 配置,是正确的。我没有看到他们为"XRDC Memory Config" 和"XRDC Peripheral Config" 配置 Sema42。因为 SEMA42 的硬件 "门/通道 "数量有限,只有 16 个硬件通道。因此,用户不能为每个外设/区域分配一个网闸;相反,用户可以绑定互斥的资源组,用同一个 SEMA42 网闸来保护它们。 顺祝商祺! 丹
View full article
供客户端写入 iMX8MP 的自由 OTP 寄存器 你好 , 我 需要 能 写 的 OTP 寄存器 阅读 主 板 IMX8MP 的 PCBA 修订版 。 例如,我需要在寄存器 XX 中写一个数字 1、3 或 5,具体取决于生产线上板的版本。 并将其读入 uboot/kernel 以使用相应的 DTS 我是否正确理解我可以将通用熔丝寄存器 #9 用于我的目的? DrRamm_0-1752490181243.png   i.MX 8 系列 | i.MX 8QuadMax (8QM) | 8QuadPlus i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Free OTP registers for writing by client to iMX8MP 您好, 是的,你可以使用通用熔丝来实现你的目的。 此致 哈维
View full article
S32K324 HSE固件如何安装? 我正在开发S32K324,S32K324哪里可以找到安装HSE固件的软件工程? Re: S32K324 HSE固件如何安装? Hi 请从S32K3 标准软件> 汽车软件 - S32K3 - HSE 固件 > S32K344 HSE FW 0.2.40.0 SR 版本下载。注意:此版本支持 S32K344、S32K324 和 S32K314。HSE_DEMOAPP_S32K3XX_0_2_40_0.exe可以在S32K311 HSE FW 0.2.40.0 RTM版本中找到。 如果您没有 Lauderbach,只有 PEMicro 或 J-Link 调试器,请下载S32K3_HSE_DemoExamples 。建议参考HSE 固件安装中的讨论。 由于资源有限,我们目前无法支持客户通过通用电子邮件帐户(例如 gmail.com 或 qq.com 或类似帐户)发信。请确保您在与 NXP 沟通时使用您的公司电子邮件地址,以便我们能够相应地优先处理您的问题。感谢您的理解。 此致, 罗宾 -------------------------------------------------------------------------------- 笔记: - 如果这篇文章回答了您的问题,请点击“标记正确”按钮。谢谢你! - 我们会关注上次发帖后七周的帖子,之后的回复将被忽略 如果您稍后有相关问题,请打开一个新线程并参考已关闭的线程。 --------------------------------------------------------------------------------
View full article
FS85 SPI通信报错 你好,我移植了FS8x_S32K144_WatchdogExample这个demo中关于SPI读写FS85寄存器的部分,现在周期读取寄存器M_FLAG,deviceStatus=0xF0,readData = 0xF014.具体错误为 Wrong number of clock cycles (<32 or >32)和Error detected in the SPI CRC CRC8用的也是DEMO提供的函数,为什么会报错呢?这两个错误该怎么解决呢? 读取寄存器FS_STATES,readData = 0x2003,没有找到03对应的状态机。 FS85&FS84 回复: FS85 SPI通信报错 你好,奥斯克 FS_STATE =5 表示 RSTB 未版本到高电平,客户能否查看 RSTB 引脚电平?此时,与 OV/UV 相关的标志寄存器未激活。 如有其他问题,请告诉我。 BRS CIndy Wen 回复: FS85 SPI通信报错 你好,请问第一块芯片出现的SPI通讯问题,后续有查明是什么原因导致的吗。 回复: FS85 SPI通信报错 你好 xuxin 用户应通过将所有位写入 “1” 来清除 FS_OVUVREG_STATUS,如果故障再次触发信号,那就是真正的 OV 紫外线故障。 与 FS8510D3 OTP 一样,ABIST1 被分配给所有监测。因此,如果 VCOREMON 或 VMON1~4 报告 UV,状态机就会停留在 ABIST1 状态,无法进入 INIT_FS 状态。 VCOREMON 应连接到 BUCK1,应使用 VMON1~4 来监测原理图中的稳压器。请参阅 FS85 演示板。 如果需要调试支持,请联系当地的 DISTI FAE 以获得更多帮助。 CindyWen_0-1744966686293.png BRS 辛迪-温 回复: FS85 SPI通信报错 你好,徐新 请读取 FS_OVUVREG_STATUS 寄存器。 请检查 VCOREMON 是否连接至 BUCK1 输出端。 检查 VDDIO 电压是否符合 OTP 规定的电平。 检查 VMON1~4 是否为 0.8V。 您使用的是哪个零件编号?如果您使用的是贵公司定义的特定 OTP,请与我共享 OTP 文件。 BRS 辛迪-温 回复: FS85 SPI通信报错 你好Cindy, 我刚才请硬件工程师测量了PGOOD和RSTB引脚,两个都是低电平,硬件工程师说已经加了上拉电阻,但是没成功拉高。接下来需要软件配置什么寄存器吗?还是单纯的硬件问题? 回复: FS85 SPI通信报错 你好,徐新 如果 FS 状态无法进入 INIT_FS,我认为由于某些故障,PGOOD/RSTB 没有版本。 请检查 PGOOD/RSTB 是否版本到高位? 如果它们很低,请检查板上是否有 OV/UV 故障。 BRS 辛迪-温 回复: FS85 SPI通信报错 你好Cindy, 我按照你的建议,在M_FLAG对应位写1后又读取了如下寄存器,MISO返回数据如图,FS_STATS还是0x2003. Ono12_0-1744706053734.png 回复: FS85 SPI通信报错 你好,徐新 您能否通过向这些位写入 “1” 来清除以下这些位,看看故障是否会再次触发信号。如果这些故障仅在上电复位时触发,我们可以忽略它们,因为它们不会在正常运行期间发生。 CindyWen_0-1744702428974.png BRS 辛迪-温 回复: FS85 SPI通信报错 你好,Tomas。 下面是我读取FS_STATES寄存器的SPI波形。1是CLK,2是CS,3是MOSI,4是MISO。我从波形解析到的MOSI是0xAC,00,00,F4,MISO是0x70,20,03,14。确实不是0x2006,这跟我一直在debug mode有关吗? SPI_8510.png 回复: FS85 SPI通信报错 你好,徐新、 很高兴知道原来的错误消失了。我不知道 0x03 的故障保护状态机状态码。实际上应该是 0x06。能否分享一个示波器截图,说明 FS_STATES 寄存器的读取情况? BRs.托马斯 回复: FS85 SPI通信报错 你好Tomas, 我更换了一片新的FS85芯片后,Wrong number of clock cycles (<32 or >32)和Error detected in the SPI CRC消失了。我在FS_STATES寄存器写入DBG_EXIT,但是读取寄存器FS_STATES,readData = 0x2003,并不是0x2006,这个03代表什么呢?怎样进入INIT_FS状态? 回复: FS85 SPI通信报错 spi.png 如图,1是MOSI,2是CLK,3是CS,4是MISO。我读取了FS_DIAG_SAFETY寄存器,MOSI是0xA8,0x00,0x00,0xF2。MISO值是0xF0,0x04,0x29,0xD9。0xF2和0xD9是CRC值,跟我用CRC8工具计算的值是一样的。 另外,我不知道该怎么确认table100中的数值。 回复: FS85 SPI通信报错 你好,徐新、 如果您有示波器或逻辑分析仪,能否分享说明 SPI 写入和读取事务的截图?另外,请仔细检查是否符合数据表表 100 中所示的所有 SPI 时序要求。 BRs, Tomas 回复: FS85 SPI通信报错 SPI配置如下:时钟20Mhz,片选低有效,MSB传输,时钟空闲低电平,在时钟第二个边沿采样,SPI帧长度为32位,波特率为1000000
View full article
IMX8M MiniのMIPI-CSIプレスリリース、製品ニュースパイプラインが動作しない こんにちは、チームの皆さん メディア パイプラインを構成しようとしたときに、どうしても /dev/media0 ノードをユーザー空間に表示できません。私たちのユース CASEでは、Yoctoビルドを備えたカスタム統合ボードで Compulab IMX8M Mini SOM を使用しています。Allied ビジョン カメラを同社の Alvium CSI2 ドライバと統合しようとしています。 主な基本的な質問: カーネルとデバイス ツリーが正しく設定されていれば、パイプラインが正しく構成されていれば /dev/media0 ノードは引き続き表示されますか?または、パイプラインを正常に開始するには、ドライバをロードする必要がありますか?いずれにしても、何をしても media0 ノードは表示されCANません。 起動時には、ボードのセットアップによりカメラがまだ使用可能になっていません。ユーザー空間に入ったら(電源レギュレータが設定され、カメラの準備が整った後)、ドライバをこの出力に再バインドします。 root@b2qt-imx8mm-lpddr4-evk:/usr/share/BoardSetup-scripts# ./RebindCamera.sh AVT カメラ ドライバを再バインドしています... ./RebindCamera.sh:7行目: echo: 書き込みエラー: そのようなデバイスはありません [ 43.335322] avt_csi2 0-003c: avt_probe[5107]: /usr/src/debug/avt-csi2/1.2.0+git/avt-csi2.c [ 43.344799] avt_csi2 0-003c: avt_probe[5147]: パワーダウンGPIOが定義されていません [ 43.351676] avt_csi2 0-003c: avt_probe[5164]: devm_gpiod_get_optional(dev, "reset-gpios" が成功しました [ 43.360713] avt_csi2 0-003c: avt_probe[5171]: fwnode_property_present が mipi_csi を見つけられませんでした [ 43.369373] avt_csi2 0-003c: avt_probe[5188]: bcrm_wait_timeoutが見つかりません。デフォルト値を使用してください [ 43.377842] avt_csi2 0-003c: avt_probe[5191]: bcrm_wait_timeout が 3000ms に設定されました [ 43.385046] avt_csi2 0-003c: avt_csi2_check_mipicfg[4586]: ep_cfg.bus.mipi_csi2.num_data_lanes1 [ 43.393965] avt_csi2 0-003c: avt_csi2_check_mipicfg[4588]: v4l2_fwnode_ep.nr_of_link_frequencies2 [ 43.402965] avt_csi2 0-003c: avt_csi2_check_mipicfg[4593]: v4l2_fwnode_ep.link-frequencies0 値 445500000 [ 43.412824] avt_csi2 0-003c: avt_csi2_check_mipicfg[4593]: v4l2_fwnode_ep.link-frequencies 1 値 891000000 [ 43.422688] avt_csi2 0-003c: avt_probe[5213]: powerdown-gpios powerdownが定義されていません [ 43.430332] avt_csi2 0-003c: avt_probe[5228]: reset-gpios が定義されていません [ 43.436726] avt_csi2 0-003c: avt_reset[2080] [ 43.443043] avt_csi2 0-003c: wait_camera_available[2025]: カメラのシャットダウンを待機しています... [ 44.648643] avt_csi2 0-003c: wait_camera_available[2033]: カメラがI2C転送に応答するのを待っています... [ 45.269281] kauditd_printk_skb: 15 個のコールバックが抑制されました [ 45.269292] 監査: タイプ=1334 監査(1723754849.880:26):プログラムID=21 オペレーション=UNLOAD [ 46.664540] avt_csi2 0-003c: wait_camera_available[2054]: ハートビートがサポートされています。ハートビートがアクティブになるのを待っています。 [ 49.878985] avt_csi2 0-003c: wait_camera_available[2064]: ハートビートがアクティブ [ 49.949573] avt_csi2 0-003c: read_cci_registers[748]: regmap_bulk_read(camera->regmap8, cci_cmd_tbl[CCI_REGISTER_LAYOUT_VERSION ].アドレス ret 540 [ 49.969505] avt_csi2 0-003c: cciレイアウトバージョンb: 0x00000100 [ 49.975362] avt_csi2 0-003c: cciレイアウトバージョンa: 0x00010000 [ 49.981170] avt_csi2 0-003c: avt_probe[5285]: read_cci_registers が成功しました [ 49.989267] avt_csi2 0-003c: avt_probe[5302]: bcrm_version_check が成功しました [ 49.996951] avt_csi2 0-003c: bcrm_get_write_handshake_availibility[704]: BCRM書き込みハンドシェイクがサポートされました! [ 49.996975] avt_csi2 0-003c: カメラALVIUM 1500 C-501c NIRを発見 [ 50.014014] avt_csi2 0-003c: avt_probe[5315]: ファームウェアバージョン: 0.6.0.8c98 ret = 0 [ 50.024773] avt_csi2 0-003c: gcprmのバージョンを修正 [ 50.029887] avt_csi2 0-003c: avt_probe[5353]: INIT_WORK(&camera->bcrm_wrhs_work, bcrm_wrhs_work_func); [ 50.046953] avt_csi2 0-003c: avt_get_sensor_capabilities[4409]: csiクロック [ 50.046953] カメラ範囲: 40000000:750000000 Hz [ 50.046953] dts リンク周波数数 2 [ 50.046953] dts link_frequencies[0] 445500000 Hz [ 50.103673] avt_csi2 0-003c: avt_get_sensor_capabilities[4450]: カメラから読み取ったCSIクロック: 443750000 Hz [ 50.113207] avt_csi2 0-003c: avt_get_sensor_capabilities[4454]: 最小解像度と最大解像度を取得する [ 50.128752] avt_csi2 0-003c: avt_init_avail_formats[1840]: MEDIA_BUS_FMT_UYVY8_2X8/V4L2_PIX_FMT_UYVY/MIPI_CSI2_DT_YUV422_8Bを追加 利用可能な形式のリスト -1 - 1 [ 50.152546] avt_csi2 0-003c: avt_init_avail_formats[1841]: MEDIA_BUS_FMT_UYVY8_1X16/V4L2_PIX_FMT_UYVY/MIPI_CSI2_DT_YUV422_8を追加 B 利用可能な形式のリスト -1 - 1 [ 50.167322] avt_csi2 0-003c: avt_init_avail_formats[1842]: MEDIA_BUS_FMT_YUYV8_1X16/V4L2_PIX_FMT_YUV422P/MIPI_CSI2_DT_YUV42を追加 2_8B 利用可能な形式のリスト -1 - 1 [ 50.182333] avt_csi2 0-003c: avt_init_avail_formats[1843]: MEDIA_BUS_FMT_YUYV8_2X8/V4L2_PIX_FMT_YUYV/MIPI_CSI2_DT_YUV422_8Bを追加 利用可能な形式のリスト -1 - 1 [ 50.197003] avt_csi2 0-003c: avt_init_avail_formats[1844]: MEDIA_BUS_FMT_VYUY8_2X8/V4L2_PIX_FMT_VYUY/MIPI_CSI2_DT_YUV422_8Bを追加 利用可能な形式のリスト -1 - 1 [ 50.211670] avt_csi2 0-003c: avt_init_avail_formats[1849]: MEDIA_BUS_FMT_RGB888_1X24/V4L2_PIX_FMT_RGB24/MIPI_CSI2_DT_RGB888を追加 利用可能な形式のリスト -1 - 1 [ 50.226343] avt_csi2 0-003c: avt_init_avail_formats[1850]: MEDIA_BUS_FMT_RBG888_1X24/V4L2_PIX_FMT_RGB24/MIPI_CSI2_DT_RGB888を追加 利用可能な形式のリスト -1 - 1 [ 50.241008] avt_csi2 0-003c: avt_init_avail_formats[1851]: MEDIA_BUS_FMT_BGR888_1X24/V4L2_PIX_FMT_RGB24/MIPI_CSI2_DT_RGB888を追加 利用可能な形式のリスト -1 - 1 [ 50.255682] avt_csi2 0-003c: avt_init_avail_formats[1852]: MEDIA_BUS_FMT_RGB888_3X8/V4L2_PIX_FMT_RGB24/MIPI_CSI2_DT_RGB888を追加 利用可能な形式のリスト -1 - 1 [ 50.270271] avt_csi2 0-003c: avt_init_avail_formats[1856]: MEDIA_BUS_FMT_SGRBG8_1X8/V4L2_PIX_FMT_SGRBG8/MIPI_CSI2_DT_RAW8 t を追加 o 利用可能な形式のリスト 1 - 1 [ 50.284685] avt_csi2 0-003c: avt_init_avail_formats[1863]: MEDIA_BUS_FMT_SGRBG10_1X10/V4L2_PIX_FMT_SGRBG10/MIPI_CSI2_DT_RAWを追加 10 利用可能な形式のリスト 1 - 1 [ 50.320636] avt_csi2 0-003c: avt_init_controls[3359]: コントラストコントロール (0x980901) はカメラでサポートされていません [ 50.357183] avt_csi2 0-003c: avt_init_controls[3359]: シャープネスコントロール (0x98091b) はカメラでサポートされていません [ 50.367712] avt_csi2 0-003c: avt_update_sw_ctrl_state[2840]: ソフトウェアトリガーコントロールが見つかりません! [ 50.369213] avt_csi2 0-003c: avt_update_sw_ctrl_state[2840]: ソフトウェアトリガーコントロールが見つかりません! [ 50.378025] avt_csi2 0-003c: avt_update_sw_ctrl_state[2840]: ソフトウェアトリガーコントロールが見つかりません! [ 50.412857] mxc_mipi-csi 32e30000.mipi_csi:登録されたセンササブデバイス: avt_csi2 0-003c [ 50.429900] avt_csi2 0-003c: カメラ avt_csi2 0-003c が登録されました [ 50.435940] avt_csi2 0-003c: -> avt_probe[5420]: sysfsグループが作成されました!(0) [ 50.446676] avt_csi2 0-003c: avt_probe[5442]: プローブ成功! [ 50.378025] avt_csi2 0-003c: avt_update_sw_ctrl_state[2840]: ソフトウェアトリガーコントロールが見つかりません! [ 50.412857] mxc_mipi-csi 32e30000.mipi_csi:登録されたセンササブデバイス: avt_csi2 0-003c [ 50.429900] avt_csi2 0-003c: カメラ avt_csi2 0-003c が登録されました [ 50.435940] avt_csi2 0-003c: -> avt_probe[5420]: sysfsグループが作成されました!(0) [ 50.446676] avt_csi2 0-003c: avt_probe[5442]: プローブ成功! root@b2qt-imx8mm-lpddr4-evk:/usr/share/BoardSetup-scripts# この時点では、カメラはセットアップされ、ストリーミングの準備ができていると想定されますが、フレームやデータをユーザー空間に取り込むことはできません。添付の TestStream.sh スクリプトを使用します。 root@b2qt-imx8mm-lpddr4-evk:/usr/share/BoardSetup-scripts# ./TestStream.sh ./TestStream.sh:1行目: amera: コマンドが見つかりません === カメラストリーミングコントロール === 1. 現在のカメラの状態を確認します。 [ 76.502724] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 ビデオキャプチャのフォーマット:[ 76.511315] mxc_mipi-csi 32e30000.mipi_csi:フォーマットが一致しません 幅/高さ: 0/0 [ 76.519017] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 ピクセル形式: '' 分野: 任意 1行あたりのバイト数: 0 画像サイズ: 0 カラースペース: デフォルト Tra[ 76.537857] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 nsfer関数: デフォルト([76.548706] avt_csi2 0-003cにマップ: avt_core_ops_s_power[2156]+: on 0、camera->power_count 1 記録。709) YCbCr/HSVエンコーディング: デフォルト(ITU-R 601にマップ) 量子化: デフォルト (フルレンジにマップ) フラグ: 2. 利用可能なco[ 76.570719] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: on 1, camera->power_count 0をリストします コントロール: 3. 利用可能なフォームをリストします[ 76.581151] mxc_mipi-csi 32e30000.mipi_csi:フォーマットが一致しません ats: ioctl: VIDIOC_ENUM_FMT Ty[ 76.589396] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 pe: ビデオキャプチャ 4. 基本的なフォーマットを設定する: [ 76.611180] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.619262] mxc_mipi-csi 32e30000.mipi_csi:フォーマットが一致しません ピクセルフォーマット「UYVY」が無効です[76.625042] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: on 0、camera->power_count 1 5. ストリーミング コントロールがあるかどうかを確認します。 [ 76.647122] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.655283] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 6. ストリーミングを有効にしてみます(コントロールが存在する場合)。 [ 76.672441] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.682040] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 ストリーミング V4L2 コントロールが見つかりません [ 76.699454] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.708214] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 stream_enable コントロールが見つかりません 7. 取得開始を試みます(AVT 固有): [ 76.724226] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.733618] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 取得開始コントロールが見つかりません 8. 露出とゲインをチェックします(適切であることを確認します)。 [ 76.749702] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.759271] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 露出制御なし [ 76.775975] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.784748] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 ゲインコントロールなし 9. コントロールが存在する場合は、適切な露出/ゲインを設定します。 [ 76.801835] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.810768] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 露出を設定できません [ 76.827415] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.837494] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 ゲインを設定できません 10. 設定後にフレームをキャプチャしてみます。 ./TestStream.sh:47行目: タイムアウト: コマンドが見つかりません ❌ ストリーミング設定後もデータがありません 11. カーネル メッセージでストリーミング ステータスを確認します。 [ 76.784748] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 [ 76.801835] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.810768] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 [ 76.827415] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン1、カメラ->power_count 0 [ 76.837494] avt_csi2 0-003c: avt_core_ops_s_power[2156]+: オン0、カメラ->power_count 1 root@b2qt-imx8mm-lpddr4-evk:/usr/share/BoardSetup-scripts# 現在、フォーマットが一致しないため、/dev/media0 ノードのプレスリリース、製品ニュース-ctl を介してリセットして変更するつもりです。しかし、それは表示されません。 以下は、DTS の関連する中核部分です。 // I2Cバス上でカメラを定義する &i2c1 { /* * I2C アドレス 0x21 に PCAL6416A GPIO エクスパンダーを定義します。 * 参照できるように、「gpio_expander」というラベルを付けます。 */ gpio_expander: pcal6416a@21 { 互換性 = "nxp、pcal6416"; <0x21> レジスタ <2> = !; gpio コントローラ; #gpioセル =; }; アルビウム: アルビウム@3c { 互換性 = "alliedvision、avt_csi2"; レジスタ =<0x3c> �; ステータス = "正常"; pinctrl-names = "デフォルト"; pinctrl-0 = <&pinctrl_alvium_clk>、<&pinctrl_alvium_gpio>; // Attollo デイカメラ用ハードウェア設定 電源 = <&dayCam_step2>; リセットgpios = <&gpio1 15 GPIO_ACTIVE_LOW>; クロック = <&clk IMX8MM_CLK_CLKO1>; クロック名 = "csi_mclk"; 割り当てられたクロック = <&clk IMX8MM_CLK_CLKO1>; 割り当てられたクロックの親 = <&clk IMX8MM_CLK_24M>; 割り当てられたクロックレート = <24000000>; ポート { レジスタ = <0>; alvium_mipi_ep: エンドポイント { リモートエンドポイント = <&mipi1_sensor_ep>; データレーン = <2>; リンク周波数 = /ビット/ 64 <445500000 891000000>; mipi-csi; }; }; }; }; &mipi_csi_1 { ステータス = "正常"; /delete-node/ ポート; ポート { mipi1_sensor_ep: エンドポイント@1 { レジスタ = <1>; リモートエンドポイント = <&alvium_mipi_ep>; データレーン = <2>; csis-hs-settle = <13>; csis-clk-settle = <2>; csis-wclk; }; csi1_mipi_ep: エンドポイント@2 { レジスタ = <2>; リモートエンドポイント = <&csi1_bridge_in>; }; }; }; &csi1_bridge { ステータス = "正常"; fsl、mipi モード; /delete-node/ ポート; ポート { csi1_bridge_in: エンドポイント { リモートエンドポイント = <&csi1_mipi_ep>; }; }; }; / { dayCam_step1: camPowerEnable { compatible = "レギュレータ固定"; レギュレータ名 = "dayCam-Power-Enable"; gpio = <&gpio_expander 5 GPIO_ACTIVE_HIGH>; アクティブハイを有効にする; レギュレータ常時オン; }; dayCam_step2: dayCamI2cEnable { compatible = "レギュレータ固定"; レギュレータ名 = "dayCam-i2c-Power-Enable"; vin-supply = <&dayCam_step1>; gpio = <&gpio4 26 GPIO_ACTIVE_HIGH>; アクティブハイを有効にする; レギュレータ常時オン; // startup-delay-us = <2600000>; // 100ms待つ }; }; ご協力やアイデアをいただければ大変助かります。
View full article
#Cannot 使用 s32k396 评估板控制 fs26 pmic gpio1,2 你好,我目前正在使用 fs26 pmic 和 s32k396 评估板。 要知道,fs26 使用 spi 通信来控制多个状态或引脚,如 gpio、trk1,2 等。 我想激活 gpio 1 密码所以我发送寄存器命令 " sbc_fs26_WriteRegister(FALSE、0x11、0x0318);"-我使用的是 s32ds 实时驱动程序。 (我激活了 gpio1、gpio2、trk1、trk2) 我读取了 M_STATUS 寄存器,从中可以了解 fs26 引脚的状态。 但 gpio 1 引脚没有激活。 此外,我停用了"Sbc_fs26_WriteRegister(FALSE, 0x12, 0x0318);" - 停用所有引脚 但 gpio2 引脚没有停用。 因此,我想知道的是,我们不能使用 spi 通信改变 gpio1、gpio2 的状态吗? 根据数据手册,VCORE_PGOOD 信号与 GPIO2 有关。 最初制造 PMIC 设备时,此配置是否设置为默认配置? 除非使用 otp 配置,否则我们不能改变状态吗?(在 s32ds fs26 示例代码中没有改变状态的寄存器地址[除了 gpio 高、低电平],如 gpio 下拉、上拉)。 谢谢。 顺祝商祺! Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 欢迎您祝您愉快 致以最崇高的敬意 约瑟夫 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 感谢您抽出时间回答我的问题。致以最崇高的敬意 上帝保佑你 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 感谢您提供产品编号。根据原理图,FS2633AMDE4AD 已填充。 JozefKozon_0-1755512057506.png 根据所附的 FS2633AMDE4AD OTP 配置报告,GPIO 引脚被设置为输入。 JozefKozon_2-1755512354931.png 请查看 S32K396 MCU 的附加软件。 https://www.nxp.com/app-autopackagemgr/automotive-software-package-manager:AUTO-SW-PACKAGE-MANAGER?currentTab=0&selectedDevices=S32K396 如需在 OTP 模式下启用 FS26,请参阅 FS26 完整数据表中的第 21 节。请下载FS26 产品页面的 "安全 "部分。 JozefKozon_3-1755512865617.png 请注意,您需要与恩智浦签订有效的 NDA(保密协议),才能下载 FS26 数据表和其他机密文件。 如果您还没有保密协议但想签署一份保密协议,请在此处创建一张新票,恩智浦代表将指导您完成整个流程。 致以最崇高的敬意 约瑟夫 Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 我使用的是 s32k396-bga-dc1 评估板。 可以用 s32 design studio 进行 otp 设置吗? 在下面的示例代码中,我看不到任何 otp 寄存器地址 是否有任何软件可以使用 otp 设置? Mooang_0-1755510987550.png Re: #Cannot control fs26 pmic gpio1,2 with using s32k396 evaluation board 亲爱的 Hyun 请分享完整的评估板产品编号或评估板的链接,这样我就可以查看你在开发板上使用的是哪个 FS26 版本。OTP 寄存器一旦刻录就不能更改。只有将 FS26 设置为 OTP 模式,才能测试 OTP 寄存器设置。 致以最崇高的敬意 约瑟夫
View full article
SE050 初始配置 您好, 我正在尝试与 EdgeLock se050 芯片通信。我正在使用恩智浦的 “Plug & Trust 中间件迷你代码包”,我已经能够编译和执行他们提供的示例。我可以读取芯片的版本,但当我尝试读取一个对象时,会出现错误,并且在准备摘要符号之前的 ht ex_sss_entry 中,示例无法继续。 我的假设是,I2C 通信是正确的,但认证可能不正确,这就是我无法访问 se050 对象的原因。我想问一下,如果你们对这个芯片进行了首次配置,你们使用的是哪种验证方法,是否有我们可以使用的凭证。 亲切的问候, Iván Re: se050 initial configuration 看来硬件连接没有启用。也许您应该检查 I2C 连接并启用 GPIO。您可以参考附带 Raspberry Pi 的 EdgeLock SE05x 快速入门指南获取帮助。您使用的是哪种硬件平台? Re: se050 initial configuration 你好,我是@ivangonzalezcano、 感谢您提供的信息!我刚刚回复了您关于同一主题的私人信件,但如果您更愿意在这里讨论,我也没有意见。 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 ------------------------------------------------------------------------------- Re: se050 initial configuration 嗨,@Kan_Li、 我使用的是 SE050F 变体。 谢谢。 Re: se050 initial configuration 你好,我是@ivangonzalezcano、 您用来玩迷你 MW 的 SE050 变体是什么? 祝您愉快, Kan ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"标记正确" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题,并参考已关闭的主题。 -------------------------------------------------------------------------------
View full article
RT1052のSDRAMチップの交換に関する問題 私の RT1052 ボードは IS42S16160 32MB SDRAM を使用しており、完璧に動作します。しかし、IS42S16400 8MB SDRAMに交換した後、正常に動作しなくなりました。どのような設定を変更する必要がありますか? i.MX RT Re: Issues with Replacing SDRAM Chips on RT1052 わかりました。私の質問に対する答えをありがとうございます! Re: Issues with Replacing SDRAM Chips on RT1052 2 バンクまたは 8 列の SDRAM デバイス タイプはサポートされていません。 よろしくお願いします、 オマール Re: Issues with Replacing SDRAM Chips on RT1052 RT1052 は 8 ビットの row_addr をサポートしていますか?SEMC_SDRAM_COL8() は CAN ませんか? Re: Issues with Replacing SDRAM Chips on RT1052 sdramconfig 変数でデバイスの memsize を変更する必要があります。これは、2 つの違いがサイズのみであるCASEです。タイミングにさらに違いがある場合は、データシートの仕様に従って残りのパラメータを調整する必要があります。 両方のピン配置は似ていますか? よろしくお願いします、 オマール
View full article
I3C 目标 RESET 大家好, 我想 RESET 一台 I3C 外围设备。 请问您是如何在 MCXN556 上实现这一功能的? 谢谢。 通信& 控制(I3C | I2C | SPI | FlexCAN | 以太网 | FlexIO) MCX N Re: I3C target reset 你好@Bruce96 我想您可以参考 FRDM_MCXN947 SDK i3c 演示。 Harry_Zhang_0-1761704782804.png BR 哈利
View full article
S32K3:关于 AC_load_on_Job_Start 1. 根据参考手册,我们需要启用 AC_load_on_Job_Start,以避免 RWW 问题。 但当我按下图启用它时,Fls_ACWriteSize 和 Fls_ACWriteRomStart 仍未定义(与 Fls_ACEraseSize 和 Fls_ACEraseRomStart 相同)。 Jojo_Hu_0-1750821620784.jpeg Jojo_Hu_1-1750821642119.jpeg Jojo_Hu_3-1750821740692.png 请问如何解决这个问题? 2.如果禁用了 AC_load_on_Job_Start,并且写入和擦除都处于异步模式,那么在数据闪存写入/擦除的同时,代码闪存块是否可以写入/擦除? 期待您的支持,谢谢! Re: S32K3: about AC_load_on_Job_Start 您好, 应用程序和引导加载程序的内存分布如下。 如果我们想在启动加载程序运行时擦除和写入应用程序,并且已启用启动时的 Ac 加载,那么我们是否需要配置 PreTaskHook 中第二张图片中提到的内核 MPU? Jojo_Hu_0-1757918173892.png Jojo_Hu_1-1757918311233.png Re: S32K3: about AC_load_on_Job_Start 是,C40_Ip_AccessCode 被复制到 RAM 中。 Re: S32K3: about AC_load_on_Job_Start ROM 中代码的哪些部分将放在 RAM 的这个地址上? 该功能 ? Jojo_Hu_0-1751978216903.png Re: S32K3: about AC_load_on_Job_Start 在我的测试代码中,我只是在配置器中初始化了这些地址,所以它指向的是未使用的 RAM: lukaszadrapa_0-1751955715691.png Re: S32K3: about AC_load_on_Job_Start 我该如何定义这些变量? Jojo_Hu_0-1751540048260.png Re: S32K3: about AC_load_on_Job_Start 我在这个版本中进行了快速测试。如果要擦除的扇区与 Fls 代码位于同一闪存块中,我可以看到代码如期被复制到 RAM 中,扇区被成功擦除。不知道你那边怎么了... Re: S32K3: about AC_load_on_Job_Start @lukaszadrapa 针对问题 1、 期待您的大力支持。谢谢。 Re: S32K3: about AC_load_on_Job_Start 你好 为 1: SW32K3_S32M27x_RTD_4.4_4.0.0_P20_D2403 Re: S32K3: about AC_load_on_Job_Start 你好@Jojoo_Hu 1.这是哪个 RTD 版本? 2.闪存块之间支持 "边读边写"。例如,在对数据闪存进行编程或擦除时,代码可以从代码闪存运行。请注意,一次只能执行一个编程或擦除操作。 此致, Lukas
View full article
RTL8211F 千兆位以太网使用中断模式缩短启动时间 你好 我在 yocto 6.1.22 上使用 imx93-evk-11x11版本。 在测试启动时间时,发现网络发现时间过长,具体如下: [ 2.040890][ T179] imx-dwmac 428a0000.ethernet eth0: 注册 MEM_TYPE_PAGE_POOL RxQ-0 [ 2.134466][ T179] imx-dwmac 428a0000.ethernet eth0: PHY [stmmac-1:00] 驱动程序 [RTL8211F 千兆以太网] (irq=POLL) [ 2.142421][ T179] imx-dwmac 428a0000.ethernet eth0: 未找到任何功能安全支持 [ 2.142451][ T179] imx-dwmac 428a0000.ethernet eth0: 支持 IEEE 1588-2008 高级时间戳 [ 2.142648][ T179] imx-dwmac 428a0000.ethernet eth0: 注册的 PTP 时钟 [ 2.151880][ T179] imx-dwmac 428a0000.ethernet eth0: FPE 工作队列启动 [ 2.151899][ T179] imx-dwmac 428a0000.ethernet eth0: 配置 phy/rgmii-id 链接模式 [ 2.178732][ T179] 8021q: 将 VLAN 0 添加到设备 eth0 上的 HW 过滤器 [ 5.249135][ T9] imx-dwmac 428a0000.ethernet eth0: 链接已启动 - 1Gbps/Full - 流量控制 rx/tx 差不多用 3 高效密码学标准(SEC) 的时间来发现网络。 修改树文件如下 ranYang_0-1760612473701.png ranYang_1-1760612502791.png 但 dmesg 打印 [ 2.024875][ T172] imx-dwmac 428a0000.ethernet eth0: Register MEM_TYPE_PAGE_POOL RxQ-0 [ 2.039447][ T25] audit: type=1334 audit(1677838060.032:4):prog-id=7 op=LOAD [ 2.039752][ T25] audit: type=1334 audit(1677838060.032:5):prog-id=8 op=Load [2.11475] [T172] imx-dwmac 428a0000.ethernet eth0:PHY [stmmac-1:00] 驱动程序 [RTL8211F 千兆以太网] (irq=98) [2.126706] [T172] imx-dwmac 428a0000.ethernet eth0:未找到 功能安全支持 [2.126736] [T172] imx-dwmac 428a0000.ethernet ethernet eth0 mac 428a0000.ethernet eth0:支持 IEEE 1588-2008 高级时间戳 [2.126984] [T172] imx-dwmac 428a0000.ethernet eth0:已注册的 PTP 时钟 [2.138550] [T172] imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0:imx-dwmac 428a0000.ethernet ethernet eth0 eth0:为 phy/ 进行配置 rgmii-id 链接模式 [2.167072] [T172] 8021q:在设备 eth0 上的硬件过滤器中添加 VLAN 0 eth0 状态如下: ethtool eth0 eth0 的设置: 支持的端口:[ TP MII ] 支持的链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 支持暂停帧使用:对称只接收 支持自动协商:是 支持 FEC 模式:未报告 广告链接模式: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full 广告暂停帧使用:对称只接收 广告宣传的自动协商:是 宣传的 FEC 模式:未报告 速度:未知! 双工:未知!(255) 自动协商:开 主从配置文件:首选从 主从状态:未知 端口:双绞线 PHYAD:0 收发器:外部 MDI-X:未知 支持唤醒:ug 唤醒:d 当前信息级别:0x0000003f (63) drv probe link timer ifdown ifup 检测到链接:无 有人遇到过类似问题吗? Linux Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 你好@然阳 现在似乎是谈判时间。 你可以尝试在设备树中添加固定链路属性。 或者修改驱动程序,避免使用 imx_dwmac_fix_speed。 顺祝商祺! 萨拉斯 Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 您好: 中断响应是足够的,但由于千兆位 phy 的握手,启动时间并没有减少。具体如下       ranYang_0-1761455128411.png 我想在内核 dwmac 的驱动程序阶段对/lib/systemd/systemd networkd 执行网络升级操作。完成 fs 文件系统后,我就可以直接使用网络了。不按顺序,导致 phy 握手时间长达约 3 秒。 以前有这样做的例子吗? Re: RTL8211F Gigabit Ethernet use interrupt mode reduce startup time 你好@然阳 希望你一切顺利。 我只想问一个问题。 您可以重新配置 SW1006 吗? Manuel_Salas_0-1761017014415.png 请仔细检查 SW 是否配置正确。 顺祝商祺! 萨拉斯
View full article
LINFlexD UART Rx FIFO 软复位 你好 我正在尝试使用 TX 和 RX FIFO 缓冲器将 LINFlexD_9 设置为 UART 模式。TX FIFO 工作正常,但是当我启用 RX FIFO 退出初始化模式(LINCR1 [INIT] = 0)时,会导致软复位。 这些是将 LINCR1[INIT] 设置为 0 之前的寄存器值。 smp9_0-1761154305537.png smp9_1-1761154324634.png smp9_2-1761154344468.png 您知道发生了什么事吗? Re: LINFlexD UART Rx FIFO sofreset 你好@smp9、 对不起,我的回复晚了。您只需选择Watch 寄存器中的所有寄存器,然后以逗号分隔数据的形式复制即可。不过,由于 LIN 的登记册很少,您可以通过以下方法进行比较: 在进入正常模式之前,我在这里对程序进行了加密: alejandro_e_0-1761343395436.png 调用堆栈如下 alejandro_e_1-1761343406721.png 登记情况如下 UARTCR 0x00000027 LINSR 0x00002000 LINOCR 0x0000 FFFF UARTPTO 0x00000FFF BDRL 0x00000000 DMARXE 0x00000000 LINTOCR 0x00000E2C LINFBRR 0x0000000B LINCR1 0x00000080 BDRM 0x00000000 LINESR 0x00000000 LINCR2 0x00006000 UARTCTO 0x000009FE UARTSR 0x00000048 LINCFR 0x00000000 BIDR 0x00000000 DMATXE 0x00000000 LINTCSR 0x00000200 GCR 0x00000000 里纳 0x00000000 LINIBRR 0x00000015 如果您发现任何重大差异,请告诉我 Re: LINFlexD UART Rx FIFO sofreset 你好@alejandro_e、 我尝试同时写入 SLEEP 和 WRITE 位,但问题依然存在。 我附上了使用 "监视寄存器"> "导出 "转储的寄存器值,因为 "内存"> "导出 "对这些地址不起作用。 谢谢。 Re: LINFlexD UART Rx FIFO sofreset 你好@smp9、 感谢您再次与我们联系。我猜你还在使用 S32E2。我查看了 RTD 的操作方法,似乎需要同时写入 SLEEP 和 INIT 位: alejandro_e_0-1761186480759.png 您是以这种方式进行配置的吗? 如果问题不在于此,您能否共享在向 LINCR1[INIT] 写 0 之前对 LLCE 寄存器的完整转储?地址范围 0x42980000 - 0x4298005C 因此,我可以举例说明。 谢谢  Re: LINFlexD UART Rx FIFO sofreset 你要退出启动 ROM 了吗?我在启动 S32E 评估板时遇到了这个问题。如果无法启动其他启动源,HSE 处理器中的启动 ROM 将进入串行启动模式,它会访问 LINFLEX 9 尝试从 UART 加载启动序列。这种行为似乎与尝试初始化 RX FIFO 相冲突并导致软复位。一旦你退出启动 ROM(通过启动有效的启动源,如 EMMC 或 QSPI),启动 ROM 就不会尝试持续访问 LINFLEX 9,启用 RX FIFO 也不会再导致这种软复位。
View full article