This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM620-Q1:在 MCU +SDK 中未找到驱动程序/qspi.h

Guru**** 2480505 points
Other Parts Discussed in Thread: SYSCONFIG

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1529442/am620-q1-drivers-qspi-h-not-found-in-mcu-sdk

器件型号:AM620-Q1
主题:SysConfig 中讨论的其他器件

工具/软件:

您好、

    我们正在尝试从 MCU SDK 使用 SBL 引导来尽早引导 M4F 应用程序。 我们有一个基于 QSPI 的 Winbond Norflash。 我发现、syscfg 中没有直接支持将其从 OSPI 更改为 QSPI。 我尝试通过更改 soc cfg 来更改它、以选择串行 NOR 闪存 v1。 但是、我收到一个编译错误、指出找不到 qspi.h。  

SDK 中是否提供支持 QSPI 的 SBL 闪存? 如果没有、请引导我更正来源。

我使用的是 MCU +SDK 版本 10.00

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果这对您有帮助、请告诉我: e2e.ti.com/.../faq-mcu-plus-sdk-am62x-how-to-interface-qspi-flash-part

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    此外、您无需担心 qspi.h 文件。

    source/drivers/ospi/V0/...下的文件 和源/板/闪存/ospi/... 应足以满足 SPI、QSPI 或 OSPI NOR/NAND 闪存器件的需求。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。 我看到了通过运行 ospi 闪存诊断来获取 NOR 闪存配置的线程。 我们的电路板具有 JTAG 接口、我们使用 Lauterbach TRACE 32。  生成的输出文件是否可以从 TRACE 32 软件运行?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    目前对于 AM62x、不支持通过 JTAG 进行编程。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你好、Vaibhav、

        如何知道使用 phy 或 Tap 的模式? 我看到在 SysConfig 中添加了 flash_spansionquirk 函数。 是否仍然需要这样做? 我使用的是 Winbond w25q128jv。 您是否有为此部分的任何 sysfs 闪存配置示例?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    flash_spansionquirk

    不需要、因为该函数用于解决具有混合模式与均匀模式的闪存部分。 如果您的闪存没有这些模式、那么您可以删除此 quirk 功能、否则我可以帮助您设置 quirk 功能、以防您的闪存器件存在这些模式。

    要了解混合模式与统一模式、请在此处参阅我的常见问题解答: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1492859/faq-am62x-am62px-am62d-q1-am64x-am243x-4kb-sector-erase-fails/5734123#5734123

    除此之外、

    我如何知道哪种模式可以使用 phy 或 Tap?

    我建议您通读: https://www.ti.com/lit/ds/symlink/am623.pdf#page=202

    如果您有同样的疑问或需要进一步澄清、请在阅读后告知我。 我会帮助您解决这个问题。

    您是否有此部分的任何 sysfs 闪存配置示例

    我目前没有用于此闪存的 SysConfig 闪存配置。 但我有  W25Q256JV 的配置。 请咨询闪存供应商、了解您使用 w25q128jv 的 W25Q256JV 有多相似 。 如果它们在配置术语上相似、我可以共享 W25Q256JV 闪存的配置。

    注意: 我有 W25Q256JV 闪存的 1S-1S-4S 协议设置。

    期待您的答复。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这将有所帮助。 请共享您的配置。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    当然、您可以:

    /**
     * Write custom configuration values to the imported modules.
     */
     flash1.$name                           = "CONFIG_FLASH0";
     flash1.device                          = "CUSTOM_FLASH";
     flash1.skipHwInit                      = true;
     flash1.fname                           = "W25Q256";
     flash1.protocol                        = "1s_1s_4s";
     flash1.flashSize                       = 33554432;
     flash1.flashManfId                     = "0xEF";
     flash1.flashBlockSize                  = 65536;
     flash1.cmdBlockErase3B                 = "0xD8";
     flash1.cmdBlockErase4B                 = "0xD8";
     flash1.cmdSectorErase3B                = "0x20";
     flash1.cmdSectorErase4B                = "0x20";
     flash1.cmdRd                           = "0x6C";
     flash1.cmdWr                           = "0x32";
     flash1.dummyClksCmd                    = 0;
     flash1.dummyClksRd                     = 8;
     flash1.flashQeType                     = "4";
     flash1.proto_isAddrReg                 = false;
     flash1.dummy_isAddrReg                 = false;
     flash1.strDtr_isAddrReg                = false;
     flash1.resetType                       = "0x30";
     flash1.cmdExtType                      = "NONE";
     flash1.xspiWipRdCmd                    = "0x00";
     flash1.xspiWipReg                      = "0x00000000";
     flash1.idNumBytes                      = 5;
     flash1.dummyId8                        = 0;
     flash1.fourByteEnableSeq               = "0xA5";
     flash1.flashDeviceBusyTimeout          = 80000000;
     flash1.flashPageProgTimeout            = 704;
     flash1.flashDeviceId                   = "0x7019";
     flash1.peripheralDriver.$name          = "CONFIG_OSPI0";
     flash1.peripheralDriver.inputClkFreq   = 200000000;
     flash1.peripheralDriver.dmaEnable      = true;
     flash1.peripheralDriver.baudRateDiv    = 4;
     flash1.peripheralDriver.OSPI.CLK.rx    = true;
     flash1.peripheralDriver.OSPI.DQS.$used = false;
     flash1.peripheralDriver.OSPI.D7.rx     = false;
     flash1.peripheralDriver.OSPI.D7.$used  = false;
     flash1.peripheralDriver.OSPI.D6.rx     = false;
     flash1.peripheralDriver.OSPI.D6.$used  = false;
     flash1.peripheralDriver.OSPI.D5.rx     = false;
     flash1.peripheralDriver.OSPI.D5.$used  = false;
     flash1.peripheralDriver.OSPI.D4.rx     = false;
     flash1.peripheralDriver.OSPI.D4.$used  = false;

    其他值的其余部分将为默认值、更改将是上述参数。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    在驱动程序打开之前
    错误:flash_norOspiSetAddressBytes:317:将地址字节设置为 1 会启用 4 字节 1
    错误:FLASH_norOspiCmdRead:129:cmd 1136811122 cmdaddr 159 databuf▒PCT datalen 3.
    错误:flash_norOspiReadId:854:man id EF devid 7018

    进行更改后,我可以读取开发 ID 和制造 ID 但是、MCU 应用映像的 X509 标头无法正确读取。 我有 hs-FS 器件、并按照 SBL 引导指南的说明、将 ipc_rpmsg 示例 hs_fs.tiimage 刷写到 0x100000 偏移量和 sbl2 刷写到 0x80000 偏移量。


    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:数据缓冲区 0xF3 0x7F 0xC1 0x43 长度 4
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0
    错误:FLASH_norOspiRead:903:数据缓冲区 0xE9 0x2C 0x37 0x11 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内

    当我检查写入存储器的数据时、应该是 30 82 06 53

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。


    驱动程序打开完成
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:bootloader_parseMultiCoreAppImage:709:在解析多核应用映像内部。 引导介质:29!
    错误:bootloader_verifyMulticoreImage:562:内部验证内核映像引导介质:–1341718526!!
    错误:FLASH_imgRead:67:在闪存图像读取中
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 4
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x43C2CFD4
    错误:FLASH_norOspiRead:903:数据缓冲区 0xE9 0x2C 0x37 0x11 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:590:x509 标头▒、7`▒▒C▒▒C
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换

    现在我已经收窄了。 使用映射到 SPI NOR 的存储器、通过 OSPI 直接读取来读取 x509 标头。 但我怀疑这不是发生的。 我缺少任何设置吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    感谢详细的日志,我喜欢你描述问题的方式在比特和碎片.

    进行更改后、我可以读取开发 ID 和制造 ID。

    请告诉我您进行了哪些更改、以便您看到制造商和器件 ID 被正确读取。

    是闪存配置更改还是驱动器级别更改。

    现在我已经收窄了。 使用映射到 SPI NOR 的存储器、通过 OSPI 直接读取来读取 x509 标头。 但我怀疑这不是发生的。 我是否缺少任何设置。

    首先、我们会检查 MPU ARMv7 配置。 此部分位于应用程序的 SysConfig 下。 您能否检查应用程序中是否定义了区域 0x60000000、如果是、您能否共享设置的屏幕截图。

    期待您的答复。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我正在使用 mcu_plus_sdk_am62x_10_00_00_14/和 /sbl_ospi_linux_multistage/sbl_ospi_linux_stage1/示例。 下面附上了对 example.syscfg 所做的更改。 将分频器从 4 增加到 8 后、可以读取 DEV ID 和制造商 ID。

    0x600000000 已在 syscfg 中配置。
    MPU_armv710.$name =“CONFIG_MPU_REGION9";“;
    mpu_armv710.allowExecute = false;
    mpu_armv710.size = 9;
    mpu_armv710.attributes =“Device";“;
    mpu_armv710.baseAddr = 0x2800000;

    MPU_armv711.$name =“FSS0_DAT_REG1";“;
    mpu_armv711.baseAddr = 0x60000000;
    mpu_armv711.size = 27;
    mpu_armv711.attributes =“Device";“;
    mpu_armv711.allowExecute = false;

    --/examples/drivers/boot/sbl_ospi_linux_multist/sbl_ospi_linux_stage1/am62x-sk/r5fss0-0_nortos/example.syscfg
    ++ b/examples/drivers/boot/sbl_ospi_linux_multisting/sbl_ospi_linux_stage1/am62x-sk/r5fss0-0_nortos/example.syscfg
    @@–2、7 + 2、7 @@
    *这些参数是在生成此文件时使用的。 它们将自动应用于后续载荷
    *通过 GUI 或 CLI 运行带有“--help"的“的 CLI 以获取有关如何覆盖这些参数的更多信息。
    *@cliArgs --device “AM62x"--package“--package “ALW"--part"“--part"默认“默认“--context “r5fss0-0"--product“--product “MCU_PLUS_SDK_AM62x@10.00.00
    -*@版本{“tool":“:“1.19.0+3426"}“}
    +*@版本{“tool":“:“1.20.0+3587"}“}
    */

    /**
    @@–16、10 + 16、10 @@ const bootloader2 = bootloader.addInstance ();
    const DDR = scripting.AddModule(“/drivers/ddr/ddr、{}、false);
    const DDR1 = DDR.addInstance ();
    const GTC = scripting.AddModule(“/drivers/gtc/gtc “);
    .const QoS = scripting.AddModule(“/drivers/qos/qos “、{}、false);
    const qos1 = qos.addInstance ();
    const MCU_BIST = scripting.AddModule(“/drivers/mcu_bist/mcu_bist、{}、false);
    const MCU_bist1 = MCU_BIST.addInstance ();
    +const QoS = scripting.AddModule(“/drivers/qos/qos “、{}、false);
    +const qos1 = QoS.addInstance ();
    const clock = scripting.AddModule(“/kernel/dpl/clock);
    const debug_log = scripting.AddModule(“/kernel/dpl/debug_log);
    const mpu_armv7 = scripting.AddModule(“/kernel/dpl/mpu_armv7、{}、false);
    @@–51、15 + 51、49 @@ flash1.$name =“CONFIG_FLASH0";“;
    bootloader1.flashDriver = flash1;
    bootloader2.flashDriver = flash1;
    flash1.serialFlashDriver.$name =“board_flash_serialFlash_serialflash0";“;
    + flash1.serialFlashDriver.flashSize = 16777216;
    flash1.serialFlashDriver.flashManfId =“0xEF";“;
    +flash1.serialFlashDriver.dummy_isAddrReg =错误;
    flash1.serialFlashDriver.dummy_cfgReg =“0x00";“;
    flash1.serialFlashDriver.dummy_cmdRegRd =“0x00";“;
    flash1.serialFlashDriver.dummy_cmdRegWr =“0x00";“;
    flash1.serialFlashDriver.dummy_mask =“0x00";“;
    flash1.serialFlashDriver.dummy_bitP = 0;
    +flash1.serialFlashDriver.proto_isAddrReg =错误;
    flash1.serialFlashDriver.proto_cfgReg =“0x00";“;
    flash1.serialFlashDriver.proto_cmdRegRd =“0x00";“;
    flash1.serialFlashDriver.proto_cmdRegWr =“0x00";“;
    flash1.serialFlashDriver.proto_mask =“0x00";“;
    flash1.serialFlashDriver.proto_bitP = 0;
    +flash1.serialFlashDriver.fname =“W25Q128JVFAM";“;
    flash1.serialFlashDriver.flashDeviceId =“0x7018";“;
    +flash1.serialFlashDriver.xspiWipRdCmd =“0x05";“;
    flash1.serialFlashDriver.quirks =“";“;
    +flash1.serialFlashDriver.cmdBlockErase3B =“0xD8";“;
    +flash1.serialFlashDriver.cmdBlockErase4B =“0xD8";“;
    flash1.serialFlashDriver.cmdSectorErase3B =“0x20";“;
    flash1.serialFlashDriver.cmdSectorErase4B =“0x20";“;
    flash1.serialFlashDriver.flashBlockSize = 65536;
    flash1.serialFlashDriver.protocol =“1s_1s_4s";“;
    +flash1.serialFlashDriver.cmdRd =“0x6B";“;
    +flash1.serialFlashDriver.cmdWr =“0x32";“;
    flash1.serialFlashDriver.dummyClksRd = 8;
    flash1.serialFlashDriver.peripheralDriver.$name =“CONFIG_OSPI0";“;
    flash1.serialFlashDriver.peripheralDriver.dmaEnable = true;
    -flash1.serialFlashDriver.peripheralDriver.phyEnable = true;
    -flash1.serialFlashDriver.peripheralDriver.fastBootTuning =“true";“;
    flash1.serialFlashDriver.peripheralDriver.baudRateDiv = 8;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.DQS.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D7.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D6.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D5.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D4.$used =错误;

    -ddr1.$name =“config_redds";</s>“
    +DDR1.$name =“CONFIG_DDR0";“;
    +DDR1.ddrConfigIncludeFileName =“drivers/DDR/V0/DRAM/am62x/board_lpddrReginit.h"<xmt-block0>“ soc;

    MCU_bist1.$name =“CONFIG_MCU_BIST0";“;

    +qos1.$name =“config_QOS0";“;
    +
    const UDMA = scripting.AddModule(“/drivers/udma/udma、{}、false);
    const udma1 = UDMA.addInstance({},false);
    udma1.$name =“CONFIG_UDMA0";“;
    @@–72、8 +106、6 @@ UDMA_blkcopy_channel1.$name =“CONFIG_UDMA_BLKC
    bootloader1.udmaBlkCopyChannel = UDMA_blkcopy_channel1;
    flash1.serialFlashDriver.peripheralDriver.udmaBlkCopyChannel = UDMA_blkcopy_channel1;

    -qos1.$name =“config_QOS0";“;
    -
    clock.instance =“Timer1";“;

    debug_log.enableUartLog = true;
    @@–152、11 +184、6 @@ MPU_armv711.allowExecute = false;
    flash1.serialFlashDriver.peripheralDriver.OSPI.$suggestSolution =“OSPI0";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.CLK.$suggestSolution =“OSPI0_CLK";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.CSn0.$suggestSolution =“OSPI0_CSn0";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.DQS.$suggestSolution =“OSPI0_DQS";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D7.$suggestSolution =“OSPI0_D7";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D6.$suggestSolution =“OSPI0_D6";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D5.$suggestSolution =“OSPI0_D5";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D4.$suggestSolution =“OSPI0_D4";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D3.$suggestSolution =“OSPI0_D3";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D2.$suggestSolution =“OSPI0_D2";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D1.$suggestSolution =“OSPI0_D1";“;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    [报价 userid=“600676" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1529442/am620-q1-drivers-qspi-h-not-found-in-mcu-sdk/5896179 #5896179“]

    0x600000000 已在 syscfg 中配置。
    MPU_armv710.$name =“CONFIG_MPU_REGION9";“;
    mpu_armv710.allowExecute = false;
    mpu_armv710.size = 9;
    mpu_armv710.attributes =“Device";“;
    mpu_armv710.baseAddr = 0x2800000;

    MPU_armv711.$name =“FSS0_DAT_REG1";“;
    mpu_armv711.baseAddr = 0x60000000;
    mpu_armv711.size = 27;
    mpu_armv711.attributes =“Device";“;
    mpu_armv711.allowExecute = false;

    [/报价]

    但不完全理解、0x60000000 的区域是否标记为“缓存“?

    [报价 userid=“600676" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1529442/am620-q1-drivers-qspi-h-not-found-in-mcu-sdk/5896179 #5896179“]

    --/examples/drivers/boot/sbl_ospi_linux_multist/sbl_ospi_linux_stage1/am62x-sk/r5fss0-0_nortos/example.syscfg
    ++ b/examples/drivers/boot/sbl_ospi_linux_multisting/sbl_ospi_linux_stage1/am62x-sk/r5fss0-0_nortos/example.syscfg
    @@–2、7 + 2、7 @@
    *这些参数是在生成此文件时使用的。 它们将自动应用于后续载荷
    *通过 GUI 或 CLI 运行带有“--help"的“的 CLI 以获取有关如何覆盖这些参数的更多信息。
    *@cliArgs --device “AM62x"--package“--package “ALW"--part"“--part"默认“默认“--context “r5fss0-0"--product“--product “MCU_PLUS_SDK_AM62x@10.00.00
    -*@版本{“tool":“:“1.19.0+3426"}“}
    +*@版本{“tool":“:“1.20.0+3587"}“}
    */

    /**
    @@–16、10 + 16、10 @@ const bootloader2 = bootloader.addInstance ();
    const DDR = scripting.AddModule(“/drivers/ddr/ddr、{}、false);
    const DDR1 = DDR.addInstance ();
    const GTC = scripting.AddModule(“/drivers/gtc/gtc “);
    .const QoS = scripting.AddModule(“/drivers/qos/qos “、{}、false);
    const qos1 = qos.addInstance ();
    const MCU_BIST = scripting.AddModule(“/drivers/mcu_bist/mcu_bist、{}、false);
    const MCU_bist1 = MCU_BIST.addInstance ();
    +const QoS = scripting.AddModule(“/drivers/qos/qos “、{}、false);
    +const qos1 = QoS.addInstance ();
    const clock = scripting.AddModule(“/kernel/dpl/clock);
    const debug_log = scripting.AddModule(“/kernel/dpl/debug_log);
    const mpu_armv7 = scripting.AddModule(“/kernel/dpl/mpu_armv7、{}、false);
    @@–51、15 + 51、49 @@ flash1.$name =“CONFIG_FLASH0";“;
    bootloader1.flashDriver = flash1;
    bootloader2.flashDriver = flash1;
    flash1.serialFlashDriver.$name =“board_flash_serialFlash_serialflash0";“;
    + flash1.serialFlashDriver.flashSize = 16777216;
    flash1.serialFlashDriver.flashManfId =“0xEF";“;
    +flash1.serialFlashDriver.dummy_isAddrReg =错误;
    flash1.serialFlashDriver.dummy_cfgReg =“0x00";“;
    flash1.serialFlashDriver.dummy_cmdRegRd =“0x00";“;
    flash1.serialFlashDriver.dummy_cmdRegWr =“0x00";“;
    flash1.serialFlashDriver.dummy_mask =“0x00";“;
    flash1.serialFlashDriver.dummy_bitP = 0;
    +flash1.serialFlashDriver.proto_isAddrReg =错误;
    flash1.serialFlashDriver.proto_cfgReg =“0x00";“;
    flash1.serialFlashDriver.proto_cmdRegRd =“0x00";“;
    flash1.serialFlashDriver.proto_cmdRegWr =“0x00";“;
    flash1.serialFlashDriver.proto_mask =“0x00";“;
    flash1.serialFlashDriver.proto_bitP = 0;
    +flash1.serialFlashDriver.fname =“W25Q128JVFAM";“;
    flash1.serialFlashDriver.flashDeviceId =“0x7018";“;
    +flash1.serialFlashDriver.xspiWipRdCmd =“0x05";“;
    flash1.serialFlashDriver.quirks =“";“;
    +flash1.serialFlashDriver.cmdBlockErase3B =“0xD8";“;
    +flash1.serialFlashDriver.cmdBlockErase4B =“0xD8";“;
    flash1.serialFlashDriver.cmdSectorErase3B =“0x20";“;
    flash1.serialFlashDriver.cmdSectorErase4B =“0x20";“;
    flash1.serialFlashDriver.flashBlockSize = 65536;
    flash1.serialFlashDriver.protocol =“1s_1s_4s";“;
    +flash1.serialFlashDriver.cmdRd =“0x6B";“;
    +flash1.serialFlashDriver.cmdWr =“0x32";“;
    flash1.serialFlashDriver.dummyClksRd = 8;
    flash1.serialFlashDriver.peripheralDriver.$name =“CONFIG_OSPI0";“;
    flash1.serialFlashDriver.peripheralDriver.dmaEnable = true;
    -flash1.serialFlashDriver.peripheralDriver.phyEnable = true;
    -flash1.serialFlashDriver.peripheralDriver.fastBootTuning =“true";“;
    flash1.serialFlashDriver.peripheralDriver.baudRateDiv = 8;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.DQS.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D7.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D6.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D5.$used =错误;
    +flash1.serialFlashDriver.peripheralDriver.OSPI.D4.$used =错误;

    -ddr1.$name =“config_redds";</s>“
    +DDR1.$name =“CONFIG_DDR0";“;
    +DDR1.ddrConfigIncludeFileName =“drivers/DDR/V0/DRAM/am62x/board_lpddrReginit.h"<xmt-block0>“ soc;

    MCU_bist1.$name =“CONFIG_MCU_BIST0";“;

    +qos1.$name =“config_QOS0";“;
    +
    const UDMA = scripting.AddModule(“/drivers/udma/udma、{}、false);
    const udma1 = UDMA.addInstance({},false);
    udma1.$name =“CONFIG_UDMA0";“;
    @@–72、8 +106、6 @@ UDMA_blkcopy_channel1.$name =“CONFIG_UDMA_BLKC
    bootloader1.udmaBlkCopyChannel = UDMA_blkcopy_channel1;
    flash1.serialFlashDriver.peripheralDriver.udmaBlkCopyChannel = UDMA_blkcopy_channel1;

    -qos1.$name =“config_QOS0";“;
    -
    clock.instance =“Timer1";“;

    debug_log.enableUartLog = true;
    @@–152、11 +184、6 @@ MPU_armv711.allowExecute = false;
    flash1.serialFlashDriver.peripheralDriver.OSPI.$suggestSolution =“OSPI0";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.CLK.$suggestSolution =“OSPI0_CLK";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.CSn0.$suggestSolution =“OSPI0_CSn0";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.DQS.$suggestSolution =“OSPI0_DQS";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D7.$suggestSolution =“OSPI0_D7";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D6.$suggestSolution =“OSPI0_D6";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D5.$suggestSolution =“OSPI0_D5";“;
    -flash1.serialFlashDriver.peripheralDriver.OSPI.D4.$suggestSolution =“OSPI0_D4";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D3.$suggestSolution =“OSPI0_D3";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D2.$suggestSolution =“OSPI0_D2";“;
    flash1.serialFlashDriver.peripheralDriver.OSPI.D1.$suggestSolution =“OSPI0_D1";“;

    [/报价]

    这是您发送的 SysConfig 文件的差异或差异、您能否向我发送确切的 example.syscfg 文件、以便我记下闪存配置?

    这将帮助我轻松跟踪参数。

    除此之外、我知道将时钟分频器从 4 更改为 8 会对您有所帮助。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢您的分享。

    请告知我应该使用两个数据表中的哪个数据表作为验证您放置的值的参考: https://www.winbond.com/hq/support/documentation/?__locale=en&line=/product/code-storage-flash-memory/index.html&family=/product/code-storage-flash-memory/serial-nor-flash/index.html&pno=W25Q128JV&category=/.categories/resources/datasheet/

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请使用非 DTR 变体。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我参考了数据表并发现、在提到的情况下、也没有为闪存提供支持的 166MHz、因此、我请您按如下方式尝试使用 OSPI 组合:

    组合 1:Freq=133333333、时钟分频器= 4

    组合 2:Freq=133333333、时钟分频器= 8

    请告诉我结果。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、  

        在频率 166MHz 和分频器设置为 8 的情况下、我能够读取 JEDEC ID 这是否仍需要更改?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在频率 166MHz 和分频器设置为 8 的情况下、我能够读取 JEDEC ID 是否仍需要更改?

    是的、请尝试在我的回答中使用上述组合、并告诉我该如何操作。 期待您的答复。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    也尝试了该设置


    在驱动程序打开之前
    错误:flash_norOspiSetAddressBytes:317:将地址字节设置为 1 会启用 4 字节 1
    错误:FLASH_norOspiCmdRead:129:cmd 5 cmdaddr 4294967295 databuf datalen 1.
    错误:FLASH_norOspiCmdRead:129:cmd 159 cmdaddr 4294967295 databuf▒p datalen 3.
    错误:flash_norOspiReadId:854:man id EF devid 7018

    SYSFW 固件版本 10.0.8--v10.00.08 (Fiery Fox)
    SYSFW 固件版本 0xA
    SYSFW ABI 修订版 4.0

    驱动程序打开完成
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:bootloader_parseMultiCoreAppImage:709:在解析多核应用映像内部。 引导介质:2953248770!!
    错误:bootloader_verifyMulticoreImage:562:内部验证内核映像引导介质:–1341718526!!
    错误:FLASH_imgRead:67:在闪存图像读取中
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 4
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x43C2CFD4
    错误:FLASH_norOspiRead:903:数据缓冲区 0x11 0x60 0x11 0x9A 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:590:x509 标头`▒`▒▒C▒C
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:bootloader_parseMultiCoreAppImage:727:验证多核映像–1!!
    解析映像状态–1!!
    读取 MCU 应用映像–1!!
    读取 SBL 应用映像–1!!
    [bootloader_profile]引导介质:闪存
    [bootloader_profile]引导介质时钟:133.333MHz
    [bootloader_profile]引导映像大小:0 KB
    [bootloader_profile]存在内核:
    [bootloader profile] System_init:41968us
    【引导加载程序配置文件】Board_init:0us
    [bootloader profile] Drivers_open:298us
    [bootloader profile] Board_drivers 打开: 29532us
    [bootloader profile] Sciclient 获取版本:10195us
    【引导加载程序配置文件】App_waitForMcuPbist:22440us
    [bootloader profile] App_waitForMcuLbist : 7689us
    [bootloader profile] App_loadImages:80981us
    [bootloader_profile] SBL 总用时:193107us

    错误: flash_imgClose:99:内部 Flash 图像关闭
    一些测试失败!!
    错误:FLASH_norOspiCmdRead:129:cmd 5 cmdaddr 4294967295 databuf datalen 1.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    组合 1:Freq=133333333、时钟分频器= 4

    组合 2:Freq=133333333、时钟分频器= 8

    [/报价]

    两种组合是否产生了相同的结果?

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    分频器设置为 8 时、我在读取 JEDEC ID 时没有看到任何问题。

    但使用 4 个时、它在几次尝试中失败、最终可以读取。

    在驱动程序打开之前
    错误:flash_norOspiSetAddressBytes:317:将地址字节设置为 1 会启用 4 字节 1
    错误:FLASH_norOspiCmdRead:129:cmd 5 cmdaddr 4294967295 databuf datalen 1.
    错误:FLASH_norOspiCmdRead:129:cmd 159 cmdaddr 4294967295 databuf▒▒0 datalen 3.
    错误:flash_norOspiReadId:854:man id de devid E030
    错误:flash_norOspiReadId:863:无法读取设备 ID
    错误:FLASH_norOspiCmdRead:129:cmd 159 cmdaddr 4294967295 databuf▒▒8 datalen 3.
    错误:flash_norOspiReadId:854:man id FF devid F038
    错误:flash_norOspiReadId:863:无法读取设备 ID
    错误:FLASH_norOspiCmdRead:129:cmd 159 cmdaddr 4294967295 databuf▒p datalen 3.
    错误:flash_norOspiReadId:854:man id EF devid 7018

    SYSFW 固件版本 10.0.8--v10.00.08 (Fiery Fox)
    SYSFW 固件版本 0xA

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    FlashFixUpOspiBoot 在 main 函数中是否仍需要此功能?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

       很高兴地告诉大家、现在就可以阅读证书了。 已确定问题。 该芯片的 QSPI 读取命令为 0x6B、用于 3B 寻址。 但 syscfg 工具始终将 4B 寻址设置为 true。 我必须在下面给出的 API 中手动设置此值才能正确读取。

    静态 int32_t Flash_norOspiSetAddressBytes (Flash_Config *configvoid *ospiHandle)
      int32_t 状态= SystemP_Success
      Flash_Dev 配置*devCfg = config->devConfig;
      Flash_Nor OspiObject *obj =(Flash_Nor OspiObject *)(config->object);
      devCfg->enable4BAddr=false
    现在、身份验证失败。 这是否是由于使用了错误的密钥签名造成的?
    错误:FLASH_norOspiRead:902:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 4
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x43C2D0D4
    错误:FLASH_norOspiRead:904:数据缓冲区 0x30 0x82 0x06 0x53 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:590:x509 标头 0 S`▒▒▒C
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:bootloader_verifyMulticoreImage:661:验证映像失败
    错误:bootloader_parseMultiCoreAppImage:727:验证多核映像–1!!
    解析映像状态–1!!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    [报价 userid=“600676" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1529442/am620-q1-drivers-qspi-h-not-found-in-mcu-sdk/5901062 #5901062“]

    分频器设置为 8 时、我在读取 JEDEC ID 时没有看到任何问题。

    但使用 4 个时、它在几次尝试中失败、最终可以读取。

    [/报价]

    已了解此处的结果。 谢谢。

    flashFixUpOspiBoot 在 main 函数中是否仍需要此功能?

    由于您的闪存在 QSPI 模式下运行、因此我们需要替代该功能、可以使用  flashFixUpQspiBoot。 请注意、OSPI 是如何更改为 QSPI 的、实现也是如此。 若要查找实现、您可以参阅文件: https://github.com/TexasInstruments/mcupsdk-core/blob/next/examples/drivers/boot/sbl_ospi/am243x-lp/r5fss0-0_nortos/main.c#L44

    一旦你介绍了这一点,你应该去.

    但 syscfg 工具始终将 4B 寻址设置为 true

    要消除此问题、我们可以在 SysConfig 中取消选择此处的选项。 请查看下面的屏幕截图:

    请注意它是如何未选中的、因此不会设置 4 字节寻址。 此外、如果 使用链接的实现正确调用 flashFixUpQspiBoot、将重置闪存。 闪存复位后、意味着它将自动处于 3 字节寻址模式。

    希望我的解释对上述所有问题都有帮助。

    现在、身份验证失败。 这是否由于使用了错误的密钥签名?

    我假设您有一个 HS FS 器件并且使用所有 hs-fs 二进制文件。 请在这方面进行澄清、以便我们可以隔离问题:是 hs-fs 二进制问题还是密钥不正确(根据您的陈述)存在问题。

    期待您的答复。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我使用 hs_fs appimages。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如前所述、我使用 的是 MCU_PLUS_SDK_am62x_10_00_00_14 和 SysConfig-1.20.0 版本。 我没有看到禁用 4B 寻址的选项。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    正如我之前提到的、我使用的是 MCU_PLUS_SDK_am62x_10_00_00_14 和 SysConfig-1.20.0 版本。 我没有看到禁用 4B 寻址的选项。

    这不是预期结果、我尝试使用相同的 SDK 与 SysConfig 组合、我可以看到其中的 4 B 寻址选项。

    您需要做的是扩展“ 高级闪存配置 “选项卡、然后您就可以看到该选项。 如果您找不到、请告诉我、如果您没有找到、请向我发送应用程序 SysConfig 中闪存部分的屏幕截图。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    抱歉。 我发现了这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如何立即解决身份验证问题。 我正在使用器件类型 GP 编译应用程序、它使用 rom_degeneratekey 生成 appimage.hs_fs 映像。 这是正确的方法吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何立即解决身份验证问题。 我正在使用器件类型 GP 编译应用程序、它使用 rom_degeneratekey 生成 appimage.hs_fs 映像。 这是正确的方法吗?

    您能否继续进行以下更改?

    如上面的代码片段所示、将 ddrCopy 值设置为 1。

    完成此操作后、也会重新构建库和应用。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

         我认为这样不能解决问题。 因为我可以看到、只有 DMA 副本为 false 时、数据才被正确读取。 当 DMA 副本为 true 时、全为 0。 如果之前没有此设置、我上次能够获得正确的图像大小。  

       驱动程序打开完成
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:bootloader_parseMultiCoreAppImage:712:解析多核应用映像内部。 引导介质:2953248770!!
    错误:bootloader_verifyMulticoreImage:562:内部验证内核映像引导介质:–1341718526!!
    错误:FLASH_imgRead:67:在闪存图像读取中
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 4
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x43C2D350
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x82 0x06 0x53 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:590:x509header 02-07 0▒S▒▒▒C▒C
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:FLASH_imgRead:67:在闪存图像读取中
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x02 0x00 0x40 0x00 长度 2048
    错误:OSPI_readDirect:1214:DMA copy 1、phy enable 0 src 0x60100000 dest 0x84000000
    错误:flash_norOspiRead:903:数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 2048
    错误:bootloader_verifyMulticoreImage:629:imagelen 0x0 Certlen 0x657
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:FLASH_imgRead:67:在闪存图像读取中
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:flash_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 1664
    错误:OSPI_readDirect:1214:DMA copy 1、phy enable 0 src 0x60100000 dest 0x84000000
    错误:FLASH_norOspiRead:903:数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 1664
    错误:bootloader_verifyMulticoreImage:636:cert load 地址 0x84000000
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:652:闪存电流偏移 0x100000 映像长度 0x0 cert 长度 0x657 加载地址 0x84000000 值 2
    错误:Sciclient_service:251:RET 状态 0 msgtype 49440
    错误:Sciclient_service:258:RET 状态 0
    错误:bootloader_socAuthImage:1076:RET 状态 0
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:bootloader_parseMultiCoreAppImage:730:验证多核映像 0!!
    错误:bootloader_parseMultiCoreAppImage:753:电流偏移 0x84000000!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    您是否尝试将 ddrCopy 变量设置为 1 并在成功重建后进一步测试?

    另请阅读: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1530694/am62p-am62p-sbl-with-gd25f64-flash-the-mirror-loading-speed-is-slow/5905869#5905869

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、   

       我尝试了这种方法、之前附加的日志是在进行此更改的情况下获取的。 我尝试打印它复制到缓冲区的数据、但它们都是零。

    我是否应该尝试手动从 NOR 闪存复制到 DDR? 您分享的线程谈到了这一点。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我是否应该尝试手动从 NOR 闪存复制到 DDR? 您分享的主题说明了这一点。

    是的、请尝试相同的方法、并让我知道。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    要使其正常工作、我应该选择哪个版本的 MCU SDK?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我建议您选择最新版本: www.ti.com/.../11.00.00.16

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

       我已将问题范围缩小到存储器复制到暂存存储器 (0x84000000)。 当数据尝试从 NOR 闪存读取 2048 个字节时、会正确复制。 但当将整个映像复制到暂存存储器(54016 字节、appimage 大小)时、它会瞬间工作。 此外、该存储器用于从其他函数获取数据。 因此、这种方法无法按预期工作。

    错误:bootloader_verifyMulticoreImage:629:通过测试将 0x800 读取到暂存存储器
    数据位于暂存存储器 0x0、0x1、0x2
    错误:FLASH_imgRead:67:在闪存图像中读取闪存索引 0 偏移 0x100000
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:flash_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 2048
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x84000000
    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 2048
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标 0x30 0x82 0x6 0x53 处的数据
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x82 0x06 0x53 长度 2048
    错误:bootloader_verifyMulticoreImage:631:暂存存储器 0x30、0x82、0x6 处的数据
    错误:bootloader_verifyMulticoreImage:633:暂存指针 84000000 imagelen 0xCC64 Certlen 0x657
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:637:将映像读取到闪存
    错误:FLASH_imgRead:67:在闪存图像中读取闪存索引 0 偏移 0x100000
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x30 0x82 0x06 0x53 长度 54016
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x84000000
    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 54016
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标 0x30 处的数据 0x0 0x36 0x0
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x00 0x36 0x00 长度 54016
    错误:bootloader_verifyMulticoreImage:640:暂存存储器 0x30、0x0、0x36 处的数据

    在禁用 DMA 复制的情况下捕获此日志。 启用它似乎也不能解决问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    感谢您的更新。

    我已将问题缩小到内存复制到暂存存储器 (0x84000000)。 当数据尝试从 NOR 闪存读取 2048 个字节时、会正确复制。 但当将整个映像复制到暂存存储器(54016 字节、appimage 大小)时、它会瞬间工作。 此外、该存储器用于从其他函数获取数据。 因此、这将无法按预期工作。

    有趣的发现

    现在有两种情况:

    2048 字节读取工作:

    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 2048
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标 0x30 0x82 0x6 0x53 处的数据
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x82 0x06 0x53 长度 2048
    错误:bootloader_verifyMulticoreImage:631:暂存存储器 0x30、0x82、0x6 处的数据

    appimage 读取不起作用:

    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x30 0x82 0x06 0x53 长度 54016
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x84000000
    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 54016
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标 0x30 处的数据 0x0 0x36 0x0
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x00 0x36 0x00 长度 54016
    错误:bootloader_verifyMulticoreImage:640:暂存存储器 0x30、0x0、0x36 处的数据

    现在也请告诉我当前的 OSPI 设置、是时钟分频器 8 还是 4。 我假设频率仍设为 133MHz(实际值为 133333333)。

    除此之外、我看到协议为 1s-1s-4S、因此注意到控制器的限制是时钟分频器需要为 4、而不是 8。

    请告诉我您的想法。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    时钟分频器设置为 8。 是否建议将其设置为 4?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    感谢您的耐心。

    时钟分频器设置为 8。 您建议将其设置为 4 吗?

    是的、我建议将其设置为 4。

    原因是:

    除此之外、我看到协议为 1s-1s-4S、因此在该注释中、控制器的一个限制是时钟分频器需要为 4 而不是 8。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

         我尝试使用了 133MHz 和时钟分频器 4 和 8。 不过、结果是相同的。 也已尝试使用 166MHz 和 4。 结果相同。 我认为 QSPI 按预期工作、但将数据复制到 RAM 似乎无法按预期工作。 是否需要处理缓存?

      错误:utils_memcpyWord:105:目标 0x30 0x82 0x6 0x53 处的数据
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x82 0x06 0x53 长度 4
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:593:x509 header 02-07 0ނS0W▒C▒¤▒C
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:bootloader_verifyMulticoreImage:629:通过测试将 0x800 读取到暂存存储器
    数据位于暂存存储器 0x0、0x1、0x2
    错误:FLASH_imgRead:67:在闪存图像中读取闪存索引 0 偏移 0x100000
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:flash_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 2048
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x84000000
    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 2048
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标 0x30 0x82 0x6 0x53 处的数据
    错误:FLASH_norOspiRead:903:数据缓冲区 0x30 0x82 0x06 0x53 长度 2048
    错误:bootloader_verifyMulticoreImage:631:暂存存储器 0x30、0x82、0x6 处的数据
    错误:bootloader_verifyMulticoreImage:633:暂存指针 84000000 imagelen 0xCC64 Certlen 0x657
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:637:将映像读取到闪存
    错误:FLASH_imgRead:67:在闪存图像中读取闪存索引 0 偏移 0x100000
    错误:FLASH_READ:185:内部闪存读取 1048576
    错误:FLASH_norOspiRead:881:在闪存内也不读取 ospi
    错误:FLASH_norOspiRead:901:偏移 1048576 数据缓冲区 0x00 0x00 0x00 0x00 0x00 长度 54016
    错误:OSPI_readDirect:1214:DMA copy 0、phy enable 0 src 0x60100000 dest 0x84000000
    错误:utils_memcpyWord:42:源 0x60100000 目标 0x84000000 长度 54016
    错误:utils_memcpyWord:43:源 0x30 0x82 0x6 0x53 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标位置的数据 0x0 0x5 0x0 0x3D
    错误:FLASH_norOspiRead:903:数据缓冲区 0x00 0x05 0x00 0x3D 长度 54016
    错误:bootloader_verifyMulticoreImage:641:暂存存储器 0x0、0x5、0x0 上的数据
    错误:bootloader_verifyMulticoreImage:644:cert load addr 0x84000000
    错误:FLASH_imgSeek:91:在 Flash img seek 内
    错误:bootloader_verifyMulticoreImage:660:闪存电流偏移 0x100000 映像长度 0xCC64 cert 长度 0x657 加载 ad2
    错误:Sciclient_service:251:RET 状态 0 msgtype 49440
    错误:Sciclient_service:258:RET 状态 0
    错误:bootloader_socAuthImage:1076:RET 状态 0
    错误:flash_imgPhyTogging:106:闪存图像 phy 切换
    错误:bootloader_verifyMulticoreImage:689:当前偏移 00100000
    错误:bootloader_parseMultiCoreAppImage:739:验证多核映像 0!!
    错误:bootloader_parseMultiCoreAppImage:763:闪存索引 0x0 闪存类型 0x43C1A650
    电流偏移 0x84000000、0x0!!
    错误:MEM_imgRead:71:内部图像图像读取 DMA 启用? 0
    错误:utils_memcpyWord:42:源 0x84000000 目标 0x43C2563C 长度 16
    错误:utils_memcpyWord:43:源 0x0 0x0 0x0 0x0 0x3D 处的数据
    错误:utils_memcpyWord:46:对齐
    错误:utils_memcpyWord:105:目标位置的数据 0x0 0x0 0x0 0x0 0x0 0x3D
    错误:bootloader_parseMultiCoreAppImage:765:图像读取函数魔术字符串 0x3D000000 0!!
    解析映像状态–1!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Shibi:

    这是关于 Cache 的东西吗?

    可能是因为缓存。

    高速缓存无效可能不会导致过时日期。

    您是否可以使用 API CacheP_inv 使目标缓冲区无效?

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

         在读取 bootloader.c 中的总长度之前调用 CacheP_inv 但问题仍然存在

    CacheP_inv ((void *) config->scratchMemPtr、totalLen、CacheP_TYPE_ALL);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、

    我指派了另一位专家来帮助对 DMA 进行评论。 请稍后回复。

    此致、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  Shibi

    我与 Vaibhav 讨论了上述观察,你已经与 DMA 确认,你不能读取 54016 字节的长度.

    如果没有 DMA、您就能够读取 54016 字节。

    在这里、我们可以尝试一个简单的测试用例。 我们可以尝试读取 52K 字节(53248 字节),而不是 54016 字节。

    尝试上述测试用例、查看您是否能够读取此模式。

    此致、

    Anil.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Swargam:

        感谢您参加本主题的讲座。 我注意到我写入 RAM 的数据没有正确写入。 因为如果我进行写入和读取、在许多偏移处、数据与写入的内容相匹配。  

    我做了一个长度 54016 的小写读测试。 我正在将 0xDEADBEEF 写入存储器。  存储器中的前几个偏移可正确保留数据。

    这是否与 RAM 配置有关? 在此内存区域中启用高速缓存。


    驱动程序打开完成
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:flash_imgOpen:56:Flash img open
    错误:bootloader_open:93:bootloader open Flash open 状态 0
    错误:RAM_TEST:271:84000000 索引 24 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 25 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 26 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 27 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 28 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 29 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 30 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 31 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 32 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 33 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 34 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 35 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 36 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 37 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引处的数据不匹配 38 个数据 0x0
    错误:RAM_TEST:271:84000000 索引 39 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 40 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 41 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 42 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引处的数据不匹配 43 数据 0x0
    错误:RAM_TEST:271:84000000 索引 44 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 45 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 46 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 47 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 64 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 65 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 66 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 67 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 68 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 69 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 70 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 71 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 120 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 121 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 122 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 123 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 124 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 125 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 126 个数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 127 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 152 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 153 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 154 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 155 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 156 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 157 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 158 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 159 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 440 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 441 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 442 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 443 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 444 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 445 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 446 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 447 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 448 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 449 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 450 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 451 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 452 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 453 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 454 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 455 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 456 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 457 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 458 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 459 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 460 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 461 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 462 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 463 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 464 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 465 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 466 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 467 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 468 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 469 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 470 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 471 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 472 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 473 个数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 474 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 475 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 476 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 477 个数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 478 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 479 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 480 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 481 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 482 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引处的数据不匹配 483 数据 0x0
    错误:RAM_TEST:271:84000000 索引 484 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 485 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 486 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 487 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 488 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 489 数据 0xEF00AD 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 490 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 491 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 492 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 493 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 494 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 495 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 496 数据 0x0 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 497 数据 0xEF00AC 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 498 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 499 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 500 数据 0xEF00EF 处的数据不匹配
    错误:RAM_TEST:271:84000000 索引 501 数据 0xEF00EF 处的数据不匹配

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好  Shibi 

    您可以通过检查以下内存区域来确认是否缓存了上述内存。

    大多数情况下、DDR 存储器已缓存。

    如果缓存了此存储器、则在 DMA 后我们需要执行 CACHE_INvalidation 、则只有 CPU 能够看到正确的内存内容。

    此致、

    Anil.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    在此内存区域中启用高速缓存。

    让我们禁用此区域的高速缓存并查看进度。

    谢谢、

    Vaibhav

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Vaibhav:

       我能够成功引导 MCU 和 A53 内核。 这是在添加 r5f 图像后完成的。 我认为这是不必要的。 理想情况下、如果我们不想在该核心中运行任何自定义应用程序、应将哪个应用程序加载到 r5f?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    理想情况下、如果我们不想在该核心中运行任何自定义应用程序、应该将哪个应用程序加载到 r5f 中?

    您可以继续操作、并按如下方式加载一个空示例: C:\ti\mcu_plus_sdk_am62x_11_00_00_16\examples\empty\am62x-sk-lp\r5fss0-0_freertos\ti-arm-clang

    谢谢、

    Vaibhav