Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
HSE option Hello, For some export purpose, we would like to remove the HSE (crypto parts) module. I did not find any reference whithout HSE module in your lists, do you confirm that no S32G2 or S32G3 references are available without HSE (crypto parts) module? B.R. Re: HSE option Hello, @COLLIN_O  Thanks for the post. From the latest product introduction of both S32G2/3, HSE is included in all of the variants listed. BR Chenyin
記事全体を表示
S32K144 RTD 3.0.0:S32DS 配置工具和 EB Treso 之间的区别 你好,   S32K144、S32 Design Studio 3.6.0、RTD SW32K1_S32M24x_RTD_R21-11_3.0.0_D2503、EB tresos Studio 29.0.0。仅限高级 AUTOSAR 驱动程序。   在 EB Tresos 中,端口和 MCU 需要手动填写。在 S32 配置工具中,引脚和时钟与相应的驱动程序一起使用。在 S32DS Dio 示例中,引脚在“引脚”中配置,然后使用 PortPinPcr 添加到“端口”中。方向和相关字段从“引脚”中获取。时钟树在“时钟”中配置,MCU 仅通过名称引用该配置。   按照这种方式使用引脚和时钟之后,还需要在端口、MCU 或任何相关模块中配置什么? 对于其他高级驱动程序,其配置项和生成结果是否与 EB tresos 中的相同? 除了引脚和端口、时钟和MCU之外,还有哪些地方的配置行为与EB Tresos不同? Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos 嗨@Julián_AragónM , 感谢您详细清晰的解释!很高兴得知 HLD (MCAL) 生成的代码完全相同,主要区别仅在于配置格式。 由于我的项目是一个裸机设置,完全专注于 MCAL 和我自己定制的 BSW,我将严格遵循 EB Tresos 工作流程,并且仅使用 S32DS 进行编译。 “一切都在按计划进行。”(计画门) 再次感谢你的帮助! 此致, 超凡 Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos 你好@chaofan , S32DS 提供编辑设备配置的视角,主要包括引脚、时钟、外设、DCD(设备配置数据)、IVT(映像矢量表)、QuadSPI、eFUSE、ICE、GTM 等。 DDR。 但是,S32K1(和 S32K MCU)仅支持引脚、时钟和外设。您可以在“配置工具概览”中看到这一点: Config Tools OverviewConfig Tools Overview配置工具概述 S32DS 和 EB Tresos 之间生成的所有高级驱动程序 (HLD) 文件都是相同的。这两个工具的主要区别在于,EB Tresos 使用 AUTOSAR 格式(例如 AUTOSAR schema XML 格式),而 S32DS 使用 .mex 文件。虽然该文件不符合ASR模式格式,但通过此接口对NXP设备进行编程更加容易。 此致, 朱利安 Re: S32K144 RTD 3.0.0: differences between S32DS Configuration Tools and EB tresos 嗨@chaofan , 没问题,祝你好运! 此致, 朱利安
記事全体を表示
无法打开探针索引1。错误:探针未打开 你好, 我正在尝试调试 FRDM-MCXN947 上的 LED 闪烁示例,但我遇到了几个错误,无法与目标建立调试连接。 注意:另一块 FRDM 板在同一台笔记本电脑上工作正常,而这块 FRDM-MCXN947 在另一台笔记本电脑上工作正常。这个问题只出现在这台特定笔记本电脑上的这块特定主板上(尽管我只在另一台笔记本电脑和另一块 FRDM-MCXN947 上测试过)。 我觉得我可能遇到了和这里描述的问题一样的问题: https://community.nxp.com/t5/MCX-Microcontrollers/unable-to-open-probe-index-1/td-p/2416776 所以我尝试使用 MCUXpresso 安全配置工具来擦除设备,但这对我不起作用。 有没有人知道可能是什么原因导致这个问题?或者还有什么其他方法可以解决这个问题? FRDM-MCXN947 Re: Unable to open probe index1. Error: Probe not open 你好@JustinNL , 感谢您的帖子。 由于同一块 FRDM-MCXN947 板在另一台笔记本电脑上工作正常,而另一块 FRDM 板在这台笔记本电脑上也能工作,因此该板本身可能没问题。 从截图中可以看出,一个重要的错误是: “无法与调试探针通信”。 这表明问题可能与笔记本电脑和板载 MCU-Link 调试探针之间的通信有关,而不是与应用程序或 MCXN947 设备本身有关。 首先,请您尝试以下操作:   - 关闭 MCUXpresso IDE 和 MCUXpresso 安全配置工具。 - 打开 Windows 任务管理器,检查是否还有 LinkServer 进程在运行。如果可以,请结束任务。 - 将 FRDM-MCXN947 从 USB 断开,等待几秒钟,然后重新连接。 - 只打开 MCUXpresso IDE,然后再次尝试调试 LED 闪烁示例。 如果问题仍然存在,请尝试使用不同的 USB 端口,最好将板直接连接到笔记本电脑,而不是通过 USB 集线器或扩展坞连接。 如果以上步骤无效,我们可以进一步检查MCU-Link固件和Windows USB设备/驱动程序的状态。请问您能否告知我 MCUXpresso IDE 使用的 LinkServer 版本,以及 FRDM-MCXN947 板上的 MCU-Link 固件版本?   此致, 塞莱斯特 Re: Unable to open probe index1. Error: Probe not open 感谢您的回复。 关闭 MCUXpresso 后,我找不到任何仍在运行的 LinkServer 进程。 我尝试了另外两个 USB 端口(总共三个),全部直接连接到笔记本电脑,但仍然出现与之前相同的错误。 LinkServer 版本: v26.9.130(内部版本 130) MCU-Link 固件版本: CMSIS-DAP V3.174(运行于 FRDM-MCXN947 板的 MCU-LINK 上) MCUXpresso IDE v25.6.136 我附上了一些截图/图片,希望对您有所帮助。 亲切的问候, 贾斯汀 Re: Unable to open probe index1. Error: Probe not open 你好@JustinNL , 请您帮忙进一步核实一下: 1. 跳线 J22 和 J24:短路;跳线 J21:断开 2. 检查您的 MCUXpresso 的链路服务器路径配置是否为 Linkserver_26.9.130。 BR 塞莱斯特 Re: Unable to open probe index1. Error: Probe not open 跳线 J22 和 J24:短路;跳线 J21:断开 我的 MCUXpresso 的 linkserver 路径配置是 Linkserver_26.9.130。 问候, 贾斯汀 Re: Unable to open probe index1. Error: Probe not open 你好, 我注意到有一条警告: 我认为问题似乎与这台笔记本电脑和板载 MCU-Link 调试探针之间的通信有关。 请您帮忙进行以下核查? 1. 在 Windows 设备管理器中检查 MCU-Link 连接 FRDM-MCXN947 后,请在 Windows 设备管理器中检查与 MCU-Link 相关的设备。   2. 对比工作笔记本电脑上的 LinkServer 探测结果 在 FRDM-MCXN947 工作正常的笔记本电脑上,请使用相同的 LinkServer 版本 (v26.9.130) 并运行以下命令: LinkServer.exe 探测 请提供完整的输出结果,以便我们将其与出现问题的笔记本电脑的结果进行比较。   3. 尝试使用 J-Link 固件 作为另一项交叉检查,请将板载 MCU-Link 切换到 J-Link 固件,然后再次尝试调试 LED 闪烁示例。 此测试可以帮助确定问题是否仅限于此笔记本电脑上的 CMSIS-DAP/LinkServer 通信路径。   请告知我这些测试结果。他们应该协助我们进一步调查这个问题。   此致, 塞莱斯特 Re: Unable to open probe index1. Error: Probe not open 1. FRDM-MCXN947 的外观如下: MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.128 MCU-Link VCom 端口 (COM3) 2. 我在笔记本电脑上测试了 LinkServer.exe 探测,FRDM-MCXN947 在该笔记本电脑上使用 LinkServer v26.9.130 可以正常工作。 3. 我使用提供的 program_JLINK 脚本(Firmware_J-Link-MCU-Link_240702.s19)对板载 MCU-Link 进行了 J-Link 固件编程。 现在调试 LED 闪烁示例程序可以正常工作了。 @Smartling Language Service 我很高兴现在又能使用这块板了,但我仍然很好奇是什么原因导致了 MCU-Link 固件的问题。非常感谢您迄今为止给予的所有帮助和支持。我非常感谢。 问候, 贾斯汀 Re: Unable to open probe index1. Error: Probe not open 很高兴听到它现在可以正常工作了。有时切换到 JLink 固件可以解决问题。我无法解释这种现象,也许是兼容性问题,但它并非总是发生。 BR 塞莱斯特
記事全体を表示
Unable to open probe index1. Error: Probe not open Hello, I am trying to debug the LED Blinky example on the FRDM-MCXN947, but I am running into several errors and cannot establish a debug connection to the target. Note: Another FRDM board works correctly on the same laptop, and this FRDM-MCXN947 works on a different laptop. The issue only occurs with this specific board on this specific laptop (although I have only tested this with one other laptop and one other FRDM-MCXN947). I think I may have the same problem as described here: https://community.nxp.com/t5/MCX-Microcontrollers/unable-to-open-probe-index-1/td-p/2416776 So I tried using the MCUXpresso Secure Provisioning Tool to erase the device, but that did not work for me. Any ideas what could be causing this issue, or anything else I could try to fix it? FRDM-MCXN947 Re: Unable to open probe index1. Error: Probe not open Hello @JustinNL , Thanks for your post. Since the same FRDM-MCXN947 board works correctly on another laptop, and another FRDM board also works on this laptop, the board itself is likely OK. From the screenshots, one important error is: "Failed to communicate with debug probe." This suggests that the issue may be related to the communication between the laptop and the onboard MCU-Link debug probe, rather than the application or the MCXN947 device itself. As a first step, could you please try the following:   - Close MCUXpresso IDE and MCUXpresso Secure Provisioning Tool. - Open Windows Task Manager and check whether there are any LinkServer processes still running. If so, please end task. - Disconnect the FRDM-MCXN947 from USB, wait a few seconds, and reconnect it. - Open only MCUXpresso IDE and try debugging the LED Blinky example again. If the issue still occurs, please also try a different USB port, preferably connecting the board directly to the laptop rather than through a USB hub or docking station. If these steps do not help, we can then further check the MCU-Link firmware and Windows USB device/driver status. Could you please let me know the LinkServer version used by MCUXpresso IDE, as well as the MCU-Link firmware version on your FRDM-MCXN947 board?   Regards, Celeste Re: Unable to open probe index1. Error: Probe not open Thank you for your reply. I could not find any LinkServer processes still running after closing MCUXpresso. I tried two other USB ports (three in total), all connected directly to the laptop, but I still get the same errors as before. LinkServer version: v26.9.130 (Build 130) MCU-Link firmware version: CMSIS-DAP V3.174 (running on the MCU-LINK of the FRDM-MCXN947 board) MCUXpresso IDE v25.6.136 I have attached some screenshots/pictures and hope they will be helpful. Kind regards, Justin Re: Unable to open probe index1. Error: Probe not open Hello @JustinNL , Could you please help to further check: 1. Jumper J22 and J24: shorted; jumper J21 : open 2. Check if your MCUXpresso's linkserver path configuration is Linkserver_26.9.130. BR Celeste Re: Unable to open probe index1. Error: Probe not open The jumper J22 and J24: shorted; jumper J21 : open My MCUXpresso's linkserver path configuration is Linkserver_26.9.130. Regards, Justin Re: Unable to open probe index1. Error: Probe not open Hello, I noticed there is a warning: I think the issue appears to be related to the communication between this laptop and the onboard MCU-Link debug probe. Could you please help with the following checks? 1. Check MCU-Link in Windows Device Manager With the FRDM-MCXN947 connected, please check the MCU-Link related devices in Windows Device Manager.   2. Compare the LinkServer probe detection on the working laptop On the laptop where this FRDM-MCXN947 works correctly, please use the same LinkServer version (v26.9.130) and run: LinkServer.exe probes Please provide the complete output so we can compare it with the result from the problem laptop.   3. Try the J-Link firmware As another cross-check, please switch the onboard MCU-Link to the J-Link firmware and try debugging the LED Blinky example again. This test can help determine whether the issue is specific to the CMSIS-DAP/LinkServer communication path on this laptop.   Please let me know the results of these tests. They should help us further check the issue.   Regards, Celeste Re: Unable to open probe index1. Error: Probe not open 1. The FRDM-MCXN947 appears as: MCU-LINK FRDM-MCXN947 (r0E7) CMSIS-DAP V3.128 MCU-Link VCom Port (COM3) 2. I tested LinkServer.exe probes on the laptop where the FRDM-MCXN947 works correctly using LinkServer v26.9.130. 3.  I programmed the onboard MCU-Link with the J-Link firmware using the provided program_JLINK script (Firmware_J-Link-MCU-Link_240702.s19). now debugging the LED Blinky example works correctly.   I am happy that I can use the board again now, but I am still curious about what is causing the issue with the MCU-Link firmware. Thank you very much for all your help and support so far. I really appreciate it. Regards, Justin Re: Unable to open probe index1. Error: Probe not open I'm glad to hear that it's working now. Sometimes switching to JLink firmware can resolve the issue. I can't explain this phenomenon, perhaps it's a compatibility issue, but it doesn't happen consistently. BR Celeste
記事全体を表示
HSEオプション こんにちは、 輸出目的のため、HSE(暗号化部分)モジュールを削除したいと考えています。あなたのリストにはHSEモジュールなしの参照情報が見当たりませんでしたが、HSE(暗号化部品)モジュールなしのS32G2またはS32G3の参照情報は存在しないということでしょうか? B.R. Re: HSE option こんにちは、 @COLLIN_O 投稿ありがとうございます。 最新のS32G2/3製品導入以降、HSEは記載されたすべてのバリアントに含まれています。 BR チェイン
記事全体を表示
SPI通信による「s32k31XEVB-Q100評価ボード」 こんにちは、 私はs32k31XEVB-Q100評価ボードを持っており、S32とFS23間のSPI通信を実装しようとしています。 私のPIN設定: PTB0 -> lpspi0_pcs0 PTC8 -> lpxpi0_sck PTC9 ->lpxpi0_sin PTB1 -> lpxpi0_sout ペリフェラルではLpspiを追加しました /* SPI */ /* Time to transfer all frame data */ #define BCC_MSG_SIZE 4U #define RX_BUFFER_SIZE 4U #define TIMEOUT ((uint32)1000000UL) #define NUMBER_OF_BYTES (10) uint16 numberOfBytes = BCC_MSG_SIZE; static void handleSPI(void) { static int counterSPI = 0; __attribute__(( aligned(32) )) uint8_t rxBuffer[BCC_MSG_SIZE] = {0x00};// = {0,0,0,0,0,0,0,0,0,0,0,0}; /* Buffer for receiving. */ __attribute__(( aligned(32) )) uint8_t txBuffer[BCC_MSG_SIZE] = {0x00}; /* Transmission buffer. */ /* M_DEV_PROG_ID * */ txBuffer[0] = 0x01 << 1; // General status flags ( Register address / Read/Write) txBuffer[1] = 0x00; // Read Data txBuffer[2] = 0x00; // Read Data txBuffer[3] = 0x00; // CRC if (counterSPI++ >= 5000000) { counterSPI = 0; lpspi_status = Lpspi_Ip_SyncTransmit(&MASTER_EXTERNAL_DEVICE, &txBuffer[0], &rxBuffer[0], numberOfBytes, 100000); } } int main(void) { /* Write your code here */ Clock_Ip_StatusType clockStatus; clockStatus = Clock_Ip_Init(&Clock_Ip_aClockConfig[0]); if (CLOCK_IP_SUCCESS != clockStatus) { exit_code = -1; } /* Initial Pins */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS_PortContainer_0_BOARD_InitPeripherals, g_pin_mux_InitConfigArr_PortContainer_0_BOARD_InitPeripherals); /* Initial ISR */ IntCtrl_Ip_Init(&IntCtrlConfig_0); IntCtrl_Ip_EnableIrq(FlexCAN0_0_IRQn); /* already enabled in IntCtrl_Ip - Interrupt Controller */ //IntCtrl_Ip_EnableIrq(FlexCAN0_1_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); //IntCtrl_Ip_EnableIrq(FlexCAN0_2_IRQn); FlexCAN_Ip_Init(INST_FLEXCAN_0, &FlexCAN_State0, &FlexCAN_Config0); FlexCAN_Ip_SetRxIndividualMask(INST_FLEXCAN_0,RX_MB_IDX,0xFFFFFFFF); FlexCAN_Ip_ConfigRxMb(INST_FLEXCAN_0, RX_MB_IDX, &rx_info, Rx_MSG_ID); FlexCAN_Ip_SetStartMode(INST_FLEXCAN_0); //FlexCAN_Ip_Receive(INST_FLEXCAN_0,RX_MB_IDX,&rxData,false); lpspi_status = Lpspi_Ip_Init(&Lpspi_Ip_PhyUnitConfig_SpiPhyUnit_0_Instance_0); /* update Transfer Mode */ //Lpspi_Ip_UpdateTransferMode(MASTER_EXTERNAL_DEVICE.Instance, LPSPI_IP_INTERRUPT); for(;;) { handleSPI(); handleCAN(); handleLED(); if(exit_code != 0) { break; } } return exit_code; } 今、私はロジックアナライザーをボード上のJ39にコネクテッドしました。 このコードの実行結果は次のとおりです。 さて、いくつか質問があります。 1) 値を正しい順序で送信していますか? 2) データを読み取るだけの場合でも、CRCを送信する必要がありますか? 3) このボード上のFS23のどのレジスタが固定データを返しますか?あるいは、答えを検証するために知っているデータはありますか? 4) CLKでは時々CLKが通常より長くなっているのを見かけます。 SPI通信を正常に動作させるためのヒントを何か教えていただけますか? Re: SPI Communication on "s32k31XEVB-Q100 Evaluation Board" こんにちは、ジョン。 以下のコメントをご覧ください。 ここではFS23のみをサポートしており、S32Kはサポートしていないので、FS23の視点からお答えします。 さて、いくつか質問があります。 1) 値を正しい順序で送信していますか? [gw]読み取りおよび書き込み操作の詳細な形式については、回答2を参照してください。 また、READ/WRITE/CRC に関する詳細は MCU コミュニケーションの16-5ページもAN12149 をご覧ください 2) データを読み取るだけの場合でも、CRCを送信する必要がありますか? [gw]はい、SPI通信フレーム形式は以下の通りです:CRCはデフォルトで存在し無効化できません。読み書き操作中は、最上位ビット(MSB)が最初に送信され、最下位ビット(LSB)が最後に送信されます。SPIがアイドル状態、つまりCSBピンがハイ状態のとき、MISOは高インピーダンス状態になります。 AN14129ページで11ページ16ページにINIT CRCおよび通常のCRC計算方法を紹介します。 それらは異なる。 3) このボード上のFS23のどのレジスタが固定データを返すのか?それとも答えを検証するために知っているデータ? [gw] M_DEV_PROG_ID アドレスは  0x01 4) CLKでは、時々、clkが通常よりも長くなっているのが見られます。 [gw]CSがローに変わるときの波形をテストするとCLCKはハイになりますが、タイミング図ではローになっています。
記事全体を表示
RTOSパッケージの無料配布。 チームの皆様へ 一つ問題に直面しています。どうかこれを直す手助けをしてください。 設定中、無料のRTOSパックピックを選択しようとしています。 以下の画像を参照すれば問題の原因がわかります。 ご回答をお待ちしております。 ありがとうございます。よろしくお願いいたします。 スニル・ラドワ。 Re: Free RTOS package issue. こんにちは、 @sunil0509 さん。 SW32K3_FreeRTOS_11.1.0_0.8.0_CD1_D2603パッケージはリリースノートに記載されている通りRTD 7.0.1が必要ですが、本当にインストールされているか確認できますか? SW32K3 FreeRTOS 11.1.0 version 0.8.0 CD1 Release NotesSW32K3 FreeRTOS 11.1.0 version 0.8.0 CD1 Release NotesSW32K3 FreeRTOS 11.1.0 バージョン 0.8.0 CD1 リリースノート 「Freertos」はツールチェーン/IDEプロジェクトには存在しません。プロジェクトはコンパイルされません!パッケージがまだプロジェクトに追加されていない場合、共有している警告は期待されます。つまり、「FreeRTOS」コンポーネントを追加して「コードの更新」をクリックすると、警告は消えるはずです。 FreeRTOSパッケージでコードの追加、更新、プロジェクト構築が可能か確認できますか? Peripherals PerspectivePeripherals Perspectiveペリフェラルの視点 Correct view for FreeRTOS component added to projectCorrect view for FreeRTOS component added to projectプロジェクトに追加されたFreeRTOSコンポーネントの正しい表示 よろしくお願いします、 ジュリアン Re: Free RTOS package issue. こんにちは、チームの皆さん、 また、S32DS.3.6.12にはGCC 10.2を使用していることもお伝えしておきます。IDEで「SW32K3_FreeRTOS_11.1.0_0.8.0_CD1_D2603」をインストールしましたが、それでも問題が出ています。 これを直すのを手伝ってください。 ありがとうございます。 スニル・ラドワ。 Re: Free RTOS package issue. こんにちは 、 これらのエラーを確認してください。これらのエラーを修正するのを手伝ってください。 ありがとうございます。 スニル・ラドワ
記事全体を表示
i.MX 93 AHAB 密钥撤销程序疑问 你好, 我们正在研究如何撤销通过空中升级的 i.MX93 产品的 SRK,但我们找不到完整的程序说明。我们已经阅读了 imx93: SRK 撤销主题( https://community.nxp.com/t5/i-MX-Processors/imx93-SRK-revocation/td-p/1827004 )、参考手册(§9.5.1.3.2.3,SRK 撤销)和 AN14954,我们想确认以下几点。 1. ahab_commit 在字段 在上面的线程中,使用 SRK2 签名且 Revocations = 0x1 的容器直到运行 ahab_commit 0x10 才撤销 SRK1。我们想了解在接收后续更新的设备上,该提交应该如何使用: - 在携带撤销掩码的容器通过身份验证后,运行一次提交是否足够? - 或者,一旦至少撤销了一个密钥,是否可以将该提交永久保留在启动命令中,以便之后安装的任何版本都会应用撤销操作?如果没有新的版本可提交,这样做是否安全无害? - 后续版本的容器是否必须保持相同的 srk_revocations 值(参考手册中说 ELE 会检查容器中的撤销位是否与熔丝中已设置的值匹配),以及哪些容器必须携带该值(启动容器和操作系统容器)? 2. 多次或交叉撤销 使用一个 SRK 签名的容器可以撤销另一个 SRK(如线程中所示)。撤销掩码可以包含多个比特,包括所有其他 SRK 吗?ELE 中是否有检查机制来防止使用被泄露的 SRK 签名的容器撤销其余的 SRK,还是说这必须由密钥管理来处理? 3. 检查撤销状态 是否有官方支持的方法可以从 U-Boot 或 Linux 中知道哪些 SRK 被撤销了?使用熔丝感知时,我们板上第 6 个库之后的大多数字都会返回 ERROR,并且 nvmem 接口会显示为零。功能性检查(验证每个 SRK 签名的小容器并查看 ELE 事件)是否是一种合理的方法? 4. 测试用的熔丝位覆盖 从 AN14954 中我们了解到,在 OEM Open 中可以覆盖影子熔丝,而无需烧毁电子熔丝。ELE 在验证容器身份时是否使用 SRK 哈希熔丝的影子值,以便无需写入哈希即可测试签名链?那么,有没有办法利用这种机制模拟撤销操作呢? 5. SRK 表收盘后 哈希值涵盖整个 SRK 表(4 个键)。哈希表写入后,即使当时的位置是空的,该表还能更改吗(估计不能,因为它们是融合的)?所以基本上,是否可以只写入 2 个密钥,以后再添加 2 个密钥? 我们了解到,部分熔丝信息受保密协议约束,并已写入网络安全参考手册。如果是这样,提供相关文档或章节的链接,甚至是流程的概要描述,都会有很大的帮助。鉴于即将生效的《网络弹性法案》,密钥撤销将成为许多产品的标准要求,因此,一份清晰的公开说明将非常有价值。 提前致谢
記事全体を表示
i.mx93 DMAからGPIOへのDBE取得 i.MX93のm33にファームウェアを動かしていて、Linuxからリモートプロックでロードしています。eDMA4チャネル0を変数からGPIO1ポート6にデータ転送しようとしていますが、転送を開始するとDMAにデータバスエラーが表示されます。以前はFlexIO1ピンを使用していて問題なく動作していましたが、GPIO1ピンを使用するとどういうわけか常に問題が発生するようです。何かアイデアはありますか? Re: i.mx93 DMA to GPIO Get DBE 私のYoctoビルドのimx-atf、特にAONMIXとWAKEUPMIXのmbc構成を見てみると、eDMAはGPIOへの書き込みアクセス権を持つように設定されていないと思います。これを修正すればeDMAにアクセスできるか試してみます。誰かこれを確認できますか? Re: i.mx93 DMA to GPIO Get DBE マニュアルを少し見つめて、DMAチャネルとGPIOの権限とセキュリティフラグが一致しているか確認しました。TRMの1716ページに従って、GPIOのPCNSを0xFFFFFFFFに設定し、PCNPはそのままにしておきました。一方、DMAではチャネルのSBR PALを1に、SECを0に設定しています。それでもDBEエラーが出ます。 Re: i.mx93 DMA to GPIO Get DBE 分かったと思う。imx93 trdc_config.h にパッチを追加しましたこれにより、以下の行が追加されます。 これはstruct trdc_mbc_config trdc_a_mbcに追加されます: { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO1 for M33 DID2 */ これは構造体trdc_mbc_config trdc_w_mbcに追加されます: { 0, 7, 1, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO2_In for edma DID2 */ { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO3 for emda DID2 */ { 1, 7, 3, MBC_BLK_ALL, 0, false }, /* MBC1 GPIO4 for edma DID2 */ これでeDMAはGPIOレジスタにデータを転送できます。
記事全体を表示
#ftm_pwm_S32K116  Hi,Dear NXP colleague: I'm looking for help about the project of ftm_pwm_s32k116,the fact is that no matter how I try to change the code or configuration.the MCU can't output PWM signal on default channel(FTM0-channel 0,i.e. PTD15). here is my step : 1.import the new project from example; 2.compile it and all PASS,I check the pin mux and flextimer configuration and find no problem(actually it's from NXP example,I think it's totally right); 3.then I flash it  into S32K116; 4.observe the waveform on PTD15 and find nothing,I tried for almost 2days; the zip file of my project is as below,thanks. Re: #ftm_pwm_S32K116 attach my project  Re: #ftm_pwm_S32K116 Hi @Tracy_Lu  First, I noticed that you are using Processor Expert, so it seems that you are working with an older software version. If you are starting your development with S32K1 devices, we would recommend using the latest available software and tools, currently the S32K1_S32M24X Real-Time Drivers AUTOSAR R21-11 Version 3.0.0 (Real-Time Drivers for S32K1) together with S32 Design Studio for S32 Platform (S32 Design Studio | NXP Semiconductors). However, if you would like to continue using the S32K1 SDK, the latest SDK version was provided with S32 Design Studio for S32 Platform 3.4. Additionally, could you please let us know whether you are using an EVB or a custom board? If you would like to remain with your current software setup, it would also be helpful if you could share the exact S32K1 SDK version you are using. BR, VaneB Re: #ftm_pwm_S32K116 Hi,Dear NXP colleague:  thanks  for  the quick and professional reply.I change to another project S32K116_Project_FTM from example and modify the code(with the assistance from gemini AI),I want to share these points to help the engineer like me to solve the problem during compile and debug: 1.I use the FTM function to respond the ESM(error signal monitoring)of my PMIC(TPS650366); 2.at first I use ftm_pwm_S32k116 project and failed to compile and debug,for around 2 days.I can't see any output PWM at the assigned pin.And I'm sure I make the right configuration and debug,with the assistance from Gemini AI; 3.then I find another example named S32K116_Project_FTM,I tried and compile it with no error.and I get the output of the configured pin which is PTD15(FTM0CH0)/16(FTM0CH1),though the initial frequency is 1Hz/5Hz,I know I'm close to the finish line; 4.actually,I need the pwm frequency around 40KHz,so I know the next step is to modify the system frequency prescaler,MOD value,CnV(duty cycle),but I find that I can't change the MOD value(I change the value but I can't write into the root place of MCU),I tried and tried,searching all the info which can help with me; 5.finally I find that if you want to change MOD value,you should satisfy several pre-condition,e.g.you should close the clock,release the write protection...; 6.here is my code after compile and operates normally(output around 48KHz at PTD16); int main(void) { /*! * Initialization: * ======================= */ WDOG_disable(); /* Disable watchdog */ SOSC_init_40MHz(); /* Initialize system oscillator for 40 MHz xtal */ RUN_mode_48MHz(); /* Init clocks: 48 MHz sys, core and bus,                   24 MHz flash. */      FTM0_init();           /* Init FTM0 using 8 MHz SIRCDIV1_CLK */    //FTM0_CH0_OC_init();    /* Init FTM0 CH0, PTD15 */   FTM0_CH1_PWM_init();   /* Init FTM0 CH1, PTD16 */   FTM0_CH6_IC_init();    /* Init FTM0 CH6, PTE8  */   FTM1_Init();   FTM1_CH1_PWM_init();   PORT_init();           /* Configure ports */   start_FTM0_counter();  /* Start FTM0 counter */   /*! * Infinite for: * ======================== */   for(;;)   { //FTM0_CH0_output_compare();/* If output compare match: */   /* Pin toggles (automatically by hardware) */   /* Clear flag 8 */   /* Reload timer */ //FTM0_CH6_input_capture(); /* If input captured: clear flag, read timer */   } } 7.the import code is as below(FTM0_init(),FTM0_CH1_PWM_init())  : void FTM0_init(void) {/** * FTM0 Clocking: * ================================================== */ PCC->PCCn[PCC_FTM0_INDEX] &= ~PCC_PCCn_CGC_MASK; /* Ensure clk disabled for config */ PCC->PCCn[PCC_FTM0_INDEX] |= PCC_PCCn_PCS(0b010) /* Clock src=1, 8 MHz SIRCDIV1_CLK */ | PCC_PCCn_CGC_MASK; /* Enable clock for FTM regs */ /*! * FTM0 Initialization: * =================================================== */ // 1. 第一步:确保 FTM 时钟彻底关闭(CLKS = 0),此时处于完全可配置状态 FTM0->SC = 0x00000000; // 2. 第二步:解除写保护并开启 FTM 完整模式 volatile uint32_t dummy = FTM0->MODE; FTM0->MODE |= FTM_MODE_WPDIS_MASK; /* 禁用写保护 */ FTM0->MODE |= FTM_MODE_FTMEN_MASK; /* 开启 FTM 完整模式 */ // 3. 第三步:在时钟关闭的安全状态下,顺利把 MOD 和比较值写进去 FTM0->CNTIN = 0U; FTM0->MOD = 166 - 1; /* 8MHz / 166 ≈ 48.19 kHz */ // 4. 第四步:配置通道 1 (PTD16) 为边沿对齐 PWM 模式 FTM0->CONTROLS[1].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK; FTM0->CONTROLS[1].CnV = 83; /* 50% 占空比 (83 < 165) */ // 5. 第五步:极性和组合模式清零 FTM0->COMBINE = 0x00000000; FTM0->POL = 0x00000000; // 6. 最后一步:所有参数已经安稳写入后,才真正开启通道输出和时钟源! FTM0->SC = FTM_SC_PWMEN0_MASK | FTM_SC_PWMEN1_MASK | FTM_SC_PS(0) /* PS = 0 (不分频) */ | FTM_SC_CLKS(1); /* CLKS = 1 (最后启动计数器) */ } void FTM0_CH1_PWM_init(void) { /** * FTM0, Channel 1 in PWM Mode: * ================================================== */ FTM0->CONTROLS[1].CnSC = FTM_CnSC_MSB_MASK |FTM_CnSC_ELSB_MASK;  /* FTM0 ch1: edge-aligned PWM, low true pulses */ /* CHIE (Chan Interrupt Ena) = 0 (default) */ /* MSB:MSA (chan Mode Select)=0b10, Edge Align PWM */ /* ELSB:ELSA (chan Edge/Level Select)=0b10, low true */   FTM0->CONTROLS[1].CnV =  46875; /* FTM0 ch1 compare value (~75% duty cycle) */ }
記事全体を表示
S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash access Environment: S32N55, FSS FW 1.19.0 (D2604), GrayVIP 1.0.25, HSE2, Secure Boot enabled. Goal: Implement A/B swap OTA. Active bank A at AHB 0x10000000, passive bank B at 0x14000000 (flash offset 0x04000000). I am trying to have the running FSS (active bank A) install the passive bank’s PaCo/Codef/SMR, then swap the IVT and reboot into bank B. What I found: The running FSS cannot read the passive bank at 0x14000000. With T32 (XSPI configured for a 4-byte read, cmd 0x13) the data at 0x14000000 reads correctly, but at runtime the FSS/QSPI uses an OPI read that appears to be 3-byte addressing (~16MB reach), so any access to 0x14xxxxxx bus-faults. Bank A works because all of its used data is within the low 16MB. Forcing a runtime asset re-install hard-faults/resets the board. When I bypass the “SYS-IMAGE already loaded” gate in the FSS asset-install functions (InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess) to re-run the install at runtime, the board resets — even when I target the active (readable) bank. This suggests asset install is not intended to run while the cohorts (CRS/RTU) are already executing. Questions: Is FSS asset install (PaCo/Codef/SMR via HSE) supported only during the boot/provisioning phase (before cohorts are released), and not at runtime while CRS/RTU are running? For A/B swap OTA, what is the intended activation sequence? After writing the passive bank and swapping the IVT, when and how are the passive bank’s Codef (whose image source addresses are bank-dependent), SMRs, and PaCo installed/verified? Is the running FSS expected to access the passive bank (0x14000000) at runtime (i.e., should the runtime read path use 4-byte addressing), or is the passive bank accessed only by the boot ROM at the next boot? Across an A/B swap, does the PaCo differ between banks? The PaCo contains flash-range addresses (0x10xxxxxx / 0x11xxxxxx), so does the passive bank’s PaCo require relocation like the Codef, or is it bank-independent? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi Chenyin, thanks for the quick reply. To clarify my question: I am not relying on a built-in SCMI service. I have already implemented my own runtime PaCo/CoDef install as part of an A/B bank-swap OTA. The design is bank-agnostic: the running (active) FSS installs the passive bank’s assets at runtime, then swaps the IVT primary pointer (0x10000000 ↔ 0x14000000) and reboots into the other bank. I reuse the existing FSS install state machine directly for this. So my real question is whether this approach is feasible on the current FSS, because in testing it fails at a specific point. What works: With the install targeted at the active bank, the full path completes (PaCo/Owner/Keys, SMR install returns OK, FSS FW SMR0/AuthenProcess OK; Codef-install and ValidateBootConfig return NOT_ALLOWED under the published SYS-IMG, so I defer those to the next boot’s BootCfgVerify). BTM then proceeds to PublishSysImage + EnableGlobalSecureBoot. What fails: When the install targets the passive bank, it bus-faults in IndexSourcesStep the first time the FSS dereferences the passive-bank PaCo at AHB 0x14013000. Active-bank addresses (0x10xxxxxx) read fine. Root cause I traced: It is not the AHB window or addressing. MemAcc_Init() (which initializes Mem_43_EXFLS, MemPerformDeviceConfiguration=TRUE) runs before Fss_Firmware_InstallPacoCodefs(), so at install time SFA1D is already 0x18000000 (128 MB), AHB read is enabled, and the read LUT is 4-byte OPI-DDR. Even after I manually confirmed SFA1D = 0x18000000 via T32, 0x14013000 still returns a hard bus error (not the SFP error payload). This points to XSPI Secure Flash Protection (SFP): the FRAD covering the passive region did not grant the accessing master’s domain RW. When I extended the FRAD coverage to the full flash and set Md4Acp = RW, the access behavior changed. My questions: Is runtime install of PaCo/CoDef into the passive bank architecturally supported on the current FSS (Secure Boot enabled) by reusing the install functions as above, or are there hard blockers I should be aware of before the reference OTA is available? Any caveats for this interim approach — e.g., installing FSS FW SMR0 (AuthenProcess) for the target bank, and deferring the CoDef/boot-config check to the next boot’s BootCfgVerify? Thanks, Eddie Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hello, @EddiePark  Thanks for the post and glad to support again. The current FSS does not provide an SCMI service for installing PaCo and CoDef at runtime. Currently, the reference OTA implementation of S32N is still under development, if possible, I suggest referencing it directly to implement your own OTA process once it is available. BR Chenyin   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi, following up with much more detail after systematic debugging. Setup: S32N55, FSS FW 1.19.0, Secure Boot. A/B bank-swap OTA. The running FSS (M7) installs the passive bank’s PaCo/CoDef at runtime (our own implementation, reusing the FSS install state machine). Passive bank base = 0x14000000. Fault: In Fss_Firmware_IndexSourcesStep, the FSS-M7 does a direct AHB memory-mapped read (CPU dereference) of the passive-bank PaCo at 0x14013000 and takes a precise BusFault: CFSR = 0x00008200 → BFSR: PRECISERR=1, BFARVALID=1, MMFSR=0 BFAR = 0x14013000 What we ruled out (with evidence): MPU: not the cause. MMFSR=0. MPU region 2 = External Flash 0x10000000–0x1FFFFFFF, Normal cacheable WB, Read-Only → covers 0x14013000, read permitted. SFP: not the cause. Setting MemXspiSfpEnable = FALSE and rebuilding → same fault. (FRADs grant the region to the relevant domains anyway.) AHB window: SFA1D = 0x18000000 (128 MB) → bank B is inside the window. Key observation — it’s not bank-specific, it’s “fresh vs cached”: The read/fault boundary is exactly 0x13780000 (0x1377FFFF reads, 0x13780000 faults). That is the end of the firmware image region (FSS/CRS/HSE/RTU/Sys_Img) / start of the data region (IDS…). It is 56 MB from base — not a power of two, so it is not a hardware size boundary; it is exactly the extent the FSS read and cached during boot (External Flash region is cacheable). → Everything the FSS read during boot (now in D-cache) reads back fine. Any address requiring a FRESH (uncached) direct AHB read faults — including addresses below 0x14000000 (e.g. 0x13780000 is in the active 64 MB and also faults). So the real issue is: fresh, uncached, direct AHB memory-mapped reads of external flash fail at runtime. MemPerformDeviceConfiguration test: MemPerformDeviceConfiguration = TRUE (device init runs → octal-DDR): flash writes work (indirect/IP-command via MemAcc INDIRECT_STATIC), cached reads work, fresh AHB reads FAULT. MemPerformDeviceConfiguration = FALSE (skip device init): reads return all 0x00 (device not left in octal-DDR mode). So with the device correctly in octal-DDR, writes succeed but fresh memory-mapped READS fault. Since octal-DDR external-DQS reads are sampled using the device DQS strobe and writes are not, this points to a read-path (DQS/DLL/dummy/timing) problem. Config context: Only the FSS configures the XSPI controller (Xspi_Ip_paXspiUnitCfg, MemPerformDeviceConfiguration = TRUE, octal-DDR, external DQS, DLL bypassed). CRS and RTU skip controller configuration (XspiUnit = NULL, DeviceConfiguration = FALSE) and inherit the boot config. The qspi param (xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin) is included in the generated VIP/IVT blob. Questions: On the current FSS, is the FSS-M7 expected to be able to perform direct AHB memory-mapped reads of external XSPI flash at runtime (after MemAcc_Init) at arbitrary/uncached addresses? Or must runtime flash reads go through the indirect (IP-command) Mem/MemAcc path? Why would a direct AHB read return a precise BusFault for uncached addresses while writes (indirect) and cached reads succeed, given SFA1D=128 MB, SFP disabled, and MPU RO covering the region? Does the FSS’s MemAcc_Init controller re-configuration conflict with the boot qspi-param XSPI read setup such that memory-mapped reads break? Should the FSS skip controller reconfiguration (like CRS/RTU) and inherit the boot qspi-param config — and if so, how do we retain flash write support? For octal-DDR / external-DQS / DLL-bypass at 200 MHz on S28HS01GT, what DLL / DQS / dummy-cycle settings are required for reliable memory-mapped reads? (We suspect our FSS read config differs from the working boot qspi-param config.) Thanks, Eddie Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hello, @EddiePark  Sorry for the late response due on leave. May I know if you had the following settings modified?   Access Control Policy for TG0 → change all instances to XSPI_IP_SFP_ACP_RW, then test if the issue still persist when accessing the flash address via FSS. BR Chenyin Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Hi Chenyin, No problem at all — thanks for getting back to me. Yes, we have implemented the related functionality, and the passive-bank access via FSS is working. The PaCo and SMR installs for the passive bank (bank B) complete successfully at runtime: PaCo: HSE returns HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA) and we treat it as success. SMR: installs correctly with the bank-B source address (0x14280000), ret=0. Our remaining question is specifically about Codef installation at runtime: When Secure Boot is enabled and the SYS-IMAGE has been published, a runtime Sherpa_Cdd_InstallCodef call (issued from FSS, triggered via RTU3 SCMI during normal operation) returns HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C) for every cohort. We confirmed this with logging (instRet=1 on all cohorts). Our understanding is that, under Secure Boot ON, the published SYS-IMAGE seals the Codef, so a runtime Codef install is not permitted — and the Codef CHECK-IN must instead be deferred to the next boot’s hseBootCfgVerifySrv_t stage (after the IVT swap). SMRs, by contrast, are allowed at runtime. Could you please confirm whether this is the expected/by-design behavior? That is: Is runtime Codef install (via FSS/SCMI) expected to return NOT_ALLOWED once Secure Boot is enabled and SYS-IMAGE is published? Is deferring the Codef CHECK-IN to the next boot verify (hseBootCfgVerifySrv_t) the correct/intended approach for the A/B swap passive-bank update? Regarding the Access Control Policy setting (TG0 → XSPI_IP_SFP_ACP_RW): we will check our current configuration and test the flash access as you suggested, and report back. Thank you, Eddie Park
記事全体を表示
S32N55 A/B 交换 OTA — 被动库资产 (PaCo/Codef/SMR) 安装时序和运行时闪存访问 环境:S32N55,FSS 固件 1.19.0 (D2604),GrayVIP 1.0.25,HSE2,已启用安全启动。 目标:实现 A/B 交换 OTA。活动存储体 A 位于 AHB 0x10000000,被动存储体 B 位于 0x14000000(闪存偏移 0x04000000)。我正在尝试让正在运行的 FSS(活动库 A)安装被动库的 PaCo/Codef/SMR,然后交换 IVT 并重新启动到库 B。 我的发现: 正在运行的 FSS 无法读取 0x14000000 处的被动存储体。使用 T32(XSPI 配置为 4 字节读取,命令 0x13)时,0x14000000 处的数据可以正确读取,但在运行时,FSS/QSPI 使用 OPI 读取,这似乎是 3 字节寻址(~16MB 范围),因此任何对 0x14xxxxxx 总线的访问都会导致故障。银行 A 之所以能正常运行,是因为它使用的所有数据都在 16MB 以内。 强制重新安装运行时资源会导致电路板硬故障/RESET。当我在 FSS 资产安装函数(InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess)中绕过“SYS-IMAGE 已加载”门,在运行时重新运行安装时,即使我选择的是活动(可读)存储体,板也会重置。这表明资产安装不应该在队列(CRS/RTU)已经执行时运行。 问题: FSS 资产安装(通过 HSE 安装 PaCo/Codef/SMR)是否仅在启动/配置阶段(在队列发布之前)受支持,而不在 CRS/RTU 运行时受支持? 对于 A/B 交换 OTA,预期的激活顺序是什么?在写入被动存储体并交换 IVT 之后,被动存储体的 Codef(其映像源地址取决于存储体)、SMR 和 PaCo 何时以及如何安装/验证? 运行中的 FSS 是否需要在运行时访问被动存储体 (0x14000000)(即,运行时读取路径是否应该使用 4 字节寻址),还是被动存储体仅在下次启动时由启动 ROM 访问? 在 A/B 互换交易中,各银行的 PaCo 值是否不同?PaCo 包含闪存范围地址(0x10xxxxxx / 0x11xxxxxx),那么被动存储体的 PaCo 是否像 Codef 一样需要重新定位,还是与存储体无关? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 陈音,谢谢你的快速回复。 为了澄清我的问题:我并没有依赖内置的 SCMI 服务。我已经实现了我自己的运行时 PaCo/CoDef 安装,作为 A/B 银行交换 OTA 的一部分。该设计与银行无关:运行中的(活动的)FSS 在运行时安装被动银行的资产,然后交换 IVT 主指针 (0x10000000 ↔ 0x14000000) 并重新启动到另一个银行。我直接重复使用现有的 FSS 安装状态机来实现这一点。 所以我的真正问题是,这种方法在当前的FSS上是否可行,因为在测试中它在某个特定点失败了。 有效方法:当安装目标指向活动银行时,完整路径完成(PaCo/Owner/Keys,SMR 安装返回 OK,FSS FW SMR0/AuthenProcess OK;Codef-install 和 ValidateBootConfig 在已发布的 SYS-IMG 下返回 NOT_ALLOWED,因此我将它们推迟到下一次启动的 BootCfgVerify)。然后 BTM 继续执行 PublishSysImage + EnableGlobalSecureBoot。 失败的原因:当安装程序以被动存储体为目标时,在 FSS 首次在 AHB 0x14013000 处取消引用被动存储体 PaCo 时,IndexSourcesStep 中会发生总线故障。活动银行地址(0x10xxxxxx)读取正常。 我追溯到的根本原因:问题不在于 AHB 窗口或地址。MemAcc_Init()(初始化 Mem_43_EXFLS,MemPerformDeviceConfiguration=TRUE)在 Fss_Firmware_InstallPacoCodefs() 之前运行,因此在安装时 SFA1D 已经是 0x18000000(128 MB),AHB 读取已启用,读取 LUT 为 4 字节 OPI-DDR。即使我通过 T32 手动确认 SFA1D = 0x18000000,0x14013000 仍然返回硬总线错误(不是 SFP 错误有效载荷)。这表明 XSPI 安全闪存保护 (SFP):覆盖被动区域的 FRAD 没有授予访问主功能域 RW 权限。当我将 FRAD 覆盖范围扩展到整个闪存并将 Md4Acp 设置为 RW 时,访问行为发生了变化。 我的问题: 在当前的 FSS(启用安全启动)架构上,是否支持通过重复使用上述安装函数将 PaCo/CoDef 运行时安装到被动存储体中?或者在参考 OTA 可用之前,是否存在我应该注意的重大障碍? 这种临时方法有什么注意事项吗?例如,为目标存储体安装 FSS FW SMR0(AuthenProcess),并将 CoDef/启动-config 检查推迟到下次启动的 BootCfgVerify 中? 谢谢, 埃迪 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 你好, @EddiePark 感谢您的帖子,很高兴再次支持您。 当前 FSS 不提供 SCMI 服务以在运行时安装 PaCo 和 CoDef。 目前,S32N 的 OTA 参考实现仍在开发中,如果可能的话,我建议在它可用时直接参考它来实现您自己的 OTA 流程。 BR 陈银   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 您好,经过系统调试后,我将提供更多详细信息。 配置:S32N55,FSS固件1.19.0,安全启动。A/B 银行间互换 OTA。运行中的 FSS (M7) 在运行时安装被动银行的 PaCo/CoDef(我们自己的实现,重复使用 FSS 安装状态机)。被动银行基址 = 0x14000000。 故障:在 Fss_Firmware_IndexSourcesStep 中,FSS-M7 对 0x14013000 处的被动存储体 PaCo 执行直接 AHB 内存映射读取(CPU 解引用),并出现精确的 BusFault: CFSR = 0x00008200 → BFSR: PRECISERR=1, BFARVALID=1, MMFSR=0 BFAR = 0x14013000 我们已排除以下可能性(并附有证据): MPU:并非病因。MMFSR=0。MPU 区域 2 = 外部闪存 0x10000000–0x1FFFFFFF,普通可缓存 WB,只读 → 覆盖 0x14013000,允许读取。 SFP:并非原因。设置 MemXspiSfpEnable = FALSE 并重新构建 → 出现同样的错误。(无论如何,FRAD 都会将该区域授予相关功能域。) AHB 窗口:SFA1D = 0x18000000 (128 MB) → 银行 B 位于窗口内。 关键观察结果——这并非特定于某家银行,而是“新鲜数据与缓存数据”的问题: 读取/故障边界正好是 0x13780000(0x1377FFFF 读取,0x13780000 故障)。这是固件映像区域(FSS/CRS/HSE/RTU/Sys_Img)的结束/数据区域(IDS…)的开始。从基本容量算起是 56 MB——不是 2 的幂,所以它不是硬件大小的边界;它恰好是 FSS 在启动期间读取和缓存的范围(外部闪存区域是可缓存的)。 → FSS 在启动期间读取的所有内容(现在位于数据缓存中)都可以正常读取。任何需要 FRESH(未缓存)直接 AHB 读取故障的地址——包括低于 0x14000000 的地址(例如,0x13780000 位于活动的 64 MB 内存中,并且也存在故障)。所以真正的问题是:对外部闪存进行新鲜的、未缓存的、直接的 AHB 内存映射读取在运行时失败。 MemPerformDeviceConfiguration 测试: MemPerformDeviceConfiguration = TRUE(设备初始化运行 → 八进制 DDR):闪存写入工作(通过 MemAcc INDIRECT_STATIC 的间接/IP 命令),缓存读取工作,新的 AHB 读取失败。 MemPerformDeviceConfiguration = FALSE(跳过设备初始化):读取操作全部返回 0x00(设备未保持在八进制 DDR 模式)。 因此,当设备正确设置为八进制 DDR 时,写入操作成功,但新内存映射的读取操作失败。由于八进制 DDR 外部 DQS 读取使用设备 DQS 选通进行采样,而写入则不使用,这表明存在读取路径(DQS/DLL/虚拟/时序)问题。 配置上下文: 只有 FSS 配置 XSPI 控制器(Xspi_Ip_paXspiUnitCfg,MemPerformDeviceConfiguration = TRUE,八进制 DDR,外部 DQS,DLL 已绕过)。CRS 和 RTU 跳过控制器配置(XspiUnit = NULL,DeviceConfiguration = FALSE),并继承启动配置。 qspi 参数(xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin)包含在生成的 VIP/IVT blob 中。 问题: 在当前的 FSS 中,FSS-M7 是否能够对任意/未绑定的地址在运行时(MemAcc_Init 之后)执行直接的 AHB 内存映射读取外部 XSPI 闪存?或者运行时闪存读取必须通过间接(IP 命令)Mem/MemAcc 路径? 为什么在 SFA1D=128 MB、SFP 已禁用且 MPU RO 覆盖该区域的情况下,直接 AHB 读取未缓存地址会返回精确的 BusFault,而写入(间接)和缓存读取却会成功? FSS 的 MemAcc_Init 控制器重新配置是否与启动 qspi-param XSPI 读取设置冲突,以致于内存映射读取中断?FSS 是否应该跳过控制器重新配置(如 CRS/RTU)并继承启动 qspi-param 配置?如果是这样,我们如何保留闪存写入支持? 对于 S28HS01GT 上的 200 MHz 八进制 DDR / 外部 DQS / DLL 旁路,可靠的内存映射读取需要哪些 DLL / DQS / 虚拟周期设置?(我们怀疑我们的 FSS 读取配置与正常工作的启动 qspi-param 配置不同。) 谢谢, 埃迪 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 你好, @EddiePark 抱歉回复晚了,因为我休假了。 请问您是否修改过以下设置?TG0 的访问控制策略 → 将所有实例更改为 XSPI_IP_SFP_ACP_RW,然后测试通过 FSS 访问闪存地址时问题是否仍然存在。 BR 陈银 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc 陈银你好, 完全没问题——谢谢你的回复。 是的,我们已经实现了相关功能,通过 FSS 的被动银行访问功能也已实现。被动存储体(存储体 B)的 PaCo 和 SMR 安装已在运行时成功完成: PaCo:HSE 返回 HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA),我们将其视为成功。 SMR:使用 bank-B 源地址 (0x14280000) 正确安装,ret=0。 我们剩下的问题具体是关于运行时 Codef 的安装: 当启用安全启动并且 SYS-IMAGE 已发布时,运行时 Sherpa_Cdd_InstallCodef 调用(由 FSS 发出,在正常运行期间通过 RTU3 SCMI 触发信号)将为每个队列返回 HSE_SRV_RSP_NOT_ALLOWED (0xAA55A21C)。我们通过日志记录(所有队列的 instRet=1)证实了这一点。 我们的理解是,在启用安全启动的情况下,发布的 SYS-IMAGE 会密封 Codef,因此不允许运行时安装 Codef,Codef CHECK-IN 必须推迟到下一次启动的 hseBootCfgVerifySrv_t 阶段(在 IVT 交换之后)。相比之下,SMR 是在运行时允许的。 请问这是否是预期行为/设计使然?那是: 启用安全启动并发布 SYS-IMAGE 后,运行时 Codef 安装(通过 FSS/SCMI)是否预期返回 NOT_ALLOWED? 将 Codef CHECK-IN 推迟到下一次启动验证 (hseBootCfgVerifySrv_t) 是否是 A/B 交换被动库更新的正确/预期方法? 关于访问控制策略设置(TG0 → XSPI_IP_SFP_ACP_RW):我们将按照您的建议检查我们当前的配置并测试闪存访问,并向您汇报。 谢谢你, 埃迪·帕克
記事全体を表示
#ftm_pwm_S32K116 您好,尊敬的NXP同事: 我正在寻求关于ftm_pwm_s32k116项目的帮助,问题是无论我如何尝试更改代码或配置,MCU都无法在默认通道(FTM0-通道0,即)上输出PWM信号。PTD15)。 我的步骤如下: 1.从示例中导入新项目; 2.编译通过,我检查了引脚复用器和Flextimer配置,没有发现问题(实际上它是NXP的示例,我认为完全正确); 3.然后我把它刷入S32K116; 4.观察PTD15上的波形,没有发现任何问题,我尝试了将近两天; 我的项目压缩文件如下,谢谢。 Re: #ftm_pwm_S32K116 附上我的项目。 Re: #ftm_pwm_S32K116 嗨@Tracy_Lu 首先,我注意到您正在使用 Processor Expert,所以看来您使用的是较旧的软件版本。如果您开始使用 S32K1 设备进行开发,我们建议您使用最新的可用软件和工具,目前推荐使用 S32K1_S32M24X 实时驱动程序 AUTOSAR R21-11 版本 3.0.0。( S32K1 的实时驱动程序)以及适用于 S32 平台的 S32 设计工作室( S32 设计工作室 | NXP 半导体)。 但是,如果您想继续使用 S32K1 SDK,则最新的 SDK 版本已随 S32 Design Studio for S32 Platform 3.4 提供。 另外,请与我们联系您使用的是EVB电路板还是定制电路板? 如果您希望继续使用当前的软件配置,也请您分享您正在使用的确切 S32K1 SDK 版本。 BR,VaneB Re: #ftm_pwm_S32K116 您好,尊敬的NXP同事: 感谢您快速专业的回复。我根据示例项目 S32K116_Project_FTM 修改了代码(在 Gemini AI 的协助下),我想分享以下几点,以帮助像我一样的工程师解决编译和调试过程中遇到的问题: 1.我使用FTM功能来响应我的PMIC(TPS650366)的ESM(错误信号监控); 2.一开始我使用ftm_pwm_S32k116项目,但编译和调试都失败了,持续了大约两天。我在指定的引脚上看不到任何PWM输出。我确信我配置和调试都正确,而且是在Gemini AI的帮助下完成的; 3.然后我找到了另一个名为 S32K116_Project_FTM 的示例,我尝试编译它,没有出现错误。我得到了配置引脚的输出,即 PTD15(FTM0CH0)/16(FTM0CH1),虽然初始频率为 1Hz/5Hz,但我知道我离成功很近了; 4.实际上,我需要PWM频率在40KHz左右,所以我知道下一步是修改系统频率预分频器、MOD值、CnV(占空比),但我发现我无法更改MOD值(我更改了该值,但无法写入MCU的根目录),我反复尝试,搜索了所有可能对我有帮助的信息; 5.最后我发现,如果要更改 MOD 值,需要满足几个前提条件,例如关闭时钟、解除写保护……; 6.这是我编译后的代码,运行正常(在 PTD16 上输出约为 48KHz); int main(void) { /*! * 初始化: * ======================= */ WDOG_disable(); /* 禁用看门狗 */ SOSC_init_40MHz(); /* 初始化 40 MHz 晶振系统 */ RUN_mode_48MHz(); /* 初始化时钟:48 MHz 系统、核心和总线, 24 MHz 闪存。*/    FTM0_init(); /* 使用 8 MHz SIRCDIV1_CLK 初始化 FTM0 */   //FTM0_CH0_OC_init(); /* 初始化 FTM0 CH0,PTD15 */ FTM0_CH1_PWM_init(); /* 初始化 FTM0 CH1,PTD16 */ FTM0_CH6_IC_init(); /* 初始化 FTM0 CH6,PTE8 */ FTM1_Init(); FTM1_CH1_PWM_init(); PORT_init(); /* 配置端口 */ start_FTM0_counter(); /* 启动 FTM0 计数器 */   /*! * 无限: * ======================== */ 为了(;;)   { //FTM0_CH0_output_compare();/* 如果输出比较匹配:*/ /* 引脚切换(由硬件自动完成)*/ /* 清除标志 8 */ /* 重新加载计时器 */ //FTM0_CH6_input_capture(); /* 如果捕获到输入:清除标志,读取定时器 */   } } 7.导入代码如下(FTM0_init(),FTM0_CH1_PWM_init()): void FTM0_init(void) {/** * FTM0 时钟: * ================================================== */ PCC->PCCn[PCC_FTM0_INDEX] &= ~PCC_PCCn_CGC_MASK; /* 确保配置过程中禁用时钟 */ PCC->PCCn[PCC_FTM0_INDEX] |= PCC_PCCn_PCS(0b010) /* 时钟源=1,8 MHz SIRCDIV1_CLK */ | PCC_PCCn_CGC_MASK; /* 使能 FTM 寄存器时钟 */ /*! * FTM0 初始化: * =================================================== */ // 1. 第一步:确保FTM时钟彻底关闭(CLKS = 0),此时完全可配置状态 FTM0->SC = 0x00000000; // 2.第二步:解除写保护并开启FTM完整模式 volatile uint32_t dummy = FTM0->MODE; FTM0->模式|= FTM_MODE_WPDIS_MASK; /* 取消写保护 */ FTM0->模式|= FTM_MODE_FTMEN_MASK; /* 开启FTM完整模式 */ // 3.第三步:在时钟关闭的安全状态下,顺利把MOD和比较值写进去 FTM0->CNTIN = 0U; FTM0->MOD = 166 - 1; /* 8MHz / 166 ≈ 48.19 kHz */ // 4.第四步:通道配置1 (PTD16) 为边沿着对齐PWM模式 FTM0->CONTROLS[1].CnSC = FTM_CnSC_MSB_MASK | FTM_CnSC_ELSB_MASK; FTM0->控制[1].CnV = 83; /* 50% 占空比 (83 < 165) */ // 5.第五步:其余和组合模式清零 FTM0->COMBINE = 0x00000000; FTM0->POL = 0x00000000; // 6.最后一步:所有参数已经安稳写入后,才真正开启通道输出和时钟源! FTM0->SC = FTM_SC_PWMEN0_MASK | FTM_SC_PWMEN1_MASK | FTM_SC_PS(0) /* PS = 0 (不分频) */ | FTM_SC_CLKS(1); /* CLKS = 1 (最后启动成分) */ } void FTM0_CH1_PWM_init(void) { /** * FTM0,PWM模式下的通道1: * ================================================== */ FTM0->CONTROLS[1].CnSC = FTM_CnSC_MSB_MASK |FTM_CnSC_ELSB_MASK;  /* FTM0 通道 1:边沿对齐 PWM,低真实脉冲 */ /* CHIE(通道中断赋值)= 0(默认值)*/ /* MSB:MSA(通道模式选择)=0b10,边沿对齐 PWM */ /* ELSB:ELSA(通道边缘/电平选择)=0b10,低电平为真 */   FTM0->CONTROLS[1].CnV = 46875; /* FTM0 通道 1 比较值(~75% 占空比) */ }
記事全体を表示
NCF3321AHF 数据手册 需要NCF3321AHF器件的数据手册。 Re: NCF3321AHF datasheet 你好, 您请求的文件属于机密文件,受保密协议 (NDA) 约束,仅可通过安全文件访问。请参考以下指南访问安全文件: https://www.nxp.com/docs/en/user-guide/nxp-secure-access-rights-registration.pdf 如果您还有其他问题,请告诉我。 此致, 阿隆德拉
記事全体を表示
LPC55S66 闪存控制器 READ_SINGLE_WORD 初始化和 ECC 处理,频率为 96 MHz 我正在为 LPC55S66JBD64 开发固件,需要可靠地读取内部闪存,包括可能包含无效 ECC 信息的已擦除或部分编程的页面。 该应用程序将配置数据存储在两个冗余闪存区域中,具有 CRC 验证和断电恢复功能。启动时,它必须确定哪个副本有效,同时避免在读取已擦除或损坏的闪存时发生 HardFault。 硬件识别: MCU:LPC55S66JBD64 设备 ID0:0x501022C2 DIEID:0x000426B1 启动 ROM 版本:4.3.0 ROM Flash API 版本:1.0.0 SDK:SDK_2.x_LPC55S66版本 26.06.00 FLASHIAP 驱动程序:2.1.5 背景: 我首先调查了 SDK 的FLASH_Read()函数。对于启动 ROM 主版本 4,驱动程序选择了硬编码地址0x130043A3 。 然而,使用 GDB 检查 ROM 后发现,该地址指向另一个例程的中间部分,位于其堆栈初始化之后。因此,在确认该函数与 ROM 4.3.0 兼容之前,我不太愿意调用该函数。 随后我找到了 NXP 的示例项目lpcxpresso55s69_led_blinky_memoryread.zip ,该项目演示了如何通过控制器的READ_SINGLE_WORD命令读取闪存,而不是使用 ROM FLASH_Read()函数。 我更倾向于使用这种有文档记录的基于控制器的方法。 我的问题: 当运行频率为 96 MHz 时,在发出闪存控制器的READ_SINGLE_WORD 、 BLANK_CHECK和REPORT_ECC命令之前,需要进行哪些初始化和时序配置? 控制器RESET后的自动初始化功能是否可靠,还是必须通过软件显式配置额外的定时或微调设置? 如果READ_SINGLE_WORD命令执行失败,支持的恢复程序是什么?系统RESET是否足够,还是需要控制器特定的RESET或中止序列? NXP 是否有官方示例展示 LPC55S66 对已擦除或 ECC 损坏的闪存页的稳健处理? 或者,NXP能否确认SDK的FLASH_Read() ROM地址0x130043A3对于启动ROM 4.3.0是否有效? 我已审阅了 UM11126、AN12949、FLASHIAP SDK 驱动程序和 LPC55S69 内存读取演示。该演示阐明了READ命令序列,但似乎没有解决超时恢复或精确初始化要求。 任何澄清或对已支持的实现方式的参考都将不胜感激。 谢谢! Re: LPC55S66 Flash Controller READ_SINGLE_WORD Initialization and ECC Handling at 96 MHz 你好@ICE 根据您的要求,我建议参考 AN12327。 https://www.nxp.com.cn/docs/en/application-note/AN12327.pdf   本应用笔记演示了一种双映像辅助引导加载程序,该程序在启动期间同样检查多个 Flash 区域,并确定存储的映像是否有效。它使用 CRC32、版本信息和图像标记/标头来验证图像完整性。   参考此应用程序可以帮助节省开发时间。   谢谢!   BR 爱丽丝 Re: LPC55S66 Flash Controller READ_SINGLE_WORD Initialization and ECC Handling at 96 MHz 感谢您推荐 AN12327。我查看了应用笔记及其相关源代码。 该示例证实,使用 READ_SINGLE_WORD 的基于控制器的读取可以避免与擦除的闪存相关的 AHB HardFault 问题。 我还发现,MCUXpresso 示例在 96 MHz 运行时将 SET_READ_MODE 配置为 8。 我还有三个问题: 时序:对于 96 MHz 的 LPC55S66JBD64,使用 DATAW0 = 0x00000008 配置 SET_READ_MODE 是否正确,还是需要其他字段或调整值? 初始化:RESET 后,我可以依赖闪存控制器的自动初始化和 TRIM 加载吗?还是在使用 READ_SINGLE_WORD 和 BLANK_CHECK 之前,我必须调用 ROM FLASH_Init 函数? 超时恢复:如果闪存控制器命令未能设置 DONE 状态,或者控制器寄存器访问停滞,建议的恢复步骤是什么?系统 RESET 是否足够? 我的硬件报告显示: 设备 ID0:0x501022C2 DIEID:0x000426B1 启动 ROM:4.3.0 Flash API 版本:1.0.0 我特别想确保从已擦除或部分编程的配置闪存中启动读取操作是安全的。 谢谢!
記事全体を表示
NCF3321AHF datasheet need datasheet for NCF3321AHF part. Re: NCF3321AHF datasheet Hello,  The document you are asking for is confidential, under NDA and is available through Secured Files only, use the following guide to gain access to secured files: https://www.nxp.com/docs/en/user-guide/nxp-secure-access-rights-registration.pdf Please let me know if you have further issues Best regards,  Alondra
記事全体を表示
i.mx93 DMA to GPIO Get DBE I have some firmware running on the m33 of an i.MX93 that is being loaded via remoteproc from linux. I am attempting to setup eDMA4 channel 0 to transfer data from a variable to GPIO1 port 6 but when I initiate the transfer the dma gets a Data Bus Error. Earlier I was using a FlexIO1 pin and that worked fine but for some reason when using GPIO1 pin it always seems to have an issue. Does anyone have any ideas? Re: i.mx93 DMA to GPIO Get DBE Looking at imx-atf in my yocto build, specifically the mbc configurations for the AONMIX and WAKEUPMIX, I believe the eDMAs are not configured to have write access to the GPIOs. Gonna try to see if modifying this will give the eDMAs access. Can anyone confirm this? Re: i.mx93 DMA to GPIO Get DBE I think I figured it out. I added a patch to the imx93 trdc_config.h that adds the following lines: This gets added to struct trdc_mbc_config trdc_a_mbc: { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO1 for M33 DID2 */ This gets added to struct trdc_mbc_config trdc_w_mbc: { 0, 7, 1, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO2_In for edma DID2 */ { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO3 for emda DID2 */ { 1, 7, 3, MBC_BLK_ALL, 0, false }, /* MBC1 GPIO4 for edma DID2 */ Now the eDMA can transfer data to the GPIO registers. Re: i.mx93 DMA to GPIO Get DBE Stared at the manual a little bit and made sure the privilege and security flags matched up between the DMA channel and GPIO. Following page 1716 of the TRM, I set PCNS to 0xFFFFFFFF and left PCNP alone for the GPIO. Meanwhile, in the DMA I have the channel's SBR PAL set to 1 and SEC set to 0. Still getting a DBE error though.
記事全体を表示
NCF3321AHFデータシート NCF3321AHF部品のデータシートが必要です。 Re: NCF3321AHF datasheet こんにちは、 ご依頼の文書は機密であり、NDAの下でSecured Filesを通じてのみ利用可能です。以下のガイドをご利用ください。Secure Filesへのアクセスは以下のガイドをご利用ください: https://www.nxp.com/docs/en/user-guide/nxp-secure-access-rights-registration.pdf 他に問題があればお知らせください よろしくお願いします、 アロンドラ
記事全体を表示
i.mx93 DMA 到 GPIO 获取 DBE 我在 i.MX93 的 m33 上运行了一些固件,这些固件是通过 linux 的 remoteproc 加载的。我尝试设置 eDMA4 通道 0 将数据从变量传输到 GPIO1 端口 6,但当我启动传输时,DMA 出现数据总线错误。之前我用的是 FlexIO1 引脚,一切正常,但不知为何,用 GPIO1 引脚时总是会出现问题。有人有什么想法吗? Re: i.mx93 DMA to GPIO Get DBE 我仔细看了看手册,确保 DMA 通道和 GPIO 之间的权限和网络安全标志匹配。按照 TRM 第 1716 页的说明,我将 PCNS 设置为 0xFFFFFFFF,而 GPIO 的 PCNP 保持不变。同时,我在DMA中将频道的SBR PAL设置为1,高效密码学标准\(SEC\)设置为0。但仍然出现DBE错误。 Re: i.mx93 DMA to GPIO Get DBE 我想我明白了。我向 imx93 trdc_config.h 文件添加了一个补丁。这会添加以下几行: 这会添加到结构体 trdc_mbc_config trdc_a_mbc: { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* M33 DID2 的 MBC0 GPIO1 */ 这会添加到结构体 trdc_mbc_config trdc_w_mbc 中: { 0, 7, 1, MBC_BLK_ALL, 0, false }, /* MBC0 GPIO2_In 用于 edma DID2 */ { 0, 7, 2, MBC_BLK_ALL, 0, false }, /* emda DID2 的 MBC0 GPIO3 */ { 1, 7, 3, MBC_BLK_ALL, 0, false }, /* MBC1 GPIO4 用于 edma DID2 */ 现在 eDMA 可以将数据传输到 GPIO 寄存器。 Re: i.mx93 DMA to GPIO Get DBE 查看我的 Yocto 版本中的 imx-atf,特别是 AONMIX 和 WAKEUPMIX 的 mbc 配置,我认为 eDMA 没有配置为对 GPIO 具有写入访问权限。我打算试试修改这个设置是否能让eDMAs获得访问权限。有人能证实这一点吗?
記事全体を表示
S32N55 A/B スワップ OTA — パッシブバンク資産(PaCo/Codef/SMR)インストールタイミングおよびランタイムフラッシュアクセス 環境: S32N55、FSS FW 1.19.0 (D2604)、GrayVIP 1.0.25、HSE2、セキュアブート有効。 目標:OTA(Over-The-Air)によるA/Bスワップを実装する。アクティブバンクAはAHB 0x10000000、パッシブバンクBは0x14000000(フラッシュオフセット0x04000000)にあります。実行中のFSS(アクティブバンクA)にパッシブバンクのPaCo/Codef/SMRをインストールさせ、その後IVTを交換してバンクBに再起動させようとしています。 私が発見したこと: 実行中のFSSは0x14000000のパッシブバンクを読み取ることができません。T32(XSPIは4バイト読み取り、cmd 0x13設定)では0x14000000のデータが正しく読み込まれますが、実行時にはFSS/QSPIはOPI読み取りを3バイトアドレス指定(約16MBの範囲)で使用するため、0x14xxxxxxバスへのアクセスは困難です。バンクAが機能するのは、使用されているデータがすべて16MB未満に収まっているためです。 ランタイムアセットの再インストールを強制すると、ボードがハードフォルト/リセットされます。FSSアセットインストール機能(InstallPaCo / InstallSMRs / InstallCodefs / AuthenProcess)の「SYS-IMAGEは既にロードされています」ゲートをバイパスして実行時にインストールを再実行すると、アクティブな(読み取り可能な)バンクをターゲットにした場合でも、ボードがリセットされます。これは、アセットのインストールは、コホート(CRS/RTU)が既に実行されている間は実行されるべきではないことを示唆しています。 質問: FSSアセットのインストール(HSE経由のPaCo/Codef/SMR)は、ブート/プロビジョニングフェーズ(コホートがリリースされる前)のみサポートされ、CRS/RTUが実行されている実行時にはサポートされないのでしょうか? A/BスワップOTAの場合、想定されるアクティベーション手順は何ですか?パッシブバンクの書き込みとIVTの交換後、パッシブバンクのCodef(イメージソースアドレスはバンクによって異なる)、SMR、およびPaCoはいつ、どのようにインストール/検証されますか? 実行中のFSSは実行時にパッシブバンク(0x14000000)にアクセスすることが期待されるのでしょうか(つまり、ランタイムの読み取りパスは4バイトアドレス指定を使うべきか)、それともパッシブバンクは次のブート時にブートROMのみがアクセスするのでしょうか? A/Bスワップにおいて、銀行間でPaCoに違いはありますか?PaCoにはフラッシュレンジアドレス(0x10xxxxxx / 0x11xxxxxx)が含まれていますが、パッシブバンクのPaCoはCodefのように移動が必要なのでしょうか、それとも銀行に依存しないのでしょうか? S32N5 Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc Chenyinさん、早速のお返事ありがとうございます。 私の質問を明確にするために申し上げますが、私は組み込みのSCMIサービスに依存しているわけではありません。私は既に、A/Bバンク切り替えOTAの一環として、独自のランタイムPaCo/CoDefインストールを実装しました。このデザインは銀行に依存しません。実行中の(アクティブ)FSSは実行時にパッシブ銀行の資産をインストールし、IVTのプライマリポインタ(0x10000000 ↔ 0x14000000)を交換してもう一方の銀行に再起動します。この目的のために、既存のFSSインストール状態マシンをそのまま再利用します。 SO、私の本当の疑問は、この方法が現行のFSSで実現可能かどうかです。なぜなら、テストでは特定のポイントで失敗するからです。 うまくいく方法:アクティブなバンクをターゲットにインストールすると、全パスが完了します(PaCo/Owner/Keys、SMRのインストールはOK、FSS FW SMR0/AuthenProcess OK;codef-installとValidateBootConfigは公開されたSYS-IMGの下でNOT_ALLOWED返すので、それらは次のブートのBootCfgVerifyに任せています)。BTMはその後、PublishSysImageとEnableGlobalSecureBootを実行します。 何が失敗するか: インストールがパッシブバンクをターゲットにする場合、FSS が AHB 0x14013000 にあるパッシブバンク PaCo を最初に参照解除したときに、IndexSourcesStep でバスフォルトが発生します。アクティブなバンクアドレス(0x10xxxxxx)は正常に読み取れます。 原因を突き止めたところ、AHBウィンドウやアドレス指定の問題ではないことがわかりました。MemAcc_Init()(Mem_43_EXFLSを初期化するMemPerformDeviceConfiguration=TRUE)はFss_Firmware_InstallPacoCodefs()より先に動作するため、インストール時点でSFA1Dはすでに0x18000000(128MB)済みで、AHB読み込みが有効で、読み込みLUTは4バイトのOPI-DDRです。T32経由でSFA1D = 0x18000000を手動で確認した後でも、0x14013000は依然としてハードバスエラーを返します(SFPエラーペイロードではありません)。これはXSPIセキュアフラッシュ保護(SFP)に関係しています。パッシブ領域をカバーするFRADはアクセスするマスターのドメインRWを付与していません。FRADカバレッジをフルフラッシュに拡張し、Md4Acp = RWに設定したところ、アクセスの動作が変わりました。 私の質問: 現在のFSS(セキュアブート有効)では、上記のようにインストール関数を再利用することで、パッシブバンクへのPaCo/CoDefのランタイムインストールがアーキテクチャ的にサポートされていますか?それとも、リファレンスOTAが利用可能になる前に注意すべき重大な障害がありますか? この暫定的なアプローチ(例えば、対象バンクにFSS FW SMR0(AuthenProcess)をインストールし、CoDef/boot-configのチェックを次回のブート時のBootCfgVerifyに延期するなど)に関して、何か注意点はありますか? ありがとう、 エディ Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、 @EddiePark 投稿ありがとうございます。またサポートできて嬉しいです。 現在のFSSは、実行時にPaCoとCoDefをインストールするためのSCMIサービスを提供していません。 現在、S32NのリファレンスOTA実装はまだ開発中です。可能であれば、利用可能になった時点でそれを直接参照して独自のOTAプロセスを実装することをお勧めします。 BR チェイン   Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは。体系的なデバッグを行った結果、より詳細な情報をお伝えします。 セットアップ: S32N55、FSS FW 1.19.0、セキュアブート。A/B銀行スワップOTA。実行中のFSS(M7)は、実行時にパッシブバンクのPaCo/CoDefをインストールします(FSSインストールステートマシンを再利用した独自の実装)。パッシブバンクベース = 0x14000000。 障害: Fss_Firmware_IndexSourcesStep で、FSS-M7 はパッシブバンク PaCo の 0x14013000 を直接 AHB メモリマップド リード (CPU デリファレンス) し、正確な BusFault が発生します。 CFSR = 0x00008200 → BFSR: PRECISERR=1、BFARVALID=1、MMFSR=0 BFAR = 0x14013000 我々が(証拠に基づいて)除外した事項: MPU:原因ではない。MMFSR=0。MPU領域2 = 外部フラッシュ0x10000000–0x1FFFFFFF、通常のキャッシュ可能なWB、読み取り専用 → 0x14013000をカバー、読み取り許可。 SFP:原因ではない。MemXspiSfpEnable = FALSE に設定して再構築しても、同じエラーが発生します。(FRADは、いずれにせよ該当ドメインにその領域を付与する。) AHB ウィンドウ: SFA1D = 0x18000000 (128 MB) → バンク B はウィンドウ内にあります。 重要な観察結果:これは銀行固有の問題ではなく、「新規データかキャッシュデータか」の問題です。 読み取り/フォルト境界は正確に0x13780000です(読み取り回数0x1377FFFF、フォルト回数0x13780000)。これはファームウェアイメージ領域(FSS/CRS/HSE/RTU/Sys_Img)の終わりであり、データ領域(IDS…)の開始です。ベースから56MBであり、2のべき乗ではなくハードウェアサイズの境界ではありません。これはFSSがブート時に読み取ってキャッシュする範囲(外部フラッシュ領域はキャッシュ可能)に正確に相当します。 → ブート中にFSSが読み取ったもの(現在はDキャッシュに格納されている)はすべて正常に読み戻されます。FRESH (キャッシュされていない) の直接 AHB 読み取りフォルトを必要とするアドレス (0x14000000 未満のアドレスを含む) (例:0x13780000はアクティブな64MBにあり、障害も発生しています。SO、本当の問題は、外部フラッシュの新規でキャッシュされていない直接のAHBメモリマップ読み取りが実行時に失敗することです。 MemPerformDeviceConfiguration テスト: MemPerformDeviceConfiguration = TRUE (デバイス初期化実行 → 8 進 DDR): フラッシュ書き込みは機能し (MemAcc INDIRECT_STATIC を介した間接 / IP コマンド)、キャッシュ読み取りは機能し、新しい AHB 読み取りは FAULT です。 MemPerformDeviceConfiguration = FALSE (デバイス初期化をスキップ): 読み取り結果はすべて 0x00 を返します (デバイスが 8 進 DDR モードのままではありません)。 SO、デバイスを正しく8進制DDRに設定した場合、書き込みは成功しますが、新しいメモリマップのREADS障害が発生します。8進数DDRの外部DQS読み出しはデバイスのDQSストローブを使用してサンプリングされますが、書き込みはサンプリングされないため、これは読み出しパス(DQS/DLL/ダミー/タイミング)の問題を示しています。 設定コンテキスト: XSPIコントローラの設定はFSSのみです(Xspi_Ip_paXspiUnitCfg、MemPerformDeviceConfiguration = TRUE、octal-DDR、外部DQS、DLLバイパス)。CRSとRTUはコントローラ設定(XspiUnit = NULL、DeviceConfiguration = FALSE)をスキップし、ブート設定を引き継ぎます。 qspi パラメータ (xspi_S28H_octal_ddr_200Mhz_dll_bypass_ext_dqs.bin) は、生成された VIP/IVT ブロブに含まれています。 質問: 現在のFSSにおいて、FSS-M7は、実行時(MemAcc_Init後)に、任意のアドレス/キャッシュされていないアドレスで、外部XSPIフラッシュのAHBメモリマップド読み出しを直接実行できると予想されますか?それとも、実行時のフラッシュ読み取りは間接的な(IPコマンドによる)Mem/MemAccパスを経由する必要があるのでしょうか? SFA1D=128MB、SFP無効、MPU ROが領域をカバーしている場合、キャッシュされていないアドレスに対して直接AHB読み取りを行うと正確なBusFaultが返されるのに、書き込み(間接)とキャッシュされた読み取りは成功するのはなぜでしょうか? FSSのMemAcc_Initコントローラの再構成が、起動時のqspi-paramのXSPI読み取り設定と衝突し、メモリマップされた読み取りが途切れてしまうのでしょうか?FSSはコントローラの再構成(CRS/RTUのように)を省略し、起動時のqspi-param設定を継承すべきでしょうか?もしそうなら、フラッシュ書き込みのサポートをどのように維持すればよいのでしょうか? S28HS01GTの200MHzにおけるオクタルDDR/外部DQS/DLLバイパスの場合、信頼性の高いメモリマップド読み出しを行うには、どのようなDLL/DQS/ダミーサイクル設定が必要ですか?(FSS読み取り設定が、正常に動作するブート時のqspi-param設定と異なっている可能性があると考えています。) ありがとう、 エディ Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、 @EddiePark 休暇のため返信が遅くなり申し訳ありません。 以下の設定を変更されたかどうか教えていただけますか?TG0のアクセス制御ポリシー→すべてのインスタンスをXSPI_IP_SFP_ACP_RWに変更し、FSS経由でフラッシュアドレスにアクセスしても問題が続くかテストします。 BR チェイン Re: S32N55 A/B swap OTA — passive-bank asset (PaCo/Codef/SMR) install timing & runtime flash acc こんにちは、チェンインさん 全く問題ありません。ご連絡いただきありがとうございます。 はい、関連機能は実装しており、FSSを使ったパッシブバンクアクセスも動作しています。パッシブバンク(バンクB)のPaCoおよびSMRのインストールは、実行時に正常に完了しました。 PaCo: HSE は HSE_SRV_RSP_ALREADY_DONE (0xDADAEAEA) を返し、これを成功とみなします。 SMR: バンクBのソースアドレス(0x14280000)を使用して正しくインストールされ、ret=0。 残りの疑問は、実行時におけるCodefのインストールについてです。 セキュアブートが有効でSYS-IMAGEが公開されている場合、ランタイムSherpa_Cdd_InstallCodef呼び出し(FSSから発行され、通常動作中にRTU3 SCMIを介してトリガーされる)は、すべてのコホートに対してHSE_SRV_RSP_NOT_ALLOWED(0xAA55A21C)を返します。ログ記録によってこれを確認しました(すべてのコホートでinstRet=1)。 私たちの理解では、Secure Boot ONの下で公開されたSYS-IMAGEがCodefを封印するため、実行時のCodefインストールは許可されず、CodefのCHECK-INは次のブートのhseBootCfgVerifySrv_t段階(IVTスワップ後)に延期される必要があります。一方、SMRは実行時に許可される。 これが予想される動作/設計上の動作かどうか確認していただけますか?つまり: セキュアブートが有効になり、SYS-IMAGEが公開された後、ランタイムCodefのインストール(FSS/SCMI経由)はNOT_ALLOWEDを返すことが想定されていますか? A/Bスワップパッシブバンクアップデートにおいて、Codef CHECK-INを次回のブート検証(hseBootCfgVerifySrv_t)まで延期することは、正しい/意図されたアプローチでしょうか? アクセス制御ポリシー設定(TG0 → XSPI_IP_SFP_ACP_RW)についてですが、ご提案通り現在の構成を確認し、フラッシュアクセスをテストし、報告いたします。 ありがとう、 エディ・パーク
記事全体を表示