Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Error connecting audio codec MAX98357A to iMX6 Hello, I'm using the iMX6 processor (VAR SOM SOLO from Variscite) and I'm trying to use the codec MAX98357A to play audios. In the project, my custom board is using the AUD4 port to connect to the codec, so I'm using the device tree bellow for that. After building the linux with Yocto and running the Linux I can see the card board that I created, but when I try to set the volume or use the audio controls they aren't available. root@var-som-mx6:~# cat /proc/asound/cards 0 [max98357a ]: simple-card - max98357a max98357a Someone could me help to check if I am doing something wrong in the device tree, please? / { model = "Variscite i.MX6 DL/Solo SOM-SOLO SOM-DUAL SoloCustomBoard"; dts-version = "2.0.19"; extcodec: max98357a@0 { compatible = "maxim,max98357a"; status = "okay"; #sound-dai-cells = <0>; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "max98357a"; simple-audio-card,format = "i2s"; simple-audio-card,widgets = "Speaker", "Speakers"; simple-audio-card,routing = "Speakers", "Speaker"; simple-audio-card,bitclock-master = <&cpu_dai>; simple-audio-card,frame-master = <&cpu_dai>; cpu_dai: simple-audio-card,cpu { sound-dai = <&ssi1>; system-clock-frequency = <883200>; dai-tdm-slot-num = <2>; dai-tdm-slot-width = <16>; }; codec_dai: simple-audio-card,codec { sound-dai = <&extcodec>; }; }; soc { hdmi_audio@120000 { status = "disabled"; }; }; }; &audmux { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_audmux4>; ssi1 { fsl,audmux-port = ; fsl,port-config = < 0x00000000 IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT4_SSI_PINS_4) >; }; aud4 { fsl,audmux-port = ; fsl,port-config = < (IMX_AUDMUX_V2_PTCR_TFSDIR | IMX_AUDMUX_V2_PTCR_TFSEL(MX31_AUDMUX_PORT1_SSI0) | IMX_AUDMUX_V2_PTCR_TCLKDIR | IMX_AUDMUX_V2_PTCR_TCSEL(MX31_AUDMUX_PORT1_SSI0)) IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0) >; }; }; &ssi1 { fsl,mode = "i2s-master"; assigned-clocks = <&clks IMX6QDL_CLK_SSI1_SEL>, <&clks IMX6QDL_CLK_SSI1>; assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>; assigned-clock-rates = <0>, <49152000>; // 48kHz on SSI1 clock status = "okay"; }; &iomuxc { imx6qdl-var-som-mx6 { pinctrl_audmux4: audmux4grp { fsl,pins = < MX6QDL_PAD_DISP0_DAT20__AUD4_TXC 0x130b0 MX6QDL_PAD_DISP0_DAT21__AUD4_TXD 0x110b0 MX6QDL_PAD_DISP0_DAT22__AUD4_TXFS 0x130b0 MX6QDL_PAD_DISP0_DAT23__AUD4_RXD 0x130b0 >; }; }; };  I can't set the volume or use another amixer commands: root@var-som-mx6:~# amixer set PCM 127 amixer: Unable to find simple control 'PCM',0 The command "amixer scontrols" returns nothing and the alsamixer shows " This sound device does not have any controls". root@var-som-mx6:~# amixer scontrols root@var-som-mx6:~# i.MX6 All Re: Error connecting audio codec MAX98357A to iMX6 Hello @Manuel_Salas, this configuration worked, thank you very much! The only thing I did different to work was use this command to change the volume: amixer -c 0 sset 'SoftVolume' 50% Best regards, Marcelo Martimiano Re: Error connecting audio codec MAX98357A to iMX6 Hello @marcelomjr  I hope you are doing very well. I appears the MAX98357A is a digital amplifier, not a typical audio codec. It does not support hardware mixers or volume controls. It just takes I2S in and blasts it out to the speaker. So: amixer: Unable to find simple control 'PCM',0 alsamixer: This sound device does not have any controls It is expected behavior. You can try to use alsamixer with a virtual control for example softvol plugin. # /etc/asound.conf or ~/.asoundrc pcm.softvol { type softvol slave.pcm "plughw:0" control { name "SoftVolume" card 0 } } Then try to adjust volume: $ amixer -D softvol set SoftVolume 50% I hope this can helps to you. Best regards, Salas.
View full article
IMX8MM With MEMS Oscillators Hello, I am trying to design a board using the IMX8M Mini, the design requires the use of MEMS oscillators. The datasheets are not very clear for this arrangement. IMX8MMIEC: 3.1.4 states that the RTC_XTALI is connected to an external oscillator and RTC_XTALO is connected to VDD_SNVS_0P8. There is then a statement about the XTALI pin (assumed to be 24M_XTALI) with no description of what to do with the XTALO pin, is this left unconnected? There are high/low thresholds given for the RTC clock but nothing given for the 24MHz clock, what are these thresholds? IMX8MMHDG: 4.4 mentions CLK1_P/N I cannot find any other reference to this pad in any other document. There is also a mention of CLKIN_1/2, the use of these pads is rather unclear with the only reference I can find is in the register definitions. I found this post (https://community.nxp.com/t5/i-MX-Processors/Processor-CLKIN-and-CLKOUT-pin-functionality/m-p/1007077) from 2020 with NXP stating it can bypass the XTALI pad and apologising that it is poorly documented, It still isn't very clear. Should the 24MHz MEMS oscillator be connected to 24M_XTALI or CLKIN_1? If no crystals are used should "VDD_24M_XTAL_1P8" still be powered as this is omitted from section 2.1 in IMX8MMIEC? Thanks, Chris Re: IMX8MM With MEMS Oscillators @user1092  Happy to help, and thank you for your patience. Best regards, Salas. Re: IMX8MM With MEMS Oscillators Hi Salas, Thank you for clarifying and for your assistance. Chris. Re: IMX8MM With MEMS Oscillators Hello @user1092  Yes, I can confirm that the user's guide is correct, in that case you must tie RTC_XTALO to VDD_SNVS_0P8. This is from an internal discussion: Best regards, Salas. Re: IMX8MM With MEMS Oscillators Hi Salas, Thank you for the response, this is good news. Could you also please confirm the data sheet is correct in regards to the RTC. With RTC_XTALO being tied directly to VDD_SNVS_0P8, this sounds like a strange arangement and I would like to just confirm it is the correct arrangement. Thank you, Chris Re: IMX8MM With MEMS Oscillators Hello @user1092  Following up on your inquiry, we have reviewed the RTL and datasheet of the PAD provided by the IP vendor. Based on this review, we can confirm that the PAD supports the use of an external 24MHz reference clock. As per the IP datasheet: "In the case of external clock without physical crystal, a differential signal must be applied between PADI and PADO." This means that the external 24MHz clock must be a differential (complementary) signal applied to the XTALI and XTALO pins. Specifically: The signal should swing between 0V and 1.8V. When XTALI is at 0V, XTALO should be at 1.8V, and vice versa. To achieve this, you have two options: Use an oscillator that provides complementary differential outputs. Use a single-ended oscillator along with an external inverter to generate the complementary signal. Best regards, Salas. Re: IMX8MM With MEMS Oscillators Thank you @user1092  I will update to internal team and wait for their answer. Best regards, Salas. Re: IMX8MM With MEMS Oscillators Attached file after failed post removed it. Re: IMX8MM With MEMS Oscillators Hi Salas, "It sounds like a MEMS resonator on one instance (uses both XTAL pins) and an MEMS clock generator in the other (single ended input, only one). As far as using a resonator to replace a crystal, no one has asked this to my knowledge (been covering i.MX since around 2008). Will need to do some research on this." I'm unsure as to what they are referring here, but a MEMS resonator will not be used by us. To be honest, I had not heard of them and they don't seem too readily available. We will be using a single ended clock source. "Have to dig on using an external, single ended clock generator since some parts are not able to work with an external oscillator. I don’t recall off hand which one it was so I need to dig on that too." Please that would be appreciated. "Do you have any part numbers/dara sheets?" The part will most likely be DSC6001HI2B-024.0000, See attached for datasheet. Thanks, Chris. Re: IMX8MM With MEMS Oscillators Hello @user1092  From internal team: It sounds like a MEMS resonator on one instance (uses both XTAL pins) and an MEMS clock generator in the other (single ended input, only one). As far as using a resonator to replace a crystal, no one has asked this to my knowledge (been covering i.MX since around 2008). Will need to do some research on this. Have to dig on using an external, single ended clock generator since some parts are not able to work with an external oscillator. I don’t recall off hand which one it was so I need to dig on that too. Do you have any part numbers/dara sheets? Best regards, Salas. Re: IMX8MM With MEMS Oscillators Hello @user1092  Sure, I am waiting for an answer from internal team. I will let you know when any update. Best regards, Salas. Re: IMX8MM With MEMS Oscillators Hello Salas, After re-reading the datasheet there is a section (3.1.4) stating the XTALI can be fed from an external oscillator: This chip was chosen based on this statement. The documentation seems to be a bit of a mess, as it also states in this section that the RTC can only be connected to an external oscillator. However, section 3.4.2 discusses how to use the RTC with a crystal oscillator. You never answered the question about the CLKIN pins and whether these pins can be used if the XTALI pin cannot be driven from an external oscillator. I have spent almost a year developing this product, I do not want my time to have been wasted. The datasheet states XTALI can be driven from from an external oscillator. Please could you help, as I need a solution as soon as possible. Regards, Chris Re: IMX8MM With MEMS Oscillators Hello Salas, The design cannot use a crystal oscillator as it is used in a pressurised environment. You say the only recommended/validated way is with a crystal, this suggests it is possible but not tested. Could you provide information on if it is possible and if it is possible, how? Could you please provide some information on the purpose of the CLKIN_1/2 as there is little to no documentation about these pins. https://community.nxp.com/t5/i-MX-Processors/Processor-CLKIN-and-CLKOUT-pin-functionality/m-p/1007077 suggests the pins can be used to feed the main clock instead of the crystal. Is this correct? Thanks Chris. Re: IMX8MM With MEMS Oscillators Hello @user1092  I hope you are doing very well. It is Only recommended and validated option - use crystal as recommended in official NXP document - Hardware Guide, sect.Table 12. Oscillator/Crystal recommendations. Best regards, Salas.
View full article
Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hello, At the AN4581 Application Note section 5.7 it is recommended to program the SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses to completely secure the device, but looking at both the IMX8MMRM and IMX8MMSRM, I wasn't able to find the exact location of those fuses (bank, word, bit). Where can I find this information? Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi @igorpadykov , I would appreciate if you could send me this information as well. Thanks in advance Dj Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi, Would it be possible for you to send me this information as well? Also is this diifferent between an imx8m nano  and a mini? Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also would like to have this information. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM hi @igorpadykov, I need information about the fuses for the imx8m mini. Could you be so kind to provide it to me? I need to disable the JTAG for security reasons. Best regrads, Julián Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM @igorpadykov could you also send me the info for the JTAG_HEO fuse? Thanks! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Can you also share this with me, please? Why isn't this just posted in a public app note, or the reference manual or security reference manual? Security through obscurity is not security. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Could you make this email public information? Why is this information not listed in the security reference manual? For the i.MX8M Nano this is listed in the security reference manual. But I cannot know whether the Mini uses the same fuses. Also, AN4581 also lists fuse DIR_BT_DIS to be of interest. But I cannot find any reference of it. Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM We also want to disable JTAG on the imx8m-mini and I couldn't find any info of about it in Reference Manual, Rev. 2, 08/2019 Chapter 6.2 Fusemap. Could you also point me into the right direction. Thank you! Re: Programming SJC_DISABLE, JTAG_SMODE and JTAG_HEO fuses on iMX8MM Hi rodrigo_travess additional info were sent via mail. Best regards igor
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
TJA144 NXPチームの皆様、こんにちは。 私たちのデザインでは、TJA1445A CAN IC を使用しています。Vbat への供給についてご確認ください。データシートでは、Vbat の範囲は 4.75V ~ 40V、VCC は 4.25V ~ 4.75V です。Vbat と VCC に同じ 5V をCAN使用できますか? Re: TJA144 こんにちは、トーマス。 ご説明ありがとうございます。 よろしくお願いいたします。 スネハル Re: TJA144 こんにちは、スネハルさん 注記には、 「低電力モードで VCC がオフになることが予想される場合、適切な CAN バイアス生成のために VBAT は 5.5 V より高くなければなりません」と記載されています。つまり、デバイスは VCC がオフのときに VBAT がアクティブのままであると想定しているSO、両方が同じ 5V レールに接続されている場合は、その柔軟性が失われます。低電力モード (スリープ/スタンバイ) が必要な場合は、VBAT を VCC から分離しておく必要があります。低電力モードが重要でない場合は、一般的な 5V 電源を使用しても問題ありません。 はい、VBAT の範囲は 4.75V ~ 40V SO、24V は仕様範囲内です。データシートの表 1 に示すように、VBAT から引き出される電流は非常に低いです。24 V でも電流はマイクロアンペアの範囲に留まるSO、電力消費はごくわずかです。主な電流消費は VCC (CAN トランスミッター) から発生し、モードに応じて 6~60 mA になります。SO、適切なフィルタリングと過渡保護を確保すること以外に、24V での VBAT に大きな制限はありません。 BRs、トーマス Re: TJA144 VCC と VBAT に 5V を供給している場合、5V をオフにすることはできないのでしょうか?この画像に記載されているとおりです。もう 1 つ質問があります: Vbat 24V を供給すると動作しますか?電流消費の観点から何か制限はありますか? Re: TJA144 こんにちは、スネハルさん データシートに基づく: - VBAT(バッテリー電源):4.75V~40V - VCC(CANトランスミッター電源): 4.5V~5.5V - VBAT低電圧検出: 4.25V~4.75V - VCC低電圧検出: 4.0V~4.5V SOはい、次の条件を満たす場合、VBAT と VCC の両方に同じ 5V 電源を使用CANます。 - 5V 電源は安定しており、最小 VBAT 要件 (> 4.75V) を満たしています。 - 共通電源の使用を示すには、システム構成レジスタで VBATVCC = 1 を設定します。 - レギュレータが VBAT と VCC の両方の負荷の電流をCAN処理することを確認します。 BRs、トーマス
View full article
PWMキャプチャのプリスケーラ設定に関する問題 タコの外部周波数をキャプチャするために PWM 入力を使用しています。 標準設定ではすべて正常に動作しますが、初期化中にプリスケーラを適用すると pwmConfig.プリスケール= kPWM_Prescale_Divide_64 ; または設定することで void PWM_SetClockMode CVAL2とCVAL3の値は常に0x00であり、カウンタはカウントしていない 私の信号の周波数は200Hzです Re: Problems Setting Prescaler for PWM capture こんにちは、 私も同じ問題に遭遇しました。 4 つの PWM ペリフェラルのいずれかのクロック パースケーラを kPWM_Prescale_Divide_1 以外の値で設定すると、選択した PWM ペリフェラルのカウンターはまったく動作しません。 私はimxrt1062プロセッサとMCUXpresso IDE v11.9.1を使用しています。 できるだけ早くサポートしていただければ幸いです。 以下は、PWM ペリフェラルを設定および初期化するコードの一部です。 静的void pwm_init ( void ) { pwm_config_t pwmConfig; pwm_input_capture_param_tキャプチャ設定; pwm_fault_param_t障害構成; /* PWMのデフォルト設定を読み取る */ PWM_GetDefaultConfig(&pwmConfig); pwmConfig.clockSource = kPWM_BusClock ;​ pwmConfig.prescale = kPWM_Prescale_Divide_2 ;​ pwmConfig.pairOperation = kPWM_Independent ;​ pwmConfig.initializationControl = kPWM_Initialize_LocalSync ;​ pwmConfig. reloadLogic = kPWM_ReloadImmediate ; pwmConfig. reloadSelect = kPWM_LocalReload ; pwmConfig. reloadFrequency = kPWM_LoadEveryOportunity ; pwmConfig.forceTrigger = kPWM_Force_LocalSync ;​ pwmConfig.enableDebugMode = true; PWM_Init(PWM1_BASEADDR、 kPWM_Module_3 、&pwmConfig); PWM_Init(PWM2_BASEADDR、 kPWM_Module_3 、&pwmConfig); PWM_Init(PWM3_BASEADDR、 kPWM_Module_1 、&pwmConfig); PWM_Init(PWM4_BASEADDR、 kPWM_Module_1 、&pwmConfig); // 障害構成 PWM_FaultDefaultConfig(&faultConfig); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM1_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM1_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM2_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM2_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM3_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM3_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* PWM障害保護を設定します */ PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_0 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_1 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_2 、&faultConfig); PWM_SetupFaults(PWM4_BASEADDR、 kPWM_Fault_3 、&faultConfig); /* サブモジュール0/1/2のPWM障害無効化マッピングを設定する */ PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_0 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_2 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); PWM_SetupFaultDisableMap(PWM4_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、 kPWM_faultchannel_0 、 kPWM_FaultDisable_0 | kPWM_FaultDisable_1 | kPWM_FaultDisable_2 | kPWM_FaultDisable_3 ); /* ワンショットポーリング用のPWMのキャプチャ入力を設定します */ キャプチャConfig.captureInputSel = true; キャプチャ構成。エッジ0 = kPWM_RiseAndFallEdge ; キャプチャーConfig.edge1 = kPWM_Disable ; キャプチャ設定。enableOneShotCapture = false; キャプチャ構成。edgeCompareValue = 1; PWM_SetupInputCapture(PWM1_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM2_BASEADDR、 kPWM_Module_3 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM3_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、&captureConfig); PWM_SetupInputCapture(PWM4_BASEADDR、 kPWM_Module_1 、 kPWM_PwmA 、&captureConfig); PWM_SetPwmLdok(PWM1_BASEADDR、 kPWM_Control_Module_3 、true); PWM_SetPwmLdok(PWM2_BASEADDR、 kPWM_Control_Module_3 、true); PWM_SetPwmLdok(PWM3_BASEADDR、 kPWM_Control_Module_1 、true); PWM_SetPwmLdok(PWM4_BASEADDR、 kPWM_Control_Module_1 、true); PWM_StartTimer(PWM1_BASEADDR、 kPWM_Control_Module_3 ); PWM_StartTimer(PWM2_BASEADDR、 kPWM_Control_Module_3 ); PWM_StartTimer(PWM3_BASEADDR、 kPWM_Control_Module_1 ); PWM_StartTimer(PWM4_BASEADDR、 kPWM_Control_Module_1 ); }   Problems Setting the Prescaler for PWM capture こんにちは。元の投稿者と同じ問題が発生しました。仕切りコードを削除したり、仕切り1に設定したりするとカウンターは正常に動作しますが、仕切り2以上に設定するとカウンターが停止します。原因は何でしょうか? void Capture_config(void) { pwm_input_capture_param_t pwm_input_capture; gpio_pin_config_t PWM_pin_config; //初始化输入捕获管脚 IOMUXC_SetPinMux(PWM2_PWMA03_IOMUXC, 0U); //设置外部引脚的复用功能 IOMUXC_SetPinConfig(PWM2_PWMA03_IOMUXC, PWMC_INPUT_PAD_CONFIG_DATA); //设置引脚的 pad 属性 PWM_pin_config.direction = kGPIO_DigitalInput; PWM_pin_config.interruptMode = kGPIO_NoIntmode; GPIO_PinInit(PWM2_PWMA03_GPIO, PWM2_PWMA03_GPIO_PIN, &PWM_pin_config); //初始化输入捕获配置参数 pwm_input_capture.captureInputSel = false; pwm_input_capture.edge0 = kPWM_RisingEdge; //pwm_input_capture.edge1 = kPWM_FallingEdge; pwm_input_capture.enableOneShotCapture = false; //pwm_input_capture.edgeCompareValue = 10; //当captureInputSel为FALSE时,此处设值无意义 pwm_input_capture.fifoWatermark = 0; PWM_SetupInputCapture(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_PwmA, &pwm_input_capture); //开启捕获中断 //set_IRQn_Priority(PWM2_3_IRQn,Group4_PreemptPriority_0, Group4_SubPriority_0);//设置中断优先级 //PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable| kPWM_CaptureA1InterruptEnable ); PWM_EnableInterrupts(PI_PWM_BASEADDR, kPWM_Module_3, kPWM_CaptureA0InterruptEnable ); EnableIRQ(PWM2_3_IRQn); } /** * @brief 初始化 PWM 配置参数 * @retval 无 */ void PWM_config(void) { pwm_config_t pwmConfig;//定义pwm 配置结构体 PWM_Deinit(PI_PWM_BASEADDR, kPWM_Module_3); /*设置AHB总线时钟和IP总线时钟*/ CLOCK_SetDiv(kCLOCK_IpgDiv, 0x3); /* Set IPG PODF to 3, divede by 4 */ /*设置pwm 错误输入为高电平,表示没有错误,只有当pwm 没有错误输入或者禁止错误检测才能正常输出pwm波*/ XBARA_Init(XBARA1); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault0); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1Fault1); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault2); XBARA_SetSignalsConnection(XBARA1, kXBARA1_InputLogicHigh, kXBARA1_OutputFlexpwm1234Fault3); PWM_GetDefaultConfig(&pwmConfig); pwmConfig.reloadLogic = kPWM_ReloadPwmFullCycle; //新值在上一个pwm周期输出结束之后加载到缓冲寄存器中 pwmConfig.pairOperation = kPWM_Independent; // 工作在独立模式 pwmConfig.clockSource = kPWM_BusClock; pwmConfig.enableDebugMode = true; // 使能DebugMode pwmConfig.prescale = kPWM_Prescale_Divide_128; //1320000000/128/65535=16Hz=PWM最小频率 //初始化 PWM 并且判断初始化是否成功 if (PWM_Init(PI_PWM_BASEADDR, kPWM_Module_3, &pwmConfig) == kStatus_Fail) { PRINTF("PWM initialization failed\n"); } Capture_config(); PWM_SetPwmLdok(PI_PWM_BASEADDR,kPWM_Control_Module_3 , true); PWM_StartTimer(PI_PWM_BASEADDR, kPWM_Control_Module_3 ); } Re: Problems Setting Prescaler for PWM capture こんにちは@mexp2さん、 まず初めに、ご返答が遅くなりましたことをお詫び申し上げます。 念のため確認ですが、 kPWM_Prescale_Divide_128をどこに配置しているか教えてください。pwmConfig.prescale=kPWM_Prescale_Divide_128;と記述すると良いかもしれません。pwmConfig.pairOperation=kPWM_Independent の後;PWM_Init()の前。また、どのクロック ソースを使用していますか? 最後に、プリスケーラの値を 64 未満にしてみませんか? よろしくお願いいたします、ラウル。 Re: Problems Setting Prescaler for PWM capture imxRT1062をSDK v2.13.0で使用します。 /* Read the PWM default configuration */ PWM_GetDefaultConfig(&pwmConfig); pwmConfig.reloadLogic = kPWM_ReloadImmediate; pwmConfig.pairOperation = kPWM_Independent; pwmConfig.enableDebugMode = true; /* Init the pwm */ if( PWM_Init(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, &pwmConfig) == kStatus_Fail) { PRINTF("Can't initialize PWM\n"); return; } /* Configure the capture input of the PWM for one shot polling */ pwm_input_capture_param_t captureConfig; captureConfig.captureInputSel = false; captureConfig.edge0 = kPWM_RisingEdge; captureConfig.edge1 = kPWM_RisingEdge; captureConfig.enableOneShotCapture = true; PWM_SetupInputCapture(TACHOPUMP_PERIPHERAL, TACHOPUMP_CHANNEL, TACHOPUMP_SIGNAL, &captureConfig); PWM_SetPwmLdok(TACHOPUMP_PERIPHERAL, timerBitmask, true); PWM_StartTimer(TACHOPUMP_PERIPHERAL, timerBitmask); このコードではすべて期待通りに動作しますが、設定にプリスケーラを追加すると pwmConfig.prescale = kPWM_Prescale_Divide_128; カウンターはもうカウントしていない Re: Problems Setting Prescaler for PWM capture こんにちは@mexp2さん、 お元気でお過ごしでしょうか。 さらにデバッグするために使用する i.MX プロセッサを指定してください。 ありがとう、よろしく。 サンケト・パレック
View full article
TEF82XX ATBの問題 こんにちは。ADC をバイパスし、RX をアナログ ポートに直接テストしてみたいと思います。スペクトル アナライザーを使用して内部のアナログ信号を表示します。関連するレジスターはどこにありますか?ADC と ATB のクロックと電源制御関連のレジスタしか確認しなかったためです。予約済みの ATB ポートがありませんか?または、RC 受信データはデフォルトで ADC および ATB ポートに送信され、切り替える必要はありませんか? レジスタ R2M0A_LO_INTERFACE_CONTROL_U16:0x000 で、バッファ B3、B2、および B1 の有効設定を確認しました。しかし、回路図で対応するポジショニングを見つけることができませんでした。場所を特定するのを手伝ってもらえますか?それとも、TEF82xx にはこれらのバッファがないのでしょうか? Re: TEF82XX ATB Issue こんにちは、 私は TEF82xx FAE と話していましたが、ATB は社内用であり、お客様とは話し合われません。 さらに質問がある場合は、少なくともNDAが必要となるため、NXP FAE / Salesに問い合わせることをお勧めします。 よろしくお願いいたします。 ピーター 回复: TEF82XX ATB Issue バッファ B1 ~ B4 はデータシートに記載されています。ありがとう。
View full article
S32K144コントローラのUART通信の問題について こんにちは 、 現在、プロジェクトに S32K144 コントローラを使用していますが、UART 受信に問題が発生しています。ブレークポイントがない場合、ソフトウェアは正常に実行され、UART はすべてのデータを適切に受信します。しかし、ブレークポイントが適用されると、UART 受信は行われなくなります。その間割り込みも発生しません。 使用コントローラ:S32K144 SDKスタック: LPUART2 この原因は何ですか、またこれを解決するにはどうすればよいですか? コールバック関数は以下のとおりです。 uint8_t 受信バイト = 0U; void vidRxUARTCallback(void *driverState, uart_event_t event, void *userData) { /* イベント情報タイプを確認する */ if (イベント情報 == UART_EVENT_RX_FULL) { LPUART_DRV_SetRxBuffer(INST_LPUART1, &rxbyte, 1U); } } Re: Regarding the UART communication issue in S32K144 controller こんにちは@Avinash_PAZHAMALAI 、 DATA レジスタからの RX データにはデバッガーからもアクセスでき、デバッガーは読み取り時に対応するフラグを自動的にクリアします。意図しないフラグのクリアを防ぐには、DATA レジスタにアクセスするすべてのレジスタまたはメモリ ビューが閉じられていることを確認します。 BR、ダニエル
View full article
CST 4.0.1 的 Openssl 版本 您好, 我从恩智浦下载了CST 4.0.1(代码签名工具),在查看文档文件夹中的文档(特别是UG10106)时,我看到了第3.1.1 节、其中提到 CST 支持Ubuntu 22.04,需要OpenSSL 3.2.0。 不过,我当前的 Ubuntu 22.04 系统使用的是OpenSSL 3.0.2已安装。我担心升级到 OpenSSL 3.2.0可能会破坏现有的系统依赖关系。使用 CST 真的需要升级 OpenSSL 吗?如果是这样,有什么最安全的方法可以在不影响我的系统的情况下做到这一点? 我还附上了 UG10106 的屏幕截图以供参考。 谢谢! Kartheek Re: Openssl Version for CST 4.0.1 您好@kartheek! 感谢您联系恩智浦支持中心! CST 工具的推荐版本是 OpenSSL 3.2.0。 遗憾的是,我们尚未测试 OpenSSL 3.0.2 版本。如果该工具不能按预期运行,则应尝试安装用户指南中推荐的版本。 此致 查维拉
View full article
S32K358 上の AUTOSAR 4.7.0 での受信割り込みの設定 こんにちは、皆さん 現在、プロジェクトをRTDからAUTOSAR 4.7.0(SWバージョン3)に移行中です。 送信と受信の両方が割り込みモードで動作するように設定されています。 RTD セットアップでは、各メッセージ オブジェクトに独自のバッファーが割り当てられていました。メッセージを受信すると、受信 IRQ 機能がトリガーされ、メッセージ オブジェクト番号を使用して、対応するバッファにアクセスして処理できるようになりました。 現在、AUTOSAR では、受信割り込み処理を適切に構成する方法がわかりません。 AUTOSAR で受信割り込み用のメッセージ オブジェクト バッファを割り当てたりアクセスしたりするにはどうすればよいですか? 受信 ISR コールバック (CanIf または CanDrv 経由など) を実装または構成するための推奨方法はありますか? このワークフローの例やドキュメント参照はありますか? いくつかの例を確認しましたが、受信割り込み処理を明確に説明している例は見つかりませんでした。 ヒントや設定例があれば、ぜひ教えてください! Re: Configuring Reception Interrupts in AUTOSAR 4.7.0 on S32K358 こんにちは、 @thorben_kampさん、 SW バージョン 3 とは、S32K3 RTD v3.0.0 ASR21-11 のことを指していると思います。 RTD パッケージは、S32K358 CAN 通信用の AUTOSAR サンプル ルーチンを提供します。 ただし、ループバック操作用に構成されているため、出力ピンには信号が表示されません。出力ピン (S32K3X8EVB の CAN0 の場合は PTA6/7) を設定し、CAN インスタンス モードをループバックから通常/ユーザー モードに変更する必要があります。HW 構成に応じて、CANトランシーバを初期化する必要もあります。 S32K3X4EVB-T172 の割り込み MCAL ベースの例がここに投稿されています: [RTD600 MCAL & IP] S32K3X4EVB-T172 FlexCAN 例割り込み/ポーリング - NXP コミュニティ。S32K344 ベースですが、同じメインルーチンをCAN使用します。この例は単に最も基本的な構成を示すものであり、AUTOSAR にまったく準拠していないことに注意してください。 よろしくお願いします、 ジュリアン
View full article
i.MX95 Cortex-M7 内核支持 Qt for MCU(Qt Quick Ultralite) 我目前正在评估恩智浦 i.MX95平台,以开发基于图形的嵌入式应用。根据i.MX95文档,该SoC集成了用于高级应用程序的 Arm Cortex-A55 集群和用于实时处理的 Arm Cortex-M7 内核。 我想确认i.MX95 中的 Cortex-M7 内核是否支持微控制器 Qt(Qt Quick Ultralite)。 具体来说,我希望澄清以下几点: i.MX95 (M7) 平台是否正式支持 Qt for MCU,类似于 i.MX RT1170 EVK 等现有恩智浦板? 如果支持,应使用哪个 SDK、电路板支持包或工具链(例如 MCUXpresso SDK、FreeRTOS)在 M7 内核上版本和部署 Qt for MCU 应用程序? 如果尚未得到官方支持,是否有任何计划中的路线图或推荐的方法将适用于MCU的Qt移植到i.MX95 M7上(例如,通过MCUXpresso SDK或自定义电路板支持包)? 如果您能就在 i.MX95 M7 内核上运行 MCU Qt 是否存在官方支持或集成示例提供指导,我将不胜感激。 提前感谢您的帮助。 评估板 Re: Qt for MCUs (Qt Quick Ultralite) support on i.MX95 Cortex-M7 core 您好, 正式版本时,显示屏始终在 A55 以下。如果您需要基于 M7 的 QT 演示,DPU 应在 M7 和 restru 下,请联系恩智浦销售团队获取有关 M7 上 QT 的详细演示。目前,没有官方版本计划。 致敬, Zhiming
View full article
缺少编译器 S32 Studio 我在 S32 Studio 3.6.4 中找不到编译器用于 S32K3x8 EVB。 arm-none-eabi-gcc " @board /siul2_port_ip_cfg.args "-MMD-MP-MF "板/siul2_port_IP_CFG.D "-MT " board/siul2_port_IP_CFG.O "-o " board/siul2_port_IP_CFG.O "".。/板/siul2_port_IP_CFG.C " make:*** [generate/src/subdir.mk:26: generate/src/Igf_Port_Ip_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make:*** [generate/src/subdir.mk:26: generate/src/OsIf_Cfg.o] ***.错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/tspc_port_IP_CFG.O] 错误 127 /bin/sh:第 1 行:arm-none-eabi-gcc:找不到命令 make: *** [板/subdir.mk: 23:板/siul2_port_IP_CFG.O] 错误 127 Re: Missing compiler S32 Studio 你好,@Greavesinator85、 您使用的是哪个 RTD 版本?您的项目中似乎没有选择工具链。 示例项目也会出现这种情况吗?创建项目时,是否选择了"Create new S32DS application project" 选项? 您可以尝试在项目属性中手动添加工具链路径,但我建议您创建一个新项目,以避免与此相关的任何其他配置问题。 致以最诚挚的问候, Julián
View full article
SWO 数据跟踪功能(在 MCXA156 上) 你好,恩智浦社区、 我一直在试验 MCXA156 控制器及其相应的开发板的调试功能。 我的设置 (FRDM-MCXA156) 以及定制板中的 MCXA156。 MCUXpresso IDE v25.6 [内部版本 136] [2025-06-27] MCU Link pro 调试器 到目前为止,通过恩智浦 Expresso SDK 中的各种示例,我能够满足大部分调试需求。(断点、数据监视点、ITM 打印重定向、中断跟踪等)。 不知何故,我只能在 SWO 上使用 Data Watch Trace/Stream。我想我误解了 MXCA156 调试功能的功能。 据我所知,MCXA156 支持 ITM 和 DWT。 有了它,就可以添加读/写数据编译器,并通过 SWO 引脚流出/跟踪相应的数据。在我的设置中,我似乎无法使用"SWO Data" 窗口,即使所有其他跟踪功能似乎都能正常工作。 我的设置是否正确,还是 MCUXpresso IDE 还不支持我的使用情况? 顺祝商祺! 亚历克斯 Re: SWO Data Trace functionallity (on MCXA156) 你好@AlexRu 要使用 SWO,您可以按照提供的步骤指南进行操作。 硬件要求: 确保芯片的 SWO 引脚连接到调试器的 SWO 接口。 (这是 FRDM-MCXN947 板)。 软件配置: 创建新项目时,选择 "重定向 printf/scanf 至 ITM",将 printf/scanf 输出重定向至 ITM。 2.配置跟踪时钟: CLOCK_AttachClk(kTRACE_DIV_to_TRACE); /*!将 TRACE 切换到 TRACE_DIV */ /*!安装分频器 */ clock_setclkdiv (kclock_divtraceCLK,3U); /*!将 TRACECLKDIV 分频器设置为值 3 */ 3.在 MCUXpresso IDE 中配置 ITM 控制台视图: 打开 SWO ITM 控制台。 在 IDE 设置和代码中配置相应的核心时钟和跟踪时钟 。 4.查看输出结果。 有关 SWO 和 DWT 使用的详细信息,请参阅MCUXpresso_IDE_25.06_Instruction_Trace_Guide.pdf 。您可以在 MCUXpresso IDE 安装路径下找到该指南。 BR 爱丽丝   Re: SWO Data Trace functionallity (on MCXA156) 嗨,爱丽丝、 非常感谢你对如何设置 SWO 跟踪的详细可视化说明。 就我而言,我已经验证了 SWO 引脚(MXCA-156 PCB)与我的 MCU-Link Pro 调试探针的电连接。您提到的 PDF 文件确实提供了更详细的信息,扩展了我的知识面。尽管如此,这并不能真正解释/反驳我对使用 DWT 的假设。 在我的设置中,我已经在"SWO Interrupts" 窗口中看到了中断返回和中断入口点的数据:(这是我的 SW 的实时数据!有意义的数据和正确的时间信息)。 有了这些信息,我验证了我通过SWO引脚的电连接是否正常,跟踪时钟已启用,频率符合我的SWO Trace Config中的预期。 我错过了什么(或者我这边可能有误会?)是通过数据观察比较器 (DWT) 将数据追踪到窗口 " SWO Data " 中的 SWO 跟踪引脚的功能。 在启用"play" 按钮后,我没有收到任何跟踪信息: 我甚至证实,在我的 MXCA156 配置中,数据监视点仅限于 2 个比较器,因此 IDE 似乎能够设置它们并警告设置的数据观察点过多(我故意这样做是为了检查其合理性): 所以我的问题是是集成开发环境支持这种调试方法,还是我理解错了,DWT 完全不提供这种数据跟踪功能? Re: SWO Data Trace functionallity (on MCXA156) 你好@AlexRu 感谢您的回复。 请告诉我您想使用 DWT 观察哪些数据? 另外,请共享一个可以重现该问题的项目,并提供一段视频,展示您所采取的所有步骤。 我将利用这些信息来重现和检查我这边的问题。 谢谢! BR 爱丽丝 Re: SWO Data Trace functionallity (on MCXA156) 你好@Alice_Yang、 我确实根据 SDK 示例(LED Blinky)为 FRDM-MCXN236 演示板准备了一个极简主义项目。(demo_apps -> LED_BLINKY_PERIPHERAL) MCXN236 板设置显示的效果似乎与我之前使用的 MCXA156 板相同。我只是想在另一个板确认这种行为。 引脚配置设置 P0_2 -> 输出 SWO(本例中为默认值) 启用 TRACECLK 和 TRACECLKDIV (1),因为本例使用 BOARD_BootClockFRO12M() 添加了以下代码,以查看 glocal ram 变量的一些操作: volatile uint32_t debug_cnt = 0; void SysTick_Handler(void) { /* Toggle pin connected to LED */ GPIO_PortToggle(BOARD_LED_GPIO, 1u << BOARD_LED_GPIO_PIN); debug_cnt++; //<- added for demonstration purpose } 附件:包含演示项目和调试视频的压缩包。 您可以看到"SWO Data" 没有显示任何跟踪数据。全局变量窗口显示在 ~1 秒的 SysTick_Handler 周期内 debug_cnt 的增量。" SWO Interrupts " 还能可靠地显示 systick_Handler () 的进入和退出,因此 SWO 跟踪的电连接似乎可以正常工作。 如果我能提供更多信息以缩小问题范围,请告诉我。 如果您能确认我所期望的用 DWT 追踪全局/静态 RAM 变量是否可行,我也将非常高兴。或者是我理解错了。 Re: SWO Data Trace functionallity (on MCXA156) 你好@AlexRu 我在自己这边做了测试。这无法实时输出变量的值。它只能在暂停调试时检查变量的值。 BR 爱丽丝 Re: SWO Data Trace functionallity (on MCXA156) 嗨,爱丽丝,谢谢你的努力。这样看来,MCUXpresso 目前不支持"数据跟踪" 调试。可以在将来的版本中申请这个吗? 从我这个局外人的角度来看,似乎并不缺少使其发挥作用的因素。SWO 中断似乎可以正常工作,并可扩展到高级调试功能。 SWO 数据跟踪可进一步扩展恩智浦 Xpresso 工具链中的调试功能。 问候 Alex Re: SWO Data Trace functionallity (on MCXA156) 你好@AlexRu 谢谢您的答复。我会将此请求转发给 MCUXpresso 开发团队,并随时向您通报最新进展。谢谢。   BR 爱丽丝
View full article
将 Android 映像闪存到 i.MX 8M Mini EVK 时进度卡住 你好,我一直在尝试将 Android 9 安装到定制平板电脑中。使用的板是 i.MX 8M Mini EVK,我的前辈委托我在里面刷安卓 9。我想尽一切办法闪屏,但它总是卡在 [======= 100% ================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link 不再回复。有办法解决这个问题吗?谢谢。哦而且我还用了 UUU 作为刷新方法 其他信息:我不小心安装了错误的镜像后我的设备也陷入了启动循环中所以是的,但我仍然可以访问 SDP PS D:\platform-tools>.\uuu_imx_android_flash.bat -f imx8mm -tos -e 本脚本使用 uuu 1.2.135 版本验证,请与此版本保持一致。 支持 dtbo 支持 双插槽 生成行以闪存 u-boot-imx8mm-trusty.imx 到 bootloader0 的分区 生成行到闪存分区表。img 到 gpt 的分区 生成行到 dtbo_a 的分区 生成行到 dtbo_a 的分区 生成行到启动_a 的分区 生成行到闪存系统.img 到系统的分区 生成行到闪存系统的分区 _a 生成行到 flash vendor.img 到 vendor_a 的分区 生成行以 flash vbmeta-imx8mm.img 到 vbmeta_a 的分区 生成行将 dtbo-imx8mm.img 闪存到 dtbo_b 分区的行 生成到 flash 启动_b 分区的线路 生成到启动_b 分区的行 生成到 flash system_b 分区的行。img 到 vendor_b 的分区 生成行 flash vbmeta-imx8mm.img 到生成的分区,开始调用 vbmeta_b uuu 脚本生成的分区,开始调用 uuu 使用为恩智浦 imx 芯片生成的 uuu 脚本 uuu(通用更新实用程序)— libuuu_1.5.201-0-g727fc2b 成功 0 失败 0 1:1-1/ 1 [================ 100% =================] SDP:启动-f u-boot-imx8mm-evk-uuu.imx.link Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Progress stuck while flashing an android image to i.MX 8M Mini EVK 你好, 如果卡在这里,串行日志会显示错误。 致敬, Zhiming
View full article
SDRAMのSEMC構成 こんにちは、 私はカスタム NXP RT1176 ボードを使用していますが、SDRAM の SEMC インターフェースでは、ハードウェアはアドレス ライン A0 ~ A11 のみを提供します。この構成では、最大 16MB の SDRAM にアクセスできます。 ただし、32MB を使用したいSO、64MB SDRAM 部品 (Alliance AS4C32M16SB) を選択し、A12 アドレス ラインをフローティングのままにしました。私の意図は、デバイスの下位 32MB を使用することです。 私は SEMC を 64MB に設定し、メモリ範囲を 0x80000000 から 0x80FFFFFF にマッピングしました。この領域では、特定のアドレスで 16 ビットの読み取り/書き込み障害が発生しています。 興味深いことに、0x81000000 から 0x81FFFFFF (上位 32MB) までのメモリにアクセスすると、正常に動作します。 設定に使用したコードを添付しました。これをCAN確認して、改善が必要かどうか、またはこの種のセットアップ (A12 フローティングを使用) が有効であり、SEMC でサポートされているかどうかをお知らせください。 よろしくお願いします、 パバナクマールAG Re: SEMC Configuration for SDRAM A12 は SDRAM 側で低く保持する必要があります (製造元に確認することをお勧めします)。 BR、 オマール Re: SEMC Configuration for SDRAM @Omar_Anguiano さん、返信ありがとうございます。 当社のボードでは、A12 はコントローラ側と SDRAM 側の両方でフローティングになっています。おっしゃるとおり、A12 は既知のロジック レベルに保持される必要があります。以下を明確にしていただけますか: このCASE、A12 にはどのロジック レベル (HIGH または LOW) を使用すればよいですか? 両側で A12 を同じ既知のレベルに駆動する必要がありますか、それとも SDRAM 側でのみ設定すれば十分ですか? Re: SEMC Configuration for SDRAM フローティングラインを避けてください。理想的には、A12 を浮いたままにせず、既知のロジック レベルに接続して下位半分にアクセスできるようにします。 BR、 オマール
View full article
JTAG RT1176経由の非XIP このアプリケーションノート ( https://www.nxp.com/docs/en/application-note/AN14069.pdf ) によると、NON XIP イメージは UART および USB 経由の MCU ブート ユーティリティでのみロードできます。 MCUXpresso IDE 内で MCU リンクまたは Jlink を介して XIP イメージをフラッシュにロードする方法がないことを確認したいのですが。 MCU リンクを使用する必要がある場合、これらが以下の正しい UART ピンにルーティングされているかどうかを確認したいと思います。データシートにUSB経由でのブートのオプションが表示されません: https://www.nxp.com/docs/en/data-sheet/IMXRT1170AEC.pdf(見逃していたらごめんなさい)。USB 経由のブートは USB を同じ UART ピンに接続するだけであるとオンラインで言及しているものをいくつか見ました。 ありがとうございます アンテオ Re: NON XIP via JTAG RT1176 こんにちは@AnteoJ 、 NXP MIMXRTシリーズにご興味をお持ちいただきありがとうございます。 SD カードから起動されるような非 XIP イメージは、MCUBootUtility または NXP の公式 MCUXpresso Secure Provisioning ツールを使用してフラッシュする必要があります。 イメージが XIP の場合、JLink/DAP などのデバッガーでフラッシュするようにプログラムCAN。MCUXpressoIDE や他の IDEs でも簡単に実行できます。 RT1170-EVK/EVKB を使用している場合、ボード上に搭載デバッガーである MCU-Link があることがわかります。これにより、お客様は外部デバッガーを使用せずに、搭載デバッガーを介して直接プログラムをフラッシュし、デバッグすることができます。さらに、異なるファームウェアをプログラミングすることで、MCU-Link を JLink または CMSIS-DAP デバッガーに変更できます。 詳細については、EVK/EVKB ハードウェア回路図をCAN確認してください。 よろしくお願いします、 ギャビン
View full article
RW612 FlexSPI PORTB1 access I am using the RW612 chipset in external XIP mode, the code is running from the FlexSPI PortA1 and I am connecting a PSRAM (APS6404L) to the FlexSPI PortB1, I am using the SDK (25.06 Version) provided configuration to access the Port B1. When trying to read the PSRAM ID, I am not seeing any signal activities on the PortB1 (CLCK/CS). I removed the SPARM to be sure that these signals are not held by a defective part. is this related to the fact that the APS6404 doesn't use the DQS signal?  How I can configure the PortB1 to not use the DQS? knowing that  FLEXSPI_Init function can't be called after the FlexSPI is initialized for PortA1 access. Thanks for your help and time. Re: RW612 FlexSPI PORTB1 access Hello Roman, Thank you for your help, the issue was related to trying to configure the FlexSPI clock while the bus is running, I commented out the following lines: CLOCK_EnableClock(kCLOCK_Flexspi); BOARD_SetFlexspiClock(FLEXSPI, 5U, 3U); The FlexSPI Port B1 is running now, and I can use the AHB Cache to Write/Read from the PSRAM. Thanks for the help, much appreciated. Re: RW612 FlexSPI PORTB1 access Hello @khalidL. Did you define the PSRAM memory section in the MCU settings as shown in the image below? Please make sure to follow the steps provided in the Application Code Hub post of the project and let me know if the problem persists. Re: RW612 FlexSPI PORTB1 access Hello Roman, Thank you for your help and time, in the process of integrating the above example in my project I ran into the following issue, when I call the function "__RAMFUNC(SRAM) status_t BOARD_InitPsRam(void)" from my main the code crashes silently. Is there any other changes I need to do to my project to integrate the example other than changing the linker files (main_data.ldt, main_txt.ldt and noinit_noload_section.ldt) and copying the board.c file? I am thinking that the code crashes because the BOARD_InitPsRam wasn't correctly copyed to the RAM. Thanks again for your time and help.  Re: RW612 FlexSPI PORTB1 access The example works on my board, thank you very much for the help. Re: RW612 FlexSPI PORTB1 access Hello @khalidL , hope you're doing well. There is an example in Application Code Hub regarding XIP from external NOR flash, please help me by testing the sample from the link shared and let me know if it fits into your project requirements. In order to import the project to MCUXpresso IDE, click on "Import from Application Code Hub" option. (Note that SDK version 2.16.00 is required for this sample) Once in the Application Code Hub window search for the sample's name (XIP from external NOR flash and configuring external pSRAM using multiport FlexSPI module), select it and click on "Github link" and wait until the "Next >" button can be used. Once clicked on the "Next >" button, follow the steps to import the project from the git repository. Finally, when the project is available in your workspace you should be able to flash and test it on your setup. Let me know if this helps.
View full article
LPC54102 外部时钟输入最大频率 你好 我参考了 LPC5410x 的用户手册和数据表,注意到了以下几点: 摘自(用户手册)UM10850: 在时钟发生方面,外部时钟输入最高可达 24 MHz。 摘自产品数据表: 它指出,外部时钟输入的时钟频率最高可达 25 MHz。 请问哪种说法是正确的? 此致, 肯尼斯 LPC54xxx Re: LPC54102 Max Freq of External clock input 你好@kennethkong852 感谢您的报告。 这是时钟配置工具中的一个错误。出现这个问题是因为新版 DS 将频率从 24M 改为 25M。在旧版 DS 中,仍为 24MHZ。 我会立即向配置工具开发团队报告这个错误。 目前,如果您需要使用 25MHZ,请通过代码进行配置。 对于给您带来的不便,我深表歉意。   BR 爱丽丝 Re: LPC54102 Max Freq of External clock input 嗨,爱丽丝、 感谢您的答复和提供的信息! 当我使用时钟配置工具(从 SDK Builder 访问)时,我注意到配置器不允许我输入 25 MHz 的 CLKIN 输入。 它的频率限制在 24 兆赫。 请参阅随附的照片以供参考。 CLKIN valuesCLKIN 值 BR、 肯尼斯 Re: LPC54102 Max Freq of External clock input 你好@kennethkong852 数据表是正确的。 高达25 MHz的外部时钟输入时钟频率。 我将把 UM 问题上报给 DOC 小组。 感谢您的分享。 BR 爱丽丝
View full article
"S32G2 定制硬件上的同步中止" 处理器,esr 0x96000210 - 访问 LPDDR4 时崩溃 亲爱的社区成员 我们在基于 S32G274 的硬件上遇到了启动问题,引导加载程序因数据中止异常而失败。 设置详情: 启动方法:QSP I 图像带集成 ramdisk 的定制 FIP 映像 闪存方法:S32DS 闪存工具和 Lauterbach(两种方法都会出现问题) 电路板支持包。 版本:43.0 启动加载程序: U-Boot 2022.04+gc01b3bf7b1+p0 SoC:S32G274A 我们能够配置 DDR 并能够启动直到 uboot 提示为止。但是在那之后访问DDR时崩溃, ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 请查找以下详细信息以供参考。 => md 80000000 1000 " Synchronous Abort" handler, esr 0x96000210 elr:00000000ff91cb68 lr : 00000000ff91cab8 (reloc) elr:00000000ff91cb68 LR : 00000000ff91cab8 x0 : 0000000000000009 x1 : 00000000ffbc66e8 x2 : 00000000fffffe x3 : 000000000020 x4 : 000000000000 x5 : 00000000ffbc66e0 x6 :000000000030 x7 : 00000000ffbc6630 x8 : 000000000010 x9 : 0000000000000002 x10: 00000000ffffffd8 x11: 000000000010 x12: 000000000001 x13: 000000000001 x14:000000000030 x15: 000000000021 x16: 00000000ff8af778 x17: 000000000000 x18: 00000000ffbcfd80 x19: 0000000000000004 x20: 0000000000000004 x21: 0000000000000004 x22:0000000080000000 X23: 00000000ffbc66e9 X24: 000000000000 X25: 00000000ffbc6698 X26: 00000000ff9398a7 X27: 0000000000000008 X28: 0000000000000004 X29: 00000000ffbc6630 代码:2a0403f3 17ffffcb 7100129f 54000181 (b94002c3) RESET CPU... 正在重置... 注意:RESET 状态:上电复位 注意:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -- ----------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ U-启动 2022.04+gc01b3bf7b1+p0(Nov 21 2024 - 14:00:36 +0000) SoC:NXP S32G274A rev.2.1 CPU:Arm Cortex-A53 r0p4 @ 最大 1000 MHz 型号:S32G2-平台 动态随机存取存储器(DRAM):4 GiB 内部 dm_init_and_scan............ pfeng_mdio mdio@2:EMAC MDIO ID 超出范围 88Q5152 RESET 核心:291 个设备,24 个 uclasses,devicetree:板 MMC:FSL_SDHC:0 从 SPIFlash 加载环境... SF:检测到页面大小为 256 字节的 mt35xu01gbba,擦除大小为 4 KiB,总计 128 MiB *** 警告 - CRC 错误,使用默认环境 s32cc_serdes_phy serdes @40480000:对 SerDes 子系统使用模式 0 pci_s32cc pcie @40400000:DBI 未启用 pci_s32cc pcie @40400000:无法设置 PCI 设备和供应商 ID pcie_s32cc pcie @40400000:DBI R/W 未启用 s32cc_serdes_phy serdes @40480000:无法锁定 PCIe phy s 32cc pcie cc_serdes_phy serdes @40480000:PHY:无法开机 @40480000: -110。 pci_s32cc pcie @40400000:无法开启 PHY 'serdes_lane0' pc i_s32cc pcie @40400000:无法设置 PCIe 主机设置 输入:串行 @401c8000 输 出:串行 @401c8000 错误:串行 @401c8000 主 板版本:RDB2 网络: 找到 PFE 版本 0x50300 (S32G2) pfeng pfeng-base:上传类固件 pfeng pfeng-base:EMAC0 区块已初始化 pfeng pfeng-base:EMAC1 区块已初始化 pfeng pfeng-base:EMAC2 区块已初始化 pfen g pfeng-base:启用 CLASS 区块 pfen g pfeng-base:PFE 平台已启动 成功(掩码:7) pfeng_netif pfe0:无法获取 “emac0_xpcs” PHY eth1:pfe0pfeng_netif pfe1:无法获取 “emac1_xpcs” PHY,eth2:pfe 1,eth3:pfe2 按任意键停止自动启动:0 切换到分区 #0,好的 mmc0(第 0 部分)是当前设备 ** 没有分区表-mmc 0 ** 找不到分区 mmc 0:2 无法设置区块设备 mcr=cc000f03 ip cr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=80000 bufgencr=e00000 buf0ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1 cr=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d 0080c2 par itycr=0 sf ar=2c03 sfacr=0 spr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=0 dllsr=f4c0000 dlcr=ff40ff40 dlsr_fa=0 tbdr=0 tbct=0 sr=0 380002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa = > 运行 flashboot 从闪存启动... 在偏移量 0x00000000 处读取 17629184 字节 " 错误 " 处理器,esr 0xbf000002 elr:00000000f8f5f6c lr:00000000f8f5e68 (reloc) elr:00000000f8f5f6c lr:00000000000000 x1:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:000000000000 x2:00000000000ba0 x3:0000000000003f x4:0000000000000002 x5:000000001fe00411 x6:0000000000000000 x7:00000000000011 x8:000000000000000011 x8:0000000000000008 x10:00000000000002 x11:000000001fe00000 x12 : 00000000000001 x13:0000000000003f x 14:00000000000000 x15:00000000000021 x 16:000000000000001 x17:0000000000000000 x18:000000000000000000 x 18:0000000000bcfd80 x19:0000000000000000000 x21:00000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22:00000000002b0000 x22:0000000000002b0000 x22:0000000000002b0000 x22: x23:00000000007d2dc2 x24:00000000000007 x25:00000000000000 x26:00000000000001 x27:00000000000001 x27:00000000000001 x28:00000000010d0000 x29:00000000ffbc6130 代码:d1000694 380016c0 17fffbd f8606aa1 (f8206ac1) RESET CPU... 正在删除使用次数 1 的 MTD 设备 #5(内核)删除分区时 出错 " 内核 " (-16) 正在 RESET... 注意:RESET 状态:破坏性 RESET(运行) 通知:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 我们希望得到任何指导或建议来帮助解决这个问题。 敬上, Vishal G Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to 你好,@vishalg 感谢您的回复。 日志显示"Internal error: synchronous external abort" ,这表明在访问某些地址时发生了异常,可能与访问未映射内存或权限不一致有关。 不确定您是否修改了 GIC 部分的默认 dts?您是否检查了 gic_iterate_rdists 中使用的内存? BR 切宁 Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to Hi Chenyin, 感谢您的快速回复。 我能够通过使用 S32 Design Studio 执行 DDR 验证测试并使用重新生成的配置正确配置 DDR 来解决这个问题。 现在我能够成功地启动 uboot 进入内核,我在启动时观察到内核崩溃,这是由 " 内部错误触发的:在运行 Linux 6.6.52-rt43 的自定义 S32G274A 平台上初始化 GICv3 中断控制器时发生的内部错误:同步外部中止 "。 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 注意:RESET状态:上电复位 注意:BL2:v2.10.7(版本):bsp43.0-2.10.7-dirty 注意:BL2:版本:2024 年 11 月 26 日 08:17:37 注意:BL2:正在启动 BL31 U-启动 2022.04+gc01b3bf7b1+p0(Nov 21 2024 - 14:00:36 +0000) SoC:NXP S32G274A rev.2.1 CPU: Arm Cortex-A53 r0p4 @ 最大 1000 MHz 型号: S32G2-平台 动态随机存取存储器(DRAM): 3.5 GiB 内部 dm_init_and_scan............ pfeng_mdio mdio@2: EMAC MDIO ID 超出范围 88Q5152 RESET 核心: 291 个设备, 24 个 uclasses, devicetree: 板 MMC: FSL_SDHC: 0 从 SPIFlash 加载环境... SF: 检测到页面大小为 256 字节的 mt35xu01gbba, 擦除大小为 4 KiB, 总计 128 MiB *** 警告 - CRC 错误, 使用默认环境 s32cc_serdes_phy serdes @40480000:对 SerDes 子系统使用模式 0 pci_s32cc pcie @40400000:DBI 未启用 pci_s32cc pcie @40400000:无法设置 PCI 设备和供应商 ID pcie_s32cc pcie @40400000:DBI R/W 未启用 s32cc_serdes_phy serdes @40480000:无法锁定 PCIe phy s 32cc pcie cc_serdes_phy serdes @40480000:PHY:无法开机 @40480000: -110。 pci_s32cc pcie @40400000:无法开启 PHY 'serdes_lane0' pc i_s32cc pcie @40400000:无法设置 PCIe 主机设置 输入:串行 @401c8000 输 出:串行 @401c8000 错误:串行 @401c8000 主 板版本:RDB2 网络: 找到 PFE 版本 0x50300 (S32G2) pfeng pfeng-base:上传类固件 pfeng pfeng-base:EMAC0 区块已初始化 pfeng pfeng-base:EMAC1 区块已初始化 pfeng pfeng-base:EMAC2 区块已初始化 pfen g pfeng-base:启用 CLASS 区块 pfen g pfeng-base:PFE 平台已启动 成功(掩码:7) pfeng_netif pfe0:无法获取 “emac0_xpcs” PHY eth1:pfe0pfeng_netif pfe1:无法获取 “emac1_xpcs” PHY,eth2:pfe 1,eth3:pfe2 按任意键停止自动启动:0 切换到分区 #0,好的 mmc0(第 0 部分)是当前设备 ** 没有分区表-mmc 0 ** 找不到分区 mmc 0:2 无法设置区块设备 mcr=cc000f03 ip cr=3400000f flashcr=3030100 buf0cr=3f000000 buf1cr=3f000000 buf2cr=3f000000 buf3cr=80000 bufgencr=e00000 buf0ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1cr=0 buf1ind=0 buf1 cr=0 buf1ind=0 buf2ind=0 awrcr=0 dllcra=d 0080c2 par itycr=0 sf ar=2c03 sfacr=0 spr=33 rbsr=0 rbct=1f000000 awrsr=0 dllsr=0 dllsr=15c0000 dlcr=ff40ff40 dlsr=0 tbdr=0 tbct=0 sr=0 sr=0 sr=0 sr=0 sr=0 sr=0 sr=0 0002 fr=1000009 rser=0 sptrclr=0 dlpr=433455aa = > 运行 flash boot 从闪存启动... 在偏移量 0x00000000 处读取 17629184 字节在偏移量 0x00000000 处 读取 196608 字节在偏移量 0x00000000 处 读取 32571392 字节 ## Loading init Ramdisk from Legacy Image at 90000000 ... Image Name: fsl-image-base-s32g2-platfo Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 29917545 Bytes = 28.5 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## 扁平化设备树 blob 在 0x83000000 处使用 fdt blob 启动使用设备树位于 00000083000000,结尾 000000830120ae 正在启动内核... 无法选择模式:-70 device_remove:设备 '[email protected]'无法删除,但是孩子们不见了 [0.000000] 在物理 CPU 上启动 Linux 0x0000000000 [0x410fd034] [0.000000] Linux 版本 6.6.52-rt43-g1a29a32be610-dirty (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.4.0、GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT_RT Thu Nov 21 09:35:09 UTC 2024 [ 0.000000] Machine model: s32g274 Platform [ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (options '') [ 0.000000] printk: legacy bootconsole [linflex0] enabled [ 0.000000] OF: reserved mem:0x0000000034000000..0x000000003407ffff (512 KiB) nomap non-reusable pfebufs@34000000 [ 0.0000000000] OF: reserved mem:0x0000000034080000..0x000000003409ffff (128 KiB) nomap non-reusable pfebufs@34080000 [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000083200000, size 3 MiB [ 0.000000] OF: reserved mem: initialized node pfebufs@83200000, compatible id shared-dma-pool [ 0.000000] OF: reserved mem:0x0000000083200000..0x00000000835dffff (3968 KiB) nomap non-reusable pfebufs@83200000 [ 0.0000000000] OF: reserved mem:0x00000000835e0000..0x00000000835fffff (128 KiB) map non-reusable pfebufs@835e0000 [ 0.000000] OF: reserved mem:0x0000000084000000..0x0000000084ffff (16384 KiB) nomap non-reusable shm@84000000 [ 0.0000000000] OF: reserved mem:0x00000000c0000000..0x00000000c03fffff (4096 KiB) nomap non-reusable shm@c0000000 [ 0.0000000000] OF: reserved mem:0x00000000c0400000..0x00000000c07fffff (4096 KiB) nomap non-reusable shm@c0400000 [ 0.000000] OF: reserved mem:0x00000000d0000000..0x00000000d000007f (0 KiB) nomap non-reusable shm@d0000000 [ 0.0000000000] OF: reserved mem: 0x00000000d0000080..0x00000000d00000ff (0 KiB) nomap non-reusable shm@d0000080 [ 0.000000] OF: reserved mem:0x00000000ff600000..0x00000000ff7fffff (2048 KiB) nomap non-reusable atf@ff600000 [ 0.000000] 区域范围: [ 0.000000] DMA [mem 0x0000000080000000-0x00000000ffffffff] [ 0.000000] DMA32 空 [ 0.000000] 正常 [mem 0x0000000100000000-0x00000008dffffffffffff] [ 0.000000] 每个节点的可移动区域起点 [ 0.000000] 早期内存节点范围 [ 0.000000] 节点 0: [mem 0x0000000080000000-0x00000000831fffff] [ 0.000000] 节点 0: [mem 0x0000000083200000-0x00000000835dffff] [ 0.000000] 节点 0: [mem 0x00000000835e0000-0x0000000083ffffff] [ 0.000000] 节点 0: [mem 0x0000000084000000-0x0000000084ffffff] [ 0.000000] 节点 0: [mem 0x0000000085000000-0x00000000bffffffff] [ 0.000000] 节点 0: [mem 0x00000000c0000000-0x00000000c07ffffff] [ 0.000000] 节点 0: [mem 0x00000000c0800000-0x00000000cfffffff] [ 0.000000] 节点 0: [mem 0x00000000d0001000-0x00000000ff5fffff] [ 0.000000] 节点 0: [mem 0x00000000ff600000-0x00000000ff7fffff] [ 0.000000] node 0: [mem 0x00000000ff800000-0x00000000ffffffff] [ 0.000000] node 0: [mem 0x0000000880000000-0x00000008dffffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008dffffffff] [ 0.000000] On node 0, zone DMA: 1 pages in unavailable ranges [ 0.000000] cma:在 0x00000000ef600000 保留 256 MiB on node -1 [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci:固件中检测到 PSCIv1.1。 [ 0.000000] psci:使用标准 PSCI v0.2 功能 ID [ 0.000000] psci:不支持 MIGRATE_INFO_TYPE。 [0.000000] psci:SMC 通话约定 v1.4 [0.000000] percpu:嵌入式 20 页/CPU s42112 r8192 d31616 u81920 [0.000000] pcpu-alloc:s42112 r8192 r8192 d31616 u8192 d31616 u8192 d31616 u81920 alloc=20*4096 [0.000000] pcpu-alloc:[0] 0 [0] 1 [0] 1 [0] 2 [0] 3 [0.000000] 在 CPU0 上检测到 VIPT i-Cache [0.000000] CPU 功能:已检测:GIC 系统寄存器 CPU 接口 [0.000000] CPU 功能:已检测:ARM erratum 845719 [0.000000] CPU 功能:已检测:恩智浦勘误表 ERR050481(VA 的 TLBI 处理不正确) [0.000000] CPU 功能:已检测:ARM 勘误表 1165522、1319367、1530923 或 1530924 [0.000000] 备选方案:应用启动替代方案 [0.000000] 内核命令行:console=ttylf0,115200 root=/dev/ram rw earlycon [0.000000] Dentry 缓存哈希表条目:524288(顺序:10,4194304 字节,线性)[0.000000]] inode-Cache 哈希表条目:262144(顺序:9,2097152 字节,线性) [0.000000] 内建 1 个区域列表,移动分组开启。 总页数:903167 [ 0.000000] Mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] software IO TLB: area num 4. [ 0.000000] software IO TLB: mapped [mem 0x00000000eb600000-0x00000000ef600000] (64MB) [ 0.000000] Memory:3194416K/3670012K 可用 (9856K 内核代码, 686K rwdata, 3012K rodata, 1856K init, 245K bss, 213452K reserved, 262144K cma-reserved) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] RCU:可抢占式分层 RCU 实现。 [ 0.000000] RCU:已启用 RCU 事件跟踪。 [ 0.000000] RCU:RCU 限制 CPU 从 NR_CPUS=8 到 nr_cpu_ids=4。 [ 0.000000] RCU:RCU 优先级提升:优先级 1 延迟 500 毫秒。 [ 0.000000] rcu:RCU_SOFTIRQ 处理移至 rcuc kthreads。 [ 0.000000] 没有加速宽限期(rcu_normal_after_boot)。 [ 0.000000] 启用任务 RCU 的蹦床变体。 [ 0.000000] 启用任务 RCU 的跟踪变量。 [ 0.000000] RCU:RCU 计算出的调度程序启动延迟值为 100 jiffies。 [ 0.000000] rcu:Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4 [ 0.000000] NR_IRQS:64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC:使用分割 EOI/Deactivate 模式 [ 0.000000] GICv3:实现 544 个 SPI [ 0.000000] GICv3:实现 0 个扩展 SPI [ 0.000000] GICv3:MBI 范围 [167:182] [ 0.000000] GICv3:使用 MBI 帧 0x0000000050800000 [ 0.000000] 根 IRQ 处理程序:gic_handle_irq [ 0.000000] 内部错误:同步外部中止:0000000096000010 [#1] PREEMPT_RT SMP [ 0.000000] 链接到的模块: [ 0.000000] CPU:0 PID: 0 Comm: swapper/0 Not tainted 6.6.52-rt43-g1a29a32be610-dirty#1 [ 0.000000] Hardware name: s32g274 Platform (DT) [ 0.000000] pstate:600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 0.000000] pc : gic_iterate_rdists+0x4c/0x114 [ 0.000000] lr : gic_init_bases+0x198/0x664 [ 0.000000] sp : ffffffc080e83b80 [ 0.000000] x29: ffffffc080e83b80 x28: 0000000080ca6074 x27: 000000000000 [ 0.000000] x26: 000000000000 x25: ffffffc080e8c208 x24: 000000000018 [ 0.000000] x23: 000000000000ffe8 x22: 000000000000 x21: ffffffc08040ed84 [ 0.000000] x20: ffffffc0809f9b60 x19: ffffffc081000000 x18: 0000000000000030 [ 0.000000] x17: 6a20303031207369 x16: 2079616c65642074 x15: ffffffffffff1660 [ 0.000000] x14: 000000000000 x13: 7172695f656c646e x12: 61685f636967203a [ 0.000000] x11 : ffffffffff0000 x10 : 000000000000000a x9 : ffffffc080e9aa78 [ 0.000000] x8 : 00000000fffff7ff x7 : ffffffc080ec6a78 x6 : 00000000004d [ 0.000000] x5 : ffffff885f8479c8 x4 : 000000000000 x3 : 000000000000 [ 0.000000] x2 : 000000000000 x1 : ffffff88000030e0 x0 : ffffffc08100ffe8 [ 0.000000] Call trace: [ 0.000000] gic_iterate_rdists+0x4c/0x114 [ 0.000000] gic_init_bases+0x198/0x664 [ 0.000000] gic_of_init+0x2a8/0x308 [ 0.000000] of_irq_init+0x318/0x3a8 [ 0.000000] irqchip_init+0x18/0x24 [ 0.000000] init_IRQ+0xac/0xc0 [ 0.000000] start_kernel+0x24c/0x5f0 [ 0.] __primary_switched+0xb4/0xbc [ 0.000000] 代码:d29ffd17 9b387eda f87a6833 8b170260 (b9400000) [ 0.000000] ---[ 结束跟踪 0000000000000000 ]--- [ 0.000000] 内核恐慌 - 未同步:Attempted to kill the idle task! [ 0.000000] ---[ end Kernel panic - not syncing: Attempted to kill the idle task! ]--- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 有什么建议可以解决这个问题? 问候, Vishal Re: "Synchronous Abort" handler, esr 0x96000210 on S32G2 Custom HW - Crash while access to 你好,@vishalg 谢谢您的帖子。 通常,此类问题是由于访问了保护或未映射的内存(如保留内存)造成的,请问您是否修改了默认 BSP43 的内存映射?添加更多保留地址范围? 您测试过更多地址吗?还有其他地址范围可以用于加载图像吗? BR 切宁
View full article
S32N55: gPTPフレーム内のホスト理由 こんにちは、チームの皆さん お客様に問題が発生しました。彼らは gPTP プロトコルを独自に実装し、フレームを受信すると gPTP フレームのホスト理由が 0 になることを発見しました。ホスト理由が 0 の場合、このフレームのタイムスタンプは RTD ドライバによって保存されません。NXP の gPTP ソフトウェアでは、受信したフレームのホスト理由は 8 (NETC_ETH_IP_HOSTREASON_SW_PTP) です。質問したいのですが、受信フレームのホスト理由を 8 にするにはどうすればよいでしょうか? よろしくお願いいたします。 ブリジット GPTP_STACK Re: S32N55: Host reason in gPTP frames こんにちは@Bridget 、 タイムスタンプ情報を受信する NETC スイッチの各ポートでタイムスタンプを有効にする必要があります。お客様が使用しているツールやバージョンに関するその他の詳細情報は提供しておりません。SO、この一般的な情報のみをCAN提供します。Tresos と RTD を使用する CASE では、スイッチ プラグインの各ポート構成で直接実行されます。 よろしくお願いいたします。 トーマス Re: S32N55: Host reason in gPTP frames こんにちは、チームの皆さん この質問に答えていただけますか?ありがとう。 Re: S32N55: Host reason in gPTP frames こんにちは、ブリジットさん。 RTDからのEthSwtについてはUMに従ってください - パラメータは次のようになります 詳細については、RTD にお問い合わせください。N5 の gPTP の例を確認することもお勧めしますが、最初のメッセージでは、お客様が独自の gPTP を実装したと書かれているSO、おそらく私たちの例は存在しません。 よろしくお願いいたします。 トーマス Re: S32N55: Host reason in gPTP frames こんにちは、トーマス。 お客様はSW32N_RTD_R21-11_1.8.0_CD05を使用します。 gPTP フレームを RTU で受信し、受信タイムスタンプを取得したいと考えています。ブロードキャスト フレームの受信を有効にすると、フレームを受信できるようになります。タイムスタンプ機能も有効になります。しかし、受信タイムスタンプを取得するには、以下のスクリーンショットのコードに示すように、フレームのホスト理由が NETC_ETH_IP_HOSTREASON_SW_PTP (このマクロは 😎 である必要があることがわかりました。 しかし、Rx BD のホスト理由は 0 です。ホスト理由が 8 になるように設定する方法を教えていただけますか? よろしくお願いいたします。 ブリジット Re: S32N55: Host reason in gPTP frames すでに 2 つの質問に回答しましたので、ご確認ください。
View full article