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.
工具与软件:
您好!
我使用 CCS v1260和调试器 XDS110来开发 AM263P4 CC Eva 板。
我发现我只能通过 CCS 调试器在 Dev BootMode 下加载程序。
如果将引导模式设置为 QSPI (1s)、则会显示如下错误消息:
我以前在 AM2634 CC 板上工作、调试器始终在 QSPI 引导模式下工作。
那么、为什么它无法在 AM263P4上运行呢? 如何使它正常工作?
谢谢
尊敬的 Yin:
我看到您在尝试加载 OSPI NAND 示例、这是不正确的、因为 AM263Px 控制卡上没有 NAND 闪存芯片。
那么、为什么它无法在 AM263P4上运行呢? 如何使它正常工作?
谢谢
[报价]AM263Px CC 有两个闪存。
如果我设置为开发引导模式、则此示例代码会成功运行。
这来自 AM263Px CC 用户手册第24页
尊敬的 Yin:
实际上、我们没有 OSPI NAND 引导模式 在 AM263Px 中、由于您使用的是 OSPI 引导模式、因此它将仅使用 NOR 闪存、因此 ROM 将配置 OSPI 以从 NOR 闪存读取应用程序映像。
我会推荐
如果我设置为开发引导模式、此示例代码将成功运行。
是的、这是正确的、因为在本例中、您通过 JTAG 将示例直接加载到 RAM 中。 但在 OSPI 引导模式下、ROM 尝试使用 OSPI 外设从 NOR 闪存读取 SBL 映像
我是否能够知道、如果您仅尝试 OSPI 引导模式、我建议您使用此 software-dl.ti.com/.../GETTING_STARTED_FLASH.html、则要尝试实现什么用例
在 OSPI NAND 示例中、闪存配置如下所示:
这是 CC 用户手册中提到的芯片。
我混淆了"不具有 OSPI NAND 引导模式"、这来自 AM263Px TRM、
在我的测试中、当设置为 QSPI (1S)时、我在第一个 POST 中得到显示的错误。
我知道 RBL 将 OSPI 配置为通过 QSPI (1S)加载 SBL、但未能这样做。 从手册中可以听到、它应该回退到 UART 引导模式、并且不应停止调试器以将程序加载到 RAM 中。
我们的硬件设计遵循 AM2634 CC 板、它使用与 S25FLS128闪存芯片连接的 QSPI。
现在我们只想将 AM2634替换为 AM263Px、因此我们需要使 AM263Px 通过 QSPI/OSPI (1S)模式与 S25FLS128搭配使用。
菲尼克斯、
是的、AM263P4 controlCARD EVM 同时具有 OSPI NOR 和 QSPI NAND 闪存器件。 但是、您只能从连接到 OSPI 芯片选择0的器件引导、在本例中、该器件是 OSPI NOR 闪存器件。 请注意、AM263P4只能从 NOR 闪存器件引导、因为器件 ROM 不支持 NAND 闪存协议。
因此、您可以将 QSPI NAND 闪存器件用作外部闪存、但无法从 QSPI NAND 闪存的内容进行引导。
如果您要使用 QSPI 闪存引导 AM263Px、它必须是 NOR 闪存器件、并且必须在设计中连接到 OSPI CS0。
此致、
Brennan
您好、Pheonix。
[报价 userid="566966" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1442321/am263p4-ccs-cannot-load-program/5531063 #5531063"]在 OSPI NAND 示例中、闪存配置如下所示:
这是 CC 用户手册中提到的芯片。
我混淆了"不具有 OSPI NAND 引导模式"、这来自 AM263Px TRM、
[报价]如果你在你的定制电路板上尝试这个操作、把它更改为1 - 1 - 1 ( 我假设您已经建立了联系 S25FLS128 闪存至 AM263Px 的 CS0 )
尝试使用此闪存配置:(您将需要修改 SBL syscfg 闪存配置)
flash1.$name ="CONFIG_FLASH0";
flash1.strDtr_cmdRegRd ="0x85";
flash1.strDtr_cmdRegWr ="0x81";
flash1.strDtr_mask ="255";
flash1.xspiWipRdCmd ="0x05";
flash1.strDtr_shift = 255;
flash1.fourByteEnableSeq ="0";
flash1.device ="CUSTOSE_FLASH";
flash1.fname ="S25FL128SA";
flash1.flashSize = 16777216;
flash1.flashManfId ="0x01";
flash1.flashDeviceId ="0x2018";
flash1.flashBlockSize = 65536;
flash1.cmdBlockErase4B ="0xD8";
flash1.cmdSectorErase4B ="0x20";
flash1.ResetType ="0x10";
flash1.flashDeviceBusyTimeout = 24000000;
flash1.flashPageProgTimeout = 4000;
flash1.flashQeType ="1";
flash1.cmdExtType ="none";
flash1.dummy_cfgReg ="0x00";
flash1.proto_cfgReg ="0x00";
flash1.strDtr_isAddrReg = true;
flash1.deviceBusyType ="1";
flash1.enable4BAddr = false;
flash1.protocol ="1s_1s";
flash1.peripheralDriver.$name ="CONFIG_OSPI0";
尊敬的 Brennan:
感谢您的解释。
但未解释为什么在 OSPI (1S)引导模式下设置时、RBL 无法从外部闪存加载 SBL?
OSPI (1S)引导模式的限制是什么?
在 OSPI (1S)引导模式下、我无法运行可以在开发引导模式下成功运行的 sbl_jag_uniflash_am263px 工程、是否有相关说明?
尊敬的 Nilabh:
我尝试在开发引导模式下加载 SDK SBL_JTAG_uniflash 示例、运行正常。
但在 OSPI (4S)引导模式下加载时、不起作用。 我发现它总是跳转到地址0xc (无代码区域)而不是_c_int00。
有什么想法吗? 是否对 RBL 在这两种引导模式下的工作原理进行了说明?
请注意、它与 OSPI 驱动器无关、不会跳转到程序的开头。
谢谢
I Pheonix、
在开发引导模式下、您实际上是使用 JTAG 线路在 TCM 或 RAM 中加载任何代码并从此处执行它、ROM 不会执行太多的基本初始化、其余的最多是 GEL 文件、这些文件负责进行时钟和外设设置。 因此、只要您可以使用 JTAG 将代码编写到 RAM/TCM 中、那么代码就会起作用。
与 OSPIboot 模式一样、ROM 读取 SOP 引脚发现应该从闪存获取 SBL (0x0偏移固定)、它设置 OSPI 外设、然后将 SBL 复制到 RAM 并执行代码、然后在 SBL 运行时执行代码、SBL 再次从闪存获取应用程序(根据您在 SBL 中的代码)
如需了解有关这些功能的更多信息、请参阅 TRM 第5节
但在 OSPI (4S)引导模式下加载时、不起作用。 我发现它总是跳转到地址0xc (无代码区域)而不是_c_int00。
有什么想法吗? 是否对 RBL 在这两种引导模式下的工作原理进行了说明?
请注意、它与 OSPI 驱动器无关、不会跳转到程序的开头。
[报价]这不是正确的顺序、要实现正确的 OSPI 引导顺序、请执行以下操作: software-dl.ti.com/.../GETTING_STARTED_FLASH.html
尊敬的 Nilabh:
我已经完成了 SOC 初始化(将 SBL_null 加载到外部闪存)步骤、成功完成、但在 OSPI (4S)引导模式下运行 SBL_JTAG_uniflash 项目没有帮助。
我已经做过几次了。
在 OSPI (8S)引导模式下、我可以从 CCS 运行该项目、没有任何问题、即使我擦除了外部闪存也是如此。 这意味着 SBL_null 不是必需的。
在 OSPI (4S)引导模式下、同一个项目不会运行。
如果您有 CC 板、可以在您的板上尝试一下吗? 或者我们可以设置一个调试会话、以便我可以向您展示我正在执行的操作吗?
您好!
在我们的硬件设计视图中、我们无法将引导模式设置为开发模式、并且我们无法在电路板上添加这些开关。
因此、引导模式固定为 OSPI (4S)引导模式。
问题是、我无法运行 sbl_JTAG_uniflash 来将任何内容刷写到外部闪存中。
在我看来、无论处于开发模式还是4S 模式、通过调试器连接目标时、GEL 始终初始化 MCU、以允许 CCS 加载程序到 SRAM 中运行。
尊敬的 Phoenix:
[报价 userid="566966" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1442321/am263p4-ccs-cannot-load-program/5540879 #5540879"]问题是、我无法运行 sbl_JTAG_uniflash 来将任何内容刷写到外部闪存中。
在我看来、无论处于开发模式还是4S 模式、通过调试器连接目标时、GEL 始终初始化 MCU、以允许 CCS 加载程序到 SRAM 中运行。
[报价]请执行以下操作来运行 SBL JTAG Uniflash:
e2e.ti.com/.../sbl_5F00_jtag_5F00_flashing.pdf
如果这有帮助、请告诉我。
您好、Phoenix、
您能否分享4S 模式的配置?
谢谢!
Gunjan
从另一位 TI 工程师那里、他说当前的 mcal 仅适用于带 EVA 板的1S、8S 和8D 模式。 这是已知的限制。