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.
您好!
我之前发布了一个有关消费类器件的问题、该问题基于 DM814x 和引导序列。 它最初配置为从 NOR (XIP)引导、我尝试确定是否可以更改从可用 SD 卡盒引导的顺序。 除了停止 NOR 启动、以便序列继续到 SD 卡上之外、没有其他好方法可以执行此操作。 嗯、我设法做到了这一点、但没有达到目的。 现在我有一块砖,但我仍然希望我可以恢复原始 NOR 图像(我足够聪明,可以先复制它)。 要尝试的明显设备是 SD 卡。 我不知道我有任何可用的 UART 连接、因此这还不是一个考虑因素。
我已经阅读了 TRMS 几周、了解了 EZSDK 和 CCS、现在我还遇到了一些问题、这些问题可以帮助我了解我是否走上了正确的道路、或者我当前的方法是否浪费时间。
因此、我首先尝试验证 SD 卡实际上是设备尝试从哪个设备引导(我希望它们的活动 LED 很少!)。 我想假设它已连接到启动列表中的 SD/MMC1、但不确定情况是否如此。 我的设备上的显示屏是空白的、因此我没有明显的生命体征。 我所做的是、每3分钟显示一次复位(灰/黑/灰)、这与看门狗计时器一致。 因此、如果我只需更改 WDT 的行为(使用手动序列关闭或更改间隔)、或者通过 SD 卡自行重置器件、 然后、我知道 SD 是一个有效的引导设备、我可以继续进行更完整的修复。
我的问题是:
从较高层次看、处理器如何知道它已成功引导? IE。 它如何决定需要尝试下一个器件? 成功完成引导时是否有保存值的寄存器? 这是否与 WDT 分开? 提出问题的原因是、我想知道它是否正在尝试除 NOR 之外的引导列表中的任何内容、或者它是否可能认为 NOR 已"引导"。
我正在尝试通过使用 RAW 模式来简化 SD 方法。 我正从网上的几个例子中更好地了解 TOC 等。 是否需要空 CHSETTINGS 元素以外的任何内容?
从其他处理器的旧文档中、我了解到 TOC 可用于配置其他元素、如 RAM。 配置存储器以加载原始启动映像是否需要执行任何操作?
基于上一个问题、是否有任何内存位置在没有额外配置的情况下有效? 0x402F0400 - 0x402FFFFF 和0x40300000 - 0x4031FFFF 似乎是可行的存储器位置。 它们是否正常工作且可用、或者它们是否被 ARM ROM 使用?
我正在尝试 CCS 中的几个短程序来禁用 WDT 或调用早期系统复位、以查看我是否会对设备的显示产生影响。 是否有其他建议可检查 SD 前端的生命证明? 我想、将一些字节写回 SD (一个 LA "hello world")可能需要太多程序。 我只是想检查生命的迹象。
感谢您的所有帮助和建议。 谢谢。
Chris
因此、我认为我可能已经找到了我第一个关于什么被视为"成功"引导的问题的答案、如果我对、它会使我尝试的其他所有东西都无用。 在 TRM (SPRUGZ8G)的第4.7.1节中:
"一个扇区是512字节的逻辑单元。
当扇区的前4个字节字不等于0000 0000h 或 FFFF FFFFh 时、认为存在有效映像。"
嗯、无论出于什么原因、我的 NOR 存储器的启动看起来像(这是一个漫长的故事、但我的脚本在我尝试更新之后、以及在它重新启动系统之前(可能是最后一次)对 NOR 进行了镜像):
00000000 ee ee ee ee ee ee ee ee ee ee 电子工程专辑 请关闭 |。。。。 |
00000010 ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000020 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000030 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000040 ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000050 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000060 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000070 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000080 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
00000090 ff ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
因此、在我看来、系统会看到 NOR 的开始、并认为启动"成功"、因为它不是完全"关闭"。 因此、它不会继续寻找其他引导方法。 是这样吗?
如果不卸下 NOR 芯片、尝试重新配置 BTMODE 引脚、似乎是让它查看 SD 卡(我认为在有机会的情况下、该选项仍然有效)的最合理选择。 我目前正在尝试跟踪一些未使用的焊盘、以查看我是否可以钻出一些东西来将 SD 置于 XIP 之前。 其中一些引脚围绕 BTMODE 引脚的正确物理位置接近处理器。 有人有其他建议吗? 谢谢。
Chris
尊敬的 Chris M33:
正如您已经观察到的、引导逻辑会根据引导模式配置从存储器或外设读取数据。 没有用于确定引导模式成功的特殊寄存器。 相反、软件会负责读取第二级引导加载程序、并在找到任何映像时跳转到该加载程序。
如果引导模式开关易于访问、您肯定可以更改引导模式。 但是、如果它喜欢更改您的板/硬件 、您可以尝试擦除闪存并确保其全部为 FF。
擦除 NOR 存储器是否有问题?
谢谢
[引用 user="Chris M33">由于我怀疑 SDRAM 是否会被初始化,因此我对加载软件映像的可用存储器的问题将会得到解决。 从存储器映射中、0x402F0400 - 0x402FFFFF 和0x40300000 - 0x4031FFFF 似乎是可行的存储器位置。 这些位置中的任何一个在引导初期有效还是首选? 引导 ROM 中的代码是否已保留任何内容?
这些位置可用。
0x402F0400 - 0x402FFFFF 是 Cortex-A8 RAM
0x40300000 - 0x4031FFFF 是 L3 OCMC RAM
有关更多信息、请参阅以下指针:
此致、
帕维尔
[引用 user="Chris M33">我认为我拥有再次尝试 SD 卡映像所需的大部分资源。 我将尝试通过 PRM_RSTCTRL 寄存器调用热复位或冷复位。 这需要最少的裸机代码来测试。 我想确认我对存储器映射的理解、以便我确定要写入正确的寄存器。 根据我的文档、PRCM 寄存器的基地址应为0x48180000。 如果正确、则 PRM_RSTCTRL 偏移为0xA0、从而使复位寄存器0x481800A0。 我使用的两个文档(SPRS647E 和 SPRUGZ8G)之间的描述略有不同、所以我只是想确认我的基地址是否正确。[/QUERPLET]
是的、PRM_RSTCTRL 寄存器位于地址0x481800A0处。 PRCM 基地址(0x48180000)+ PRM_DEVICE 基地址(0x0000)+ PRM_RSTCTRL 偏移(0xA0)。
此致、
帕维尔
感谢您验证我的内存和寄存器问题。 昨天晚上,我尝试了这些,但我的原始形象还没有成功。 我已经尝试过几个存储器地址、还尝试了1个与2个(热与冷)变体以尝试重置器件、但尚未看到任何影响。 我只有一个空白显示屏来指示这是否正常工作。 似乎没有暴露任何其他调试端口。
MOVW R3、#0xA0
MOVT R3、#0x4818
MOVW R4、#2
STR R4、[R3]
00000000 40 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |@… |
00000010 00 00 00 00 43 48 53 45 54 54 49 4e 47 53 00 |……CHSETINGS...|
00000020 ff ff ff ff ff ff ff ff FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF ff ff ff ff ff ff ff ff ff (FF 关闭 FF |.......... |
*
00000040 c1 c0 c0 00 01 00 00 00 00 00 00 00 00 00 00 | |
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |.......... |
*
00000200 10 00 00 00 00 04 2f 40 a0 30 00 E3 18 38 44 E3 |… /@.0...8D...|
00000210 02 40 00 E3 00 40 83 E5 @@…………………………………………
我还尝试将此图像放置在 TRM 中列出的4个扇区。 我认为这都是正确的小端字节序。 是否有人看到这种尝试有任何明显的结果? 谢谢。
Chris
再次感谢 Pavel 所做的一切努力。 我没见过大多数、但我之前见过第四个。 这似乎与我的问题最相似。 我问过 RY9983,他是否能分享解决他问题的改变,因为这似乎与我的问题非常相似。 我曾试图再次与他联系,希望有一件简单的事情我已经失踪了。
昨天晚上我还考虑到我使用的 SD 卡可能存在问题。 我目前正在适配器中使用32GB microSD、这只是因为这是我可以使用的。 我将尝试使用设备随附的4GB SD、否则会有所不同。 否则、我将继续读取和测试。 我不想占用太多的时间来解决我自己的创作问题。
Chris