Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
恩智浦 S32R294 QSPI 闪存交换。 你们好 我使用的是带有 Qspi 接口外部闪存的恩智浦 S32R294 微控制器。 我想使用其他供应商的闪存。 实际上,我使用的是Winbond (W25Q32JW),我想把这个芯片换成:ISSI (IS25WP032)。 内存交换到 ISSI(IS25WP032)后,我在启动过程中遇到了问题。 调试器-T32 似乎可以正常工作并且程序闪存已正常闪存,但是每次目标内RESET我都会收到警告,例如: " 警告:等待启动 ROM 执行完成时超时 (socdata1=0x00000000) " 我仅在"QuadSPI 重新配置数据" 块中更改了"闪存命令序列" ,以启用四模式 (QE=1)。在 winbound 中设置 QE=1 时应使用以下命令序列:"0x06; 0x31 0x2" ,在 ISSI 中设置 QE=1 时应使用以下命令序列: "0x06 ; 0x01 0x40" 。这是我在 SW 中做的唯一改动。带有挡风芯片的原始软件在 T32 中的目标内 RESET 后运行良好,我能看到 Ram 启动指针上设置了程序指针(PC)并且可以正常工作。在 T32 中目标 RESET 后使用 ISSI 芯片我只能看到这个警告(socdata1=0x00000000)但它不起作用。谁能帮帮我?为什么内存芯片交换在这里会出现如此大的问题? Re: NXP S32R294 QSPI Flash Memory swap. 你好 如果 bootROM 无法识别 JEDEC ID 或设备密度位,它将无法配置 QSPI 并将停止,从而导致您的确切超时。 你的手动 QuadSPI 配置块从未执行过,因为 BootROM 在到达它之前就已经挂起了。 在 S32R 设备上: 启动顺序为: BootROM 尝试使用 JEDEC ID + 默认假设自动配置 QSPI 然后才会加载 QuadSPI 重配置块 然后运行应用程序 如果步骤(1)失败→没有其他情况发生→T32 显示: 警告:等待启动 ROM 执行完成时超时 socData1=0x00000000 顺祝商祺! Peter Re: NXP S32R294 QSPI Flash Memory swap. 交换 QSPI 闪存芯片可能很棘手,因为即使两者都是 32 Mb 设备,它们的命令集、时间和状态寄存器布局也略有不同。就您而言,除了设置 QE(例如,不同的虚拟周期、READ命令代码或状态寄存器位)之外,ISSI 设备可能还需要额外的初始化。S32R294 上的启动 ROM 需要精确的序列与闪存的 JEDEC ID 和时间相匹配;如果这些序列不一致,它将无法完成启动过程,因此会超时。您可能需要调整 QuadSPI 重新配置数据,不仅要调整 QE,还需要调整 READ命令、虚拟周期,可能还需要调整 RESET/启用顺序,以完全匹配 ISSI 的数据表。
記事全体を表示
MPC5744P , RESET_B 始终保持低电平 您好, 在使用 MPC5744P 的自定义板上,RESET_B 处于低电平有效状态。 RESET_B 具有 10k 上拉至 3.3V 的电压 没有外部设备驱动它 存在 3.3V 和 1.25V 电压轨 RESET_B 至接地电阻(电源关闭):8kΩ JTAG 断开:仍为 0V 我有一个 S32 设计工作室,我不断收到警告:在刷机程序时因此未检测到设备 在什么内部条件下,微控制器会保持 RESET_B 钳位低电平(我没有连接 EXT_POR_B 引脚而且 VPP_TEST 引脚已接地)? 首次闪光是否需要特定的表带或测试模式配置? Re: MPC5744P , RESET_B staying Low all time 你好 在什么内部条件下,微控制器会保持 RESET_B 钳位低电平(我没有连接 EXT_POR_B 引脚而且 VPP_TEST 引脚已接地)? 由于RESET是双向的,任何内部RESET都将传播到外部引脚。由于您的RESET线路始终处于活动状态,我预计您会遇到RESET升级的问题。 首次闪光是否需要特定的表带或测试模式配置? 据我所知没有。默认情况下,此设备上的 SWT 处于禁用状态,如果您的 SBC WDOG 也没有问题。 此外,如果芯片中没有 SW,代码将在 BAM 中循环。 检查所有电压是否都在指定范围内,即 VDD_HV 和 VDD_LV。检查核心电压等级。 顺祝商祺! Peter
記事全体を表示
How to do DPP test with two 88W8997 and one IW612 What's DPP? DPP:Device Provisioning Protocol It is also called: Wi-Fi Easy Connect. The DUT is a device that needs to join the network. It actively initiates DPP authentication (Initiator + Enrollee), which is configured by CTT1, and finally joins the Wi-Fi network provided by CTT2 (Responder + AP) as a STA. DPP Role introduction: CTT1 (Configurator) Reads DUT's bootstrap key Coordinates DPP Authentication/Configuration Sends Wi‑Fi credentials to the DUT DUT (Initiator + Enrollee + STA) Is the device being provisioned Initiates DPP Authentication toward CTT2 Receives Wi‑Fi credentials from CTT1 Connects as a STA to the AP on CTT2 CTT2 (Responder + AP + Enrollee) Responds to DUT’s DPP Authentication messages Operates as an AP using hostapd The DUT will join this AP after provisioning Below is the process flow: 1.Add a Configurator and generate QR code on CTT1 (configurator). 2.Authenticate the DUT on DUT(STA) 3.Generate the QR Code and get URI on CTT2 4.Enter the QR Code on CTT1 and authenticate 5.Update AP configuration on CTT2 6.The connection between the DUT (STA) and CTT2 (AP) is successful.   Reference: https://docs.nxp.com/bundle/RM00297/page/connectivity-features/topics/wi-fi_easy_connect_dpp.html Wi-Fi Easy Connect Specification   The red fonts in the pdf are commands. The green fonts in the pdf are comments. CTT1:Configurator Typically, it's a mobile phone or PC used to scan QR codes and issue Wi-Fi credentials. IMX93-EVK+IW612 module imx93evk login: root root@imx93evk:~# uname -a Linux imx93evk 6.12.34-lts-next-gbe78e49cb433 #1 SMP PREEMPT Wed Sep  3 05:59:19 UTC 2025 aarch64 GNU/Linux root@imx93evk:~# cat /lib/firmware/nxp/wifi_mod_para.conf SDIW612 = { cfg80211_wext=0xf max_vir_bss=1 cal_data_cfg=none ps_mode=2 auto_ds=2 host_mlme=1 drv_mode=0x17 fw_name=nxp/sduart_nw61x_v1.bin.se } root@imx93evk:~# vi wpa_supplicant.conf root@imx93evk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx93evk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 678 root@imx93evk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx93evk:~# root@imx93evk:~# root@imx93evk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_CONFIGURATOR_ADD 1 > SET dpp_configurator_params " conf=sta-dpp configurator=1" OK > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=fc:84:a7:51:87:fc //MAC address of CTT1 itself. 1 > DPP_BOOTSTRAP_GET_URI 1  //Attention here, after this command, will generate a QR code, which will be use on DUT with command:DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; > DPP_LISTEN 2412 role=configurator OK //Hold on here, and now go to DUT side to authenticate the DUT with above QR Code. After authenticate on DUT, will auto output below logs. <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=0 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=1 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 freq=2412 result=SUCCESS <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 own=1 peer=-1 <3>DPP-CONF-REQ-RX src=20:4e:f6:bb:08:d9 <3>DPP-BAND-SUPPORT 81,82,83,84,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130 <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 //Now continue, after you generate the QR Code and get URI on CTT2. Enter the QR Code on CTT1 and authenticate: > DPP_QR_CODE DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;; 2 //On successfully adding QR Code, a bootstrapping info id is returned as shown 2 in above command and should input in below command DPP_AUTH_INIT > DPP_AUTH_INIT peer=2 conf=ap-dpp configurator=1 OK //Now go to CTT2 to update AP configurations. <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=0 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=2 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=22233c6d83a272944eeb9788870b0b564b46ba8d48fd80787f5cc22bcec95c87 own=-1 peer=2 <3>DPP-CONF-REQ-RX src=02:e9:3a:0d:b8:cd <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=11 <3>DPP-CONF-SENT conf_status=0 > list_networks network id / ssid / bssid / flags > quit root@imx93evk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = SDIW612---18.99.3.p26.7-MM6X18540.p7-(FP92) interface_name="mlan0" firmware_major_version=18.99.3 uuid = 1653948cf99e5b2bbe5ad9b851d6151a bss_mode ="Managed" media_state="Disconnected" mac_address="fc:84:a7:51:87:fc" multicast_count="2" essid="" bssid="00:00:00:00:00:00" channel="0" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" num_tx_bytes = 0 num_rx_bytes = 0 num_tx_pkts = 0 num_rx_pkts = 0 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier off tx queue 0:  stopped tx queue 1:  stopped tx queue 2:  stopped tx queue 3:  stopped === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 1 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 0 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 7 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx93evk:~# DUT:Initiator + Enrollee + STA The device you want it to join the network. IMX8MQ-EVK+88W8997 module root@imx8mqevk:~# uname -a Linux imx8mqevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mqevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mqevk:~# cat wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=0 update_config=1 dpp_config_processing=2 root@imx8mqevk:~# modprobe moal mod_para=nxp/wifi_mod_para.conf root@imx8mqevk:~# wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B & [1] 799 root@imx8mqevk:~# Successfully initialized wpa_supplicant rfkill: Cannot open RFKILL control device [1]+  Done                    wpa_supplicant -i mlan0 -D nl80211 -c wpa_supplicant.conf -B root@imx8mqevk:~# wpa_cli wpa_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'mlan0' Interactive mode > DPP_QR_CODE DPP:C:81/1;M:fc84a75187fc;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgAD/bYibd4JdGvnK1etdgX/z4P+aJE2ztv89Q8xwjmbZNc=;; 1 > DPP_AUTH_INIT peer=1 role=enrollee OK <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-AUTH-DIRECTION mutual=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>DPP-AUTH-SUCCESS init=1 pkhash=6785abbd108e5ef6fe780819634ef620fc6eb71715b92b07f393e58af7afa0b6 own=-1 peer=1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=199 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6InN0YSJ9XSwibmV0QWNjZXNzS2V5Ijp7Imt0eSI6IkVDIiwiY3J2IjoiUC0yNTYiLCJ4IjoibjBQbXlSMVhUUE14WUNiM2tqYjF1Yjh3Q055bUUtREFTcE4tZ2I0ZDhDcyIsInkiOiJfbmlkd1V6NkFkM1AySy1RYVJuXzZTem9KYlJWRGt3d0VYeTdZU2JoMDU4In19.kfVVpSaFNaTfoLVE5Yu16bLMfpSlVXGlul07FNwQ7gLPlYOTGS5lbOLwCTkP246kSC1Wn-8MWSUXpxgpSpsX2A <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-PP-KEY 3039301306072a8648ce3d020106082a8648ce3d03010703220002a0008bd0723f2723408ef53550f5cbc55785ea625ec5265d81e16c0cd45a5e3a <3>DPP-NET-ACCESS-KEY 30770201010420cedd6e85e66768b1a8e14e2e048fd54b7f09277195c3db3f6b1887e8b449e872a00a06082a8648ce3d030107a144034200049f43e6c91d574cf3316026f79236f5b9bf3008dca613e0c04a937e81be1df02bfe789dc14cfa01ddcfd8af906919ffe92ce825b4550e4c30117cbb6126e1d39f <3>CTRL-EVENT-NETWORK-ADDED 0 <3>DPP-NETWORK-ID 0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc freq=2412 result=SUCCESS <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND <3>CTRL-EVENT-SCAN-STARTED <3>CTRL-EVENT-SCAN-RESULTS <3>WPS-AP-AVAILABLE <3>CTRL-EVENT-NETWORK-NOT-FOUND > DPP_STOP_LISTEN OK //All commands on DUT side finished until here. Now go to CTT2 side to continue, generate the QR Code and get URI on CTT2. <3>CTRL-EVENT-SCAN-RESULTS <3>DPP-TX dst=02:e9:3a:0d:b8:cd freq=2412 type=5 <3>DPP-TX-STATUS dst=02:e9:3a:0d:b8:cd freq=2412 result=SUCCESS <3>DPP-RX src=02:e9:3a:0d:b8:cd freq=2412 type=6 <3>PMKSA-CACHE-ADDED 02:e9:3a:0d:b8:cd 0 <3>DPP-INTRO peer=02:e9:3a:0d:b8:cd status=0 version=2 <3>SME: Trying to authenticate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Trying to associate with 02:e9:3a:0d:b8:cd (SSID='test' freq=2412 MHz) <3>Associated with 02:e9:3a:0d:b8:cd <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 99 <3>EAPOL-RX 02:e9:3a:0d:b8:cd 195 <3>WPA: Key negotiation completed with 02:e9:3a:0d:b8:cd [PTK=CCMP GTK=CCMP] <3>CTRL-EVENT-CONNECTED - Connection to 02:e9:3a:0d:b8:cd completed [id=0 id_str=] > list_networks network id / ssid / bssid / flags 0       test    any     [CURRENT] > quit root@imx8mqevk:~# cat /proc/mwlan/adapter0/mlan0/info driver_name = "wlan" driver_version = PCIE8997--16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="mlan0" firmware_major_version=16.92.21 bss_mode ="Managed" media_state="Connected" mac_address="20:4e:f6:bb:08:d9" multicast_count="4" essid="test" bssid="02:e9:3a:0d:b8:cd" channel="1" region_code = "00" multicast_address[0]="33:33:00:00:00:01" multicast_address[1]="01:00:5e:00:00:01" multicast_address[2]="33:33:ff:bb:08:d9" multicast_address[3]="33:33:00:00:00:fb" num_tx_bytes = 2458 num_rx_bytes = 350 num_tx_pkts = 19 num_rx_pkts = 3 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 0 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 18 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 19 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 67 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mqevk:~# CTT2 (AP):Responder + AP + Enrollee IMX8MPlus EVK + 88W8997 module root@imx8mpevk:~# uname -a Linux imx8mpevk 6.12.49-lts-next-gdf24f9428e38 #1 SMP PREEMPT Fri Nov 21 03:24:46 UTC 2025 aarch64 GNU/Linux root@imx8mpevk:~# cat /lib/firmware/nxp/wifi_mod_para.conf PCIE8997 = {         cfg80211_wext=0xf         max_vir_bss=1         cal_data_cfg=none         ps_mode=1         auto_ds=1         host_mlme=1         fw_name=nxp/pcieuart8997_combo_v4.bin } root@imx8mpevk:~# hostapd hostapd.conf -B & [1] 1731 root@imx8mpevk:~# HT (IEEE 802.11n) with WPA/WPA2 requires CCMP/GCMP to be enabled, disabling HT capabilities rfkill: Cannot open RFKILL control device uap0: interface state UNINITIALIZED->ENABLED uap0: AP-ENABLED [1]+  Done                    hostapd hostapd.conf -B root@imx8mpevk:~# hostapd_cli hostapd_cli v2.11-M005 Copyright (c) 2004-2024, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Selected interface 'uap0' Interactive mode > DPP_BOOTSTRAP_GEN type=qrcode chan=81/1 mac=02:e9:3a:0d:b8:cd //MAC address of CTT2 itself and returned 1 is bootstrap info id which require to get QR code in below command. 1> DPP_BOOTSTRAP_GET_URI 1 //Attention here, after this command, will generate a QR code, which will be use on CTT1 with command:DPP_QR_CODE. Then directly go to CTT1 to enter the QR Code. DPP:C:81/1;M:02e93a0db8cd;V:2;K:MDkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDIgACQOp5kWO1ex4L2U5rRXdS9yPYWA9NdRXTsuT+v5L/jvc=;;> //Hold on here, and now go to CTT1 to authenticate this AP with above QR Code. After authenticate on CTT1 with QR Code, will auto output below logs. Pay attention on the keys and connectors info, will use them later when you update the AP. > <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=0 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=1 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS <3>DPP-RX src=fc:84:a7:51:87:fc freq=2412 type=2 <3>DPP-AUTH-SUCCESS init=0 pkhash=8b3e0f88b70610446a84f53ea9d792f5631b2b87e30cd219a8059c6f7893c501 own=1 peer=-1 <3>GAS-QUERY-START addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 <3>GAS-QUERY-DONE addr=fc:84:a7:51:87:fc dialog_token=0 freq=2412 status_code=0 result=SUCCESS <3>DPP-CONF-RECEIVED <3>DPP-CONFOBJ-AKM dpp <3>DPP-CONFOBJ-SSID test <3>DPP-CONNECTOR eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ <3>DPP-C-SIGN-KEY 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b <3>DPP-NET-ACCESS-KEY 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 <3>DPP-TX dst=fc:84:a7:51:87:fc freq=2412 type=11 <3>DPP-TX-STATUS dst=fc:84:a7:51:87:fc result=SUCCESS //Now update AP configurations on CTT2: //First disable AP: > disable <3>AP-DISABLED OK //Update AP parameters: > set ssid test OK > set wpa 2 OK > set wpa_key_mgmt DPP OK > set ieee80211w 2 OK > set rsn_pairwise CCMP OK > set dpp_connector eyJ0eXAiOiJkcHBDb24iLCJraWQiOiJWV0hoQmp0enJVZ0xTSjhpTTJDRmRtNkxPQ0FFWHVCSWJEU3hzMEhaSDhnIiwiYWxnIjoiRVMyNTYifQ.eyJncm91cHMiOlt7Imdyb3VwSWQiOiIqIiwibmV0Um9sZSI6ImFwIn1dLCJuZXRBY2Nlc3NLZXkiOnsia3R5IjoiRUMiLCJjcnYiOiJQLTI1NiIsIngiOiJEbVRmSVFTRFNPVXVkVFBkN0pobEQtQ2xOa0U3U2lEWmctLWpYeGdNRXRJIiwieSI6Iml2NlVCc1J0YXhGSEpzcEtPbWFQSktqUmNDTFV5REh6WHFFeWtLbkhsOGcifX0.vEzfQywitO8AMvmcXenL_qidmkNl7t_jen2YW9OV8M5OID9jmTu-GqVUUkMEQE7R7Ja5vGnOMQ2-x-h7qyRKIQ OK > set dpp_csign 3039301306072a8648ce3d020106082a8648ce3d0301070322000226d58dd75a168da8b901b47e01694868af2158d57db2984784349e12768e668b OK > set dpp_netaccesskey 307702010104200be4b069c34a39d844fca856dd1e583a729e74f394370a4da8bc7d68d0dfadc2a00a06082a8648ce3d030107a144034200040e64df21048348e52e7533ddec98650fe0a536413b4a20d983efa35f180c12d28afe9406c46d6b114726ca4a3a668f24a8d17022d4c831f35ea13290a9c797c8 OK //Re-enable the AP after updates: > enable <3>AP-ENABLED OK //just wait here, it will output below logs after some seconds. > <3>DPP-RX src=20:4e:f6:bb:08:d9 freq=2412 type=5 <3>DPP-TX dst=20:4e:f6:bb:08:d9 freq=2412 type=6 status=0 <3>DPP-TX-STATUS dst=20:4e:f6:bb:08:d9 result=SUCCESS <3>AP-STA-CONNECTED 20:4e:f6:bb:08:d9 dpp_pkhash=74a40ec058ac8c7f7acb6589253e76f5d1a9582359353bcd5e6983ee97c3a382 <3>EAPOL-4WAY-HS-COMPLETED 20:4e:f6:bb:08:d9 > quit > root@imx8mpevk:~# cat /proc/mwlan/adapter0/uap0/info driver_name = "uap" driver_version = PCIE8997--w8997o-V4, RF878X, FP92, 16.92.21.p153.7-MM6X16540.p33-GPL-(FP92) interface_name="uap0" firmware_major_version=16.92.21 media_state="Connected" mac_address="02:e9:3a:0d:b8:cd" num_tx_bytes = 462 num_rx_bytes = 2248 num_tx_pkts = 4 num_rx_pkts = 20 num_tx_pkts_dropped = 0 num_rx_pkts_dropped = 0 num_tx_pkts_err = 60 num_rx_pkts_err = 0 carrier on tx queue 0:  started tx queue 1:  started tx queue 2:  started tx queue 3:  started tkip_mic_failures = 0 ccmp_decrypt_errors = 0 wep_undecryptable_count = 0 wep_icv_error_count = 0 decrypt_failure_count = 0 mcast_tx_count = 20 failed_count = 3 retry_count = 0 multiple_retry_count = 0 frame_duplicate_count = 0 rts_success_count = 0 rts_failure_count = 0 ack_failure_count = 30 rx_fragment_count = 55 mcast_rx_frame_count = 18 fcs_error_count = 401368 tx_frame_count = 22 rsna_tkip_cm_invoked = 0 rsna_4way_hshk_failures = 0 === tp_acnt.on:0 drop_point:0 === ====Tx accounting==== [0] Tx packets     : 0 [0] Tx packets last: 0 [0] Tx packets rate: 0 [0] Tx bytes       : 0 [0] Tx bytes last  : 0 [0] Tx bytes rate  : 0Mbps [1] Tx packets     : 0 [1] Tx packets last: 0 [1] Tx packets rate: 0 [1] Tx bytes       : 0 [1] Tx bytes last  : 0 [1] Tx bytes rate  : 0Mbps [2] Tx packets     : 0 [2] Tx packets last: 0 [2] Tx packets rate: 0 [2] Tx bytes       : 0 [2] Tx bytes last  : 0 [2] Tx bytes rate  : 0Mbps [3] Tx packets     : 0 [3] Tx packets last: 0 [3] Tx packets rate: 0 [3] Tx bytes       : 0 [3] Tx bytes last  : 0 [3] Tx bytes rate  : 0Mbps [4] Tx packets     : 0 [4] Tx packets last: 0 [4] Tx packets rate: 0 [4] Tx bytes       : 0 [4] Tx bytes last  : 0 [4] Tx bytes rate  : 0Mbps Tx amsdu cnt            : 0 Tx amsdu cnt last       : 0 Tx amsdu cnt rate       : 0 Tx amsdu pkt cnt        : 0 Tx amsdu pkt cnt last : 0 Tx amsdu pkt cnt rate : 0 Tx intr cnt             : 22 Tx intr last        : 0 Tx intr rate        : 0 Tx pending          : 0 Tx xmit skb realloc : 64 Tx stop queue cnt : 0 ====Rx accounting==== [0] Rx packets     : 0 [0] Rx packets last: 0 [0] Rx packets rate: 0 [0] Rx bytes       : 0 [0] Rx bytes last  : 0 [0] Rx bytes rate  : 0Mbps [1] Rx packets     : 0 [1] Rx packets last: 0 [1] Rx packets rate: 0 [1] Rx bytes       : 0 [1] Rx bytes last  : 0 [1] Rx bytes rate  : 0Mbps [2] Rx packets     : 0 [2] Rx packets last: 0 [2] Rx packets rate: 0 [2] Rx bytes       : 0 [2] Rx bytes last  : 0 [2] Rx bytes rate  : 0Mbps [3] Rx packets     : 0 [3] Rx packets last: 0 [3] Rx packets rate: 0 [3] Rx bytes       : 0 [3] Rx bytes last  : 0 [3] Rx bytes rate  : 0Mbps [4] Rx packets     : 0 [4] Rx packets last: 0 [4] Rx packets rate: 0 [4] Rx bytes       : 0 [4] Rx bytes last  : 0 [4] Rx bytes rate  : 0Mbps Rx amsdu cnt             : 0 Rx amsdu cnt last        : 0 Rx amsdu cnt rate        : 0 Rx amsdu pkt cnt         : 0 Rx amsdu pkt cnt last : 0 Rx amsdu pkt cnt rate : 0 Rx intr cnt      : 28229 Rx intr last        : 0 Rx intr rate        : 0 Rx pending          : 0 Rx pause            : 0 Rx rdptr full cnt   : 0 root@imx8mpevk:~#
記事全体を表示
【NXPマイコン入門】【モータ制御】【実践編②】永久磁石同期モータの仕組みと制御方法(日本語ブログ) [Lab0_2]環境のセットアップ + モータサンプルコードを動かす②   目次    5. ソフトウェアセットアップ 5-1. MCUXpressoを起動 5-2. SDKからSample Demoをインポート 5-3. DebugからReleaseに変更 5-4. ビルドプロジェクト 5-5. フラッシュ書き込み 6. リアルタイムデバッガツールと接続 デモの実行 7. 動作確認とフォルト体験 8. デバッグ 9. 一部SWコードの説明 10. まとめ・次回予告   5. ソフトウェアセットアップ ここからは、実際に開発環境をセットアップしてサンプルコードを動かすまでの流れを、エンジニア目線で詳しく解説します。 初めての方でも迷わないよう、つまずきやすいポイントや「ここが便利!」というコツも交えて紹介します。 5-1. MCUXpressoを起動 まずはIDE(MCUXpresso)を起動しましょう。 インストール直後は「Welcome画面」が表示されるので、ここからスタートです。 ポイント 初回起動時は少し時間がかかることも。焦らず待ちましょう! 5-2. SDKからSample Demoをインポート SDK(ソフトウェア開発キット)には、たくさんのサンプルプロジェクトが入っています。 今回は「mc_pmsm_enc」という、エンコーダ付きPMSMモータ制御のサンプルを使います。 「MCXA156」を選択 「frdmmcxa156」を選択 Nextをクリック Examples欄で「pmsm」と検索し、「mc_pmsm_enc」にチェック Finishでインポート完了! コツ サンプル名で迷ったら「pmsm」「motor」などで検索すると見つけやすいです。   5-3. DebugからReleaseに変更 プロジェクトをインポートしたら、まず「Release」ビルドに切り替えましょう。 Debugビルドでも動きますが、Releaseの方が最適化されていて実機動作に向いています。 USBケーブルでMCU-LinkコネクタとPCを接続し、 「Build」アイコンをクリックしてビルド開始! 次に「GUI Flash Tool」アイコン をクリックし、 デバッガが正しく認識されているか確認してからフラッシュ書き込みを行います。 トラブルシューティング デバッガが認識されない場合は、USBケーブルの抜き差しや、PCの再起動で直ることも。   5-4. ビルドプロジェクト ビルドが完了すると、プロジェクトの「Release」フォルダにバイナリファイルが生成されます。 エラーが出た場合は、SDKのバージョンやインポート手順をもう一度確認しましょう。   5-5. フラッシュ書き込み 「GUI Flash Tool」でターゲットボードに書き込みます。 書き込みが終わると、いよいよ実機でサンプルが動かせます! 6. リアルタイムデバッガツールと接続 ここからは、FreeMASTER(MCAT)を使ってリアルタイムでモータの状態を観測します。 IDEの「Project Explorer」から motor_control フォルダ内の pmsm_float_enc.pmpx をダブルクリックすると、FreeMASTERが起動します。 体験談 初めて波形がリアルタイムで動くのを見たときは「おおっ!」と感動しました。   ボードとの通信 左上の緑色「GO!」ボタンをクリックして通信開始。 うまく通信できない場合は、 Projectメニュー → Options → Commタブで、正しいCOMポート(115200bps)を選択しましょう。 コツ COMポートが分からない場合は「COM_ALL」で試すと自動検出してくれることも! デモの実行 いよいよデモのスタート! ホストボード上のSW2ボタンを押すと、モータが回転し始めます。 Speed画面では、実際の回転速度がグラフで表示されるので、動きが一目で分かります。 感動ポイント 初めてモータが回った瞬間は、思わず「やった!」と声が出ました。 グラフがリアルタイムで動くのも楽しい! 7. 動作確認とフォルト体験 デモをオフにしてから、モータの電源(DC24V)を外すと、 MCAT画面にフォルト(障害)の原因が表示され、ホストボードの赤いLEDが点滅します。 電源を再接続し、LEDの点滅が止まったら「M1 Fault Clear」をクリックしてフォルトをクリアしましょう。 注意点 フォルトが出たままだとモータが動かないので、必ずクリアしましょう。 モータの速度を自由にコントロール! Speed画面で「M1 Application Switch」をONにすると、 アプリケーションの電源が入り、速度を自由に変更できます。 逆回転させたい場合は「-1000」のようにマイナス値を入力すればOK! 遊び方 いろいろな速度を試してみたり、逆回転させてみたりすると、モータ制御の面白さが実感できます! ボードとの通信がうまくいかない時は? FreeMASTERでボードと通信できない場合は、 Projectメニュー → Options → Commタブで、正しいCOMポートと通信速度(115200bps)を設定しましょう。 もしCOMポートが分からない場合は「COM_ALL」で試すのもアリです! 8. デバッグ デバッグ機能を使えば、プログラムの動きを細かく観察できます。 ブレークポイントを設定して、変数の値や処理の流れを確認しましょう。 初心者向けアドバイス まずは「main関数」や「割り込み処理」など、動きが分かりやすい場所からデバッグしてみるのがおすすめです。 9. 一部SWコードの説明   プロジェクトの詳細 ここからは、実際のプロジェクト構成や主要なソースコードについて、エンジニア向けに解説します。 プロジェクト構造 freemaster ランタイムの設定・チューニングを可能にするリアルタイムデバッグモニタ&データ視覚化ツール。UART/USB経由で通信し、MCATプラグインもここに含まれます。 motor_control モータ用ステートマシン、ベクトル制御コード、モータ識別ルーチン、低レベルドライバが集約。 rtcesl 高度な変換やオブザーバまで、モータ制御を含む複雑なリアルタイム制御アプリケーション向けの数学ライブラリ群。 source メイン処理、初期化、コンフィグレーションなど。 メイン処理と割り込み main.cでは、初期化・割り込み設定・FreeMASTER通信のバックグラウンドタスクを実行します。 割り込みハンドラは高速(ADC同期)・低速(タイマ同期)の2種類。 高速ループはベクトル制御アルゴリズム、低速ループは速度制御やLEDステータス管理など。 ポイント 「motor_control」フォルダには、モータ制御のロジックが詰まっています。 気になる関数や変数を見つけたら、コメントやドキュメントも参考にしましょう! 10. まとめ・次回予告 今回は、NXPの開発環境を使ってモータ制御のサンプルを動かすところまでを体験しました。 次回は、サンプルコードの中身をさらに深掘りしたり、パラメータを変更して自分だけのモータ制御にチャレンジしてみましょう!(4月公開予定) 疑問や「ここが分からない!」というポイントがあれば、コメントでぜひ教えてください! NXPのモーター制御の記事をまとめたサイトはこちら↓ NXPのモーター制御 ~まとめページ~ (日本語ブログ) =========================​ お問い合わせの際には「NXPへの技術質問 - 問い合わせ方法 (日本語ブログ)」もご参照ください。​ (既に弊社NXP代理店、もしくはNXPとお付き合いのある方は、直接担当者へご質問いただいてもかまいません。)​ NXPのFRDMボード「FRDM-MCXA156」を使用して、モーター制御について分かりやすく解説していきます。基礎編と実践編に分かれていますので、興味のある内容から参考いただければ幸いです。 ・基礎編①~⑦、実践編①~③ 今回は実践編②として、ソフトウェアのセットアップから、実際にモータ制御のサンプル・コードを動かすまでをご紹介します。 MCUXpresso Conig Tools MCUXpresso IDE MCUXpresso SDK MCX Motor Control Technology Focus 日本語ブログ
記事全体を表示
RTD- 需要支持在 saf9000 上使用 Wdg(看门狗)驱动程序 RTD 驱动程序版本(R23-11 v1.0.0) 我们来自 Quantum rfp 团队,为 SAF9000 芯片工作。我们正在尝试使用 RTD 的 Wdg(看门狗)驱动程序,发现了一些问题,例如 wdg 调用试图挂起所有中断,然后又恢复中断。因此希望得到一些支持,以帮助确定 wdg 的根本原因/正确使用方法,并解决我们面临的问题。请支持一下。 我们尝试使用的当前 RTD 配置(wdg 和平台 xdm 文件)附后: wdg- 启用直接服务模式。 使用以下调用: 用于初始化: Wdg_43_Instance0_Init ((wdg_configType *) NULL_PTR); //因为 使用了后期版本变 体   我们定期使用切换/喂食看门狗: Wdg_43_Instance0_SetMode(wdgif_fast_mode); 请告诉我在直接服务模式下,用于初始化和喂养看门狗的调用是否正确? 这些调用是否会干扰其他中断,从而导致其他功能问题? RTD Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 谢谢 Cuong。 首先,我们开始使用间接服务,但是由于我们已经将 gptChannelConfiguration_0 用于其他计时器目的,因此我们无法在 " Wdg 外部触发计数器 " 的 wdg 配置中使用同样的间接服务。我们还尝试在 wdg tresos 配置中定义 gptChannelConfiguration_1,并尝试将其用于 wdg tresos 配置中的 " Wdg 外部触发信号计数器 ",但由于某些原因(出现了红十字标记)它不允许这样做。就在那时,我们改用了直接模式。 根据您的建议,我将尝试使用 Wdg_43_Instance0_Service 函数。如果问题仍然存在,我将再次尝试使用间接服务,至于配置问题,我将与您联系。 Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 你好@renukasc 我发现你使用 SetMode 喂养看门狗是错误的。 使用直接服务:使用 Wdg_43_Instance0_Service 函数使用间接服务:使用 WDG_43_instance0_setTriggerCondition 函数。 请在 Wdg 模块中查看我们的示例,以了解我们如何使用 wdg_43_instance0_setTriggerCondition 路径: \ plugins\ wdg_ts_t40d34m50i0r0\ examples 此外:Wdg_43_Instance0_Instance0_Instance0_NULL_PTR)-> 与预编译一起使用,而不是后期版本 Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 我可以尝试使用 Wdg_43_Instance0_Service。如前所述,监视程序功能很好。如果不馈电,看门狗 isr 将按预期触发信号。但是问题是当使用监视程序 API 时,我可以看到它会影响我们所有其他功能。看起来它正在影响中断。 请提供一个 WDT 示例应用程序,其中有定时器和其他 ISR(如 UART),使用直接服务模式时,WDT 不会影响这些 ISR。   Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 正如之前在我们的应用程序中使用 wachdog 调用时指出的那样,再进行一次更新,看起来计时器 (gpt) 等其他中断没有得到服务,我们再也不会因此触发 isrs 了。 尝试改变中断的优先级,但无济于事。 还尝试在 /RTD/eclipse/plugins/Rte_TS_T40D94M10I0R0/src/SchM_Wdg.c 中注释OsIf_SuspendAllInterrupts()、OsIf_ResumeAllInterrupts() 。这也无济于事。 请提供一个 WDT 示例应用程序,其中有定时器和其他 ISR(如 UART),使用直接服务模式时,WDT 不会影响这些 ISR。   Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 以下是调用 WDG 服务时的流程: Wdg_43_Instance0_Service() → Wdg_ChannelService(WDG_IPW_INSTANCE0) → Wdg_Ipw_Service(实例) → Swt_Ip_Service(实例) →SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_09(); // 可以调用 OsIf_SuspendAllInterrupts() → ... →SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_09(); // 这可以调用 OsIf_ResumeAllInterrupts() 所以,如果您调用 Wdg_43_Instance0_Service,并且在您的 RTE 中,SchM_Enter_Wdg_WDG_EXCLUSIVE_AREA_09 和 SchM_Exit_Wdg_WDG_EXCLUSIVE_AREA_09 的定义是调用 OsIf_SuspendAllInterrupts/OsIf_ResumeAllInterrupts,那么是可以影响中断的。 不过,调用该函数后,中断应该会恢复正常。 你的意思是即使退出这个函数 Wdg_43_Instance0_Service,仍然无法触发信号中断吗? 您能告诉我在您的项目中是如何实现 OsIf_SuspendAllInterrupts()、OsIf_ResumeAllInterrupts() 的吗 ? Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 @renukasc 当启用"开发错误检测" 时,Wdg API 会使用 Wdg_ChannelValidateGlobalCall 和 Wdg_ChannelEndValidateGlobalCall。 这些函数使用 SchM_Enter/Exit_Wdg_WDG_EXCLUSIVE_AREA_06 和 SchM_Enter/Exit_Wdg_WDG_EXCLUSIVE_AREA_07。 请在您的 SchM 实现中验证 SuspendAllInterrupts 和 ResumeAllInterrupts 的行为方式。特别是:调用 ResumeAllInterrupts 后,所有中断是否都恢复到正常状态? Re: RTD- Need support for using Wdg(watchdog )driver for saf9000 在调试过程中,我们最终观察到,如果Wdg_43_Instance0_Init 和 Wdg_43_Instance0_Service 调用 tresos 配置"Development Error Detection" 被设置,正常的定时器中断将停止,并且不会恢复。 当我们禁用 tresos 中的 "开发错误检测 "时,我们发现在使用 wdg 调用时,其他中断都正常。  
記事全体を表示
blkwfdll not working in certain machines with Windows 11 I use flashFirmware in blkwfdll. We have a build of the dll that I call from a .net application. The same .dll has worked since 2018, but recently it's been failling in Windows 11. A machine was updated to windows 11 enterprise build 26200.7705. After that, a new instantiation of Updater threw a "could not connect" error. The machine previously had no issues using blfwkdll.dll. The device instance of the the HID-compliant vendor-defined device that blfwkdll.dll connects can be seen properly connected in device manager. Another laptop with build 26200.7705 works fine with blfwkdll.dll. Are there other reports of issues? Is there a new version blfwkdll.dll I could try? I found the source code, but I'm having trouble building the .dll in such a way that my .net application can use it as a reference, as it has before. Thanks! Re: blkwfdll not working in certain machines with Windows 11 Hello @ryan_pearson , Thanks for your post. Sorry, blfwkdll is no longer maintained. You can try the blfwkdll located under the blhost directory. I'm not sure whether it is newer than the version you are currently using, but you can give it a try. blhost download link: https://www.nxp.com/webapp/Download?colCode=blhost_2.6.7&appType=license&location=null PATH: path\to\blhost\blhost_2.6.7\blhost_2.6.7\tools\common\blfwkdll BR Celeste Re: blkwfdll not working in certain machines with Windows 11 If blkfdll is no longer maintained, is there an alternative? Re: blkwfdll not working in certain machines with Windows 11 Hello @ryan_pearson , Thanks for your sharing, I am glad to hear that.  Wish a happy day. BR Celeste Re: blkwfdll not working in certain machines with Windows 11 I was able to fix this issue by changing Line 236 of hid-windows.c from: DWORD share_mode = (enumerate) ? FILE_SHARE_READ | FILE_SHARE_WRITE : FILE_SHARE_READ; to DWORD share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE; This matches hidapi.
記事全体を表示
menu菜单控件问题 问题: 1.菜单选项能否做到插入,例如当前已经创建了10个选项和选项对应的页面,要在选项2和选项3加插一个选项, 2.加入的控件如label,button,cont,插入到选项中时,不能随意调整位置?只能加入的顺序由上到下布局? Re: menu菜单控件问题 Hi @cyr  1."菜单选项能否做到插入,例如当前已经创建了10个选项和选项对应的页面,要在选项2和选项3加插一个选项," This is currently not supported. 2.加入的控件如label,button,cont,插入到选项中时,不能随意调整位置?只能加入的顺序由上到下布局? This can be adjusted freely, please use the latest version. BR Harry Re: menu菜单控件问题 你好,我使用了最新版本,仍然不能解决。请查看我最新的回复 Re: menu菜单控件问题 可以调整大小,不可以调整位置 Re: menu菜单控件问题  版本GUI-Guider-1.10.1-GA,如图。label 1和label 2不能随意调整位置和大小
記事全体を表示
S32 コンパイラ バージョン 3.4 および 2.2 のキー拡張 Re: 密钥延期 S32编译器 3.4和2.2版本 こんにちは、 S32DS のアクティベーション キーを意味しているのであれば、両方のライセンスが有効であるように見えます。正しいアクティベーションキーを使用していますか?S32DS v3.4 の場合は F4DA-AC30-917F-C0B1、 v2.2 の場合は FCF9-575D-D74C-E86D
記事全体を表示
在 S32K144 EVB 上闪烁代码 - 调试正常但运行时出错 你好 我正在使用 S32 Design Studio Platform v3.4与 S32K144 EVB进行应用程序开发。 目前,我能够 成功调试程序使用 S32 Design Studio 的调试器。但是,每当我尝试 运行运行应用程序时,都会出现 错误窗口并且应用程序无法按预期执行。 此外,在重 启板 后 ,先前加载的代码不会 自动运行 ,这表明代码可能不会 永久闪存到 MCU 中 , 只能在调试会话期间运行 。 我想了解一下: 为什么调试工作正常,但运行应用程序时会出错? 是否需要额外配置才能 永久闪存代码S32K144 MCU。 如果有任何 链接器设置、调试器设置或闪存编程器配置需要修改。 是否需要外部闪存编程器(如 PEMicro 闪存编程器),还是仅 S32 Design Studio 就足够了。 我的目标是正确地将应用程序刷新到内部闪存中,这样代码在RESET或重启电源后自动运行。 请告诉我解决这个问题的正确程序。 Re: Flashing Code on S32K144 EVB – Debug Works but Run Causes Error 你好@KAVIN7 根据您提供的信息,我认为您首先使用调试配置闪存应用程序,代码运行正常,然后尝试使用运行配置再次闪存。 由于应用程序在调试模式下启动时会按预期运行,因此问题的可能原因确实可能是运行配置不正确。 要考虑的另一个重要问题是重置微控制器后会发生什么。如果程序仅在调试时运行,但在 RESET 后停止运行,则代码可能加载到 RAM 而不是闪存中。当代码放入 RAM 时,它在RESET或重新启动后不会保留,这可以解释为什么它在调试模式下闪存后会立即起作用,但之后不起作用。 最后,由于您使用的是 EVB,而且据我所知,您依赖的是板载调试器 (OpenSDA),因此请记住 OpenSDA 使用的是 PEmicro 固件。这一点很重要,因为从项目的运行配置中可以看到,与 PEmicro 接口自动生成的默认调试配置不同,PEmicro 没有现成的运行配置。 BR、VaneB
記事全体を表示
[公告] 嵌入式启动时间工具 — 在 LS1043A‑RD 的 PBL/PBI 上启用 EL1 安全计时器 收件人: NXP Community - Layerscape / LS1043A Forum 发件人: Matt Chang<[email protected]> 日期: 2026-02-07 11:28(台北,格林威治标准时间+ 08:00)仓库:https://github.com/mattchang-engr/embedded-boot-time-instrumentation 原始碼授權類型: Apache-2.0(有通知) 嗨,恩智浦社区、 摘要 该项目 在恩智浦LS1043A‑RDB的PBL/PBI阶段 (U-B oot之前)启用EL1安全物理计时器,因此您可以用微秒级的分辨率测量真正的端到端启动延迟。 我正在分享一个小而有针对性的存储库,该存储库演示了如何在启动流程 中 最早的可编程点 —— PBI ——开始计时,因此测量涵盖了RESET、RCW 负载、PLL 锁定、时钟切换以及 U‑Boot 之前发生的一切。它面向固件开发人员、嵌入式学习者以及希望获得可重复的早期启动仪器的 Layerscape 用户。 仓库中有什么 一份 GitHub 友好型 自述文件 , 包含自上而下的启动图和简洁 的 ALTCBAR 深度介绍 两个 PBI 写入 您需要 (1) 打开备用 CCSR 窗口和 (2) 启用计数器 简短的 验证片段 来自 UART,显示分阶段时间和完全启动示例(~7.947 秒) 目标: LS1043A‑RDB(IFC 或非 启动)• Ubuntu 20.04 • LSDK 21.08(FlexBuild)• U‑Boot 2021.04 SoC 步进(来自启动日志): LS1043AE Rev1.0 (0x87920010) 系统视图(最早启用点) T0:系统RESET/端口 | v PBL:从 IFC 或非 读取 PBL,加载 RCW | v 时钟PLL 锁定 + 时钟切换 | v PBI 阶段(最早的可编程点) 1) 写入 ALTCBAR(ACS=0,默认窗口) 2) 写入 CNTCR(ACS=1,交替窗口) -> EL1 定时器启动 | v 系统就绪(RESET 完成;SoC 已发布) | v U-Boot(控制台初始化-> 主板检查-> 启动完成) | v Linux 启动(内核/用户空间) 核心方法(两条 PBI 线路) 1) 对 ALTCBAR 进行编程(定义备用 CCSR 基 @ 0x0200_0000) 报头:0x0957_0158 (ACS=0, BYTE_CNT=4, CONT=1, SYS_ADDR=0x01570158) 数据: 0x0000_0200 (ALTCBAR = 0x0000_0200) 2) 启用 CNTCR(EL1 安全系统计数器 @ 0x02B0_0000) 报头:0x89B0_0000 (ACS=1,BYTE_CNT=4,CONT=1,SYS_ADDR=0x00B0_0000) 数据:0x0100_0000(字节交换,因此寄存器读取 0x0000_0001-> EN/CNTCLKEN=1) 为什么要使用 ALTCBAR? ALTCBAR 设置备用 CCSR 基数 (0x0200_0000),因此 ACS=1 针对 0x0200_0000..0x02FF_FFFF 窗口。 由于 CNTCR 位于 0x02B0_0000,因此只有在对 ALTCBAR 进行编程并使用 ACS=1 后才能访问它。 在此阶段,必须将 CNTCR 的 BYTEn 有效负载 字节交换 ;写入 0x0100_0000 ,这样寄存器就变成 0x0000_0001。 验证快照(UART) U-Boot 2021.04-dirty(Mar 12 2024 - 11:51:50 +0800) SoC:LS1043AE Rev1.0 (0x87920010) 项目:PBI 开始 u-boot 控制台初始化:757 毫秒 项目:u-boot 检查板完成时间:820 毫秒 项目:u-boot 启动过程已完成:1270 毫秒 ... [ 6.673863] 随机:crng 启动完成 TinyLinux 登录:root 成功的示例:总启动时间 ≥ 7.947 秒 (U‑Boot 阶段 + Linux 启动阶段)。 常见陷阱(快速) 端位: 写入 BYTEn=0x0000_0001 (而不是 0x0100_0000)会使定时器 关闭。 错误窗口: 在 ACS=0 或在 ALTCBAR 进入 错误地址范围之前写入 CNTCR。 链接& 许可证 仓库:https://github.com/mattchang-engr/embedded-boot-time-instrumentation 原始碼授權類型: Apache-2.0 (附注) 没有重新分发任何专有材料;正式文件请查阅供应商网站。 如果您有反馈意见、其他 Layerscape 部件的测量结果或启动源变体(QSPI/SD),我很乐意听取您的意见--欢迎提出问题和提交报告。 致以最崇高的敬意, Matt Chang GitHub: https://github.com/mattchang-engr 电子邮件: [email protected] Re: [Announcement] embedded-boot-time-instrumentation — Enable EL1 Secure Timer at PBL/PBI on LS1043 有趣的项目。也是一个方便的工具。
記事全体を表示
如何理解 FS26 的 RESET 引脚图 你好,恩智浦 如下图所示,图中虚线框表示什么意思?这是否表明虚线框内的电路不一定存在?如果不存在,外部复位信号如何RESET FS26? 这个虚线框选择是否有误?是否应该选择 LBIST?因为 ASIL D 应用的芯片有 LBIST。 敬上, xianlong 功能安全 Re: How to understand the reset pin diagram of FS26 你好,@ ErikaC 是的,我看到最新的手册中只有一章描述了 RSTB 作为输出功能。 但是,① 在手册的引脚功能说明中,RSTB 具有输入和输出功能,而不仅仅是输出。 ② 尽管 RSTB 无法 RESET 主状态机,但它可以 RESET 故障状态机。此外,RSTB 还有一个 8 秒计时器用于检测,表明 RSTB 可以检测输入电平。我好奇的是,它是如何实现输入检测的?   谨致问候, xianlong Re: How to understand the reset pin diagram of FS26 你好 虚线框并不表示该电路是可选的。它仅代表内部冗余模拟路径,用于在故障安全条件下强制RSTB处于低电平,并且该硬件始终存在。FS26 功能安全手册第 5.2.15.1 节明确描述了此路径,因为 RSTB 只是一个输出,因此外部 RESET 无法 RESET FS26,虚线部分仅显示 PMIC 内部如何断言 RSTB,而不是如何接收 RSTB。ABIST 测试这条模拟路径,而 LBIST 则测试数字功能安全逻辑;ASIL‑D 设备需要两者,因此在虚线框内显示 ABIST 而不是 LBIST 没有错误。 希望对您有所帮助! Re: How to understand the reset pin diagram of FS26 我无法在社区中分享 RSTB 引脚的详细框图。但是,由于漏极开路,数字正在驱动引脚的输出电平,但同时,由于滞后缓冲器将这些信息提供给故障保护逻辑模块,我们可以感知到相同的输出电平。 您发送的数据表中的图片没有错误。 LBIST 正在检查数字量,这也是它被写入 FS_LOGIC 块的原因。 不过,ABIST 只是检查滞后缓冲器,确保传感功能正常,因此出现了虚线。 我希望这能澄清一切。如果没有,请告诉我。
記事全体を表示
MMA8451 更改默认 I2C 地址 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 大家好,我正在将 Raspberry Pi 与 MMA8451 连接。树莓派仅提供 1 个 i2c 端口,因为其他 i2c 连接到摄像机设备端口,而 MMA8451 只有 2 个 I2C 地址。 我的问题是:有没有办法更改 MMA8451 的默认 I2C 地址 0x1C 和 0x1D?数据表中对此一无所知,除了使用多路复用器在同一 Pi 板上使用两个以上 MMA8451 之外,我想不出其他方法。 感谢您的支持! 加速度传感器 Re: MMA8451 change default I2C address <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,戴维、 事实上,MMA8451Q 的标准从地址是在两个连续地址 0011100 和 0011101 之间进行选择。选择分别由 SA0(引脚 7)输入的高逻辑电平和低逻辑电平决定。从机地址在出厂前已编程,也可根据客户要求提供备用地址。格式如下: 通常情况下,不可能为个别客户更改 MMA8451Q 的 I2C 从站地址,除非这是一个巨大的商机。 能否请您向我提供有关您的应用、产量和生产数据的更多信息? 您可以将此信息创建一个新案例。 您可以在这里找到更多信息。 另一方面,我很乐意为您提供一些解决方案: 使用 2 通道 I2C 总线多路复用器(以防在同一 I2C 总线上需要两个 MMA8451)。 具体来说,我推荐PCA9540B。您可以在这里找到更多信息。 考虑一下 FXLS8471Q,它与 MMA8451Q 基本相同,但它的两个地址选择输入(SA1 和 SA0)允许分配四个唯一的地址(0x1C、0x1D、0x1E 或 0x1F)。      有关 FXLS8471Q 的更多信息,请点击此处。 希望这些信息对你有用。 如果我误解了你的问题,请随时告诉我。 我很乐意提供帮助。 祝您有美好的一天。 戴维-迪亚兹 注:如果本帖回答了您的问题,请点击 "正确答案 "按钮。谢谢!
記事全体を表示
ロボット運転中の加速度センサの結果 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> こんにちは、   MMA7361LC を使って加速度を測定し、移動中のロボットの速度を計算してみました。 加速度センサをテストしたところ、(前方、後方に)動かしたときや、重力を測定しているかどうかをチェックしたときに良好な結果が得られました。 ロボット(戦車)に固定した状態でも、ロボットを手で動かす場合は問題なく動作します。 問題は、ロボットを車輪モーターで駆動しているときに、まったく適切な結果が得られないことにあります。 最初からロボットが停止するまで同じ振動が発生しています。正または負の加速があった場所をほとんど分析できず、70Hz の単純な LPF を適用した後でもノイズが非常に高くなっています。   ロボットが動いているとき(ホイールモーターによる)直線に近くならないのはなぜか分かりません。   添付ファイル: 緑 - LPF の前の正の駆動軸。 オレンジ - LPF 後の正の駆動軸。 scope_3 - 低い加速度 (約 0.5 秒間)、一定の速度、そして低い負の加速度 (約 0.5 秒間)。 scope_4 - 同じですが、開始時と終了時の加速が高くなります。   助けてください。 ありがとう、ドロール。 センサ・フュージョン Re: accelerometer results while driving a robot <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ドロール、 こう申し上げるのは残念ですが、あなたの基本的な前提には欠陥があります。単一または二重の積分によって速度/位置を取得しようとするのは、ほとんどの場合、悪い考えです。 問題 1 は、すべてのセンサにノイズがあり、ノイズを統合すると、時間の経過とともにランダム ウォークが発生することです。詳細については、 「位置計算」を参照してください。 問題 2 は、ある人にとっての信号が別の人にとってのノイズであり、その逆もまた同様であるということです。ロボットのモーターとギアトレインからの振動が見えるはずです。 このアプリケーションでは、速度/距離を決定するためにロータリー エンコーダを使用する方がよいでしょう。加速度/ジャイロデータの融合によりロボットの向きと直線加速度が得られますが、速度と位置の精度が必要な場合は、他のセンサタイプを検討する必要があります。 Mike
記事全体を表示
MMA8452Q I2C 读取单字节问题[[ ## completed ## ]] <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您好, 在尝试通过 I2C 读取 WHO_AM_I 寄存器时,MMA8452Q 遇到了问题。我们使用的是基于 iMX28 的平台,运行 Linux 2.6.35。设备驱动程序读取的值为 0,而不是预期的 0x2A。我已经看到,在I2C总线上,控制器在写入要读取的寄存器后发送停止条件,然后再开始读取实际值。它不使用重复启动。 MMA8452Q 数据表指出".... MM8452Q 希望使用重复启动来随机读取特定寄存器" 。它还指出(在 “单字节读取” 下)" 主机(或 MCU)传输重复启动条件 (SR),并将读取位设置为 " 1 " 的 MMA8452Q ($1D) 从先前选择的寄存器读取。 这是否意味着在读取随机寄存器值时,我们必须使用重复启动,并且 MMA8452 不支持在写入寄存器地址后使用停止条件,然后再启动/停止以读取实际值? 谢谢! 布鲁诺 加速度传感器 传感平台 Re: MMA8452Q I2C Read Single Byte problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 谢谢你,托马斯、 我也是这么想的,只是想确认一下。 布鲁诺 Re: MMA8452Q I2C Read Single Byte problem <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好,布鲁诺、 是的,MMA8452Q 使用组合的 I 2 C 数据传输格式,需要在第二个字节(寄存器地址)之后重复启动条件。 从 WHO_AM_I 寄存器 0x0D 读取的单字节如下所示(请注意,它是针对我办公桌上的 MMA8652FC 的): 如果您还有其他问题,请告诉我。 此致, 托马斯 PS:如果我的回答有助于解决您的问题,请标记为"正确" 。谢谢。
記事全体を表示
MCX041 LIN Slave I am wanting to implement a low-cost encoder driver. MCX chips are very affordable with what I am trying to build but I am finding that driver support for LIN is only for S32/EVK based hardware. Has anyone had any success porting this to an MCX powered board?  Along with that, are there major hardware considerations with building this? I am already running into SRAM issue and freertos. 2KB is a very small amount for this chip. I'm new but very much want to succeed with this project  Communication & Control(I3C | I2C | SPI | FlexCAN | Ethernet | FlexIO) MCXC Re: MCX041 LIN Slave Hello @benrobbins , Thanks for your post. We currently do not have any application notes or demo projects specifically for the MCXC LIN slave. However, the MCXC family uses the LPUART module to support LIN slave operation, which is similar to the implementation in the Kinetis KL series. Therefore, you can refer to KL series LIN slave simply usage sharing Hope it helps. BR Celeste Re: MCX041 LIN Slave That's very helpful thank you!
記事全体を表示
imx8mp isp 视频节点未指定 您好, 我正在使用 5.10.35 发行版的 imx8mplus 移植 imx290 传感器模块 我按照摄像头传感器移植指南在 vvcam 中相应地更改了驱动程序,但是当主板启动时,即使驱动程序的探测功能成功也不会创建任何视频节点。 以下是模块开始加载时的日志信息: [ 6.208014] imx290_vvcam: loading out-of-tree module taints kernel. [ 6.224028] entering th func:imx290_probe [ 6.318075] eimx290_vvcam 1-0042: supply DOVDD not found, using dummy regulator [ 6.339949] eimx290_vvcam 1-0042: supply DVDD not found, using dummy regulator [ 6.349485] eimx290_vvcam 1-0042:未找到 AVDD 电源,使用假稳压器 [ 6.382951] imx8_media_dev:模块来自暂存目录,质量未知,已警告您。 [ 6.443331] enter viv_isp_init_module [ 6.448757] enter isp_hw_probe [ 6.453073] enter viv_dwe_init_module [ 6.456791] vvcam isp driver registered [ 6.457080] enter dwe_hw_probe [ 6.461686] imx-sdma 30e10000.dma-controller:固件已找到。 [6.466027] vvcam 广角鱼眼畸变校正 驱动程序已探测 [6.470277] imx-sdma 30bd0000.dma-controller: 固件已找到。 [ 6.479325] imx-sdma 30bd0000.dma-controller:已加载固件 4.6 [ 6.839512] caam 算法已在 /proc/crypto [ 6.896947] caam 30900000.crypto:caam pkc 算法已在 /proc/crypto 中注册 [ 6.896962] caam 30900000.crypto:注册 rng-caam [6.898300] 设备 caam-keygen 随机注册 [6.921808]:随机完成 crng 初始化 [6.921819]:由于速率限制错过了 7 条随机警告 [7.309550] ext4-FS (mmcblk2p2):使用有序数据模式挂载的文件系统。 选项:(null) [ 7.383698] RTL8211F 千兆以太网 30be0000.ethernet-1:01:附加 PHY 驱动程序 [RTL8211F 千兆以太网] (mii_bus: phy_addr=30be0000。) [7.475098] imx-dwmac 30bf0000.ethernet eth1:PHY [stmmac-1:01] 驱动程序 [RTL8211F 千兆以太网] (irq=poll) [7.487079] imx-dwmac 30bf0000.ethernet eth1:不支持功能安全功能 [7.487093] imx-dwmac 30bf0000.ethernet eth1:支持 IEEE 1588-2008 高级时间戳 [7.487093] imx-dwmac 30bf0000.ethernet eth1:支持 IEEE 1588-2008 高级时间戳 [7.487093] imx-dwmac] imx-dwmac 30bf0000.ethernet eth1:注册的 PTP 时钟 [7.487510] imx-dwmac 30bf0000.ethernet eth1:配置 phy/rgmii-id 链接模式 [7.519467] 8021q:在设备 eth1 的硬件过滤器中添加 VLAN 0 [8.143730] 审计:type=1006 审计 ( 1616581522. 276:2):pid=639 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1 [ 8.192190] initilizing media entity pads of the camera subdev= 0 后的 returnvalue [ 8.196776] 异步注册摄像机 subdev= 0 后的 returnvalue [ 8.204482] 进入 func:imx290_retrieve_capture_properties [ 8.211560] 检测到 imx290。 当我使用 lsmod: 检查时,它正在创建以下模块,但没有加载 vvcam_video 模块 使用的模块大小 vvcam_isp 65536 0 vvcam_dwe 28672 0 imx8_media_dev 20480 0 imx290_vvcam 147456 0 当我尝试删除 imx8_media_dev 模块并再次进行 modprobe 时 imx290_vvcam 147456 1 这使得模块得到了使用,但仍然没有创建视频节点。 当我 modprobe vvcam_video 时,它正在加载,但没有再次被使用,因为 vvcam_video 40960 0 请帮我解决这个问题。 在此先表示感谢、 穆凯什-库马尔 Re: imx8mp isp video node not cteated 我们正在为 imx415 摄像头传感器开发 vvcam 摄像头驱动程序。您能为相机传感器开发驱动程序吗? Re: imx8mp isp video node not cteated 你好@quercuspau、 现在 ISP 运行良好。我已经没有问题了。至于其他信息,很抱歉我不能透露。 顺祝商祺! K. Re: imx8mp isp video node not cteated 你好@khang_letruong、 据我所知,你设法在互联网服务提供商处运行了摄像头,你捕获的照片看起来有多好?我还在一些帖子中读到,您与恩智浦相机协助公司签订了合同,但在收到 xml 和 drv 文件后,您在图像校准参数方面仍遇到一些问题。你能解决这些问题吗?请问,协助公司调整相机参数的费用是多少? BR Re: imx8mp isp video node not cteated 你好,@quercuspau、 老实说,与 Basler 摄像机相比,ov2775 和 os08a20 是两个很好的公开范例。 您可能需要根据自定义传感器连接的 I2C 总线/节点(及其属性,例如 gpio、地址)、mipi-csi2 节点(及其属性,例如通道数...)来调整设备树。 BR, K Re: imx8mp isp video node not cteated 嗨,@mukesh_kumar、 也许你指的是上层(isp-imx 中的 ISI 层)来生成供 isp_media_server 使用的 .drv,以及用于加载必要的内核模块和传感器本身校准配置的脚本。不过,这与本票最初的主题不同:在成功探测您的内核模块 imx290_vvcam 之后创建 /dev/videoX。 我发现你提到的链接中的讨论足以实现上层,包括你的 imx290 的 .drv。 BR、 K. Re: imx8mp isp video node not cteated 你好@khang_letruong 感谢您的回复, ,我已经查看了运行脚本,要想添加对 imx290 的支持,需要一个 .drv文件和 .xml文件 我在https://community.nxp.com/t5/i-MX-Processors/ISP-working-in-i-MX8M-Plus/m-p/1307705的讨论中尝试为 imx290 生成一个版本 但当我发出命令 ./build-isp-all 版本完整版 它正在部分构建,但没有生成任何 .drv文件,尽管所需文件已添加到 isi/drv/ 文件夹。 感谢并致意 穆克什 Re: imx8mp isp video node not cteated 嗨,@mukesh_kumar和@khang_letruong 如果我理解正确的话,你使用 ov2775 模块作为参考,并使用 imx290 驱动程序寄存器配置对其进行了调整。设备树摄像头方面没有预期的变化。在 imx290 中使用与 ov2775 相同的 xml 和 drv 可以吗? 此致 Re: imx8mp isp video node not cteated 你好@quercuspau 根据传感器移植指南,vvcam 中应该有支持 isp 的传感器,但 vvcam 中没有 imx290 驱动程序。 谢谢、 穆克什 Re: imx8mp isp video node not cteated 很好! Re: imx8mp isp video node not cteated 您好, 是否不能在 isp 中使用已有的 imx290 驱动程序? 我打算将同一个传感器与 imx8mp 和 ISP 一起使用。不过,我还没有开始 BR Re: imx8mp isp video node not cteated 你好@mukesh_kumar、 首先,确保 vvcam 内核驱动程序(从 imx290_vvcam.c 生成的 mx290_vvcam.ko例如)在 isp-imx 框架内执行 run.sh 脚本时会正确加载。您还可以对其进行修改,以添加 imx290 传感器。 然后确保在dmesg 中找到以下一行(即管道 I2C 传感器 -> mipi-csi2 --> isp 在 dts 中链接良好): [ 7.884122] mx8-img-md: created link [imx290 1-001a] => [mxc-mipi-csi2.0] 与 ov2775 或其他函数类似,您可以在下面的探测函数代码段中检查所有 V4L2 函数是否都成功返回: sd = &sensor->subdev; v4l2_i2c_subdev_init(sd, client, &ov2775_subdev_ops); sd->flags |= V4L2_SUBDEV_FL_HAS_DEVNODE; sd->entity.function = MEDIA_ENT_F_CAM_SENSOR; sensor->pads[OV2775_SENS_PAD_SOURCE].flags = MEDIA_PAD_FL_SOURCE; retval = media_entity_pads_init(&sd->entity, OV2775_SENS_PADS_NUM, sensor->pads); sd->entity.ops = &ov2775_sd_media_ops; if (retval < 0) goto probe_err_power_down; retval = v4l2_async_register_subdev_sensor_common(sd); if (retval < 0) { dev_err(&client->dev,"%s--Async register failed, ret=%d\n", __func__,retval); goto probe_err_entity_cleanup; } Br, K Re: imx8mp isp video node not cteated 你好@khang_letruong 感谢您回复查询, 我使用的是 isp_0 节点,并在设备树源代码中启用了相同的功能,如下所示 &cameradev { status ="okay"; }; &isi_0 { status ="disable"; }; &isp_0 { status ="okay"; }; &dewarp { status ="okay"; }; 我不明白在 basler 案例中是哪个模块/服务调用了 vvcam_video 模块,而在我之前的回复中提到的 ov2775 和 imx290 中却没有发生。 感谢并致意 穆克什 Re: imx8mp isp video node not cteated 嗨,@mukesh_kumar、 也许您忘记在 dts 中启用&isp_0 节点或&isp_1 节点。 敬上, K. Re: imx8mp isp video node not cteated 你好、 我参考了 ov2775_mipi_v3.c文件。 我观察到当我在启动 vvcam_isp 65536 1 vvcam_dwe 28672 1 vvcam_video 40960 1 vvcam_video 40960 1 imx8_media_dev 20480 0 basler_c amera_driver_vvcam 20480 0 0 它正在加载模块 ----> vvcam_video、vvcam_isp、vvcam_dwe,即使没有连接摄像头,也在使用这些模块。 如果我在启动时加载 imx8mp-evk-ov2775.dtb 文件, 它正在加载模块---> 在没有设备的情况下,甚至没有连接摄像机 vvcam_isp 65536 0 vvcam_dwe 28672 0 imx8_media_dev 20480 0 os08a20 32768 0 即使没有摄像头,我也无法理解在basler dtb的情况下哪个触发了加载vvcam_video。 请帮我理解这一点,因为就我而言,我无法在启动时加载vvcam_video模块。 此外,在 imx290 模块加载之前,imx8_media_dev 模块也在加载,如何才能让 imx8_media_dev 在我的模块探测成功后加载? 我试着在 /etc/ 文件夹下创建一个文件模块,并将顺序保持为 imx290,然后是 imx8_media_dev,但没有成功。 谁能帮我解决这两个问题? 谢谢, Mukesh kumar。 Re: imx8mp isp video node not cteated 哦,感谢您的回复, 您能否分享一下您对 ISP 调整过程的了解,有哪些要求,如何设置环境等。 再次感谢@khang_letruong 的回复。 Vishnu S Re: imx8mp isp video node not cteated 您好@SiddavatamVishnu、 请问这个问题是问我吗?如果是,我的回答是肯定的,我可以为 IMX415 开发驱动程序。 谢谢,并致以最崇高的敬意、 Khang
記事全体を表示
ENET ドライバフリーズ LPC546 こんにちは、 LPC54628J512の ENET ドライバに問題があります。VLAN下のネットワークで、別のVLANからMTUサイズのパケットを受信すると、デバイスがフリーズしました。 1 - コンテキスト ネットワーク設定は次の図に示されています。 2 - 問題 問題は、MTU サイズのパケット、または断片化されたパケットの最初のフラグメントを受信すると発生します (この場合、これは KDEConnect クライアント ソフトウェアからの ≃2000 サイズのペイロード パケットです)。パケットがデバイス VLAN (192.168.16.255) に直接送信される場合、問題はありません。しかし、デバイスが別の VLAN (192.168.11.255) から来て、メインスイッチによって他の VLAN に再送信されると、フリーズが発生します。 3 - 分析 LWIP_ASSERTをアクティブにした後、ethernetif_rx_frame_to_pbufs()でアサートを取得しました。   buffer = rxFrame->rxBuffArray[i].buffer; // corrupted bufferLength = rxFrame->rxBuffArray[i].length; // corrupted len += bufferLength; /* Find pbuf wrapper for the actually read byte buffer */ idx = ((rx_buffer_t *)(((uint8_t *)buffer) - ETH_PAD_SIZE)) - ethernetif->RxDataBuff; LWIP_ASSERT("Buffer returned by ENET_GetRxFrame() doesn't match any RX buffer descriptor", ((idx >= 0) && (idx < ENET_RXBUFF_NUM))); - idx = 1953659110 - bufferLenght = 65535 (または -1) この時点で、rxFrame からのデータは非常に無効なデータであることがわかります。SO、この構造体を埋める ENET_GetRxFrame() の値を分析してみましょう。 結果は次のとおりです (簡略化されたコード)。 /* Get the valid frame */ index = 0; do { rxDesc = &rxBdRing->rxBdBase[rxBdRing->rxGenIdx]; /* Calculate the buffer and frame length. */ if ((rxDesc->rdes3 & ENET_RXDESCRIP_WR_LD_MASK) != 0U) { isLastBuff = true; rxFrame->totLen = (uint16_t)(rxDesc->rdes3 & ENET_RXDESCRIP_WR_PACKETLEN_MASK); if (rxFrame->totLen - offset > (uint16_t)rxBdRing->rxBuffSizeAlign) { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; if (handle->doubleBuffEnable) { buff2Len = rxFrame->totLen - offset - (uint16_t)rxBdRing->rxBuffSizeAlign - ENET_FCS_LEN; } } else { buff1Len = rxFrame->totLen - offset - ENET_FCS_LEN; } rxFrame->totLen -= ENET_FCS_LEN; } else { if (!handle->doubleBuffEnable) { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; offset += buff1Len; } else { buff1Len = (uint16_t)rxBdRing->rxBuffSizeAlign; buff2Len = (uint16_t)rxBdRing->rxBuffSizeAlign; offset += buff1Len + buff2Len; } } // <-- Check data here (assert on invalid buff1Len) /* Allocate new buffer to replace the buffer taken by application */ if (!isDrop) { /* Get the frame data information into Rx frame structure. */ /* Give new buffer from application to BD */ } else { /* Drop frame if there's no new buffer memory */ } } while (!isLastBuff);   - buff1Len = 65534 (または -2) - rxDesc->rdes3 & ENET_RXDESCRIP_WR_LD_MASK = 1522 - rxFrame->totLen = 1518 -オフセット = 1520 最大バッファ サイズが aligned(1518) = 1520 であることがわかっているので、rxDescriptor によって報告されるフレームの長さはこの値の 2 倍になります。これはデータオーバーフローの原因である可能性があります... 4 - 不良パケット 問題のパケットは、別の VLAN から送信され、メイン スイッチによって再送信される断片化されたパケットです。 同じパケットをデバイス VLAN から直接送信しても、別の VLAN から送信しても、同じ効果は得られませんが、Wireshark でパケットを分析すると、MAC 層ヘッダーからペイロード データまでまったく同じになります (もちろん、ソースとタイムスタンプは除きます)。   VLAN コントローラがパケットを送信すると、IP レイヤー ヘッダーにいくつかの追加情報が追加されることがわかりました。https://en.wikipedia.org/wiki/IEEE_802.1Qを参照してください。これは 4 つの追加バイトを表し、1518 の長さのパケットを 1522 にすることができます。 ほとんどのネットワーク インターフェイスはこれらのデータを独自に処理し、パケットから削除するため、通常、これらのデータは Wireshark には表示されません。これは、いくつかのより「インテリジェント」なスイッチの場合でも同様であり、それらのスイッチを使用すると、問題は解消されます。 Linux では、これらのパケットの削除を停止するためのいくつかのトリックを実行できます。Wiresharkで見てみましょう 5 - ENETドライバの代替についてさらに情報が必要 私のプログラムでは、NXP MCUXPresso SDk Core の ドライバ/lpc_enet/ フォルダーから fsl_enet.c/.h を使用します。現在、v2.12.0 を使用していますが、github の最新バージョンも試しました。 ドライバ/enet/ の下に、ENET の別の実装があることがわかります。私の理解では、これはより汎用的な実装ですが、iMX シリーズなどのより高度な CPU 向けに、より多くのネットワーク機能 (VLAN など) もサポートしています。 enet/ ドライバでコンパイルできませんでした。iMX プラットフォームでのみ利用可能な定義がいくつか不足しているからです。このドライバを LPC546 で使用できる可能性はありますか? このバグの処理や、ドライバの他のバリエーションへの移行について、誰かが手助けしてくれることを願っています。 ありがとうございます ルーカス Re: ENET driver freeze LPC546 こんにちは@lucas3 「 enet/ ドライバでコンパイルできませんでした。iMX プラットフォームでのみ利用可能な定義がいくつか不足しているからです。このドライバを LPC546 で使用できる可能性はありますか? 」 ドライバ/ネット/(i.MXシリーズユニバーサルドライバー)に直接切り替えることはできません このドライバは LPC ではなく i.MX 用に設計されており、すぐには使用できません。 あなたの説明に基づきます。 フリーズは、別の VLAN から送信される VLAN タグ付きフレーム (回線上で約 1522 バイト) によってのみトリガーされます。現在の lpc_enet RX パスは 1518 バイトのフレームを想定しています。 1522 バイトのフレームが到着すると、RX の長さ/オフセットの計算がアンダーフローし (例: buff1Len = -2)、RX フレーム構造が破損し、LWIP_ASSERT がトリップします。 SO i think you CAN try to change the ENET_RXBUFF_SIZE to 1522. BR ハリー
記事全体を表示
S32G3 QSPI 报告 FR[AIBSEF] 错误 专家你好 我们收到来自 IAST 的问题,他们报告 M7 应用程序报告了FR[AIBSEF] 错误。他们使用的是 RTD4.0.2。 根据 S32G3 RM 的说法,当 AHB 突发大小大于 bufxCR [ADATSZ] 中的预取大小时,AIBSEF 就会被触发,我检查过他们的 BUF3CR [ADATSZ] 是 0x80,这是 QSPI 支持的最大大小(1024 字节)。您知道如何检查 S32G 寄存器中的 HBUSRT 大小吗?能否请您也就此问题发表一些意见? 我还在 S32G RM 中发现了另一个令人困惑的地方,即 AHB 读取不支持 WRAP* 事务,这是否意味着 G3 实际上不支持 HBUSRT?如果是,FR[AIBSEF]的根本原因是什么? 优先级:中等 RTD Re: S32G3 QSPI reported FR[AIBSEF] error 嗨,@Arthur_shi、 我在 QSPI 中没有看到设置 HBURST 和 HSIZE 的地方。但是从我的角度来看,最大突发量 = 16,最大 Hsize = 64 位 = 8 字节。因此,AHB 事务的最大突发总大小 = 16 x 8 = 128,不能大于 1024。我没有看到驱动程序处理 FR[AIBSEF] 位。请将 AIBSEF 位出现时 QSPI 的所有寄存器和 QSPI 配置文件发给我,我将试着查看是否能发现任何问题。 顺祝商祺! Nhi Re: S32G3 QSPI reported FR[AIBSEF] error 这是从客户处收到的寄存器 Re: S32G3 QSPI reported FR[AIBSEF] error 从你的图像来看,AHB 缓冲区的配置如下: 遵循 RM 中的主 ID 表: 如果用户使用 M7,似乎所有事务都会被路由到缓冲区 3,因为主 ID 与其他缓冲区不匹配。但缓冲区 3 的配置是 1024,所以我不明白为什么他们能得到这个位。 但是,我认为他们可以尝试更改缓冲区配置,以查看与缓冲区0、1、2匹配的缓冲区大小为0且序列ID表示16字节的数据。 如果他们使用多个内核,请尝试将每个主 ID 路由到不同的缓冲区。例如CM7_0 至缓冲区 0,CM7_1 至缓冲区 1,... 在执行新的 AHB 事务之前,请尝试检查这些位是否被提升。 Re: S32G3 QSPI reported FR[AIBSEF] error 我们收到客户的反馈,在阻止 A53 内核访问后,问题消失了,因此问题可能是由 A53 内核的投机访问引起的,我不知道为什么这种访问会导致AIBSEF 错误。我想确认的另一个问题是: S32G3 QSPI 支持 AHB 突发功能吗?正如我在之前的评论中提到的、 在 RM 中,QSPI 不支持 AHB warp 功能,但也有一节介绍了 AHB burst 功能,这让我很困惑?能否请您帮忙确认一下这项功能? Re: S32G3 QSPI reported FR[AIBSEF] error 从 RM 中,我了解到 AHB 支持 2 种类型:WRAP 和 INCR。但 S32G3 只支持 INCR。 HBurst 和 Hsize 无法在 QSPI 中配置。它们在 Core 文档中定义,并在启动时配置。 在客户的案例中,他们为核心 A53 配置了核心主 ID 0、1、2,分别为缓冲区 0、缓冲区 1、缓冲区 2,缓冲区大小为 0,因此用于与突发大小进行比较的数据大小是在序列 Id 中配置的数据。就他们而言,我看到序列中的数据大小为16字节,如果启动时配置的突发大小大于此值,则可能会发生此问题。
記事全体を表示
集成开发环境中的 AutoSAR 版本不匹配编译错误 最初,我在 EB 工具中添加了 C40_IP 驱动程序,如图 1 所示。编译后,开始出现 AutoSAR 版本不匹配错误。我尝试了删除工作区(.metadata)、删除 C40_IP、重启电脑和手动修改版本号等方法,但问题都没有得到解决。随后,我打开另一个项目并对其进行编译(该项目不包括 C40),但也出现了版本不匹配错误,如图 2 和图 3 所示。该项目在之前的编译过程中没有出现任何问题。我想问问大家是否遇到过类似情况,以及如何解决。此外,可以做些什么来尽可能避免触发此类问题的信号?谢谢大家。 对于上述内容的人工智能翻译给您带来的不便,我深表歉意。 Re: AutoSAR version mismatch compilation error in the IDE 您好, AUTOSAR 版本不匹配通常发生在编译版本中的 RTD/MCAL 标头不来自同一个更新站点(或者在添加/删除驱动程序/配置后出现部分混合)时。即使你刚刚在 EB Tresos 中添加了一个新 IP(比如 C40_IP),该版本也可以触发此问题——该版本可能会从 S32DS 安装或工作空间缓存中剩余的不同 RTD 版本中提取标头。 有什么能帮上忙的... -避免在一个 S32DS 中混用 RTD 代码包:32DS 目前不支持在同一 IDE 实例中使用多个 RTD 软件包(例如 3.x 和 4.x)。如果您的计算机在一段时间内安装了各种 RTD 版本,请安装单独的 S32DS 实例(例如,S32DS.3.5_RTD400,S32DS.3.5_RTD300),仅使用相应的开发软件包 + 该项目的 RTD 更新站点,保持每个实例 “干净”。 - 临时解锁(谨慎使用):在项目设置中定义 DISABLE_MCAL_INTERMODULE_ASR_CHECK,跳过模块间 AUTOSAR 版本检查,允许编译。这对于确认您的环境是否正常很有用,但它会禁用兼容性强制执行,因此请彻底验证并在RTD软件包调整后进行恢复。 BR, Petr Re: AutoSAR version mismatch compilation error in the IDE 你好,彼得 谢谢您的回答。现在我知道如何避免版本号问题了。不过,还有一点:另一个不含 C40 的项目也报告了同样的编译错误,重新导入该项目也无济于事。能否请您解释一下造成这种情况的原因以及如何解决?我将不胜感激。
記事全体を表示
GUI Guider 1.10.1 がリリースされました。 ホー!ホー!ホー! GUI Guider 1.10.1 がリリースされました。 このバージョンには、LVGL 9.3.0 およびアプリケーション プロセッサの G2D グラフィックス アクセラレーション サポートを含む重要なエコシステム アップデートが付属しています。統合されるプラットフォームが増えるにつれて、安定性とパフォーマンスも向上しました。主な改善点を確認してください: - G2D加速 - デモを含むマルチタッチサポート - i.MX RT700-EVK - Zephyr 4.2 ぜひご自身でもお試しください! http://nxp.com/gui-guider
記事全体を表示